Skip to content

Feature: Generalized EOS Support #462

@baperry2

Description

@baperry2

Implement support for detailed chemistry simulations with SRK (or other non-ideal EOS). Extension of the low-Mach projection methods used in PeleLMeX from ideal gasses to real gas equations of state was described in J. Bell, @drummerdoc, et al, JCP, 2004: https://www.sciencedirect.com/science/article/pii/S0021999103005783

Preliminary thoughts on what would be required to adapt PeleLMeX:

  • The key difference is the modified divergence constraint. The infrastructure exists in PeleLMeX to modify the divu calculation based on EOS for Manifold EOS. However, some of the necessary thermodynamic partial derivatives are not currently supported and would have to be added to the SRK EOS in PelePhysics (some derivation needed):
    Screenshot 2025-01-06 at 5 51 49 PM

  • $\frac{\partial p}{\partial T}|_{\rho,Y_k}$,

  • $\frac{\partial p}{\partial \rho}|_{T,Y_k}$,

  • $\xi_k = \frac{\partial h}{\partial Y_k}|_{p,T,Y_j}$,

  • $\frac{\partial p}{\partial X_k}|_{T,\rho,Y_j}$,

  • There are several places where ideal gas behavior is assumed in that H and Cp depend only on T,Y and not rho or P. Many calls like eos.TY2Cp and eos.HY2T will have to be suitably modified. PelePhysics does not currently support all of these, but does support analogs with E instead of H, so adding them shouldn't be too difficult. Perhaps some simplification is also possible by noting that P is constant throughout the domain.

  • For SRK, the driving force terms for diffusion are more complex, nonlinear, and pressure-dependent. It may be difficult to integrate these into the implicit diffusion solve that uses AMReX's linear solvers. This may be the trickiest part form an implementation perspective. See PeleC explicit implementation here: https://github.com/AMReX-Combustion/PeleC/blob/c9a0f87a99f3728283ad9b01b3f1a9c3a51dca79/Source/Diffterm.H#L78

Additionally, it should be noted that manifold-based combustion models with non-ideal EOS are supported, so long as the data used to generate the manifold had non-ideal EOS (e.g., as supported by Cantera).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions