www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PorousFlowFluidState Class Reference

Fluid state class using a persistent set of primary variables for the mutliphase, multicomponent case. More...

#include <PorousFlowFluidState.h>

Inheritance diagram for PorousFlowFluidState:
[legend]

Public Member Functions

 PorousFlowFluidState (const InputParameters &parameters)
 

Protected Member Functions

virtual void initQpStatefulProperties () override
 
virtual void computeQpProperties () override
 
void setMaterialVectorSize () const
 Size material property vectors and initialise with zeros. More...
 
virtual void thermophysicalProperties ()
 Calculates all required thermophysical properties and derivatives for each phase and fluid component. More...
 

Protected Attributes

const VariableValue & _gas_porepressure
 Porepressure. More...
 
const VariableGradient & _gas_gradp_qp
 Gradient of porepressure (only defined at the qps) More...
 
const unsigned int _gas_porepressure_varnum
 Moose variable number of the gas porepressure. More...
 
const unsigned int _pvar
 PorousFlow variable number of the gas porepressure. More...
 
std::vector< const VariableValue * > _Z
 Total mass fraction(s) of the gas component(s) summed over all phases. More...
 
std::vector< const VariableGradient * > _gradZ_qp
 Gradient(s) of total mass fraction(s) of the gas component(s) (only defined at the qps) More...
 
std::vector< unsigned int > _Z_varnum
 Moose variable number of Z. More...
 
std::vector< unsigned int > _Zvar
 PorousFlow variable number of Z. More...
 
const unsigned int _num_Z_vars
 Number of coupled total mass fractions. Should be _num_phases - 1. More...
 
const VariableValue & _Xnacl
 Salt mass fraction (kg/kg) More...
 
const VariableGradient & _grad_Xnacl_qp
 Gradient of salt mass fraction (only defined at the qps) More...
 
const unsigned int _Xnacl_varnum
 Salt mass fraction variable number. More...
 
const unsigned int _Xvar
 Salt mass fraction PorousFlow variable number. More...
 
const PorousFlowFluidStateBase_fs
 FluidState UserObject. More...
 
const unsigned int _aqueous_phase_number
 Phase number of the aqueous phase. More...
 
const 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...
 
const unsigned int _gas_fluid_component
 Fluid component number of the gas phase. More...
 
const unsigned int _salt_component
 Salt component index. More...
 
const MaterialProperty< Real > & _temperature
 Temperature. More...
 
const MaterialProperty< RealGradient > & _gradT_qp
 Gradient of temperature (only defined at the qps) More...
 
const MaterialProperty< std::vector< Real > > & _dtemperature_dvar
 Derivative of temperature wrt PorousFlow variables. More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _mass_frac
 Mass fraction matrix. More...
 
MaterialProperty< std::vector< std::vector< RealGradient > > > * _grad_mass_frac_qp
 Gradient of the mass fraction matrix (only defined at the qps) More...
 
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_frac_dvar
 Derivative of the mass fraction matrix with respect to the Porous Flow variables. More...
 
const MaterialProperty< std::vector< Real > > & _saturation_old
 Old value of saturation. More...
 
MaterialProperty< std::vector< Real > > & _fluid_density
 Fluid density of each phase. More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_dvar
 Derivative of the fluid density for each phase wrt PorousFlow variables. More...
 
MaterialProperty< std::vector< Real > > & _fluid_viscosity
 Viscosity of each phase. More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_viscosity_dvar
 Derivative of the fluid viscosity for each phase wrt PorousFlow variables. More...
 
MaterialProperty< std::vector< Real > > & _fluid_enthalpy
 Enthalpy of each phase. More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_enthalpy_dvar
 Derivative of the fluid enthalpy for each phase wrt PorousFlow variables. More...
 
const Real _T_c2k
 Conversion from degrees Celsius to degrees Kelvin. More...
 
bool _is_initqp
 Flag to indicate whether to calculate stateful properties. More...
 
std::vector< FluidStateProperties_fsp
 FluidStateProperties data structure. More...
 
const PorousFlowCapillaryPressure_pc
 Capillary pressure UserObject. More...
 
const unsigned int _num_phases
 Number of phases. More...
 
const unsigned int _num_components
 Number of components. More...
 
const unsigned int _num_pf_vars
 Number of PorousFlow variables. More...
 
MaterialProperty< std::vector< Real > > & _porepressure
 Computed nodal or quadpoint values of porepressure of the phases. More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _dporepressure_dvar
 d(porepressure)/d(PorousFlow variable) More...
 
MaterialProperty< std::vector< RealGradient > > *const _gradp_qp
 Grad(p) at the quadpoints. More...
 
MaterialProperty< std::vector< std::vector< Real > > > *const _dgradp_qp_dgradv
 d(grad porepressure)/d(grad PorousFlow variable) at the quadpoints More...
 
MaterialProperty< std::vector< std::vector< RealGradient > > > *const _dgradp_qp_dv
 d(grad porepressure)/d(PorousFlow variable) at the quadpoints More...
 
MaterialProperty< std::vector< Real > > & _saturation
 Computed nodal or qp saturation of the phases. More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _dsaturation_dvar
 d(saturation)/d(PorousFlow variable) More...
 
MaterialProperty< std::vector< RealGradient > > *const _grads_qp
 Grad(s) at the quadpoints. More...
 
MaterialProperty< std::vector< std::vector< Real > > > *const _dgrads_qp_dgradv
 d(grad saturation)/d(grad PorousFlow variable) at the quadpoints More...
 
MaterialProperty< std::vector< std::vector< RealGradient > > > *const _dgrads_qp_dv
 d(grad saturation)/d(PorousFlow variable) at the quadpoints More...
 

Detailed Description

Fluid state class using a persistent set of primary variables for the mutliphase, multicomponent case.

Primary variables are: gas pressure, total mass fraction of a component summed over all phases (and optionally temperature in a non-isothermal case).

The total mass fraction of component i summed over all phases, Z_i, is defined as (for two phases)

Z_i = (S_g rho_g Y_i + S_l rho_l X_i) / (S_g rho_g + S_l rho_l)

