Compositional flash routines for miscible multiphase flow classes with multiple fluid components. More...
#include <PorousFlowFluidStateMultiComponentBase.h>
Public Member Functions | |
PorousFlowFluidStateMultiComponentBase (const InputParameters ¶meters) | |
void | phaseState (Real Zi, Real Xi, Real Yi, FluidStatePhaseEnum &phase_state) const |
Determines the phase state gven the total mass fraction and equilibrium mass fractions. More... | |
virtual void | thermophysicalProperties (Real pressure, Real temperature, Real Xnacl, Real Z, unsigned int qp, std::vector< FluidStateProperties > &fsp) const =0 |
Determines the complete thermophysical state of the system for a given set of primary variables. More... | |
virtual Real | totalMassFraction (Real pressure, Real temperature, Real Xnacl, Real saturation, unsigned int qp) const =0 |
Total mass fraction of fluid component summed over all phases in the two-phase state for a specified gas saturation. More... | |
unsigned int | getPressureIndex () const |
unsigned int | getTemperatureIndex () const |
unsigned int | getZIndex () const |
unsigned int | getXIndex () const |
Real | rachfordRice (Real vf, std::vector< Real > &Zi, std::vector< Real > &Ki) const |
Rachford-Rice equation for vapor fraction. More... | |
Real | rachfordRiceDeriv (Real vf, std::vector< Real > &Zi, std::vector< Real > &Ki) const |
Derivative of Rachford-Rice equation wrt vapor fraction. More... | |
Real | vaporMassFraction (Real Z0, Real K0, Real K1) const |
Solves Rachford-Rice equation to provide vapor mass fraction. More... | |
DualReal | vaporMassFraction (const DualReal &Z0, const DualReal &K0, const DualReal &K1) const |
Real | vaporMassFraction (std::vector< Real > &Zi, std::vector< Real > &Ki) const |
void | initialize () final |
void | execute () final |
void | finalize () final |
unsigned int | numPhases () const |
The maximum number of phases in this model. More... | |
unsigned int | numComponents () const |
The maximum number of components in this model. More... | |
unsigned int | aqueousPhaseIndex () const |
The index of the aqueous phase. More... | |
unsigned int | gasPhaseIndex () const |
The index of the gas phase. More... | |
unsigned int | aqueousComponentIndex () const |
The index of the aqueous fluid component. More... | |
unsigned int | gasComponentIndex () const |
The index of the gas fluid component. More... | |
unsigned int | saltComponentIndex () const |
The index of the salt component. More... | |
virtual std::string | fluidStateName () const =0 |
Name of FluidState. More... | |
void | clearFluidStateProperties (std::vector< FluidStateProperties > &fsp) const |
Clears the contents of the FluidStateProperties data structure. More... | |
Protected Attributes | |
const unsigned int | _pidx |
Index of derivative wrt pressure. More... | |
const unsigned int | _Zidx |
Index of derivative wrt total mass fraction Z. More... | |
const unsigned int | _Tidx |
Index of derivative wrt temperature. More... | |
const unsigned int | _Xidx |
Index of derivative wrt salt mass fraction X. More... | |
const Real | _nr_max_its |
Maximum number of iterations for the Newton-Raphson routine. More... | |
const Real | _nr_tol |
Tolerance for Newton-Raphson iterations. More... | |
unsigned int | _num_phases |
Number of phases. More... | |
unsigned int | _num_components |
Number of components. More... | |
const unsigned int | _aqueous_phase_number |
Phase number of the aqueous phase. More... | |
unsigned int | _gas_phase_number |
Phase number of the gas phase. More... | |
const unsigned int | _aqueous_fluid_component |
Fluid component number of the aqueous component. More... | |
unsigned int | _gas_fluid_component |
Fluid component number of the gas phase. More... | |
const unsigned int | _salt_component |
Salt component index. More... | |
const Real | _R |
Universal gas constant (J/mol/K) More... | |
const Real | _T_c2k |
Conversion from C to K. More... | |
const PorousFlowCapillaryPressure & | _pc |
Capillary pressure UserObject. More... | |
FluidStateProperties | _empty_fsp |
Empty FluidStateProperties object. More... | |
Compositional flash routines for miscible multiphase flow classes with multiple fluid components.
Definition at line 23 of file PorousFlowFluidStateMultiComponentBase.h.
PorousFlowFluidStateMultiComponentBase::PorousFlowFluidStateMultiComponentBase | ( | const InputParameters & | parameters | ) |
Definition at line 21 of file PorousFlowFluidStateMultiComponentBase.C.
|
inlineinherited |
The index of the aqueous fluid component.
Definition at line 92 of file PorousFlowFluidStateBase.h.
|
inlineinherited |
The index of the aqueous phase.
Definition at line 80 of file PorousFlowFluidStateBase.h.
|
inherited |
Clears the contents of the FluidStateProperties data structure.
[out] | fsp | FluidStateProperties data structure with all data initialized to 0 |
Definition at line 39 of file PorousFlowFluidStateBase.C.
Referenced by PorousFlowWaterNCG::thermophysicalProperties(), PorousFlowFluidStateSingleComponent::thermophysicalProperties(), and PorousFlowBrineCO2::thermophysicalProperties().
|
inlinefinalinherited |
Definition at line 61 of file PorousFlowFluidStateBase.h.
|
inlinefinalinherited |
Definition at line 62 of file PorousFlowFluidStateBase.h.
|
pure virtualinherited |
Name of FluidState.
Implemented in PorousFlowBrineCO2, PorousFlowWaterNCG, and PorousFlowWaterVapor.
|
inlineinherited |
The index of the gas fluid component.
Definition at line 98 of file PorousFlowFluidStateBase.h.
|
inlineinherited |
The index of the gas phase.
Definition at line 86 of file PorousFlowFluidStateBase.h.
|
inline |
Definition at line 70 of file PorousFlowFluidStateMultiComponentBase.h.
|
inline |
Definition at line 71 of file PorousFlowFluidStateMultiComponentBase.h.
|
inline |
Definition at line 73 of file PorousFlowFluidStateMultiComponentBase.h.
|
inline |
Definition at line 72 of file PorousFlowFluidStateMultiComponentBase.h.
|
inlinefinalinherited |
Definition at line 60 of file PorousFlowFluidStateBase.h.
|
inlineinherited |
The maximum number of components in this model.
Definition at line 74 of file PorousFlowFluidStateBase.h.
|
inlineinherited |
The maximum number of phases in this model.
Definition at line 68 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowFluidState::PorousFlowFluidState(), and PorousFlowFluidStateSingleComponent::PorousFlowFluidStateSingleComponent().
void PorousFlowFluidStateMultiComponentBase::phaseState | ( | Real | Zi, |
Real | Xi, | ||
Real | Yi, | ||
FluidStatePhaseEnum & | phase_state | ||
) | const |
Determines the phase state gven the total mass fraction and equilibrium mass fractions.
Zi | total mass fraction | |
Xi | equilibrium mass fraction in liquid | |
Yi | equilibrium mass fraction in gas | |
[out] | phase_state | the phase state (gas, liquid, two phase) |
Definition at line 28 of file PorousFlowFluidStateMultiComponentBase.C.
Referenced by PorousFlowWaterNCG::massFractions(), and PorousFlowBrineCO2::massFractions().
|
inherited |
Rachford-Rice equation for vapor fraction.
Can be solved analytically for two components in two phases, but must be solved iteratively using a root finding algorithm for more components. This equation has the nice property that it is monotonic in the interval [0,1], so that only a small number of iterations are typically required to find the root.
The Rachford-Rice equation can also be used to check whether the phase state is two phase, single phase gas, or single phase liquid. Evaluate f(v), the Rachford-Rice equation evaluated at the vapor mass fraction.
If f(0) < 0, then the mixture is below the bubble point, and only a single phase liquid can exist
If f(1) > 0, then the mixture is above the dew point, and only a single phase gas exists.
If f(0) >= 0 and f(1) <= 0, the mixture is between the bubble and dew points, and both gas and liquid phases exist.
vf | vapor fraction |
Zi | mass fractions |
Ki | equilibrium constants |
Definition at line 27 of file PorousFlowFluidStateFlash.C.
Referenced by PorousFlowFluidStateFlash::vaporMassFraction().
|
inherited |
Derivative of Rachford-Rice equation wrt vapor fraction.
Has the nice property that it is strictly negative in the interval [0,1]
vf | vapor fraction |
Zi | mass fractions |
Ki | equilibrium constants |
Definition at line 53 of file PorousFlowFluidStateFlash.C.
Referenced by PorousFlowFluidStateFlash::vaporMassFraction().
|
inlineinherited |
The index of the salt component.
Definition at line 104 of file PorousFlowFluidStateBase.h.
|
pure virtual |
Determines the complete thermophysical state of the system for a given set of primary variables.
pressure | gas phase pressure (Pa) | |
temperature | fluid temperature (K) | |
Xnacl | mass fraction of NaCl | |
Z | total mass fraction of fluid component | |
qp | quadpoint index | |
[out] | fsp | the FluidStateProperties struct containing all properties |
Implemented in PorousFlowBrineCO2, and PorousFlowWaterNCG.
Referenced by PorousFlowFluidState::thermophysicalProperties().
|
pure virtual |
Total mass fraction of fluid component summed over all phases in the two-phase state for a specified gas saturation.
pressure | gas pressure (Pa) |
temperature | temperature (K) |
Xnacl | NaCl mass fraction (kg/kg) |
saturation | gas saturation (-) |
qp | quadpoint index |
Implemented in PorousFlowBrineCO2, and PorousFlowWaterNCG.
Referenced by PorousFlowFluidStateIC::value().
|
inherited |
Definition at line 87 of file PorousFlowFluidStateFlash.C.
|
inherited |
Solves Rachford-Rice equation to provide vapor mass fraction.
For two components, the analytical solution is used, while for cases with more than two components, a Newton-Raphson iterative solution is calculated.
Zi | total mass fraction(s) |
Ki | equilibrium constant(s) |
Definition at line 81 of file PorousFlowFluidStateFlash.C.
Referenced by PorousFlowWaterNCG::saturation(), PorousFlowBrineCO2::saturation(), and PorousFlowFluidStateFlash::vaporMassFraction().
|
inherited |
Definition at line 95 of file PorousFlowFluidStateFlash.C.
|
protectedinherited |
Fluid component number of the aqueous component.
Definition at line 127 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowFluidStateBase::aqueousComponentIndex(), PorousFlowWaterNCG::massFractions(), PorousFlowBrineCO2::massFractions(), PorousFlowBrineCO2::PorousFlowBrineCO2(), PorousFlowWaterNCG::PorousFlowWaterNCG(), PorousFlowWaterVapor::PorousFlowWaterVapor(), PorousFlowWaterNCG::saturation(), PorousFlowBrineCO2::saturation(), PorousFlowWaterNCG::totalMassFraction(), and PorousFlowBrineCO2::totalMassFraction().
|
protectedinherited |
Phase number of the aqueous phase.
Definition at line 123 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowFluidStateBase::aqueousPhaseIndex(), PorousFlowWaterNCG::gasDensity(), PorousFlowWaterNCG::gasProperties(), PorousFlowWaterNCG::liquidProperties(), PorousFlowBrineCO2::liquidProperties(), PorousFlowWaterNCG::massFractions(), PorousFlowBrineCO2::massFractions(), PorousFlowBrineCO2::PorousFlowBrineCO2(), PorousFlowWaterNCG::PorousFlowWaterNCG(), PorousFlowWaterVapor::PorousFlowWaterVapor(), PorousFlowWaterVapor::thermophysicalProperties(), PorousFlowWaterNCG::thermophysicalProperties(), PorousFlowBrineCO2::thermophysicalProperties(), PorousFlowWaterNCG::totalMassFraction(), and PorousFlowBrineCO2::totalMassFraction().
|
protectedinherited |
Empty FluidStateProperties object.
Definition at line 139 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowFluidStateBase::clearFluidStateProperties(), PorousFlowBrineCO2::PorousFlowBrineCO2(), PorousFlowWaterNCG::PorousFlowWaterNCG(), and PorousFlowWaterVapor::PorousFlowWaterVapor().
|
protectedinherited |
Fluid component number of the gas phase.
Definition at line 129 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowFluidStateBase::gasComponentIndex(), PorousFlowWaterNCG::gasDensity(), PorousFlowWaterNCG::gasProperties(), PorousFlowWaterNCG::liquidProperties(), PorousFlowBrineCO2::liquidProperties(), PorousFlowWaterNCG::massFractions(), PorousFlowBrineCO2::massFractions(), PorousFlowBrineCO2::PorousFlowBrineCO2(), PorousFlowWaterNCG::PorousFlowWaterNCG(), PorousFlowWaterVapor::PorousFlowWaterVapor(), PorousFlowWaterNCG::saturation(), PorousFlowBrineCO2::saturation(), PorousFlowWaterNCG::totalMassFraction(), and PorousFlowBrineCO2::totalMassFraction().
|
protectedinherited |
Phase number of the gas phase.
Definition at line 125 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowWaterNCG::gasDensity(), PorousFlowFluidStateBase::gasPhaseIndex(), PorousFlowWaterNCG::gasProperties(), PorousFlowBrineCO2::gasProperties(), PorousFlowWaterNCG::massFractions(), PorousFlowBrineCO2::massFractions(), PorousFlowBrineCO2::PorousFlowBrineCO2(), PorousFlowWaterNCG::PorousFlowWaterNCG(), PorousFlowWaterVapor::PorousFlowWaterVapor(), PorousFlowWaterNCG::saturation(), PorousFlowBrineCO2::saturation(), PorousFlowWaterVapor::thermophysicalProperties(), PorousFlowWaterNCG::thermophysicalProperties(), PorousFlowBrineCO2::thermophysicalProperties(), PorousFlowWaterNCG::totalMassFraction(), PorousFlowBrineCO2::totalMassFraction(), PorousFlowWaterNCG::twoPhaseProperties(), and PorousFlowBrineCO2::twoPhaseProperties().
|
protectedinherited |
Maximum number of iterations for the Newton-Raphson routine.
Definition at line 80 of file PorousFlowFluidStateFlash.h.
Referenced by PorousFlowFluidStateFlash::vaporMassFraction().
|
protectedinherited |
Tolerance for Newton-Raphson iterations.
Definition at line 82 of file PorousFlowFluidStateFlash.h.
Referenced by PorousFlowFluidStateFlash::vaporMassFraction().
|
protectedinherited |
Number of components.
Definition at line 121 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowFluidStateBase::numComponents(), PorousFlowBrineCO2::PorousFlowBrineCO2(), PorousFlowWaterNCG::PorousFlowWaterNCG(), PorousFlowWaterVapor::PorousFlowWaterVapor(), PorousFlowWaterNCG::totalMassFraction(), and PorousFlowBrineCO2::totalMassFraction().
|
protectedinherited |
Number of phases.
Definition at line 119 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowFluidStateBase::numPhases(), PorousFlowBrineCO2::PorousFlowBrineCO2(), PorousFlowWaterNCG::PorousFlowWaterNCG(), PorousFlowWaterVapor::PorousFlowWaterVapor(), PorousFlowWaterNCG::totalMassFraction(), and PorousFlowBrineCO2::totalMassFraction().
|
protectedinherited |
Capillary pressure UserObject.
Definition at line 137 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowWaterVapor::thermophysicalProperties(), PorousFlowWaterNCG::thermophysicalProperties(), PorousFlowBrineCO2::thermophysicalProperties(), PorousFlowWaterNCG::totalMassFraction(), PorousFlowBrineCO2::totalMassFraction(), PorousFlowWaterNCG::twoPhaseProperties(), and PorousFlowBrineCO2::twoPhaseProperties().
|
protected |
Index of derivative wrt pressure.
Definition at line 73 of file PorousFlowFluidStateMultiComponentBase.h.
Referenced by PorousFlowBrineCO2::equilibriumMoleFractions(), getPressureIndex(), PorousFlowWaterNCG::massFractions(), PorousFlowBrineCO2::massFractions(), PorousFlowWaterNCG::thermophysicalProperties(), and PorousFlowBrineCO2::thermophysicalProperties().
|
protectedinherited |
Universal gas constant (J/mol/K)
Definition at line 133 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowWaterNCG::enthalpyOfDissolution(), and PorousFlowBrineCO2::enthalpyOfDissolutionGas().
|
protectedinherited |
Salt component index.
Definition at line 131 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowFluidStateBase::saltComponentIndex().
|
protectedinherited |
Conversion from C to K.
Definition at line 135 of file PorousFlowFluidStateBase.h.
Referenced by PorousFlowBrineCO2::equilibriumConstantCO2(), PorousFlowBrineCO2::equilibriumConstantH2O(), PorousFlowBrineCO2::funcABHighTemp(), PorousFlowBrineCO2::henryConstant(), and PorousFlowBrineCO2::partialDensityCO2().
|
protected |
Index of derivative wrt temperature.
Definition at line 81 of file PorousFlowFluidStateMultiComponentBase.h.
Referenced by PorousFlowWaterNCG::enthalpyOfDissolution(), PorousFlowBrineCO2::enthalpyOfDissolutionGas(), PorousFlowBrineCO2::equilibriumMoleFractions(), getTemperatureIndex(), PorousFlowWaterNCG::massFractions(), PorousFlowBrineCO2::massFractions(), PorousFlowWaterNCG::thermophysicalProperties(), and PorousFlowBrineCO2::thermophysicalProperties().
|
protected |
Index of derivative wrt salt mass fraction X.
Definition at line 83 of file PorousFlowFluidStateMultiComponentBase.h.
Referenced by PorousFlowBrineCO2::equilibriumMoleFractions(), getXIndex(), PorousFlowBrineCO2::massFractions(), and PorousFlowBrineCO2::thermophysicalProperties().
|
protected |
Index of derivative wrt total mass fraction Z.
Definition at line 79 of file PorousFlowFluidStateMultiComponentBase.h.
Referenced by getZIndex(), PorousFlowWaterNCG::massFractions(), PorousFlowBrineCO2::massFractions(), PorousFlowWaterNCG::thermophysicalProperties(), and PorousFlowBrineCO2::thermophysicalProperties().