Notes on Enthalpy

Evolution Equations

The compressible and low Mach number formulations of the governing equations both share the unapproximated continuity and momentum equations shown here (where p=p0+π).

(392)(ρXk)t=(ρXkU)+ρω˙k,Ut=UU1ρπρρ0ρger,

In the compressible formulation we complete the system with an energy equation as well as an equation of state; in the low Mach number formulation we can derive a constraint on the velocity by setting pEOS=p(ρ,h,Xk)=p0 and differentiating the equation of state along particle paths. In this case adding the energy equation would over-constrain the system, but its solution can help us in providing a diagnostic capability for the solution. We can write the energy equation in terms of internal energy, e, or enthalpy, h; these two equations are analytically equivalent.

(393)(ρh)t+(ρhU)=DpDt+ρHnuc(ρe)t+(ρeU)=pU+ρHnuc

In low Mach number combustion, Dp/Dt=0, which makes the enthalpy equation preferable to the internal energy equation because we don’t need to evaluate pU.

Derivation of Velocity Constraint

Differentiating the equation of state, written in the form, p=p(ρ,T,Xk), along particle paths, we can write

(394)DpDt=pρDρDt+pTDTDt+kpXkDXkDt

Then, by rearranging the terms, we get

(395)DρDt=ρU=1pρ(DpDtpTDTDtkpXkω˙k),

with pρ=p/ρ|Xk,T, pXk=p/Xk|T,ρ,(Xj,jk), and pT=p/T|ρ,Xk.

Using the Enthalpy Equation

Now writing h=h(p,T,Xk) and expanding Dh/Dt and using the enthalpy evolution equation:

(396)ρDhDt=ρ(hpDpDt+cpDTDt+khXkDXkDt)=DpDt+ρHnuc

we can express DT/Dt in terms of

(397)DTDt=1ρcp((1ρhp)DpDtkρξkω˙k+ρHnuc),

where cp=h/T|p,Xk is the specific heat at constant pressure, ξk=h/Xk|p,T, and hp=h/p|T,Xk.

We could then write,

(398)U=1ρpρ(DpDt+pTρcp((1ρhp)DpDtρkξkω˙k+ρHnuc)+kpXkω˙k)=1ρpρ(pTρcp(1ρhp)1)DpDt+1ρpρ(pTρcp(ρHnucρkξkω˙k)+kpXkω˙k).

When we derived this expression we explicitly retained the dependence of h on p, as shown by the presence of the hp term.

Then, replacing p by p0(r), Dp/Dt becomes Up0, and the divergence constraint can be written

(399)U+αUp0=1ρpρ(pTρcp(kρξkω˙k+ρHnuc)+kpXkω˙k)S~,

where we define

(400)α(ρ,T)((1ρhp)pTρcpρ2cppρ).

Using the Energy Equation

Now writing e=e(p,T,Xk) and expanding De/Dt and using the energy evolution equation:

(401)ρDeDt=ρ(epDpDt+eTDTDt+keXkDXkDt)=pU+ρHnuc

we can express DT/Dt in terms of

(402)DTDt=1ρeT(pU+ρHnucρepDpDtρkeXkω˙k)

where eT=e/T|p,Xk and ep=e/p|T,Xk. Then

(403)ρU=1pρ(DpDtpTρeT(pU+ρHnucρepDpDtρkeXkω˙k)kpXkω˙k),

which leads to

(404)(ρppTρeTpρ)U=1pρ((1+eppTeT)DpDtpTρeT(ρHnucρkeXkω˙k)kpXkω˙k),

Note that we can replace p by p0 in the coefficient on the l.h.s. as well as on the r.h.s.

Comparison of Constraints

If we set ω˙k=Hnuc=0 for simplicity, then the constraint as derived using h can be written

(405)U+((1ρhp)pTρcpρ2cppρ)Dp0Dt=0

and the constraint derived using e can be written

(406)U+(ρeT+ρeppTρ2eTpρ+ppT)Dp0Dt=0

We note that if we evaluate both constraints for p=ρRT, with h=cpT, e=cvT, cp=cv+R and γ=cp/cv, then both constraints reduce to

(407)U+1γpDp0Dt=0

Enthalpy vs Energy Equation

The full enthalpy equation, with no approximations, appears as:

(408)(ρh)t=(ρhU)+DpDt+ρHnuc