where S is saturation, rho is density, and the subscripts correspond to gas and liquid phases, respectively, and Y_i and X_i are the mass fractions of the ith component in the gas and liquid phase, respectively.

Depending on the phase conditions, the primary variable Z_i can represent either a mass fraction (when only a single phase is present), or a saturation when two phases are present, and hence it is a persistent variable.

The PorousFlow kernels expect saturation and mass fractions (as well as pressure and temperature), so these must be calculated from Z_i once the state of the system is determined.

A compositional flash calculation using the Rachford-Rice equation is solved to determine vapor fraction (gas saturation), and subsequently the composition of each phase.

Definition at line 51 of file PorousFlowFluidState.h.

Constructor & Destructor Documentation

◆ PorousFlowFluidState()

PorousFlowFluidState::PorousFlowFluidState ( const InputParameters &  parameters)

Definition at line 36 of file PorousFlowFluidState.C.

37  : PorousFlowVariableBase(parameters),
38 
39  _gas_porepressure(_nodal_material ? coupledNodalValue("gas_porepressure")
40  : coupledValue("gas_porepressure")),
41  _gas_gradp_qp(coupledGradient("gas_porepressure")),
42  _gas_porepressure_varnum(coupled("gas_porepressure")),
43  _pvar(_dictator.isPorousFlowVariable(_gas_porepressure_varnum)
44  ? _dictator.porousFlowVariableNum(_gas_porepressure_varnum)
45  : 0),
46 
47  _num_Z_vars(coupledComponents("z")),
48  _Xnacl(_nodal_material ? coupledNodalValue("xnacl") : coupledValue("xnacl")),
49  _grad_Xnacl_qp(coupledGradient("xnacl")),
50  _Xnacl_varnum(coupled("xnacl")),
51  _Xvar(_dictator.isPorousFlowVariable(_Xnacl_varnum)
52  ? _dictator.porousFlowVariableNum(_Xnacl_varnum)
53  : 0),
54 
55  _fs(getUserObject<PorousFlowFluidStateBase>("fluid_state")),
56  _aqueous_phase_number(_fs.aqueousPhaseIndex()),
57  _gas_phase_number(_fs.gasPhaseIndex()),
58  _aqueous_fluid_component(_fs.aqueousComponentIndex()),
59  _gas_fluid_component(_fs.gasComponentIndex()),
60  _salt_component(_fs.saltComponentIndex()),
61 
62  _temperature(_nodal_material ? getMaterialProperty<Real>("PorousFlow_temperature_nodal")
63  : getMaterialProperty<Real>("PorousFlow_temperature_qp")),
64  _gradT_qp(getMaterialProperty<RealGradient>("PorousFlow_grad_temperature_qp")),
66  _nodal_material
67  ? getMaterialProperty<std::vector<Real>>("dPorousFlow_temperature_nodal_dvar")
68  : getMaterialProperty<std::vector<Real>>("dPorousFlow_temperature_qp_dvar")),
69 
70  _mass_frac(_nodal_material
71  ? declareProperty<std::vector<std::vector<Real>>>("PorousFlow_mass_frac_nodal")
72  : declareProperty<std::vector<std::vector<Real>>>("PorousFlow_mass_frac_qp")),
73  _grad_mass_frac_qp(_nodal_material ? nullptr
74  : &declareProperty<std::vector<std::vector<RealGradient>>>(
75  "PorousFlow_grad_mass_frac_qp")),
76  _dmass_frac_dvar(_nodal_material ? declareProperty<std::vector<std::vector<std::vector<Real>>>>(
77  "dPorousFlow_mass_frac_nodal_dvar")
78  : declareProperty<std::vector<std::vector<std::vector<Real>>>>(
79  "dPorousFlow_mass_frac_qp_dvar")),
80  _saturation_old(_nodal_material
81  ? getMaterialPropertyOld<std::vector<Real>>("PorousFlow_saturation_nodal")
82  : getMaterialPropertyOld<std::vector<Real>>("PorousFlow_saturation_qp")),
83 
84  _fluid_density(_nodal_material
85  ? declareProperty<std::vector<Real>>("PorousFlow_fluid_phase_density_nodal")
86  : declareProperty<std::vector<Real>>("PorousFlow_fluid_phase_density_qp")),
87  _dfluid_density_dvar(_nodal_material ? declareProperty<std::vector<std::vector<Real>>>(
88  "dPorousFlow_fluid_phase_density_nodal_dvar")
89  : declareProperty<std::vector<std::vector<Real>>>(
90  "dPorousFlow_fluid_phase_density_qp_dvar")),
91  _fluid_viscosity(_nodal_material
92  ? declareProperty<std::vector<Real>>("PorousFlow_viscosity_nodal")
93  : declareProperty<std::vector<Real>>("PorousFlow_viscosity_qp")),
95  _nodal_material
96  ? declareProperty<std::vector<std::vector<Real>>>("dPorousFlow_viscosity_nodal_dvar")
97  : declareProperty<std::vector<std::vector<Real>>>("dPorousFlow_viscosity_qp_dvar")),
98 
100  _nodal_material
101  ? declareProperty<std::vector<Real>>("PorousFlow_fluid_phase_enthalpy_nodal")
102  : declareProperty<std::vector<Real>>("PorousFlow_fluid_phase_enthalpy_qp")),
103  _dfluid_enthalpy_dvar(_nodal_material ? declareProperty<std::vector<std::vector<Real>>>(
104  "dPorousFlow_fluid_phase_enthalpy_nodal_dvar")
105  : declareProperty<std::vector<std::vector<Real>>>(
106  "dPorousFlow_fluid_phase_enthalpy_qp_dvar")),
107 
108  _T_c2k(getParam<MooseEnum>("temperature_unit") == 0 ? 0.0 : 273.15),
109  _is_initqp(false),
110  _pc(getUserObject<PorousFlowCapillaryPressure>("capillary_pressure"))
111 {
112  // Check that the number of phases in the fluidstate class is also provided in the Dictator
113  if (_fs.numPhases() != _num_phases)
114  mooseError(name(),
115  ": only ",
116  _fs.numPhases(),
117  " phases are allowed. Please check the number of phases entered in the dictator is "
118  "correct");
119 
120  // Store all total mass fractions and associated variable numbers
121  _Z.resize(_num_Z_vars);
122  _gradZ_qp.resize(_num_Z_vars);
123  _Z_varnum.resize(_num_Z_vars);
124  _Zvar.resize(_num_Z_vars);
125 
126  for (unsigned int i = 0; i < _num_Z_vars; ++i)
127  {
128  _Z[i] = (_nodal_material ? &coupledNodalValue("z", i) : &coupledValue("z", i));
129  _gradZ_qp[i] = &coupledGradient("z", i);
130  _Z_varnum[i] = coupled("z", i);
131  _Zvar[i] = (_dictator.isPorousFlowVariable(_Z_varnum[i])
132  ? _dictator.porousFlowVariableNum(_Z_varnum[i])
133  : 0);
134  }
135 
136  // Set the size of the FluidStateProperties vector
138 }
const MaterialProperty< Real > & _temperature
Temperature.
const unsigned int _gas_fluid_component
Fluid component number of the gas phase.
const VariableValue & _Xnacl
Salt mass fraction (kg/kg)
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_enthalpy_dvar
Derivative of the fluid enthalpy for each phase wrt PorousFlow variables.
const PorousFlowFluidStateBase & _fs
FluidState UserObject.
const VariableValue & _gas_porepressure
Porepressure.
std::vector< const VariableGradient * > _gradZ_qp
Gradient(s) of total mass fraction(s) of the gas component(s) (only defined at the qps) ...
MaterialProperty< std::vector< Real > > & _fluid_density
Fluid density of each phase.
MaterialProperty< std::vector< std::vector< Real > > > & _mass_frac
Mass fraction matrix.
std::vector< unsigned int > _Zvar
PorousFlow variable number of Z.
Base class for fluid states for miscible multiphase flow in porous media.
const PorousFlowCapillaryPressure & _pc
Capillary pressure UserObject.
Base class for capillary pressure for multiphase flow in porous media.
PorousFlowVariableBase(const InputParameters &parameters)
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_viscosity_dvar
Derivative of the fluid viscosity for each phase wrt PorousFlow variables.
std::vector< unsigned int > _Z_varnum
Moose variable number of Z.
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_dvar
Derivative of the fluid density for each phase wrt PorousFlow variables.
const unsigned int _aqueous_fluid_component
Fluid component number of the aqueous component.
const unsigned int _Xnacl_varnum
Salt mass fraction variable number.
const MaterialProperty< std::vector< Real > > & _dtemperature_dvar
Derivative of temperature wrt PorousFlow variables.
const std::string name
Definition: Setup.h:22
const unsigned int _gas_porepressure_varnum
Moose variable number of the gas porepressure.
const unsigned int _gas_phase_number
Phase number of the gas phase.
const unsigned int _pvar
PorousFlow variable number of the gas porepressure.
Data structure to pass calculated thermophysical properties.
const unsigned int _num_Z_vars
Number of coupled total mass fractions. Should be _num_phases - 1.
const VariableGradient & _gas_gradp_qp
Gradient of porepressure (only defined at the qps)
bool _is_initqp
Flag to indicate whether to calculate stateful properties.
MaterialProperty< std::vector< Real > > & _fluid_enthalpy
Enthalpy of each phase.
MaterialProperty< std::vector< Real > > & _fluid_viscosity
Viscosity of each phase.
const unsigned int _Xvar
Salt mass fraction PorousFlow variable number.
MaterialProperty< std::vector< std::vector< RealGradient > > > * _grad_mass_frac_qp
Gradient of the mass fraction matrix (only defined at the qps)
std::vector< FluidStateProperties > _fsp
FluidStateProperties data structure.
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_frac_dvar
Derivative of the mass fraction matrix with respect to the Porous Flow variables. ...
const unsigned int _num_components
Number of components.
const unsigned int _num_phases
Number of phases.
unsigned int numPhases() const
The maximum number of phases in this model.
const unsigned int _aqueous_phase_number
Phase number of the aqueous phase.
const VariableGradient & _grad_Xnacl_qp
Gradient of salt mass fraction (only defined at the qps)
const MaterialProperty< std::vector< Real > > & _saturation_old
Old value of saturation.
const Real _T_c2k
Conversion from degrees Celsius to degrees Kelvin.
const MaterialProperty< RealGradient > & _gradT_qp
Gradient of temperature (only defined at the qps)
const unsigned int _salt_component
Salt component index.
std::vector< const VariableValue * > _Z
Total mass fraction(s) of the gas component(s) summed over all phases.

