21 "List of primary variables that are used in the PorousFlow " 22 "simulation. Jacobian entries involving derivatives wrt these " 23 "variables will be computed. In single-phase models you will just " 24 "have one (eg \'pressure\'), in two-phase models you will have two " 25 "(eg \'p_water p_gas\', or \'p_water s_water\'), etc.");
27 "The number of fluid phases in the simulation");
29 "The number of fluid components in the simulation");
30 params.
addParam<
unsigned int>(
"number_aqueous_equilibrium",
32 "The number of secondary species in the aqueous-equilibrium " 33 "reaction system. (Leave as zero if the simulation does not " 34 "involve chemistry)");
35 params.
addParam<
unsigned int>(
"number_aqueous_kinetic",
37 "The number of secondary species in the aqueous-kinetic reaction " 38 "system involved in precipitation and dissolution. (Leave as zero " 39 "if the simulation does not involve chemistry)");
40 params.
addParam<
unsigned int>(
"aqueous_phase_number",
42 "The fluid phase number of the aqueous phase in which the " 43 "equilibrium and kinetic chemical reactions occur");
50 _num_variables(coupledComponents(
"porous_flow_vars")),
51 _num_phases(getParam<unsigned
int>(
"number_fluid_phases")),
52 _num_components(getParam<unsigned
int>(
"number_fluid_components")),
53 _num_aqueous_equilibrium(getParam<unsigned
int>(
"number_aqueous_equilibrium")),
54 _num_aqueous_kinetic(getParam<unsigned
int>(
"number_aqueous_kinetic")),
55 _aqueous_phase_number(getParam<unsigned
int>(
"aqueous_phase_number")),
56 _consistent_fe_type(false),
81 mooseError(
"PorousFlowDictator: AuxVariables variables must not be coupled into the Dictator " 82 "for this is against specification #1984. Variable number ",
84 " is an AuxVariable.");
87 mooseError(
"PorousflowDictator: The aqueous phase number must be less than the number of fluid " 88 "phases. The Dictator does not appreciate jokes.");
135 mooseError(
"The Dictator proclaims that the moose variable with number ",
137 " is not a PorousFlow variable. Exiting with error code 1984.");
145 mooseError(
"The Dictator proclaims that there is no such PorousFlow variable with number ",
147 ". Exiting with error code 1984.");
bool _perm_derivs
Indicates whether the simulation includes derivatives of permeability.
const unsigned int _num_aqueous_equilibrium
Number of aqueous-equilibrium secondary species.
FEType feType() const
The FEType of the first porous_flow_variable.
virtual unsigned int coupled(const std::string &var_name, unsigned int comp=0) const
const unsigned int _num_aqueous_kinetic
Number of aqeuous-kinetic secondary species that are involved in mineralisation.
bool _consistent_fe_type
Whether the porous_flow_vars all have the same fe_type.
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
const unsigned int _num_components
Number of fluid components.
static InputParameters validParams()
registerMooseObject("PorousFlowApp", PorousFlowDictator)
const unsigned int _num_variables
Number of PorousFlow variables.
unsigned int numComponents() const
The number of fluid components.
unsigned int aqueousPhaseNumber() const
The aqueous phase number.
bool isPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is a porous flow variable.
PorousFlowDictator(const InputParameters ¶meters)
virtual unsigned int nVariables() const
FEType _fe_type
FE type used by the PorousFlow variables.
std::vector< unsigned int > _pf_var_num
_pf_var_num[i] = the porous flow variable corresponding to moose variable i
const unsigned int _aqueous_phase_number
Aqueous phase number.
unsigned int mooseVariableNum(unsigned int porous_flow_var_num) const
The Moose variable number.
unsigned int numPhases() const
The number of fluid phases.
unsigned int numVariables() const
The number of PorousFlow variables.
unsigned int numAqueousKinetic() const
The number of aqueous kinetic secondary species.
static InputParameters validParams()
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
std::vector< unsigned int > _moose_var_num
_moose_var_num[i] = the moose variable number corresponding to porous flow variable i ...
void mooseError(Args &&... args) const
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
unsigned int numAqueousEquilibrium() const
The number of aqueous equilibrium secondary species.
void ErrorVector unsigned int
const unsigned int _num_phases
Number of fluid phases.
bool consistentFEType() const
Whether the porous_flow_vars all have the same FEType or if no porous_flow_vars were provided...
const MooseVariableFieldBase * getFieldVar(const std::string &var_name, unsigned int comp) const