Here, h=e+p/ρ is the specific enthalpy, with e the specific internal energy. In the low Mach number formulation, we replace p with p0 in the Dp/Dt term, however, the definition of enthalpy implicitly contains a pressure. When calling the equation of state, we take h and ρ as inputs. The equation of state is expressed in terms of T and ρ, so it iterates until it finds the h that we desire. This h will be of the form h=e+pEOS/ρ, where pEOS is the pressure returned from the EOS. Note that pEOS may not be equal to p0—this may be what causes us to drive off of the constraint.

The mismatch between the pressure implicit in the definition of h and p0 can be seen by substituting h=e+p/ρ into the enthalpy equation, where we replace p with p0 in the Dp/Dt term:

(409)(ρh)t=(ρhU)+Dp0Dt+ρHnuc(ρe)t+pt=(ρeU)(pU)+Dp0Dt+ρHnuc(ρe)t=(ρeU)pU+ρHnuc+{Dp0DtDpDt}

However, if we solve the evolution equation for e we would substitute p0 for p in this equation as well. Thus, we can pose the situation as the following. If we solve the evolution equation for h then we effectively are solving

(410)(ρe)t+(ρeU)=pU+ρHnuc+{Dp0DtDpDt}

but if we solve the evolution equation for e we are effectively solving

(411)(ρe)t+(ρeU)=p0U+ρHnuc

The second equation subtracted from the first gives:

(412)D(p0p)Dt(p0p)U=0,

but this equation is only true, in general, if p=p0.

Suppose we solve the current enthalpy equation, but when we call the EOS, we subtract p0 from ρh and then call the EOS with e instead of h. This is equivalent to:

(413)(ρh)t=(ρhU)+Dp0Dt+ρHnuc(ρe)t+p0t=(ρeU)(p0U)+Dp0Dt+ρHnuc(ρe)t=(ρeU)p0U+ρHnuc

which is identical to solving the energy equation with pp0. This option is enabled in MAESTROeX via use_eos_e_instead_of_h = T.

Constant γ Gas

Going back to the constant γ, ideal gas EOS, we can rewrite the enthalpy equation as a pressure evolution equation

(414)ρht+(ρhU)=Dp0Dt+ρHγγ1pt+γγ1(pU)=Dp0Dt+ρHDpDt=pU+γγ1(Dp0Dt+ρH)

Similarly, we can derive a pressure evolution equation from the energy equation

(415)DpDt=pU(γ1)p0U+ρH

Now, if we further make the assumption that p0 is constant, Dp0/Dt=0, then the divergence constraint for such a gas reduces to

(416)U=γ1γp0ρH.

Plugging this back into either of Eq.414 or Eq.415 gives

(417)DpDt=γ1γ(1pp0)ρH.

If p0 is assumed constant and using div constraint for constant gamma, the difference between the enthalpy equation and the energy equation, Eq.412, can be rewritten as

(418)DpDtγγ1(1pp0)ρH=0,

where the equality holds from Eq.417. In other words, for the constant γ gas we have p=p0 as expected.

Outstanding Questions

  1. Why do we want to start with enthalpy instead of internal energy?

    We believe that the original desire stems from our experience with smallscale combustion. There, stratification is not important and Dp0/Dt=0, so the enthalpy equation becomes a conservation equation for (ρh).

  2. Should we call the EOS with h as is, or call the EOS with e=hp0/ρ?

  3. When we stay on the constraint, i.e. pEOS=p0, then the equations for e and for h are identical. However, once we are off the constraint, do the terms in the current evolution equation for h serve to drive us back to the constraint? Recall our current “volume discrepancy factor” acts as a source term which modifies the divergence constraint, which effectively modifies both ρ and T (or e or h). The term in the enthalpy equation only modifies ρ. Is this relevant and/or useful?? Recall that the current “volume discrepancy factor” takes the form of adding to the r.h.s. of the constraint:

    (419)(β0U)=β0(S1Γ1p0p0tfΓ1p0p0pEOSΔt)
  4. Suppose we corrected the h (or e equation) by using the full p instead of p0? Would this be more or less consistent (one could imagine doing this as a correction after solving for π earlier in the timestep).

  5. In computing the thermodynamic coefficients in S for the projection, don’t we need these to be in terms of p0 instead of p(h,ρ)?