Member Function Documentation

◆ computeQpProperties()

void PorousFlowFluidState::computeQpProperties ( )
overrideprotectedvirtual

Reimplemented from PorousFlowVariableBase.

Definition at line 180 of file PorousFlowFluidState.C.

181 {
182  _is_initqp = false;
183  // Prepare the derivative vectors
185 
186  // Set the size of all other vectors
188 
189  // Calculate all required thermophysical properties
191 
192  for (unsigned int ph = 0; ph < _num_phases; ++ph)
193  {
194  _saturation[_qp][ph] = _fsp[ph].saturation;
195  _porepressure[_qp][ph] = _fsp[ph].pressure;
196  _fluid_density[_qp][ph] = _fsp[ph].density;
197  _fluid_viscosity[_qp][ph] = _fsp[ph].viscosity;
198  _fluid_enthalpy[_qp][ph] = _fsp[ph].enthalpy;
199  _mass_frac[_qp][ph] = _fsp[ph].mass_fraction;
200  }
201 
202  // Derivative of saturation wrt variables
203  for (unsigned int ph = 0; ph < _num_phases; ++ph)
204  {
205  _dsaturation_dvar[_qp][ph][_Zvar[0]] = _fsp[ph].dsaturation_dZ;
206  _dsaturation_dvar[_qp][ph][_pvar] = _fsp[ph].dsaturation_dp;
207  }
208  // Derivative of capillary pressure
209  Real dpc = _pc.dCapillaryPressure(_fsp[_aqueous_phase_number].saturation);
210 
211  // Derivative of porepressure wrt variables
212  if (_dictator.isPorousFlowVariable(_gas_porepressure_varnum))
213  {
214  for (unsigned int ph = 0; ph < _num_phases; ++ph)
215  {
216  _dporepressure_dvar[_qp][ph][_pvar] = 1.0;
217  if (!_nodal_material)
218  (*_dgradp_qp_dgradv)[_qp][ph][_pvar] = 1.0;
219  }
220 
221  if (!_nodal_material)
222  {
223  (*_dgradp_qp_dgradv)[_qp][_aqueous_phase_number][_pvar] +=
225  (*_dgradp_qp_dgradv)[_qp][_aqueous_phase_number][_Zvar[0]] =
227  }
228 
229  // The aqueous phase porepressure is also a function of liquid saturation,
230  // which depends on both gas porepressure and Z
235  }
236 
237  // Calculate derivatives of material properties wrt primary variables
238  // Derivative of Z wrt variables
239  std::vector<Real> dZ_dvar;
240  dZ_dvar.assign(_num_pf_vars, 0.0);
241 
242  if (_dictator.isPorousFlowVariable(_Z_varnum[0]))
243  dZ_dvar[_Zvar[0]] = 1.0;
244 
245  // Derivatives of properties wrt primary variables
246  for (unsigned int v = 0; v < _num_pf_vars; ++v)
247  for (unsigned int ph = 0; ph < _num_phases; ++ph)
248  {
249  // Derivative of density in each phase
250  _dfluid_density_dvar[_qp][ph][v] = _fsp[ph].ddensity_dp * _dporepressure_dvar[_qp][ph][v];
251  _dfluid_density_dvar[_qp][ph][v] += _fsp[ph].ddensity_dT * _dtemperature_dvar[_qp][v];
252  _dfluid_density_dvar[_qp][ph][v] += _fsp[ph].ddensity_dZ * dZ_dvar[v];
253 
254  // Derivative of viscosity in each phase
255  _dfluid_viscosity_dvar[_qp][ph][v] = _fsp[ph].dviscosity_dp * _dporepressure_dvar[_qp][ph][v];
256  _dfluid_viscosity_dvar[_qp][ph][v] += _fsp[ph].dviscosity_dT * _dtemperature_dvar[_qp][v];
257  _dfluid_viscosity_dvar[_qp][ph][v] += _fsp[ph].dviscosity_dZ * dZ_dvar[v];
258 
259  // Derivative of enthalpy in each phase
260  _dfluid_enthalpy_dvar[_qp][ph][v] = _fsp[ph].denthalpy_dp * _dporepressure_dvar[_qp][ph][v];
261  _dfluid_enthalpy_dvar[_qp][ph][v] += _fsp[ph].denthalpy_dT * _dtemperature_dvar[_qp][v];
262  _dfluid_enthalpy_dvar[_qp][ph][v] += _fsp[ph].denthalpy_dZ * dZ_dvar[v];
263  }
264 
265  // The derivative of the mass fractions for each fluid component in each phase.
266  // Note: these are all calculated in terms of gas pressuse, so there is no
267  // capillary pressure effect, and hence no need to multiply by _dporepressure_dvar
268  for (unsigned int ph = 0; ph < _num_phases; ++ph)
269  for (unsigned int comp = 0; comp < _num_components; ++comp)
270  {
271  _dmass_frac_dvar[_qp][ph][comp][_pvar] = _fsp[ph].dmass_fraction_dp[comp];
272  _dmass_frac_dvar[_qp][ph][comp][_Zvar[0]] =
273  _fsp[ph].dmass_fraction_dZ[comp] * dZ_dvar[_Zvar[0]];
274  }
275 
276  // If the material properties are being evaluated at the qps, calculate the
277  // gradients as well. Note: only nodal properties are evaluated in
278  // initQpStatefulProperties(), so no need to check _is_initqp flag for qp
279  // properties
280  if (!_nodal_material)
281  {
282  // Second derivative of capillary pressure
283  Real d2pc = _pc.d2CapillaryPressure(_fsp[_aqueous_phase_number].saturation);
284 
285  (*_grads_qp)[_qp][_aqueous_phase_number] =
288  (*_grads_qp)[_qp][_gas_phase_number] = -(*_grads_qp)[_qp][_aqueous_phase_number];
289 
290  (*_gradp_qp)[_qp][_gas_phase_number] = _gas_gradp_qp[_qp];
291  (*_gradp_qp)[_qp][_aqueous_phase_number] =
292  _gas_gradp_qp[_qp] - dpc * (*_grads_qp)[_qp][_aqueous_phase_number];
293 
294  (*_dgradp_qp_dv)[_qp][_aqueous_phase_number][_pvar] =
295  -d2pc * (*_grads_qp)[_qp][_aqueous_phase_number] *
297  (*_dgradp_qp_dv)[_qp][_aqueous_phase_number][_Zvar[0]] =
298  -d2pc * (*_grads_qp)[_qp][_aqueous_phase_number] *
300 
301  (*_grad_mass_frac_qp)[_qp][_aqueous_phase_number][_aqueous_fluid_component] =
303  _gas_gradp_qp[_qp] +
305  (*_gradZ_qp[0])[_qp];
306  (*_grad_mass_frac_qp)[_qp][_aqueous_phase_number][_gas_fluid_component] =
307  -(*_grad_mass_frac_qp)[_qp][_aqueous_phase_number][_aqueous_fluid_component];
308  (*_grad_mass_frac_qp)[_qp][_gas_phase_number][_aqueous_fluid_component] =
309  _fsp[_gas_phase_number].dmass_fraction_dp[_aqueous_fluid_component] * _gas_gradp_qp[_qp] +
310  _fsp[_gas_phase_number].dmass_fraction_dZ[_aqueous_fluid_component] * (*_gradZ_qp[0])[_qp];
311  (*_grad_mass_frac_qp)[_qp][_gas_phase_number][_gas_fluid_component] =
312  -(*_grad_mass_frac_qp)[_qp][_gas_phase_number][_aqueous_fluid_component];
313  }
314 
315  // If Xnacl is a PorousFlow variable, add contribution to material properties
316  // due to the Xnacl component that are not included in
317  // PorousFlowFluidStateFlashBase::computeQpProperties();
318  if (_dictator.isPorousFlowVariable(_Xnacl_varnum))
319  {
320  // Derivative of saturation wrt variables
321  for (unsigned int ph = 0; ph < _num_phases; ++ph)
322  _dsaturation_dvar[_qp][ph][_Xvar] = _fsp[ph].dsaturation_dX;
323 
324  // Derivative of capillary pressure
325  Real dpc = _pc.dCapillaryPressure(_fsp[_aqueous_phase_number].saturation, _qp);
326 
327  // Derivative of porepressure wrt variables
328  if (_dictator.isPorousFlowVariable(_gas_porepressure_varnum))
329  {
330  if (!_nodal_material)
331  (*_dgradp_qp_dgradv)[_qp][_aqueous_phase_number][_Xvar] =
333 
334  // The aqueous phase porepressure is also a function of liquid saturation,
335  // which depends on Xnacl
338  }
339 
340  // Calculate derivatives of material properties wrt primary variables
341  // Derivative of Xnacl wrt variables
342  std::vector<Real> dX_dvar;
343  dX_dvar.assign(_num_pf_vars, 0.0);
344 
345  if (_dictator.isPorousFlowVariable(_Xvar))
346  dX_dvar[_Xvar] = 1.0;
347 
348  // Derivatives of properties wrt primary variables
349  for (unsigned int v = 0; v < _num_pf_vars; ++v)
350  for (unsigned int ph = 0; ph < _num_phases; ++ph)
351  {
352  // Derivative of density in each phase
353  _dfluid_density_dvar[_qp][ph][v] += _fsp[ph].ddensity_dX * dX_dvar[v];
354 
355  // Derivative of viscosity in each phase
356  _dfluid_viscosity_dvar[_qp][ph][v] += _fsp[ph].dviscosity_dX * dX_dvar[v];
357  }
358 
359  // The derivative of the mass fractions for each fluid component in each phase.
360  // Note: these are all calculated in terms of gas pressuse, so there is no
361  // capillary pressure effect, and hence no need to multiply by _dporepressure_dvar
362  for (unsigned int ph = 0; ph < _num_phases; ++ph)
363  for (unsigned int comp = 0; comp < _num_components; ++comp)
364  _dmass_frac_dvar[_qp][ph][comp][_Xvar] = _fsp[ph].dmass_fraction_dX[comp];
365 
366  // If the material properties are being evaluated at the qps, add the contribution
367  // to the gradients as well. Note: only nodal properties are evaluated in
368  // initQpStatefulProperties(), so no need to check _is_initqp flag for qp
369  // properties
370  if (!_nodal_material)
371  {
372  // Second derivative of capillary pressure
373  Real d2pc = _pc.d2CapillaryPressure(_fsp[_aqueous_phase_number].saturation, _qp);
374 
375  (*_grads_qp)[_qp][_aqueous_phase_number] +=
377 
378  (*_grads_qp)[_qp][_gas_phase_number] -=
380 
381  (*_gradp_qp)[_qp][_aqueous_phase_number] -=
383 
384  (*_dgradp_qp_dv)[_qp][_aqueous_phase_number][_Xvar] =
385  -d2pc * (*_grads_qp)[_qp][_aqueous_phase_number] *
387 
388  (*_grad_mass_frac_qp)[_qp][_aqueous_phase_number][_salt_component] = _grad_Xnacl_qp[_qp];
389  (*_grad_mass_frac_qp)[_qp][_aqueous_phase_number][_aqueous_fluid_component] +=
391  _grad_Xnacl_qp[_qp];
392  (*_grad_mass_frac_qp)[_qp][_aqueous_phase_number][_gas_fluid_component] -=
394  _grad_Xnacl_qp[_qp];
395  (*_grad_mass_frac_qp)[_qp][_gas_phase_number][_aqueous_fluid_component] +=
397  (*_grad_mass_frac_qp)[_qp][_gas_phase_number][_gas_fluid_component] -=
399  }
400  }
401 }
const unsigned int _gas_fluid_component
Fluid component number of the gas phase.
MaterialProperty< std::vector< std::vector< Real > > > & _dporepressure_dvar
d(porepressure)/d(PorousFlow variable)
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_enthalpy_dvar
Derivative of the fluid enthalpy for each phase wrt PorousFlow variables.
virtual void thermophysicalProperties()
Calculates all required thermophysical properties and derivatives for each phase and fluid component...
std::vector< const VariableGradient * > _gradZ_qp
Gradient(s) of total mass fraction(s) of the gas component(s) (only defined at the qps) ...
MaterialProperty< std::vector< Real > > & _fluid_density
Fluid density of each phase.
void setMaterialVectorSize() const
Size material property vectors and initialise with zeros.
MaterialProperty< std::vector< std::vector< Real > > > & _mass_frac
Mass fraction matrix.
std::vector< unsigned int > _Zvar
PorousFlow variable number of Z.
const unsigned int _num_pf_vars
Number of PorousFlow variables.
const PorousFlowCapillaryPressure & _pc
Capillary pressure UserObject.
MaterialProperty< std::vector< Real > > & _saturation
Computed nodal or qp saturation of the phases.
MaterialProperty< std::vector< std::vector< Real > > > & _dsaturation_dvar
d(saturation)/d(PorousFlow variable)
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_viscosity_dvar
Derivative of the fluid viscosity for each phase wrt PorousFlow variables.
std::vector< unsigned int > _Z_varnum
Moose variable number of Z.
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_dvar
Derivative of the fluid density for each phase wrt PorousFlow variables.
const unsigned int _aqueous_fluid_component
Fluid component number of the aqueous component.
const unsigned int _Xnacl_varnum
Salt mass fraction variable number.
const MaterialProperty< std::vector< Real > > & _dtemperature_dvar
Derivative of temperature wrt PorousFlow variables.
const unsigned int _gas_porepressure_varnum
Moose variable number of the gas porepressure.
const unsigned int _gas_phase_number
Phase number of the gas phase.
const unsigned int _pvar
PorousFlow variable number of the gas porepressure.
const VariableGradient & _gas_gradp_qp
Gradient of porepressure (only defined at the qps)
bool _is_initqp
Flag to indicate whether to calculate stateful properties.
virtual void computeQpProperties() override
MaterialProperty< std::vector< Real > > & _fluid_enthalpy
Enthalpy of each phase.
MaterialProperty< std::vector< Real > > & _fluid_viscosity
Viscosity of each phase.
const unsigned int _Xvar
Salt mass fraction PorousFlow variable number.
virtual Real d2CapillaryPressure(Real saturation, unsigned qp=0) const
Second derivative of capillary pressure wrt true saturation.
std::vector< FluidStateProperties > _fsp
FluidStateProperties data structure.
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_frac_dvar
Derivative of the mass fraction matrix with respect to the Porous Flow variables. ...
virtual Real dCapillaryPressure(Real saturation, unsigned qp=0) const
Derivative of capillary pressure wrt true saturation.
const unsigned int _num_components
Number of components.
const unsigned int _num_phases
Number of phases.
const unsigned int _aqueous_phase_number
Phase number of the aqueous phase.
MaterialProperty< std::vector< Real > > & _porepressure
Computed nodal or quadpoint values of porepressure of the phases.
const VariableGradient & _grad_Xnacl_qp
Gradient of salt mass fraction (only defined at the qps)
const unsigned int _salt_component
Salt component index.

