www.mooseframework.org
PorousFlowDictator.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 "GeneralUserObject.h"
13 #include "Coupleable.h"
14 
15 class PorousFlowDictator;
16 
17 template <>
18 InputParameters validParams<PorousFlowDictator>();
19 
71 class PorousFlowDictator : public GeneralUserObject, public Coupleable
72 {
73 public:
74  PorousFlowDictator(const InputParameters & parameters);
75 
76  virtual void initialize() override{};
77  virtual void execute() override{};
78  virtual void finalize() override{};
79 
85  unsigned int numVariables() const;
86 
88  unsigned int numPhases() const;
89 
91  unsigned int numComponents() const;
92 
94  unsigned int numAqueousEquilibrium() const;
95 
97  unsigned int numAqueousKinetic() const;
98 
100  unsigned int aqueousPhaseNumber() const;
101 
109  unsigned int porousFlowVariableNum(unsigned int moose_var_num) const;
110 
118  unsigned int mooseVariableNum(unsigned int porous_flow_var_num) const;
119 
127  bool isPorousFlowVariable(unsigned int moose_var_num) const;
128 
136  bool notPorousFlowVariable(unsigned int moose_var_num) const;
137 
142  bool consistentFEType() const;
143 
149  FEType feType() const;
150 
156  bool usePermDerivs() const { return _perm_derivs; };
157 
161  void usePermDerivs(bool flag) const { _perm_derivs = flag; };
162 
163 protected:
165  const unsigned int _num_variables;
166 
168  const unsigned int _num_phases;
169 
171  const unsigned int _num_components;
172 
174  const unsigned int _num_aqueous_equilibrium;
175 
177  const unsigned int _num_aqueous_kinetic;
178 
180  const unsigned int _aqueous_phase_number;
181 
183  mutable bool _perm_derivs;
184 
185 private:
188 
190  FEType _fe_type;
191 
193  std::vector<unsigned int> _moose_var_num;
194 
196  std::vector<unsigned int> _pf_var_num;
197 };
PorousFlowDictator::mooseVariableNum
unsigned int mooseVariableNum(unsigned int porous_flow_var_num) const
The Moose variable number.
Definition: PorousFlowDictator.C:145
PorousFlowDictator::_pf_var_num
std::vector< unsigned int > _pf_var_num
_pf_var_num[i] = the porous flow variable corresponding to moose variable i
Definition: PorousFlowDictator.h:196
PorousFlowDictator::numAqueousKinetic
unsigned int numAqueousKinetic() const
The number of aqueous kinetic secondary species.
Definition: PorousFlowDictator.C:123
PorousFlowDictator::_num_phases
const unsigned int _num_phases
Number of fluid phases.
Definition: PorousFlowDictator.h:168
PorousFlowDictator::_num_aqueous_equilibrium
const unsigned int _num_aqueous_equilibrium
Number of aqueous-equilibrium secondary species.
Definition: PorousFlowDictator.h:174
PorousFlowDictator::_num_aqueous_kinetic
const unsigned int _num_aqueous_kinetic
Number of aqeuous-kinetic secondary species that are involved in mineralisation.
Definition: PorousFlowDictator.h:177
PorousFlowDictator::isPorousFlowVariable
bool isPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is a porous flow variable.
Definition: PorousFlowDictator.C:155
validParams< PorousFlowDictator >
InputParameters validParams< PorousFlowDictator >()
Definition: PorousFlowDictator.C:19
PorousFlowDictator::notPorousFlowVariable
bool notPorousFlowVariable(unsigned int moose_var_num) const
Returns true if moose_var_num is not a porous flow variabe.
Definition: PorousFlowDictator.C:161
PorousFlowDictator::finalize
virtual void finalize() override
Definition: PorousFlowDictator.h:78
PorousFlowDictator::execute
virtual void execute() override
Definition: PorousFlowDictator.h:77
PorousFlowDictator::_num_variables
const unsigned int _num_variables
Number of PorousFlow variables.
Definition: PorousFlowDictator.h:161
PorousFlowDictator::_fe_type
FEType _fe_type
FE type used by the PorousFlow variables.
Definition: PorousFlowDictator.h:190
PorousFlowDictator::initialize
virtual void initialize() override
Definition: PorousFlowDictator.h:76
PorousFlowDictator::numAqueousEquilibrium
unsigned int numAqueousEquilibrium() const
The number of aqueous equilibrium secondary species.
Definition: PorousFlowDictator.C:117
PorousFlowDictator::_moose_var_num
std::vector< unsigned int > _moose_var_num
_moose_var_num[i] = the moose variable number corresponding to porous flow variable i
Definition: PorousFlowDictator.h:193
PorousFlowDictator::porousFlowVariableNum
unsigned int porousFlowVariableNum(unsigned int moose_var_num) const
The PorousFlow variable number.
Definition: PorousFlowDictator.C:135
PorousFlowDictator
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
Definition: PorousFlowDictator.h:71
PorousFlowDictator::numPhases
unsigned int numPhases() const
The number of fluid phases.
Definition: PorousFlowDictator.C:105
PorousFlowDictator::feType
FEType feType() const
The FEType of the first porous_flow_variable.
Definition: PorousFlowDictator.C:173
PorousFlowDictator::_consistent_fe_type
bool _consistent_fe_type
Whether the porous_flow_vars all have the same fe_type.
Definition: PorousFlowDictator.h:187
PorousFlowDictator::numVariables
unsigned int numVariables() const
The number of PorousFlow variables.
Definition: PorousFlowDictator.C:99
PorousFlowDictator::_aqueous_phase_number
const unsigned int _aqueous_phase_number
Aqueous phase number.
Definition: PorousFlowDictator.h:180
PorousFlowDictator::_num_components
const unsigned int _num_components
Number of fluid components.
Definition: PorousFlowDictator.h:171
PorousFlowDictator::numComponents
unsigned int numComponents() const
The number of fluid components.
Definition: PorousFlowDictator.C:111
PorousFlowDictator::PorousFlowDictator
PorousFlowDictator(const InputParameters &parameters)
Definition: PorousFlowDictator.C:50
PorousFlowDictator::aqueousPhaseNumber
unsigned int aqueousPhaseNumber() const
The aqueous phase number.
Definition: PorousFlowDictator.C:129
PorousFlowDictator::usePermDerivs
void usePermDerivs(bool flag) const
Set the _perm_derivs flag.
Definition: PorousFlowDictator.h:161
PorousFlowDictator::_perm_derivs
bool _perm_derivs
Indicates whether the simulation includes derivatives of permeability.
Definition: PorousFlowDictator.h:183
PorousFlowDictator::consistentFEType
bool consistentFEType() const
Whether the porous_flow_vars all have the same FEType or if no porous_flow_vars were provided.
Definition: PorousFlowDictator.C:167
PorousFlowDictator::usePermDerivs
bool usePermDerivs() const
Check if the simulation includes derivatives of permeability Note: when the permeability is constant,...
Definition: PorousFlowDictator.h:156