www.mooseframework.org
PorousFlowFluidState.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "PorousFlowVariableBase.h"
14 
17 
18 template <>
19 InputParameters validParams<PorousFlowFluidState>();
20 
51 {
52 public:
53  PorousFlowFluidState(const InputParameters & parameters);
54 
55 protected:
56  virtual void initQpStatefulProperties() override;
57  virtual void computeQpProperties() override;
58 
60  void setMaterialVectorSize() const;
61 
66  virtual void thermophysicalProperties();
67 
69  const VariableValue & _gas_porepressure;
71  const VariableGradient & _gas_gradp_qp;
73  const unsigned int _gas_porepressure_varnum;
75  const unsigned int _pvar;
77  std::vector<const VariableValue *> _Z;
79  std::vector<const VariableGradient *> _gradZ_qp;
81  std::vector<unsigned int> _Z_varnum;
83  std::vector<unsigned int> _Zvar;
85  const unsigned int _num_Z_vars;
87  const VariableValue & _Xnacl;
89  const VariableGradient & _grad_Xnacl_qp;
91  const unsigned int _Xnacl_varnum;
93  const unsigned int _Xvar;
97  const unsigned int _aqueous_phase_number;
99  const unsigned int _gas_phase_number;
101  const unsigned int _aqueous_fluid_component;
103  const unsigned int _gas_fluid_component;
105  const unsigned int _salt_component;
107  const MaterialProperty<Real> & _temperature;
109  const MaterialProperty<RealGradient> & _gradT_qp;
111  const MaterialProperty<std::vector<Real>> & _dtemperature_dvar;
113  const unsigned int _temperature_varnum;
115  const unsigned int _Tvar;
117  MaterialProperty<std::vector<std::vector<Real>>> & _mass_frac;
119  MaterialProperty<std::vector<std::vector<RealGradient>>> * _grad_mass_frac_qp;
121  MaterialProperty<std::vector<std::vector<std::vector<Real>>>> & _dmass_frac_dvar;
122 
124  MaterialProperty<std::vector<Real>> & _fluid_density;
126  MaterialProperty<std::vector<std::vector<Real>>> & _dfluid_density_dvar;
128  MaterialProperty<std::vector<Real>> & _fluid_viscosity;
130  MaterialProperty<std::vector<std::vector<Real>>> & _dfluid_viscosity_dvar;
132  MaterialProperty<std::vector<Real>> & _fluid_enthalpy;
134  MaterialProperty<std::vector<std::vector<Real>>> & _dfluid_enthalpy_dvar;
136  MaterialProperty<std::vector<Real>> & _fluid_internal_energy;
138  MaterialProperty<std::vector<std::vector<Real>>> & _dfluid_internal_energy_dvar;
139 
141  const Real _T_c2k;
145  std::vector<FluidStateProperties> _fsp;
149  const unsigned int _pidx;
151  const unsigned int _Tidx;
153  const unsigned int _Zidx;
155  const unsigned int _Xidx;
156 };
PorousFlowFluidState::_fluid_density
MaterialProperty< std::vector< Real > > & _fluid_density
Fluid density of each phase.
Definition: PorousFlowFluidState.h:124
PorousFlowFluidState::_Z
std::vector< const VariableValue * > _Z
Total mass fraction(s) of the gas component(s) summed over all phases.
Definition: PorousFlowFluidState.h:77
PorousFlowFluidState::_aqueous_phase_number
const unsigned int _aqueous_phase_number
Phase number of the aqueous phase.
Definition: PorousFlowFluidState.h:97
PorousFlowFluidState::_Xidx
const unsigned int _Xidx
Index of derivative wrt salt mass fraction X.
Definition: PorousFlowFluidState.h:155
PorousFlowFluidState::_gradZ_qp
std::vector< const VariableGradient * > _gradZ_qp
Gradient(s) of total mass fraction(s) of the gas component(s) (only defined at the qps)
Definition: PorousFlowFluidState.h:79
PorousFlowFluidState::_aqueous_fluid_component
const unsigned int _aqueous_fluid_component
Fluid component number of the aqueous component.
Definition: PorousFlowFluidState.h:101
PorousFlowFluidState::PorousFlowFluidState
PorousFlowFluidState(const InputParameters &parameters)
Definition: PorousFlowFluidState.C:38
PorousFlowFluidStateMultiComponentBase
Compositional flash routines for miscible multiphase flow classes with multiple fluid components.
Definition: PorousFlowFluidStateMultiComponentBase.h:23
PorousFlowFluidState
Fluid state class using a persistent set of primary variables for the mutliphase, multicomponent case...
Definition: PorousFlowFluidState.h:50
PorousFlowFluidState::_dfluid_density_dvar
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_dvar
Derivative of the fluid density for each phase wrt PorousFlow variables.
Definition: PorousFlowFluidState.h:126
PorousFlowFluidState::_gas_porepressure_varnum
const unsigned int _gas_porepressure_varnum
Moose variable number of the gas porepressure.
Definition: PorousFlowFluidState.h:73
PorousFlowFluidState::_fluid_enthalpy
MaterialProperty< std::vector< Real > > & _fluid_enthalpy
Enthalpy of each phase.
Definition: PorousFlowFluidState.h:132
PorousFlowFluidState::_dfluid_viscosity_dvar
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_viscosity_dvar
Derivative of the fluid viscosity for each phase wrt PorousFlow variables.
Definition: PorousFlowFluidState.h:130
PorousFlowCapillaryPressure
Base class for capillary pressure for multiphase flow in porous media.
Definition: PorousFlowCapillaryPressure.h:39
PorousFlowFluidState::_Tvar
const unsigned int _Tvar
PorousFlow variable number of the temperature.
Definition: PorousFlowFluidState.h:115
validParams< PorousFlowFluidState >
InputParameters validParams< PorousFlowFluidState >()
Definition: PorousFlowFluidState.C:17
PorousFlowFluidState::_grad_Xnacl_qp
const VariableGradient & _grad_Xnacl_qp
Gradient of salt mass fraction (only defined at the qps)
Definition: PorousFlowFluidState.h:89
PorousFlowFluidState::_fs
const PorousFlowFluidStateMultiComponentBase & _fs
FluidState UserObject.
Definition: PorousFlowFluidState.h:95
PorousFlowFluidState::_pidx
const unsigned int _pidx
Index of derivative wrt pressure.
Definition: PorousFlowFluidState.h:149
PorousFlowFluidState::_grad_mass_frac_qp
MaterialProperty< std::vector< std::vector< RealGradient > > > * _grad_mass_frac_qp
Gradient of the mass fraction matrix (only defined at the qps)
Definition: PorousFlowFluidState.h:119
PorousFlowVariableBase
Base class for thermophysical variable materials, which assemble materials for primary variables such...
Definition: PorousFlowVariableBase.h:25
PorousFlowFluidState::_num_Z_vars
const unsigned int _num_Z_vars
Number of coupled total mass fractions. Should be _num_phases - 1.
Definition: PorousFlowFluidState.h:85
PorousFlowFluidState::_Xnacl_varnum
const unsigned int _Xnacl_varnum
Salt mass fraction variable number.
Definition: PorousFlowFluidState.h:91
PorousFlowFluidState::setMaterialVectorSize
void setMaterialVectorSize() const
Size material property vectors and initialise with zeros.
Definition: PorousFlowFluidState.C:394
PorousFlowFluidState::_gas_porepressure
const VariableValue & _gas_porepressure
Porepressure.
Definition: PorousFlowFluidState.h:69
PorousFlowFluidState::computeQpProperties
virtual void computeQpProperties() override
Definition: PorousFlowFluidState.C:195
PorousFlowFluidState::_fluid_internal_energy
MaterialProperty< std::vector< Real > > & _fluid_internal_energy
Internal energy of each phase.
Definition: PorousFlowFluidState.h:136
PorousFlowFluidStateMultiComponentBase.h
PorousFlowFluidState::_Z_varnum
std::vector< unsigned int > _Z_varnum
Moose variable number of Z.
Definition: PorousFlowFluidState.h:81
PorousFlowFluidState::_gas_phase_number
const unsigned int _gas_phase_number
Phase number of the gas phase.
Definition: PorousFlowFluidState.h:99
PorousFlowFluidState::_mass_frac
MaterialProperty< std::vector< std::vector< Real > > > & _mass_frac
Mass fraction matrix.
Definition: PorousFlowFluidState.h:117
PorousFlowFluidState::_gas_fluid_component
const unsigned int _gas_fluid_component
Fluid component number of the gas phase.
Definition: PorousFlowFluidState.h:103
PorousFlowFluidState::_Zidx
const unsigned int _Zidx
Index of derivative wrt total mass fraction Z.
Definition: PorousFlowFluidState.h:153
PorousFlowFluidState::_salt_component
const unsigned int _salt_component
Salt component index.
Definition: PorousFlowFluidState.h:105
PorousFlowFluidState::_dtemperature_dvar
const MaterialProperty< std::vector< Real > > & _dtemperature_dvar
Derivative of temperature wrt PorousFlow variables.
Definition: PorousFlowFluidState.h:111
PorousFlowFluidState::_gas_gradp_qp
const VariableGradient & _gas_gradp_qp
Gradient of porepressure (only defined at the qps)
Definition: PorousFlowFluidState.h:71
PorousFlowFluidState::thermophysicalProperties
virtual void thermophysicalProperties()
Calculates all required thermophysical properties and derivatives for each phase and fluid component.
Definition: PorousFlowFluidState.C:157
PorousFlowFluidState::_dfluid_enthalpy_dvar
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_enthalpy_dvar
Derivative of the fluid enthalpy for each phase wrt PorousFlow variables.
Definition: PorousFlowFluidState.h:134
PorousFlowFluidState::_dmass_frac_dvar
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_frac_dvar
Derivative of the mass fraction matrix with respect to the Porous Flow variables.
Definition: PorousFlowFluidState.h:121
PorousFlowFluidState::_gradT_qp
const MaterialProperty< RealGradient > & _gradT_qp
Gradient of temperature (only defined at the qps)
Definition: PorousFlowFluidState.h:109
PorousFlowFluidState::_is_initqp
bool _is_initqp
Flag to indicate whether to calculate stateful properties.
Definition: PorousFlowFluidState.h:143
PorousFlowFluidState::_Tidx
const unsigned int _Tidx
Index of derivative wrt temperature.
Definition: PorousFlowFluidState.h:151
PorousFlowFluidState::_Zvar
std::vector< unsigned int > _Zvar
PorousFlow variable number of Z.
Definition: PorousFlowFluidState.h:83
PorousFlowFluidState::_fluid_viscosity
MaterialProperty< std::vector< Real > > & _fluid_viscosity
Viscosity of each phase.
Definition: PorousFlowFluidState.h:128
PorousFlowVariableBase.h
PorousFlowFluidState::_pc
const PorousFlowCapillaryPressure & _pc
Capillary pressure UserObject.
Definition: PorousFlowFluidState.h:147
PorousFlowFluidState::_Xvar
const unsigned int _Xvar
Salt mass fraction PorousFlow variable number.
Definition: PorousFlowFluidState.h:93
PorousFlowFluidState::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: PorousFlowFluidState.C:166
PorousFlowFluidState::_dfluid_internal_energy_dvar
MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_internal_energy_dvar
Derivative of the fluid internal energy for each phase wrt PorousFlow variables.
Definition: PorousFlowFluidState.h:138
PorousFlowFluidState::_temperature
const MaterialProperty< Real > & _temperature
Temperature.
Definition: PorousFlowFluidState.h:107
PorousFlowFluidState::_pvar
const unsigned int _pvar
PorousFlow variable number of the gas porepressure.
Definition: PorousFlowFluidState.h:75
PorousFlowFluidState::_T_c2k
const Real _T_c2k
Conversion from degrees Celsius to degrees Kelvin.
Definition: PorousFlowFluidState.h:141
PorousFlowFluidState::_temperature_varnum
const unsigned int _temperature_varnum
Moose variable number of the temperature.
Definition: PorousFlowFluidState.h:113
PorousFlowFluidState::_fsp
std::vector< FluidStateProperties > _fsp
FluidStateProperties data structure.
Definition: PorousFlowFluidState.h:145
PorousFlowFluidState::_Xnacl
const VariableValue & _Xnacl
Salt mass fraction (kg/kg)
Definition: PorousFlowFluidState.h:87