◆ initQpStatefulProperties()

void PorousFlowFluidState::initQpStatefulProperties ( )
overrideprotectedvirtual

Reimplemented from PorousFlowVariableBase.

Definition at line 150 of file PorousFlowFluidState.C.

151 {
152  _is_initqp = true;
153  // Set the size of pressure and saturation vectors
155 
156  // Set the size of all other vectors
158 
160 
161  // Set the initial values of the properties at the nodes.
162  // Note: not required for qp materials as no old values at the qps are requested
163  if (_nodal_material)
164  {
166 
167  for (unsigned int ph = 0; ph < _num_phases; ++ph)
168  {
169  _saturation[_qp][ph] = _fsp[ph].saturation;
170  _porepressure[_qp][ph] = _fsp[ph].pressure;
171  _fluid_density[_qp][ph] = _fsp[ph].density;
172  _fluid_viscosity[_qp][ph] = _fsp[ph].viscosity;
173  _fluid_enthalpy[_qp][ph] = _fsp[ph].enthalpy;
174  _mass_frac[_qp][ph] = _fsp[ph].mass_fraction;
175  }
176  }
177 }
virtual void thermophysicalProperties()
Calculates all required thermophysical properties and derivatives for each phase and fluid component...
MaterialProperty< std::vector< Real > > & _fluid_density
Fluid density of each phase.
void setMaterialVectorSize() const
Size material property vectors and initialise with zeros.
MaterialProperty< std::vector< std::vector< Real > > > & _mass_frac
Mass fraction matrix.
MaterialProperty< std::vector< Real > > & _saturation
Computed nodal or qp saturation of the phases.
virtual void initQpStatefulProperties() override
bool _is_initqp
Flag to indicate whether to calculate stateful properties.
MaterialProperty< std::vector< Real > > & _fluid_enthalpy
Enthalpy of each phase.
MaterialProperty< std::vector< Real > > & _fluid_viscosity
Viscosity of each phase.
std::vector< FluidStateProperties > _fsp
FluidStateProperties data structure.
const unsigned int _num_phases
Number of phases.
MaterialProperty< std::vector< Real > > & _porepressure
Computed nodal or quadpoint values of porepressure of the phases.

