Base class for PorousFlow actions. More...
#include <PorousFlowActionBase.h>
Public Member Functions | |
PorousFlowActionBase (const InputParameters ¶ms) | |
virtual void | act () override |
virtual void | addRelationshipManagers (Moose::RelationshipManagerType when_type) override |
Protected Types | |
enum | StabilizationEnum { StabilizationEnum::Full, StabilizationEnum::KT } |
Protected Member Functions | |
virtual void | addDictator ()=0 |
Add the PorousFlowDictator object. More... | |
virtual void | addUserObjects () |
Add all other UserObjects. More... | |
virtual void | addAuxObjects () |
Add all AuxVariables and AuxKernels. More... | |
virtual void | addKernels () |
Add all Kernels. More... | |
virtual void | addMaterialDependencies () |
Add all material dependencies so that the correct version of each material can be added. More... | |
virtual void | addMaterials () |
Add all Materials. More... | |
void | addSaturationAux (unsigned phase) |
Add an AuxVariable and AuxKernel to calculate saturation. More... | |
void | addDarcyAux (const RealVectorValue &gravity) |
Add AuxVariables and AuxKernels to calculate Darcy velocity. More... | |
void | addStressAux () |
Add AuxVariables and AuxKernels to compute effective stress. More... | |
void | addTemperatureMaterial (bool at_nodes) |
Adds a nodal and a quadpoint Temperature material. More... | |
void | addMassFractionMaterial (bool at_nodes) |
Adds a nodal and a quadpoint MassFraction material. More... | |
void | addEffectiveFluidPressureMaterial (bool at_nodes) |
Adds a nodal and a quadpoint effective fluid pressure material. More... | |
void | addVolumetricStrainMaterial (const std::vector< VariableName > &displacements, bool consistent_with_displaced_mesh) |
Adds a quadpoint volumetric strain material. More... | |
void | addSingleComponentFluidMaterial (bool at_nodes, unsigned phase, bool compute_density_and_viscosity, bool compute_internal_energy, bool compute_enthalpy, const UserObjectName &fp) |
Adds a single-component fluid Material. More... | |
void | addBrineMaterial (const VariableName xnacl, bool at_nodes, unsigned phase, bool compute_density_and_viscosity, bool compute_internal_energy, bool compute_enthalpy) |
Adds a brine fluid Material. More... | |
void | addRelativePermeabilityCorey (bool at_nodes, unsigned phase, Real n, Real s_res, Real sum_s_res) |
Adds a relative-permeability Material of the Corey variety. More... | |
void | addRelativePermeabilityFLAC (bool at_nodes, unsigned phase, Real m, Real s_res, Real sum_s_res) |
Adds a relative-permeability Material of the FLAC variety. More... | |
void | addCapillaryPressureVG (Real m, Real alpha, std::string userobject_name) |
Adds a van Genuchten capillary pressure UserObject. More... | |
void | addAdvectiveFluxCalculatorSaturated (unsigned phase, bool multiply_by_density, std::string userobject_name) |
void | addAdvectiveFluxCalculatorUnsaturated (unsigned phase, bool multiply_by_density, std::string userobject_name) |
void | addAdvectiveFluxCalculatorSaturatedHeat (unsigned phase, bool multiply_by_density, std::string userobject_name) |
void | addAdvectiveFluxCalculatorUnsaturatedHeat (unsigned phase, bool multiply_by_density, std::string userobject_name) |
void | addAdvectiveFluxCalculatorSaturatedMultiComponent (unsigned phase, unsigned fluid_component, bool multiply_by_density, std::string userobject_name) |
void | addAdvectiveFluxCalculatorUnsaturatedMultiComponent (unsigned phase, unsigned fluid_component, bool multiply_by_density, std::string userobject_name) |
Protected Attributes | |
std::vector< std::string > | _included_objects |
List of Kernels, AuxKernels, Materials, etc, that are added in this input file. More... | |
const std::string | _dictator_name |
The name of the PorousFlowDictator object to be added. More... | |
const unsigned int | _num_aqueous_equilibrium |
Number of aqueous-equilibrium secondary species. More... | |
const unsigned int | _num_aqueous_kinetic |
Number of aqeuous-kinetic secondary species that are involved in mineralisation. More... | |
const RealVectorValue | _gravity |
Gravity. More... | |
const std::vector< VariableName > & | _mass_fraction_vars |
Name of the mass-fraction variables (if any) More... | |
const unsigned | _num_mass_fraction_vars |
Number of mass-fraction variables. More... | |
const std::vector< VariableName > & | _temperature_var |
Name of the temperature variable (if any) More... | |
const std::vector< VariableName > & | _displacements |
Displacement NonlinearVariable names (if any) More... | |
const unsigned | _ndisp |
Number of displacement variables supplied. More... | |
std::vector< VariableName > | _coupled_displacements |
Displacement Variable names. More... | |
const MooseEnum | _flux_limiter_type |
Flux limiter type in the Kuzmin-Turek FEM-TVD stabilization scheme. More... | |
enum PorousFlowActionBase::StabilizationEnum | _stabilization |
Moose::CoordinateSystemType | _coord_system |
Coordinate system of the simulation (eg RZ, XYZ, etc) More... | |
bool | _transient |
Flag to denote if the simulation is transient. More... | |
DependencyResolver< std::string > | _deps |
All dependencies of kernels, auxkernels, materials, etc, are stored in _dependencies. More... | |
Base class for PorousFlow actions.
This act() method makes consistency checks and calls several methods that should be implemented in derived classes. This class also contains a number of utility functions that may be used by derived classes.
Derived classes should typically only override the following methods:
Definition at line 35 of file PorousFlowActionBase.h.
|
strongprotected |
PorousFlowActionBase::PorousFlowActionBase | ( | const InputParameters & | params | ) |
Definition at line 83 of file PorousFlowActionBase.C.
|
overridevirtual |
Definition at line 115 of file PorousFlowActionBase.C.
|
protected |
Definition at line 544 of file PorousFlowActionBase.C.
Referenced by PorousFlowFullySaturated::addUserObjects().
|
protected |
Definition at line 580 of file PorousFlowActionBase.C.
Referenced by PorousFlowFullySaturated::addUserObjects().
|
protected |
Definition at line 616 of file PorousFlowActionBase.C.
Referenced by PorousFlowFullySaturated::addUserObjects().
|
protected |
Definition at line 562 of file PorousFlowActionBase.C.
Referenced by PorousFlowUnsaturated::addUserObjects().
|
protected |
Definition at line 598 of file PorousFlowActionBase.C.
Referenced by PorousFlowUnsaturated::addUserObjects().
|
protected |
Definition at line 636 of file PorousFlowActionBase.C.
Referenced by PorousFlowUnsaturated::addUserObjects().
|
protectedvirtual |
Add all AuxVariables and AuxKernels.
Reimplemented in PorousFlowUnsaturated, and PorousFlowSinglePhaseBase.
Definition at line 180 of file PorousFlowActionBase.C.
Referenced by act(), and PorousFlowSinglePhaseBase::addAuxObjects().
|
protected |
Adds a brine fluid Material.
xnacl | the variable containing the mass fraction of NaCl in the fluid |
phase | the phase number of the fluid |
compute_density_and_viscosity | compute the density and viscosity of the fluid |
compute_internal_energy | compute the fluid internal energy |
compute_enthalpy | compute the fluid enthalpy |
at_nodes | add a nodal material |
Definition at line 453 of file PorousFlowActionBase.C.
Referenced by PorousFlowSinglePhaseBase::addMaterials().
|
protected |
Adds a van Genuchten capillary pressure UserObject.
m | van Genuchten exponent |
alpha | van Genuchten alpha |
userobject_name | name of the user object |
Definition at line 531 of file PorousFlowActionBase.C.
Referenced by PorousFlowUnsaturated::addUserObjects().
|
protected |
Add AuxVariables and AuxKernels to calculate Darcy velocity.
gravity | gravitational acceleration pointing downwards (eg (0, 0, -9.8)) |
Definition at line 220 of file PorousFlowActionBase.C.
Referenced by PorousFlowSinglePhaseBase::addAuxObjects().
|
protectedpure virtual |
Add the PorousFlowDictator object.
Implemented in PorousFlowSinglePhaseBase.
Referenced by addUserObjects().
|
protected |
Adds a nodal and a quadpoint effective fluid pressure material.
at_nodes | Add nodal effective fluid pressure material |
Definition at line 388 of file PorousFlowActionBase.C.
Referenced by PorousFlowSinglePhaseBase::addMaterials().
|
protectedvirtual |
Add all Kernels.
Reimplemented in PorousFlowBasicTHM, PorousFlowUnsaturated, PorousFlowSinglePhaseBase, and PorousFlowFullySaturated.
Definition at line 185 of file PorousFlowActionBase.C.
Referenced by act(), and PorousFlowSinglePhaseBase::addKernels().
|
protected |
Adds a nodal and a quadpoint MassFraction material.
at_nodes | Add nodal mass-fraction material |
Definition at line 363 of file PorousFlowActionBase.C.
Referenced by PorousFlowSinglePhaseBase::addMaterials().
|
protectedvirtual |
Add all material dependencies so that the correct version of each material can be added.
Reimplemented in PorousFlowBasicTHM, PorousFlowUnsaturated, PorousFlowSinglePhaseBase, and PorousFlowFullySaturated.
Definition at line 152 of file PorousFlowActionBase.C.
Referenced by act(), and PorousFlowSinglePhaseBase::addMaterialDependencies().
|
protectedvirtual |
Add all Materials.
Reimplemented in PorousFlowBasicTHM, PorousFlowUnsaturated, PorousFlowSinglePhaseBase, and PorousFlowFullySaturated.
Definition at line 190 of file PorousFlowActionBase.C.
Referenced by act(), and PorousFlowSinglePhaseBase::addMaterials().
|
overridevirtual |
Definition at line 106 of file PorousFlowActionBase.C.
|
protected |
Adds a relative-permeability Material of the Corey variety.
phase | the phase number of the fluid |
n | The Corey exponent |
s_res | The residual saturation for this phase |
sum_s_res | The sum of residual saturations over all phases |
Definition at line 482 of file PorousFlowActionBase.C.
Referenced by PorousFlowFullySaturated::addMaterials(), PorousFlowUnsaturated::addMaterials(), and PorousFlowBasicTHM::addMaterials().
|
protected |
Adds a relative-permeability Material of the FLAC variety.
phase | the phase number of the fluid |
m | The FLAC exponent |
s_res | The residual saturation for this phase |
sum_s_res | The sum of residual saturations over all phases |
Definition at line 507 of file PorousFlowActionBase.C.
Referenced by PorousFlowUnsaturated::addMaterials().
|
protected |
Add an AuxVariable and AuxKernel to calculate saturation.
phase | Saturation for this fluid phase |
Definition at line 195 of file PorousFlowActionBase.C.
Referenced by PorousFlowUnsaturated::addAuxObjects().
|
protected |
Adds a single-component fluid Material.
phase | the phase number of the fluid |
fp | the name of the FluidProperties UserObject |
compute_density_and_viscosity | compute the density and viscosity of the fluid |
compute_internal_energy | compute the fluid internal energy |
compute_enthalpy | compute the fluid enthalpy |
at_nodes | add a nodal material |
Definition at line 424 of file PorousFlowActionBase.C.
Referenced by PorousFlowSinglePhaseBase::addMaterials().
|
protected |
Add AuxVariables and AuxKernels to compute effective stress.
Definition at line 258 of file PorousFlowActionBase.C.
Referenced by PorousFlowSinglePhaseBase::addAuxObjects().
|
protected |
Adds a nodal and a quadpoint Temperature material.
at_nodes | Add nodal temperature Material |
Definition at line 339 of file PorousFlowActionBase.C.
Referenced by PorousFlowSinglePhaseBase::addMaterials().
|
protectedvirtual |
Add all other UserObjects.
Reimplemented in PorousFlowUnsaturated, and PorousFlowFullySaturated.
Definition at line 174 of file PorousFlowActionBase.C.
Referenced by act(), PorousFlowFullySaturated::addUserObjects(), and PorousFlowUnsaturated::addUserObjects().
|
protected |
Adds a quadpoint volumetric strain material.
displacements | the names of the displacement variables |
consistent_with_displaced_mesh | The volumetric strain should be consistent with the displaced mesh |
Definition at line 407 of file PorousFlowActionBase.C.
Referenced by PorousFlowFullySaturated::addMaterials(), PorousFlowUnsaturated::addMaterials(), and PorousFlowBasicTHM::addMaterials().
|
protected |
Coordinate system of the simulation (eg RZ, XYZ, etc)
Definition at line 89 of file PorousFlowActionBase.h.
Referenced by act(), and PorousFlowSinglePhaseBase::addKernels().
|
protected |
Displacement Variable names.
Definition at line 81 of file PorousFlowActionBase.h.
Referenced by PorousFlowSinglePhaseBase::addDictator(), PorousFlowSinglePhaseBase::addKernels(), PorousFlowFullySaturated::addMaterials(), PorousFlowUnsaturated::addMaterials(), PorousFlowBasicTHM::addMaterials(), and PorousFlowActionBase().
|
protectedinherited |
All dependencies of kernels, auxkernels, materials, etc, are stored in _dependencies.
Definition at line 37 of file PorousFlowDependencies.h.
Referenced by PorousFlowFullySaturated::addMaterials(), PorousFlowSinglePhaseBase::addMaterials(), PorousFlowUnsaturated::addMaterials(), PorousFlowBasicTHM::addMaterials(), PorousFlowAddMaterialAction::isPFMaterialRequired(), and PorousFlowDependencies::PorousFlowDependencies().
|
protected |
The name of the PorousFlowDictator object to be added.
Definition at line 54 of file PorousFlowActionBase.h.
Referenced by addAdvectiveFluxCalculatorSaturated(), addAdvectiveFluxCalculatorSaturatedHeat(), addAdvectiveFluxCalculatorSaturatedMultiComponent(), addAdvectiveFluxCalculatorUnsaturated(), addAdvectiveFluxCalculatorUnsaturatedHeat(), addAdvectiveFluxCalculatorUnsaturatedMultiComponent(), addBrineMaterial(), addDarcyAux(), PorousFlowSinglePhaseBase::addDictator(), addEffectiveFluidPressureMaterial(), PorousFlowFullySaturated::addKernels(), PorousFlowSinglePhaseBase::addKernels(), PorousFlowUnsaturated::addKernels(), PorousFlowBasicTHM::addKernels(), addMassFractionMaterial(), PorousFlowFullySaturated::addMaterials(), PorousFlowBasicTHM::addMaterials(), PorousFlowUnsaturated::addMaterials(), addRelativePermeabilityCorey(), addRelativePermeabilityFLAC(), addSingleComponentFluidMaterial(), addTemperatureMaterial(), and addVolumetricStrainMaterial().
|
protected |
Displacement NonlinearVariable names (if any)
Definition at line 75 of file PorousFlowActionBase.h.
Referenced by PorousFlowSinglePhaseBase::addKernels(), and PorousFlowActionBase().
|
protected |
Flux limiter type in the Kuzmin-Turek FEM-TVD stabilization scheme.
Definition at line 84 of file PorousFlowActionBase.h.
Referenced by addAdvectiveFluxCalculatorSaturated(), addAdvectiveFluxCalculatorSaturatedHeat(), addAdvectiveFluxCalculatorSaturatedMultiComponent(), addAdvectiveFluxCalculatorUnsaturated(), addAdvectiveFluxCalculatorUnsaturatedHeat(), and addAdvectiveFluxCalculatorUnsaturatedMultiComponent().
|
protected |
Definition at line 63 of file PorousFlowActionBase.h.
Referenced by addAdvectiveFluxCalculatorSaturated(), addAdvectiveFluxCalculatorSaturatedHeat(), addAdvectiveFluxCalculatorSaturatedMultiComponent(), addAdvectiveFluxCalculatorUnsaturated(), addAdvectiveFluxCalculatorUnsaturatedHeat(), addAdvectiveFluxCalculatorUnsaturatedMultiComponent(), PorousFlowSinglePhaseBase::addAuxObjects(), PorousFlowFullySaturated::addKernels(), PorousFlowSinglePhaseBase::addKernels(), PorousFlowUnsaturated::addKernels(), and PorousFlowBasicTHM::addKernels().
|
protected |
List of Kernels, AuxKernels, Materials, etc, that are added in this input file.
This list will be used to determine what Materials need to be added. Actions may add or remove things from this list
Definition at line 51 of file PorousFlowActionBase.h.
Referenced by act(), PorousFlowFullySaturated::addMaterialDependencies(), PorousFlowSinglePhaseBase::addMaterialDependencies(), PorousFlowUnsaturated::addMaterialDependencies(), PorousFlowBasicTHM::addMaterialDependencies(), addMaterialDependencies(), PorousFlowFullySaturated::addMaterials(), PorousFlowSinglePhaseBase::addMaterials(), PorousFlowBasicTHM::addMaterials(), and PorousFlowUnsaturated::addMaterials().
|
protected |
Name of the mass-fraction variables (if any)
Definition at line 66 of file PorousFlowActionBase.h.
Referenced by PorousFlowSinglePhaseBase::addDictator(), PorousFlowFullySaturated::addKernels(), PorousFlowUnsaturated::addKernels(), and PorousFlowSinglePhaseBase::addMaterials().
|
protected |
Number of displacement variables supplied.
Definition at line 78 of file PorousFlowActionBase.h.
Referenced by PorousFlowSinglePhaseBase::addKernels(), and PorousFlowActionBase().
|
protected |
Number of aqueous-equilibrium secondary species.
Definition at line 57 of file PorousFlowActionBase.h.
Referenced by PorousFlowSinglePhaseBase::addDictator().
|
protected |
Number of aqeuous-kinetic secondary species that are involved in mineralisation.
Definition at line 60 of file PorousFlowActionBase.h.
Referenced by PorousFlowSinglePhaseBase::addDictator().
|
protected |
Number of mass-fraction variables.
Definition at line 69 of file PorousFlowActionBase.h.
Referenced by PorousFlowSinglePhaseBase::addDictator(), PorousFlowFullySaturated::addKernels(), PorousFlowUnsaturated::addKernels(), PorousFlowFullySaturated::addUserObjects(), PorousFlowUnsaturated::addUserObjects(), PorousFlowBasicTHM::PorousFlowBasicTHM(), and PorousFlowSinglePhaseBase::PorousFlowSinglePhaseBase().
|
protected |
Referenced by addAdvectiveFluxCalculatorSaturated(), addAdvectiveFluxCalculatorSaturatedHeat(), addAdvectiveFluxCalculatorSaturatedMultiComponent(), addAdvectiveFluxCalculatorUnsaturated(), addAdvectiveFluxCalculatorUnsaturatedHeat(), addAdvectiveFluxCalculatorUnsaturatedMultiComponent(), PorousFlowFullySaturated::addKernels(), PorousFlowUnsaturated::addKernels(), PorousFlowFullySaturated::addMaterialDependencies(), PorousFlowUnsaturated::addMaterialDependencies(), addRelationshipManagers(), PorousFlowFullySaturated::addUserObjects(), and PorousFlowUnsaturated::addUserObjects().
|
protected |
Name of the temperature variable (if any)
Definition at line 72 of file PorousFlowActionBase.h.
Referenced by PorousFlowSinglePhaseBase::addDictator(), PorousFlowFullySaturated::addKernels(), PorousFlowSinglePhaseBase::addKernels(), PorousFlowUnsaturated::addKernels(), PorousFlowBasicTHM::addKernels(), and PorousFlowSinglePhaseBase::PorousFlowSinglePhaseBase().
|
protected |
Flag to denote if the simulation is transient.
Definition at line 92 of file PorousFlowActionBase.h.
Referenced by act(), PorousFlowFullySaturated::addKernels(), PorousFlowSinglePhaseBase::addKernels(), PorousFlowUnsaturated::addKernels(), PorousFlowBasicTHM::addKernels(), PorousFlowFullySaturated::addMaterialDependencies(), PorousFlowSinglePhaseBase::addMaterialDependencies(), PorousFlowBasicTHM::addMaterialDependencies(), and PorousFlowUnsaturated::addMaterialDependencies().