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");
45 params.
addParam<SolverSystemName>(
"solver_sys",
"Name of the solver system for the porepressure");
53 _num_variables(coupledComponents(
"porous_flow_vars")),
54 _num_phases(getParam<unsigned
int>(
"number_fluid_phases")),
55 _num_components(getParam<unsigned
int>(
"number_fluid_components")),
56 _num_aqueous_equilibrium(getParam<unsigned
int>(
"number_aqueous_equilibrium")),
57 _num_aqueous_kinetic(getParam<unsigned
int>(
"number_aqueous_kinetic")),
58 _aqueous_phase_number(getParam<unsigned
int>(
"aqueous_phase_number")),
59 _consistent_fe_type(false),
87 mooseError(
"PorousFlowDictator: AuxVariables variables must not be coupled into the Dictator "
88 "for this is against specification #1984. Variable '",
90 "' is either an AuxVariable or from a different nonlinear system.");
94 mooseError(
"PorousflowDictator: The aqueous phase number must be less than the number of fluid "
95 "phases. The Dictator does not appreciate jokes.");
142 mooseError(
"The Dictator proclaims that the moose variable with number ",
144 " is not a PorousFlow variable. Exiting with error code 1984.");
152 mooseError(
"The Dictator proclaims that there is no such PorousFlow variable with number ",
154 ". Exiting with error code 1984.");
registerMooseObject("PorousFlowApp", PorousFlowDictator)
void ErrorVector unsigned int
const MooseVariableFieldBase * getFieldVar(const std::string &var_name, unsigned int comp) const
VariableName coupledName(const std::string &var_name, unsigned int comp=0) const
virtual unsigned int coupled(const std::string &var_name, unsigned int comp=0) const
static InputParameters validParams()
void mooseError(Args &&... args) const
virtual bool isFV() const
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
unsigned int numPhases() const
The number of fluid phases.
bool _consistent_fe_type
Whether the porous_flow_vars all have the same fe_type.
unsigned int numVariables() const
The number of PorousFlow variables.
bool _is_fv
Whether the PorousFlow variables are finite-volume variables.
std::vector< unsigned int > _pf_var_num
_pf_var_num[i] = the porous flow variable corresponding to moose variable i
unsigned int numAqueousEquilibrium() const
The number of aqueous equilibrium secondary species.
unsigned int aqueousPhaseNumber() const
The aqueous phase number.
const unsigned int _num_aqueous_equilibrium
Number of aqueous-equilibrium secondary species.
unsigned int numComponents() const
The number of fluid components.
libMesh::FEType feType() const
The FEType of the first porous_flow_variable.
bool _perm_derivs
Indicates whether the simulation includes derivatives of permeability.
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
libMesh::FEType _fe_type
FE type used by the PorousFlow variables.
const unsigned int _aqueous_phase_number
Aqueous phase number.
unsigned int numAqueousKinetic() const
The number of aqueous kinetic secondary species.
const unsigned int _num_components
Number of fluid components.
bool isPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is a porous flow variable.
const unsigned int _num_phases
Number of fluid phases.
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
bool isFV() const
Whether the PorousFlow variables are finite-volume variables.
bool consistentFEType() const
Whether the porous_flow_vars all have the same FEType or if no porous_flow_vars were provided.
unsigned int mooseVariableNum(unsigned int porous_flow_var_num) const
The Moose variable number.
std::vector< unsigned int > _moose_var_num
_moose_var_num[i] = the moose variable number corresponding to porous flow variable i
const unsigned int _num_aqueous_kinetic
Number of aqeuous-kinetic secondary species that are involved in mineralisation.
PorousFlowDictator(const InputParameters ¶meters)
static InputParameters validParams()
const unsigned int _num_variables
Number of PorousFlow variables.
virtual unsigned int nVariables() const