◆ setMaterialVectorSize()

void PorousFlowFluidState::setMaterialVectorSize ( ) const
protected

Size material property vectors and initialise with zeros.

Definition at line 404 of file PorousFlowFluidState.C.

Referenced by computeQpProperties(), and initQpStatefulProperties().

405 {
406  _fluid_density[_qp].assign(_num_phases, 0.0);
407  _fluid_viscosity[_qp].assign(_num_phases, 0.0);
408  _fluid_enthalpy[_qp].assign(_num_phases, 0.0);
409  _mass_frac[_qp].resize(_num_phases);
410 
411  // Derivatives and gradients are not required in initQpStatefulProperties
412  if (!_is_initqp)
413  {
414  _dfluid_density_dvar[_qp].resize(_num_phases);
415  _dfluid_viscosity_dvar[_qp].resize(_num_phases);
416  _dfluid_enthalpy_dvar[_qp].resize(_num_phases);
417  _dmass_frac_dvar[_qp].resize(_num_phases);
418 
419  if (!_nodal_material)
420  (*_grad_mass_frac_qp)[_qp].resize(_num_phases);
421 
422  for (unsigned int ph = 0; ph < _num_phases; ++ph)
423  {
424  _dfluid_density_dvar[_qp][ph].assign(_num_pf_vars, 0.0);
425  _dfluid_viscosity_dvar[_qp][ph].assign(_num_pf_vars, 0.0);
426  _dfluid_enthalpy_dvar[_qp][ph].assign(_num_pf_vars, 0.0);
427  _dmass_frac_dvar[_qp][ph].resize(_num_components);
428 
429  for (unsigned int comp = 0; comp < _num_components; ++comp)
430  _dmass_frac_dvar[_qp][ph][comp].assign(_num_pf_vars, 0.0);
431 
432  if (!_nodal_material)
433  (*_grad_mass_frac_qp)[_qp][ph].assign(_num_components, RealGradient());
434  }
435  }
436 }
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_enthalpy_dvar
Derivative of the fluid enthalpy for each phase wrt PorousFlow variables.
MaterialProperty< std::vector< Real > > & _fluid_density
Fluid density of each phase.
MaterialProperty< std::vector< std::vector< Real > > > & _mass_frac
Mass fraction matrix.
const unsigned int _num_pf_vars
Number of PorousFlow variables.
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_viscosity_dvar
Derivative of the fluid viscosity for each phase wrt PorousFlow variables.
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_dvar
Derivative of the fluid density for each phase wrt PorousFlow variables.
bool _is_initqp
Flag to indicate whether to calculate stateful properties.
MaterialProperty< std::vector< Real > > & _fluid_enthalpy
Enthalpy of each phase.
MaterialProperty< std::vector< Real > > & _fluid_viscosity
Viscosity of each phase.
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_frac_dvar
Derivative of the mass fraction matrix with respect to the Porous Flow variables. ...
const unsigned int _num_components
Number of components.
const unsigned int _num_phases
Number of phases.

