Editing
Appendix/Ramblings/HybridSchemeOld
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Section 2.3== Building on our introductory discussion of the [[PGE/RotatingFrame#Euler_Equation_.28rotating_frame.29|Euler equation]] (see also Appendix 1.D, §3 of [[Appendix/References|BT87]]), we begin with the, <div align="center"> <font color="#770000">'''Lagrangian Representation'''</font><br /> of the Euler Equation <br /> <font color="#770000">'''as viewed from a Rotating Reference Frame'''</font> <math>\frac{d\mathbf{u'}}{dt} = - \frac{1}{\rho} \nabla P - \nabla \Phi - 2{\vec{\Omega}}_f \times {\mathbf{u'}} - {\vec{\Omega}}_f \times ({\vec{\Omega}}_f \times \vec{x})</math> , </div> where we choose to define the frame rotation by the vector, <div align="center"> <math>~\vec{\Omega}_f \equiv \hat\mathbf{k} \Omega_0 \, ,</math> </div> and, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> ~\mathbf{u'} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> ~\mathbf{u} - \mathbf{u}_\mathrm{frame} = \mathbf{u} - {\vec{\Omega}}_f \times \vec{x}\, , </math> </td> </tr> </table> </div> is the velocity field as viewed from the frame of reference that is rotating at constant angular frequency, <math>~\Omega_0</math>. (Note that we can retrieve the inertial-frame Euler equation and inertial-frame variables by setting <math>~\Omega_0 = 0</math> at any point in the subsequent derivations.) Because the velocity field introduced by frame rotation is divergence free, that is, because, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> ~\nabla\cdot\mathbf{u}_\mathrm{frame} = \nabla\cdot [{\vec{\Omega}}_f \times \vec{x}] = \nabla\cdot [ {\hat\mathbf{k}} \Omega_0\times (\mathbf{\hat{e}}_R R + \mathbf{\hat{k}}z) ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> ~\nabla\cdot(\hat\mathbf{e}_\varphi R\Omega_0) = \frac{1}{R} \frac{\partial}{\partial\varphi} \biggl(R\Omega_0 \biggr) = 0 \, , </math> </td> </tr> </table> </div> the relevant (rotating-frame) continuity equation is identical in form to its inertial-frame counterpart, specifically, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \frac{d\rho}{dt} + \rho\nabla\cdot\mathbf{u'} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> ~0 \, . </math> </td> </tr> </table> </div> We can transform the above rotating-frame Euler equation to a momentum conservation equation by multiplying the equation through by <math>~\rho</math> and using the continuity equation to combine and simplify the left-hand-side, obtaining, <div align="center"> <math>\frac{d(\rho\mathbf{u'})}{dt} + (\rho\mathbf{u' })\nabla\cdot \mathbf{u'} = - \nabla P - \rho \nabla \Phi - 2\rho {\vec{\Omega}}_f \times {\mathbf{u'}} - \rho {\vec{\Omega}}_f \times ({\vec{\Omega}}_f \times \vec{x})</math> , </div> In order to convert this general-purpose vector equation into the specific set of scalar component equations that embody the desired elements of our hybrid scheme, we need to: * Step 1: Choose the unit-vector basis set associated with the momentum components that we want to track — <math>(\mathbf{\hat{i}}, \mathbf{\hat{j}}, \mathbf\hat{k})</math> if tracking linear momentum, or, <math>(\mathbf\hat{e}_R, \mathbf\hat{e}_\varphi, \mathbf\hat{k})</math> if tracking radial and angular momentum — and break the vector equation into these specified components; * Step 2: In all relevant equations, replace the scalar components of the "rotating-frame" momentum density with the scalar components of the "intertial-frame" momentum density, drawing each component relation from the vector transformation, <math>\rho\mathbf{u'} = \rho\mathbf{u} - \rho {\vec{\Omega}}_f \times \vec{x}</math>; * Step 3: Write all of the spatial operators in terms of spatial derivatives that are associated with the unit-vector basis set of the desired computational mesh. ===Focus on Tracking Linear Momentum === ====Step 1==== If the focus is on tracking linear momentum components, then we need to break the vector momentum equation into its <math>(\mathbf\hat{i}, \mathbf\hat{j}, \mathbf\hat{k})</math> components. This is done by, in turn, "dotting" each unit vector into the vector equation. It is straightforward once we appreciate that the orientation of these Cartesian unit vectors does not vary in space and that, within the context of the rotating frame on which they are defined, these unit vectors do not vary in time. Hence, the first term in the vector equation — the ''material'' time derivative — can be written as, <div align="center"> <math> \frac{d(\rho\mathbf{u'})}{dt} = \frac{d}{dt} [ \mathbf{\hat{i}} (\rho u'_x) + \mathbf{\hat{j}} (\rho u'_y) + \mathbf{\hat{k}} (\rho u'_z) ] = \mathbf{\hat{i}} \frac{d(\rho u'_x)}{dt} + \mathbf{\hat{j}} \frac{d(\rho u'_y)}{dt} + \mathbf{\hat{k}} \frac{d(\rho u'_z)}{dt} \, , </math> </div> and the process of "dotting" each unit vector into the equation leads to the following set of scalar momentum-component equations: <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="center"> <math>\mathbf{\hat{i}}:</math> </td> <td align="right"> <math> \frac{d(\rho u'_x)}{dt} + (\rho u'_x)\nabla\cdot \mathbf{u'} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{i}}\cdot\nabla P - \rho \mathbf{\hat{i}}\cdot\nabla \Phi + 2\rho \mathbf{\hat{i}}\cdot[\mathbf{\hat{i}}\Omega_0 u'_y - \mathbf{\hat{j}}\Omega_0 u'_x] + \rho \mathbf{\hat{i}}\cdot[ \mathbf{\hat{i}}\Omega_0^2 x + \mathbf{\hat{j}}\Omega_0^2 y] \, </math> </td> </tr> <tr> <td align="center"> </td> <td align="right"> <math> \Rightarrow ~~~~~ \frac{\partial (\rho u'_x)}{\partial t} + \nabla\cdot [(\rho u'_x)\mathbf{u'}] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{i}}\cdot\nabla P - \rho \mathbf{\hat{i}}\cdot\nabla \Phi + 2\rho \Omega_0 u'_y + \rho \Omega_0^2 x \, ; </math> </td> </tr> <tr> <td align="center"> <math>\mathbf{\hat{j}}:</math> </td> <td align="right"> <math> \frac{d(\rho u'_y)}{dt} + (\rho u'_y)\nabla\cdot \mathbf{u'} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{j}}\cdot\nabla P - \rho \mathbf{\hat{j}}\cdot\nabla \Phi + 2\rho \mathbf{\hat{j}}\cdot[\mathbf{\hat{i}}\Omega_0 u'_y - \mathbf{\hat{j}}\Omega_0 u'_x] + \rho \mathbf{\hat{j}}\cdot[ \mathbf{\hat{i}}\Omega_0^2 x + \mathbf{\hat{j}}\Omega_0^2 y] \, </math> </td> </tr> <tr> <td align="center"> </td> <td align="right"> <math> \Rightarrow ~~~~~ \frac{\partial (\rho u'_y)}{\partial t} + \nabla\cdot [(\rho u'_y) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{j}}\cdot\nabla P - \rho \mathbf{\hat{j}}\cdot\nabla \Phi - 2\rho \Omega_0 u'_x + \rho \Omega_0^2 y \, ; </math> </td> </tr> <tr> <td align="center"> <math>\mathbf{\hat{k}}:</math> </td> <td align="right"> <math> \frac{d(\rho u'_z)}{dt} + (\rho u'_z)\nabla\cdot \mathbf{u'} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{k}}\cdot\nabla P - \rho \mathbf{\hat{k}}\cdot\nabla \Phi + 2\rho \mathbf{\hat{k}}\cdot[\mathbf{\hat{i}}\Omega_0 u'_y - \mathbf{\hat{j}}\Omega_0 u'_x] + \rho \mathbf{\hat{k}}\cdot[ \mathbf{\hat{i}}\Omega_0^2 x + \mathbf{\hat{j}}\Omega_0^2 y] \, </math> </td> </tr> <tr> <td align="center"> </td> <td align="right"> <math> \Rightarrow ~~~~~ \frac{\partial (\rho u'_z)}{\partial t} + \nabla\cdot[(\rho u'_z) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{k}}\cdot\nabla P - \rho \mathbf{\hat{k}}\cdot\nabla \Phi \, . </math> </td> </tr> </table> </div> In deriving these expressions, we also (a) have recognized from the start that, when expressed in Cartesian coordinates, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> ~{\vec{\Omega}}_f \times \vec{x} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> {\hat\mathbf{k}} \Omega_0\times (\mathbf{\hat{i}}x + \mathbf{\hat{j}}y + \mathbf{\hat{k}}z) = - \mathbf{\hat{i}}\Omega_0 y + \mathbf{\hat{j}}\Omega_0 x \, , </math> </td> </tr> <tr> <td align="right"> <math> {\vec{\Omega}}_f \times ({\vec{\Omega}}_f \times \vec{x}) </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> \hat{\mathbf{k}} \Omega_0 \times ( - \mathbf{\hat{i}}\Omega_0 y + \mathbf{\hat{j}}\Omega_0 x ) = - \mathbf{\hat{i}}\Omega_0^2 x - \mathbf{\hat{j}}\Omega_0^2 y \, , </math> </td> </tr> <tr> <td align="right"> <math> {\vec{\Omega}}_f \times {\mathbf{u'}} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> {\hat\mathbf{k}} \Omega_0\times (\mathbf{\hat{i}}u'_x + \mathbf{\hat{j}}u'_y + \mathbf{\hat{k}}u'_z) = - \mathbf{\hat{i}}\Omega_0 u'_y + \mathbf{\hat{j}}\Omega_0 u'_x\, , </math> </td> </tr> </table> </div> and (b) have used the familiar operator mapping, <div align="center"> <math>\frac{d}{dt} \rightarrow \frac{\partial}{\partial t} + \mathbf{u'}\cdot \nabla \, ,</math> </div> to shift from the total (Lagrangian) time derivative to the partial (Eulerian) time derivative, which is usually the more desirable representation for computational simulations. ====Step 2==== Next, throughout this set of scalar equations, we replace each component of <math>~\rho\mathbf{u'}</math> with the corresponding component of <math>~(\rho\mathbf{u} - \rho {\vec{\Omega}}_f \times \vec{x})</math>, that is, we perform the following mappings: <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> ~\rho u'_x </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> ~\rho (u_x +\Omega_0 y) \, , </math> </td> </tr> <tr> <td align="right"> <math> ~\rho u'_y </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> ~\rho (u_y - \Omega_0 x) \, , </math> </td> </tr> <tr> <td align="right"> <math> ~\rho u'_z </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> ~\rho u_z \, . </math> </td> </tr> </table> </div> As a result, the first of the three "hybrid" momentum-component equations becomes, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \frac{\partial [ \rho (u_x +\Omega_0 y) ] }{\partial t} + \nabla\cdot \{ [\rho (u_x +\Omega_0 y) ]\mathbf{u'}\} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{i}}\cdot\nabla P - \rho \mathbf{\hat{i}}\cdot\nabla \Phi + 2\rho \Omega_0 (u_y - \Omega_0 x) + \rho \Omega_0^2 x </math> </td> </tr> </table> </div> <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \Rightarrow ~~~~~ \frac{\partial (\rho u_x) }{\partial t} + \nabla\cdot [(\rho u_x) \mathbf{u'} ] + \Omega_0 y\biggl[ \frac{\partial \rho }{\partial t} + \nabla\cdot ( \rho \mathbf{u'} ) \biggr] + ( \rho \mathbf{u'} )\cdot\nabla (\Omega_0 y) </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{i}}\cdot\nabla P - \rho \mathbf{\hat{i}}\cdot\nabla \Phi + 2\rho \Omega_0 u_y - \rho \Omega_0^2 x \, . </math> </td> </tr> </table> </div> Referencing the continuity equation, the middle bracketed term on the left-hand side can be set to zero; and the last term on the left-hand side, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> ( \rho \mathbf{u'} )\cdot\nabla (\Omega_0 y) </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> \rho \Omega_0 u'_y = \rho\Omega_0(u_y - \Omega_0 x) \, , </math> </td> </tr> </table> </div> can be combined with terms on the right-hand side — cutting the Coriolis term in half and canceling the centrifugal acceleration term — to give, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \frac{\partial (\rho u_x) }{\partial t} + \nabla\cdot [(\rho u_x) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{i}}\cdot\nabla P - \rho \mathbf{\hat{i}}\cdot\nabla \Phi + \rho \Omega_0 u_y \, . </math> </td> </tr> </table> </div> Following a similar sequence of steps, the other two "hybrid" momentum conservation relations become, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \frac{\partial (\rho u_y) }{\partial t} + \nabla\cdot [(\rho u_y) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{j}}\cdot\nabla P - \rho \mathbf{\hat{j}}\cdot\nabla \Phi - \rho \Omega_0 u_x \, , </math> </td> </tr> <tr> <td align="right"> <math> \frac{\partial (\rho u_z) }{\partial t} + \nabla\cdot [(\rho u_z) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{k}}\cdot\nabla P - \rho \mathbf{\hat{k}}\cdot\nabla \Phi \, . </math> </td> </tr> </table> </div> ====Step 3==== '''<font color="red">Cartesian Grid:</font>''' Assuming the numerical simulation will be conducted on a Cartesian coordinate mesh, the divergence (advection) term on the left-hand-side should be evaluated by breaking the transport velocity into its three Cartesian components, <div align="center"> <math>~\mathbf{u'} = (u'_x, u'_y, u'_z) \, ,</math> </div> and, on the right-hand-side, the projection of the spatial operators should be written in the familiar form, <div align="center"> <math>\mathbf{\hat{i}}\cdot\nabla \rightarrow \frac{\partial}{\partial x} \, ,</math> <math>\mathbf{\hat{j}}\cdot\nabla \rightarrow \frac{\partial}{\partial y} \, ,</math> <math>\mathbf{\hat{k}}\cdot\nabla \rightarrow \frac{\partial}{\partial z} \, .</math> </div> In summary, then, the relevant set of momentum conservation equations is, <div align="center"> <table border="1" cellpadding="5" width="80%"> <tr> <td align="center" bgcolor="lightgreen"> '''Cartesian Components of the Inertial-Frame Momentum'''<br> <font size="-1">advected across a</font><br> '''Rotating, Cartesian Coordinate Mesh''' </td> </tr> <tr><td align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \frac{\partial (\rho u_x) }{\partial t} + \nabla\cdot [(\rho u_x) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \frac{\partial}{\partial x} P - \rho \frac{\partial}{\partial x} \Phi + \rho \Omega_0 u_y </math> </td> </tr> <tr> <td align="right"> <math> \frac{\partial (\rho u_y) }{\partial t} + \nabla\cdot [(\rho u_y) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \frac{\partial}{\partial y} P - \rho \frac{\partial}{\partial y} \Phi - \rho \Omega_0 u_x </math> </td> </tr> <tr> <td align="right"> <math> \frac{\partial (\rho u_z) }{\partial t} + \nabla\cdot [(\rho u_z) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \frac{\partial}{\partial z} P - \rho \frac{\partial}{\partial z}\Phi </math> </td> </tr> </table> </td></tr> <tr> <td align="left"> This is the set of equations that has served as the foundation of the ''Cartesian'' simulations reported in Byerly, Adelstein-Lelbach, Tohline, & Marcello (2014). </td> </tr> </table> </div> '''<font color="red">Cylindrical Grid:</font>''' If, instead, the numerical simulation is to be conducted on a cylindrical coordinate mesh, the spatial operators on both sides of the component momentum equations should be broken down into their cylindrical-coordinate components. In concert with this, the divergence (advection) term on the left-hand-side should be evaluated by breaking the transport velocity into its three cylindrical components, <div align="center"> <math>~\mathbf{u'} = (u'_R, u'_\varphi, u'_z) \, .</math> </div> Furthermore, recognizing that, when written in cylindrical coordinates, the gradient operator is, <div align="center"> <math> \nabla = \mathbf{\hat{e}}_R \frac{\partial}{\partial R} + \mathbf{\hat{e}}_\varphi \frac{1}{R} \frac{\partial}{\partial \varphi} +\mathbf{\hat{e}}_z \frac{\partial}{\partial z} \, , </math> </div> and that the unit vectors in cylindrical coordinates can be related to their Cartesian counterparts via the mappings, <div align="center"> <math>\mathbf{\hat{e}}_R = \mathbf{\hat{i}} \cos\varphi + \mathbf{\hat{j}} \sin\varphi \, ,</math> <math>\mathbf{\hat{e}}_\varphi = \mathbf{\hat{j}} \cos\varphi - \mathbf{\hat{i}} \sin\varphi \, ,</math> <math>\mathbf{\hat{e}}_z = \mathbf{\hat{k}} \, ,</math><br> </div> the relevant projections of the gradient operator on the right-hand-sides of the governing equations should take the form, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \mathbf{\hat{i}}\cdot\nabla </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> \biggl[ \cos\varphi \frac{\partial}{\partial R} - \frac{\sin\varphi}{R} \frac{\partial}{\partial \varphi}\biggr] \, , </math> </td> </tr> <tr> <td align="right"> <math> \mathbf{\hat{j}}\cdot\nabla </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> \biggl[ \sin\varphi \frac{\partial}{\partial R} + \frac{\cos\varphi}{R} \frac{\partial}{\partial \varphi}\biggr] \, , </math> </td> </tr> <tr> <td align="right"> <math> \mathbf{\hat{k}}\cdot\nabla </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> \frac{\partial}{\partial z} \, . </math> </td> </tr> </table> </div> In summary, then, the relevant set of momentum conservation equations is, <div align="center"> <table border="1" cellpadding="5"> <tr> <td align="center" bgcolor="lightgreen"> '''Cartesian Components of the Inertial-Frame Momentum'''<br> <font size="-1">advected across a</font><br> '''Rotating, Cylindrical Coordinate Mesh''' </td> </tr> <tr><td align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \frac{\partial (\rho u_x) }{\partial t} + \nabla\cdot [(\rho u_x) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \biggl[ \cos\varphi \frac{\partial}{\partial R} - \frac{\sin\varphi}{R} \frac{\partial}{\partial \varphi}\biggr] P - \rho \biggl[ \cos\varphi \frac{\partial}{\partial R} - \frac{\sin\varphi}{R} \frac{\partial}{\partial \varphi}\biggr] \Phi + \rho \Omega_0 u_y </math> </td> </tr> <tr> <td align="right"> <math> \frac{\partial (\rho u_y) }{\partial t} + \nabla\cdot [(\rho u_y) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \biggl[ \sin\varphi \frac{\partial}{\partial R} + \frac{\cos\varphi}{R} \frac{\partial}{\partial \varphi}\biggr] P - \rho \biggl[ \sin\varphi \frac{\partial}{\partial R} + \frac{\cos\varphi}{R} \frac{\partial}{\partial \varphi}\biggr] \Phi - \rho \Omega_0 u_x </math> </td> </tr> <tr> <td align="right"> <math> \frac{\partial (\rho u_z) }{\partial t} + \nabla\cdot [(\rho u_z) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \frac{\partial}{\partial z} P - \rho \frac{\partial}{\partial z}\Phi </math> </td> </tr> </table> </td></tr> </table> </div> ===Focus on Tracking Angular Momentum === ====Step 1==== If the focus is on tracking angular momentum, then we need to break the vector momentum equation into its <math>(\mathbf\hat{e}_R, \mathbf\hat{e}_\varphi, \mathbf\hat{k})</math> components. As before, this is done by "dotting" each unit vector into the vector equation. This is less straightforward than in the Cartesian case because the orientation of both the <math>\mathbf\hat{e}_R</math> and <math>\mathbf\hat{e}_\varphi</math> unit vectors vary in space. As a result, the first term in the vector equation — the ''material'' time derivative — generates a couple of extra terms, viz., <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \frac{d(\rho\mathbf{u'})}{dt} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> \frac{d}{dt} [ \mathbf{\hat{e}}_R (\rho u'_R) + \mathbf{\hat{e}}_\varphi (\rho u'_\varphi) + \mathbf{\hat{k}} (\rho u'_z) ] </math> </td> </tr> <tr> <td align="right"> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> \mathbf{\hat{e}}_R \frac{d(\rho u'_R)}{dt} + \mathbf{\hat{e}}_\varphi \frac{d(\rho u'_\varphi)}{dt} + \mathbf{\hat{k}} \frac{d(\rho u'_z)}{dt} + (\rho u'_R) \frac{d}{dt}\mathbf{\hat{e}}_R + (\rho u'_\varphi) \frac{d}{dt}\mathbf{\hat{e}}_\varphi \, , </math> </td> </tr> <tr> <td align="right"> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> \mathbf{\hat{e}}_R \frac{d(\rho u'_R)}{dt} + \mathbf{\hat{e}}_\varphi \frac{d(\rho u'_\varphi)}{dt} + \mathbf{\hat{k}} \frac{d(\rho u'_z)}{dt} + \mathbf{\hat{e}}_\varphi(\rho u'_R) \frac{u'_\varphi}{R} - \mathbf{\hat{e}}_R(\rho u'_\varphi) \frac{u'_\varphi}{R} \, . </math> </td> </tr> </table> </div> We also recognize that, when expressed in cylindrical coordinates, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> ~{\vec{\Omega}}_f \times \vec{x} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> {\hat\mathbf{k}} \Omega_0\times (\mathbf{\hat{e}}_R R + \mathbf{\hat{k}}z) = \mathbf{\hat{e}}_\varphi \Omega_0 R \, , </math> </td> </tr> <tr> <td align="right"> <math> {\vec{\Omega}}_f \times ({\vec{\Omega}}_f \times \vec{x}) </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> \hat{\mathbf{k}} \Omega_0 \times ( \mathbf{\hat{e}}_\varphi \Omega_0 R ) = - \mathbf{\hat{e}}_R \Omega_0^2 R \, , </math> </td> </tr> <tr> <td align="right"> <math> {\vec{\Omega}}_f \times {\mathbf{u'}} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> {\hat\mathbf{k}} \Omega_0\times (\mathbf{\hat{e}}_R u'_R + \mathbf{\hat{e}}_\varphi u'_\varphi + \mathbf{\hat{k}}u'_z) = \mathbf{\hat{e}}_\varphi \Omega_0 u'_R - \mathbf{\hat{e}}_R \Omega_0 u'_\varphi \, . </math> </td> </tr> </table> </div> Hence, the process of "dotting" each unit vector into the equation leads to the following set of scalar momentum-component equations: <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="center"> <math>\mathbf{\hat{e}}_R:</math> </td> <td align="right"> <math> \frac{d(\rho u'_R)}{dt} + (\rho u'_R)\nabla\cdot \mathbf{u'} - (\rho u'_\varphi) \frac{u'_\varphi}{R} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{e}}_R \cdot\nabla P - \rho \mathbf{\hat{e}}_R \cdot\nabla \Phi - 2\rho \mathbf{\hat{e}}_R \cdot [ \mathbf{\hat{e}}_\varphi \Omega_0 u'_R - \mathbf{\hat{e}}_R \Omega_0 u'_\varphi ] + \rho \mathbf{\hat{e}}_R\cdot (\mathbf{\hat{e}}_R \Omega_0^2 R) \, </math> </td> </tr> <tr> <td align="center"> </td> <td align="right"> <math> \Rightarrow ~~~~~ \frac{\partial (\rho u'_R)}{\partial t} + \nabla\cdot [(\rho u'_R)\mathbf{u'}] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{e}}_R \cdot\nabla P - \rho \mathbf{\hat{e}}_R \cdot\nabla \Phi + \frac{\rho}{R} \biggl[ (u'_\varphi)^2 + 2R\Omega_0 u'_\varphi + (\Omega_0 R)^2 \biggr] \, </math> </td> </tr> <tr> <td align="center"> </td> <td align="right"> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{e}}_R \cdot\nabla P - \rho \mathbf{\hat{e}}_R \cdot\nabla \Phi + \frac{\rho}{R} (u'_\varphi + R\Omega_0)^2 \, ; </math> </td> </tr> <tr> <td align="center"> <math>\mathbf{\hat{e}}_\varphi:</math> </td> <td align="right"> <math> \frac{d(\rho u'_\varphi)}{dt} + (\rho u'_\varphi)\nabla\cdot \mathbf{u'} + (\rho u'_R) \frac{u'_\varphi}{R} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{e}}_\varphi \cdot\nabla P - \rho \mathbf{\hat{e}}_\varphi \cdot\nabla \Phi - 2\rho \mathbf{\hat{e}}_\varphi \cdot [ \mathbf{\hat{e}}_\varphi \Omega_0 u'_R - \mathbf{\hat{e}}_R \Omega_0 u'_\varphi ] + \rho \mathbf{\hat{e}}_\varphi\cdot (\mathbf{\hat{e}}_R \Omega_0^2 R) \, </math> </td> </tr> <tr> <td align="center"> (mult. thru by R) </td> <td align="right"> <math> \Rightarrow ~~~~~ \frac{d(\rho R u'_\varphi)}{dt} + (\rho R u'_\varphi)\nabla\cdot \mathbf{u'} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{e}}_\varphi \cdot R\nabla P - \rho \mathbf{\hat{e}}_\varphi \cdot R \nabla \Phi - 2\rho R \Omega_0 u'_R \, </math> </td> </tr> <tr> <td align="center"> </td> <td align="right"> <math> \Rightarrow ~~~~~ \frac{\partial (\rho R u'_\varphi)}{\partial t} + \nabla\cdot [(\rho R u'_\varphi) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{e}}_\varphi \cdot R\nabla P - \rho \mathbf{\hat{e}}_\varphi \cdot R \nabla \Phi - 2\rho R \Omega_0 u'_R \, ; </math> </td> </tr> <tr> <td align="center"> <math>\mathbf{\hat{k}}:</math> </td> <td align="right"> <math> \frac{d(\rho u'_z)}{dt} + (\rho u'_z)\nabla\cdot \mathbf{u'} </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{k}} \cdot\nabla P - \rho \mathbf{\hat{k}} \cdot\nabla \Phi - 2\rho \mathbf{\hat{k}} \cdot [ \mathbf{\hat{e}}_\varphi \Omega_0 u'_R - \mathbf{\hat{e}}_R \Omega_0 u'_\varphi ] + \rho \mathbf{\hat{k}}\cdot (\mathbf{\hat{e}}_R \Omega_0^2 R) \, </math> </td> </tr> <tr> <td align="center"> </td> <td align="right"> <math> \Rightarrow ~~~~~ \frac{\partial (\rho u'_z)}{\partial t} + \nabla\cdot[(\rho u'_z) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{k}}\cdot\nabla P - \rho \mathbf{\hat{k}}\cdot\nabla \Phi \, . </math> </td> </tr> </table> </div> ---- '''<font color="lightblue">ASIDE:</font>''' <span id="NW78">If we pause our discussion here and map this set of component equations</span> onto a (rotating) cylindrical coordinate mesh — that is, if on the right-hand-sides we implement the straightforward operator projections, <div align="center"> <math>\mathbf{\hat{e}}_R \cdot\nabla \rightarrow \frac{\partial}{\partial R} \, ,</math> <math>\mathbf{\hat{e}}_\varphi \cdot\nabla \rightarrow \frac{1}{R} \frac{\partial}{\partial \varphi} \, ,</math> <math>\mathbf{\hat{k}}\cdot\nabla \rightarrow \frac{\partial}{\partial z} \, ,</math> </div> we obtain a formulation that is familiar to the astrophysics community. For example, as the following table of equations illustrates, it is the component set that has been spelled out in equations (5) - (7) of [http://adsabs.harvard.edu/abs/1978ApJ...224..497N Norman & Wilson (1978)] and equations (11), (12), & (3) of [http://adsabs.harvard.edu/abs/1997ApJ...490..311N New & Tohline (1997)]. <div align="center"> <table border="1" cellpadding="5" width="80%"> <tr> <td align="center" bgcolor="lightgreen"> '''Cylindrical Components of the Rotating-Frame Momentum'''<br> <font size="-1">advected across a</font><br> '''Rotating, Cylindrical Coordinate Mesh''' </td> </tr> <tr><td align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \frac{\partial (\rho u'_R)}{\partial t} + \nabla\cdot [(\rho u'_R)\mathbf{u'}] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \frac{\partial}{\partial R} P - \rho \frac{\partial}{\partial R}\Phi + \frac{\rho}{R} \biggl[ (u'_\varphi)^2 + 2R\Omega_0 u'_\varphi + (\Omega_0 R)^2 \biggr] \, </math> </td> </tr> <tr> <td align="right"> <math> \frac{\partial (\rho R u'_\varphi)}{\partial t} + \nabla\cdot [(\rho R u'_\varphi) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \frac{\partial}{\partial\varphi} P - \rho \frac{\partial}{\partial\varphi}\Phi - 2\rho R \Omega_0 u'_R </math> </td> </tr> <tr> <td align="right"> <math> \frac{\partial (\rho u'_z) }{\partial t} + \nabla\cdot [(\rho u'_z) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \frac{\partial}{\partial z} P - \rho \frac{\partial}{\partial z}\Phi </math> </td> </tr> </table> </td></tr> <tr> <td align="left"> [[File:NormanWilson78C.png|650px|center|Norman & Wilson (1978)]] Note: For complete correspondence, set <math>(\gamma-1)E \rightarrow P</math> in all three component equations. </td> </tr> <tr> <td align="left"> [[File:NewTohline97B.png|650px|center|New & Tohline (1997)]] Note: When comparing this set of equations to the set presented by Norman & Wilson (1978), the definitions of the variables, <math>~\mathcal{S}</math> and <math>~\mathcal{T}</math>, must be swapped. </td> </tr> </table> </div> [<font color="red">Comment by J. E. Tohline (April 7, 2014)</font>] This is the set of equations that my research group has been using to simulate a wide variety of astrophysical fluid flows over the past twenty years. This is no longer our method of choice, however. A numerical algorithm based on the hybrid scheme, as summarized below, is far preferable to an algorithm that is based on this more familiar, traditional set of equations for several reasons: * In the hybrid scheme, the Coriolis term disappears from the source term, so it is much easier to design and implement a computational algorithm that conserves angular momentum conservation. * Although the hybrid scheme advects ''inertial-frame'' angular momentum, it retains all of the advantages associated with using a ''rotating'' frame of reference; for example, numerical diffusion is less severe and, in general, the Courant-limited time-step is larger than would be the case if you were forced to transport fluid in the inertial frame of reference. * The hybrid scheme facilitates transport (and conservation) of angular momentum across a (rotating) ''Cartesian'' mesh. This facilitates the use of adaptive-mesh refinement (AMR) techniques and simplifies load-balancing on distributed memory, high-performance computers. ---- ====Step 2==== Next, throughout this set of scalar equations, we replace each component of <math>~\rho\mathbf{u'}</math> with the corresponding component of <math>~(\rho\mathbf{u} - \rho {\vec{\Omega}}_f \times \vec{x})</math><math>= (\rho\mathbf{u} -\mathbf{\hat{e}}_\varphi \rho R\Omega_0)</math>, that is, we perform the following mappings: <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> ~\rho u'_R </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> ~\rho u_R \, , </math> </td> <tr> <td align="right"> <math> ~\rho u'_\varphi </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> ~\rho (u_\varphi - R\Omega_0 ) \, , </math> </td> </tr> <tr> <td align="right"> <math> ~\rho u'_z </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> ~\rho u_z \, . </math> </td> </tr> </table> </div> As a result, the first and third of the three "hybrid" momentum-component equations become, respectively, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="center"> <math>\mathbf{\hat{e}}_R:</math> </td> <td align="right"> <math> \frac{\partial (\rho u_R)}{\partial t} + \nabla\cdot [(\rho u_R)\mathbf{u'}] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{e}}_R \cdot\nabla P - \rho \mathbf{\hat{e}}_R \cdot\nabla \Phi + \frac{\rho u^2_\varphi}{R} \, ; </math> </td> </tr> <tr> <td align="center"> <math>\mathbf{\hat{k}}:</math> </td> <td align="right"> <math> \frac{\partial (\rho u_z) }{\partial t} + \nabla\cdot [(\rho u_z) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{k}}\cdot\nabla P - \rho \mathbf{\hat{k}}\cdot\nabla \Phi \, . </math> </td> </tr> </table> </div> The second of the three "hybrid" momentum component equations — the one governing conservation of angular momentum — becomes, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \frac{\partial [\rho R (u_\varphi - R\Omega_0 ) ]}{\partial t} + \nabla\cdot \{ [\rho R (u_\varphi - R\Omega_0 ) ] \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{e}}_\varphi \cdot R\nabla P - \rho \mathbf{\hat{e}}_\varphi \cdot R \nabla \Phi - 2\rho R \Omega_0 u_R \, </math> </td> </tr> </table> </div> <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \Rightarrow ~~~~~ \frac{\partial (\rho R u_\varphi) }{\partial t} + \nabla\cdot [(\rho R u_\varphi) \mathbf{u'} ] - R^2 \Omega_0 \biggl[ \frac{\partial \rho }{\partial t} + \nabla\cdot ( \rho \mathbf{u'} ) \biggr] - ( \rho \mathbf{u'} )\cdot\nabla (R^2 \Omega_0) </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{e}}_\varphi \cdot R\nabla P - \rho \mathbf{\hat{e}}_\varphi \cdot R \nabla \Phi - 2\rho R \Omega_0 u_R \, . </math> </td> </tr> </table> </div> Referencing the continuity equation, as before, the middle bracketed term on the left-hand side can be set to zero; and the last term on the left-hand side, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> ( \rho \mathbf{u'} )\cdot\nabla (R^2\Omega_0) </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> 2\rho R \Omega_0 u_R \, , </math> </td> </tr> </table> </div> matches and, hence, exactly cancels the Coriolis term on the right-hand side to give, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="center"> <math>\mathbf{\hat{e}}_\varphi:</math> </td> <td align="right"> <math> \frac{\partial (\rho R u_\varphi) }{\partial t} + \nabla\cdot [(\rho R u_\varphi) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \mathbf{\hat{e}}_\varphi \cdot R\nabla P - \rho \mathbf{\hat{e}}_\varphi \cdot R \nabla \Phi \, . </math> </td> </tr> </table> </div> ====Step 3==== '''<font color="red">Cylindrical Grid:</font>''' If the numerical simulation is to be conducted on a cylindrical coordinate mesh, the spatial operators on both sides of the component momentum equations should be broken down into their cylindrical-coordinate components. That is, as in the above "<font color="lightblue">ASIDE</font>," the appropriate operator projections on the right-hand-sides of the equations are, <div align="center"> <math>\mathbf{\hat{e}}_R \cdot\nabla \rightarrow \frac{\partial}{\partial R} \, ,</math> <math>\mathbf{\hat{e}}_\varphi \cdot\nabla \rightarrow \frac{1}{R} \frac{\partial}{\partial \varphi} \, ,</math> <math>\mathbf{\hat{k}}\cdot\nabla \rightarrow \frac{\partial}{\partial z} \, .</math> </div> In concert with this, the divergence (advection) term on the left-hand-side should be evaluated by breaking the transport velocity into its three cylindrical components, <div align="center"> <math>~\mathbf{u'} = (u'_R, u'_\varphi, u'_z) \, .</math> </div> The relevant set of momentum conservation equations is, therefore, <div align="center"> <table border="1" cellpadding="5"> <tr> <td align="center" bgcolor="lightgreen"> '''Cylindrical Components of the Inertial-Frame Momentum'''<br> <font size="-1">advected across a</font><br> '''Rotating, Cylindrical Coordinate Mesh''' </td> </tr> <tr><td align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \frac{\partial (\rho u_R)}{\partial t} + \nabla\cdot [(\rho u_R)\mathbf{u'}] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \frac{\partial}{\partial R} P - \rho \frac{\partial}{\partial R} \Phi + \frac{\rho u^2_\varphi}{R} </math> </td> </tr> <tr> <td align="right"> <math> \frac{\partial (\rho R u_\varphi) }{\partial t} + \nabla\cdot [(\rho R u_\varphi) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \frac{\partial}{\partial \varphi} P - \rho \frac{\partial}{\partial \varphi} \Phi </math> </td> </tr> <tr> <td align="right"> <math> \frac{\partial (\rho u_z) }{\partial t} + \nabla\cdot [(\rho u_z) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \frac{\partial}{\partial z} P - \rho \frac{\partial}{\partial z}\Phi </math> </td> </tr> </table> </td></tr> </table> </div> '''<font color="red">Cartesian Grid:</font>''' If, instead, the numerical simulation is to be conducted on a Cartesian coordinate mesh, the spatial operators on both sides of the component momentum equations should be broken down into their Cartesian-coordinate components. In concert with this, the divergence (advection) term on the left-hand-side should be evaluated by breaking the transport velocity into its three Cartesian components, <div align="center"> <math>~\mathbf{u'} = (u'_x, u'_y, u'_z) \, .</math> </div> Furthermore, recognizing that, when written in Cartesian coordinates, the gradient operator is, <div align="center"> <math> \nabla = \mathbf{\hat{i}} \frac{\partial}{\partial x} + \mathbf{\hat{j}} \frac{\partial}{\partial y} +\mathbf{\hat{k}} \frac{\partial}{\partial z} \, , </math> </div> and that the unit vectors in Cartesian coordinates can be related to their cylindrical counterparts via the mappings, <div align="center"> <math>\mathbf{\hat{i}} = \mathbf{\hat{e}}_R \cos\varphi - \mathbf{\hat{e}}_\varphi \sin\varphi \, ,</math> <math>\mathbf{\hat{j}} = \mathbf{\hat{e}}_R \sin\varphi + \mathbf{\hat{e}}_\varphi \cos\varphi \, ,</math> <math>\mathbf{\hat{k}} = \mathbf{\hat{k}} \, ,</math><br> </div> the relevant projections of the gradient operator on the right-hand-sides of the governing equations should take the form, <div align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \mathbf{\hat{e}}_R \cdot\nabla </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> \biggl[ \cos\varphi \frac{\partial}{\partial x} +\sin\varphi \frac{\partial}{\partial y} \biggr] = \biggl[ \frac{x}{(x^2+y^2)^{1/2}} \frac{\partial}{\partial x} +\frac{y}{(x^2+y^2)^{1/2}} \frac{\partial}{\partial y} \biggr] \, , </math> </td> </tr> <tr> <td align="right"> <math> R\mathbf{\hat{e}}_\varphi \cdot\nabla </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> \biggl[ - R\sin\varphi \frac{\partial}{\partial x} +R\cos\varphi \frac{\partial}{\partial y} \biggr] = \biggl[ - y \frac{\partial}{\partial x} +x \frac{\partial}{\partial y} \biggr] \, , </math> </td> </tr> <tr> <td align="right"> <math> \mathbf{\hat{k}}\cdot\nabla </math> </td> <td align="center"> <math>~\rightarrow~</math> </td> <td align="left"> <math> \frac{\partial}{\partial z} \, . </math> </td> </tr> </table> </div> In summary, then, the relevant set of momentum conservation equations is, <div align="center"> <table border="1" cellpadding="5"> <tr> <td align="center" bgcolor="lightgreen"> '''Cylindrical Components of the Inertial-Frame Momentum'''<br> <font size="-1">advected across a</font><br> '''Rotating, Cartesian Coordinate Mesh''' </td> </tr> <tr><td align="center"> <table border="0" cellpadding="3"> <tr> <td align="right"> <math> \frac{\partial (\rho u_R)}{\partial t} + \nabla\cdot [(\rho u_R)\mathbf{u'}] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \biggl[ \frac{x}{(x^2+y^2)^{1/2}} \frac{\partial}{\partial x} +\frac{y}{(x^2+y^2)^{1/2}} \frac{\partial}{\partial y} \biggr] P - \rho \biggl[ \frac{x}{(x^2+y^2)^{1/2}} \frac{\partial}{\partial x} +\frac{y}{(x^2+y^2)^{1/2}} \frac{\partial}{\partial y} \biggr] \Phi + \frac{\rho u^2_\varphi}{R} </math> </td> </tr> <tr> <td align="right"> <math> \frac{\partial (\rho R u_\varphi) }{\partial t} + \nabla\cdot [(\rho R u_\varphi) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> \biggl[ y \frac{\partial}{\partial x} - x \frac{\partial}{\partial y} \biggr] P + \rho \biggl[ y \frac{\partial}{\partial x} - x \frac{\partial}{\partial y} \biggr] \Phi </math> </td> </tr> <tr> <td align="right"> <math> \frac{\partial (\rho u_z) }{\partial t} + \nabla\cdot [(\rho u_z) \mathbf{u'} ] </math> </td> <td align="center"> <math>~=~</math> </td> <td align="left"> <math> - \frac{\partial}{\partial z} P - \rho \frac{\partial}{\partial z} \Phi </math> </td> </tr> </table> </td></tr> <tr> <td align="left"> This is the set of equations that has served as the foundation of the so-called ''Hybrid'' simulations reported in Byerly, Adelstein-Lelbach, Tohline, & Marcello (2014). </td> </tr> </table> </div> {{ SGFworkInProgress }}
Summary:
Please note that all contributions to JETohlineWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
JETohlineWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
Tiled Menu
Table of Contents
Old (VisTrails) Cover
Appendices
Variables & Parameters
Key Equations
Special Functions
Permissions
Formats
References
lsuPhys
Ramblings
Uploaded Images
Originals
Recent changes
Random page
Help about MediaWiki
Tools
What links here
Related changes
Special pages
Page information