PGE/AStarScheme

From jetwiki
Jump to navigation Jump to search

Hybrid Advection Scheme (Background)

March 1, 2014 by Joel E. Tohline

As is mentioned in the preface to our primary discussion of the Hybrid Advection Scheme, my early notes on this topic were included in my earliest version of this web-based H_Book. The relevant page can be accessed via this link; it is an html file whose linux time stamp is August 27, 2000. Here we re-present the content of these "year 2000" notes because the symbol fonts utilized throughout the original html page seem now not to be properly translated by some web browsers.

As my group discussed this proposed new algorithmic approach to advecting angular momentum over the first decade of the new millennium, it was often referred to as the "A* scheme," where, A*(Arot+ρϖ2Ωf) was the inertial-frame angular momentum density as given by the sum of variables whose values were tracked in the rotating frame.


ASIDE: Relevant to hydrocode development

Curvature Terms

Converting from a Lagrangian to an Eulerian time-derivative, Equation [I.A.5] becomes,

t(ρv)+(v)(ρv)+(ρv)v

=

PρΦ.

Now, if you're not working in Cartesian coordinates, care must be taken when dealing with the second term on the left-hand-side of this equation because when the gradient operator acts on a vector quantity (in this case, ρv), various curvature terms will arise reflecting the fact that, in general, the unit vectors of your curvilinear coordinate system point in different directions as the fluid moves to different locations in space. Quite generally, though, for the jth component of the equation of motion we may isolate these curvature terms as follows:

t(ρvj)+(ρvjv)+(curvature)j

=

jPρjΦ,

where,

(curvature)j

=

Σi=1,2,3{[(ρvi)/(hihj)][vjξihjviξjhi]}.

So, for example, in cylindrical coordinates where h1=hϖ=1,h2=hθ=ϖ, and h3=hz=1,

(curvature)ϖ

=

[(ρvθ)/ϖ][vθ]=ρvθ2/ϖ;

(curvature)θ

=

[(ρvϖ)/ϖ][vθ]=ρvϖvθ/ϖ;

(curvature)z

=

0;

Thus, in cylindrical coordinates the three components of the equation of motion become,

t(ρvϖ)+(ρvϖv)

=

ϖPρϖΦ+ρvθ2/ϖ;

t(ρvθ)+(ρvθv)

=

θPρθΦρvϖvθ/ϖ;

t(ρvz)+(ρvzv)

=

zPρzΦ.


Conservation of Angular Momentum

Now, the first and third of these expressions are indeed the ones we are utilizing in our hydrocode. but the middle one, expressing the time-rate-of-change of the azimuthal velocity, has been implemented in a different form, namely,

t(ρϖvθ)+(ρϖvθv)

=

ϖθPϖρθΦ.

The $64,000 question is, "Are these equivalent expressions?" Well, let's play with the left-hand-side of this last expression.

t(ρϖvθ)+(ρϖvθv)

=

ϖt(ρvθ)+(ρvθ)t(ϖ)+ϖ(ρvθv)+(ρvθv)ϖ

   

=

ϖ{t(ρvθ)+(ρvθv)}+(ρvθvϖ)

It is easy to see, therefore, that the two expressions are equivalent; but the latter one is used in preference to the former because it provides a direct statement of conservation of angular momentum. Specifically, when the external forces (due to gradients in the gravitational potential and pressure) balance, our selected "conservative" finite-difference scheme will guarantee that the physical quantity A=ρϖvθ is conserved globally to precisely the same degree of accuracy as mass is conserved.

Notation Adjustment

In what follows, the governing PDEs will be expressed in terms of velocities that are measured in the context of a rotating reference frame. In our original html-formatted notes, these variables are differentiated from inertial-frame variables by color; specifically, rotating-frame variables are colored orange. Here we will abandon the color labeling and, instead, use u to represent the velocity as measured in a frame rotating about the z-axis with angular frequency, Ωf. That is, u is related to the inertial-frame velocity v through the expression,

u

=

ve^θϖΩf.

The So-called A* Scheme

Now, in a rotating frame of reference, this preferred form of the azimuthal component of the equation of motion takes the form,

t(ρϖuθ)+(ρϖuθu)

=

ϖθPϖρθΦ2ρϖΩfuϖ.

Notice that a new term has appeared due to the coriolis force. Traditionally, in numerical hydrodynamics, this new term has been treated explicitly as a source term. Hence, this component of the equation of motion no longer takes on a strictly conservative form, and the adopted "conservative" finite-difference is no longer a particularly useful tool to guarantee that the angular momentum is globally conserved even when the external forces due to pressure and gravity balance one another.

To derive a form of this equation that is a lot more suited to a "conservative" finite-difference implementation, note that,

t(ρϖ2Ωf)+[(ρϖ2Ωf)u]

=

ϖ2Ωf[tρ+(ρu)]+ρΩf(u)ϖ2

 

=

2ρϖΩfuϖ.

Hence, in a rotating frame of reference, the azimuthal component of the equation of motion can be written as,

t(ρϖuθ)+(ρϖuθu+t(ρϖ2Ωf)+[(ρϖ2Ωf)u]

=

ϖθPϖρθΦ,

or,

t[ρϖ(uθ+ϖΩf)+{[ρϖ(uθ+ϖΩf)]u}

=

ϖθPϖρθΦ.

When advancing the angular momentum density (i.e., Arot=ρϖuθ) forward in time using a finite-difference scheme, I recommend that the "sourcing" step only include the terms on the right-hand-side of these last expressions (i.e., only the gradients in the pressure and gravitational potential), and the "fluxing" step should include the following terms:

tArot

=

(Arotu)t(ρϖ2Ωf)[(ρϖ2Ωf)u]

 

=

(Arotu)ϖ2Ωft(ρ)Ωf[(ρϖ2)u]

 

=

(Arotu)+ϖ2Ωf[(ρ)u]Ωf[(ρϖ2)u].

This last expression is directly implementable using our standard fluxing scheme because all three terms have the form [Qu]. (Note that the density that appears in the last two terms on the right-hand-side of this last expression must be taken from precisely the same point in time as the "Arot" that appears in the first term on the right-hand-side.)

Whether you adopt precisely this final prescription or not, the primary point to keep in mind is that you want to advect the "intertial" [sic] angular momentum density [ρϖ(uθ+ϖΩf)]=[Arot+ρϖ2Ωf] using the "rotating-frame velocity u at each grid cell face. Hence, you might prefer to use one slightly earlier relation to guide your design of the fluxing step. In the absence of "true" source terms (due to pressure and gravity), we have,

t[ρϖ(uθ+ϖΩf)]

=

{[ρϖ(uθ+ϖΩf)]u},

which is the same as,

t[Arot+ρϖ2Ωf]

=

{[Arot+ρϖ2Ωf]u}.

But this may also be written as,

t(Arot)

=

t(ρϖ2Ωf){[Arot+ρϖ2Ωf]u}.

So, you can carry out the calculation by first adding the quantity (ρϖ2Ωf) to Arot to get the value of the angular momentum density in the inertial frame; advect this "inertial" quantity; then subtract from this result the change in the quantity (ρϖ2Ωf) as determined from the updated value of the density as derived via the continuity equation.

Related Discussions


Tiled Menu

Appendices: | VisTrailsEquations | VisTrailsVariables | References | Ramblings | VisTrailsImages | myphys.lsu | ADS |