◆ thermophysicalProperties()

void PorousFlowFluidState::thermophysicalProperties ( )
protectedvirtual

Calculates all required thermophysical properties and derivatives for each phase and fluid component.

Must override in all derived classes.

Definition at line 141 of file PorousFlowFluidState.C.

Referenced by computeQpProperties(), and initQpStatefulProperties().

142 {
143  // The FluidProperty objects use temperature in K
144  Real Tk = _temperature[_qp] + _T_c2k;
145 
146  _fs.thermophysicalProperties(_gas_porepressure[_qp], Tk, _Xnacl[_qp], (*_Z[0])[_qp], _qp, _fsp);
147 }
const MaterialProperty< Real > & _temperature
Temperature.
const VariableValue & _Xnacl
Salt mass fraction (kg/kg)
const PorousFlowFluidStateBase & _fs
FluidState UserObject.
const VariableValue & _gas_porepressure
Porepressure.
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...
std::vector< FluidStateProperties > _fsp
FluidStateProperties data structure.
const Real _T_c2k
Conversion from degrees Celsius to degrees Kelvin.
std::vector< const VariableValue * > _Z
Total mass fraction(s) of the gas component(s) summed over all phases.

Member Data Documentation

◆ _aqueous_fluid_component

const unsigned int PorousFlowFluidState::_aqueous_fluid_component
protected

Fluid component number of the aqueous component.

Definition at line 102 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _aqueous_phase_number

const unsigned int PorousFlowFluidState::_aqueous_phase_number
protected

Phase number of the aqueous phase.

Definition at line 98 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _dfluid_density_dvar

MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowFluidState::_dfluid_density_dvar
protected

Derivative of the fluid density for each phase wrt PorousFlow variables.

Definition at line 125 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), and setMaterialVectorSize().

◆ _dfluid_enthalpy_dvar

MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowFluidState::_dfluid_enthalpy_dvar
protected

Derivative of the fluid enthalpy for each phase wrt PorousFlow variables.

Definition at line 133 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), and setMaterialVectorSize().

◆ _dfluid_viscosity_dvar

MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowFluidState::_dfluid_viscosity_dvar
protected

Derivative of the fluid viscosity for each phase wrt PorousFlow variables.

Definition at line 129 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), and setMaterialVectorSize().

◆ _dgradp_qp_dgradv

MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowVariableBase::_dgradp_qp_dgradv
protectedinherited

d(grad porepressure)/d(grad PorousFlow variable) at the quadpoints

Definition at line 54 of file PorousFlowVariableBase.h.

◆ _dgradp_qp_dv

MaterialProperty<std::vector<std::vector<RealGradient> > >* const PorousFlowVariableBase::_dgradp_qp_dv
protectedinherited

d(grad porepressure)/d(PorousFlow variable) at the quadpoints

Definition at line 57 of file PorousFlowVariableBase.h.

◆ _dgrads_qp_dgradv

MaterialProperty<std::vector<std::vector<Real> > >* const PorousFlowVariableBase::_dgrads_qp_dgradv
protectedinherited

d(grad saturation)/d(grad PorousFlow variable) at the quadpoints

Definition at line 69 of file PorousFlowVariableBase.h.

◆ _dgrads_qp_dv

MaterialProperty<std::vector<std::vector<RealGradient> > >* const PorousFlowVariableBase::_dgrads_qp_dv
protectedinherited

d(grad saturation)/d(PorousFlow variable) at the quadpoints

Definition at line 72 of file PorousFlowVariableBase.h.

◆ _dmass_frac_dvar

MaterialProperty<std::vector<std::vector<std::vector<Real> > > >& PorousFlowFluidState::_dmass_frac_dvar
protected

Derivative of the mass fraction matrix with respect to the Porous Flow variables.

Definition at line 118 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), and setMaterialVectorSize().

◆ _dporepressure_dvar

MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowVariableBase::_dporepressure_dvar
protectedinherited

◆ _dsaturation_dvar

MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowVariableBase::_dsaturation_dvar
protectedinherited

◆ _dtemperature_dvar

const MaterialProperty<std::vector<Real> >& PorousFlowFluidState::_dtemperature_dvar
protected

Derivative of temperature wrt PorousFlow variables.

Definition at line 112 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _fluid_density

MaterialProperty<std::vector<Real> >& PorousFlowFluidState::_fluid_density
protected

Fluid density of each phase.

Definition at line 123 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), initQpStatefulProperties(), and setMaterialVectorSize().

◆ _fluid_enthalpy

MaterialProperty<std::vector<Real> >& PorousFlowFluidState::_fluid_enthalpy
protected

Enthalpy of each phase.

Definition at line 131 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), initQpStatefulProperties(), and setMaterialVectorSize().

◆ _fluid_viscosity

MaterialProperty<std::vector<Real> >& PorousFlowFluidState::_fluid_viscosity
protected

Viscosity of each phase.

Definition at line 127 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), initQpStatefulProperties(), and setMaterialVectorSize().

◆ _fs

const PorousFlowFluidStateBase& PorousFlowFluidState::_fs
protected

FluidState UserObject.

Definition at line 96 of file PorousFlowFluidState.h.

Referenced by PorousFlowFluidState(), and thermophysicalProperties().

◆ _fsp

std::vector<FluidStateProperties> PorousFlowFluidState::_fsp
protected

◆ _gas_fluid_component

const unsigned int PorousFlowFluidState::_gas_fluid_component
protected

Fluid component number of the gas phase.

Definition at line 104 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _gas_gradp_qp

const VariableGradient& PorousFlowFluidState::_gas_gradp_qp
protected

Gradient of porepressure (only defined at the qps)

Definition at line 72 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _gas_phase_number

const unsigned int PorousFlowFluidState::_gas_phase_number
protected

Phase number of the gas phase.

Definition at line 100 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _gas_porepressure

const VariableValue& PorousFlowFluidState::_gas_porepressure
protected

Porepressure.

Definition at line 70 of file PorousFlowFluidState.h.

Referenced by thermophysicalProperties().

◆ _gas_porepressure_varnum

const unsigned int PorousFlowFluidState::_gas_porepressure_varnum
protected

Moose variable number of the gas porepressure.

Definition at line 74 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _grad_mass_frac_qp

MaterialProperty<std::vector<std::vector<RealGradient> > >* PorousFlowFluidState::_grad_mass_frac_qp
protected

Gradient of the mass fraction matrix (only defined at the qps)

Definition at line 116 of file PorousFlowFluidState.h.

◆ _grad_Xnacl_qp

const VariableGradient& PorousFlowFluidState::_grad_Xnacl_qp
protected

Gradient of salt mass fraction (only defined at the qps)

Definition at line 90 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _gradp_qp

MaterialProperty<std::vector<RealGradient> >* const PorousFlowVariableBase::_gradp_qp
protectedinherited

Grad(p) at the quadpoints.

Definition at line 51 of file PorousFlowVariableBase.h.

◆ _grads_qp

MaterialProperty<std::vector<RealGradient> >* const PorousFlowVariableBase::_grads_qp
protectedinherited

Grad(s) at the quadpoints.

Definition at line 66 of file PorousFlowVariableBase.h.

◆ _gradT_qp

const MaterialProperty<RealGradient>& PorousFlowFluidState::_gradT_qp
protected

Gradient of temperature (only defined at the qps)

Definition at line 110 of file PorousFlowFluidState.h.

◆ _gradZ_qp

std::vector<const VariableGradient *> PorousFlowFluidState::_gradZ_qp
protected

Gradient(s) of total mass fraction(s) of the gas component(s) (only defined at the qps)

Definition at line 80 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), and PorousFlowFluidState().

◆ _is_initqp

bool PorousFlowFluidState::_is_initqp
protected

Flag to indicate whether to calculate stateful properties.

Definition at line 138 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), initQpStatefulProperties(), and setMaterialVectorSize().

◆ _mass_frac

MaterialProperty<std::vector<std::vector<Real> > >& PorousFlowFluidState::_mass_frac
protected

Mass fraction matrix.

Definition at line 114 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), initQpStatefulProperties(), and setMaterialVectorSize().

◆ _num_components

const unsigned int PorousFlowVariableBase::_num_components
protectedinherited

Number of components.

Definition at line 39 of file PorousFlowVariableBase.h.

Referenced by computeQpProperties(), PorousFlowFluidState(), and setMaterialVectorSize().

◆ _num_pf_vars

const unsigned int PorousFlowVariableBase::_num_pf_vars
protectedinherited

Number of PorousFlow variables.

Definition at line 42 of file PorousFlowVariableBase.h.

Referenced by PorousFlowVariableBase::computeQpProperties(), computeQpProperties(), and setMaterialVectorSize().

◆ _num_phases

const unsigned int PorousFlowVariableBase::_num_phases
protectedinherited

◆ _num_Z_vars

const unsigned int PorousFlowFluidState::_num_Z_vars
protected

Number of coupled total mass fractions. Should be _num_phases - 1.

Definition at line 86 of file PorousFlowFluidState.h.

Referenced by PorousFlowFluidState().

◆ _pc

const PorousFlowCapillaryPressure& PorousFlowFluidState::_pc
protected

Capillary pressure UserObject.

Definition at line 142 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _porepressure

MaterialProperty<std::vector<Real> >& PorousFlowVariableBase::_porepressure
protectedinherited

◆ _pvar

const unsigned int PorousFlowFluidState::_pvar
protected

PorousFlow variable number of the gas porepressure.

Definition at line 76 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _salt_component

const unsigned int PorousFlowFluidState::_salt_component
protected

Salt component index.

Definition at line 106 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _saturation

MaterialProperty<std::vector<Real> >& PorousFlowVariableBase::_saturation
protectedinherited

◆ _saturation_old

const MaterialProperty<std::vector<Real> >& PorousFlowFluidState::_saturation_old
protected

Old value of saturation.

Definition at line 120 of file PorousFlowFluidState.h.

◆ _T_c2k

const Real PorousFlowFluidState::_T_c2k
protected

Conversion from degrees Celsius to degrees Kelvin.

Definition at line 136 of file PorousFlowFluidState.h.

Referenced by thermophysicalProperties().

◆ _temperature

const MaterialProperty<Real>& PorousFlowFluidState::_temperature
protected

Temperature.

Definition at line 108 of file PorousFlowFluidState.h.

Referenced by thermophysicalProperties().

◆ _Xnacl

const VariableValue& PorousFlowFluidState::_Xnacl
protected

Salt mass fraction (kg/kg)

Definition at line 88 of file PorousFlowFluidState.h.

Referenced by thermophysicalProperties().

◆ _Xnacl_varnum

const unsigned int PorousFlowFluidState::_Xnacl_varnum
protected

Salt mass fraction variable number.

Definition at line 92 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _Xvar

const unsigned int PorousFlowFluidState::_Xvar
protected

Salt mass fraction PorousFlow variable number.

Definition at line 94 of file PorousFlowFluidState.h.

Referenced by computeQpProperties().

◆ _Z

std::vector<const VariableValue *> PorousFlowFluidState::_Z
protected

Total mass fraction(s) of the gas component(s) summed over all phases.

Definition at line 78 of file PorousFlowFluidState.h.

Referenced by PorousFlowFluidState(), and thermophysicalProperties().

◆ _Z_varnum

std::vector<unsigned int> PorousFlowFluidState::_Z_varnum
protected

Moose variable number of Z.

Definition at line 82 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), and PorousFlowFluidState().

◆ _Zvar

std::vector<unsigned int> PorousFlowFluidState::_Zvar
protected

PorousFlow variable number of Z.

Definition at line 84 of file PorousFlowFluidState.h.

Referenced by computeQpProperties(), and PorousFlowFluidState().


The documentation for this class was generated from the following files: