www.mooseframework.org
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
RichardsMaterial Class Reference

#include <RichardsMaterial.h>

Inheritance diagram for RichardsMaterial:
[legend]

Public Types

enum  ConstantTypeEnum { ConstantTypeEnum::NONE, ConstantTypeEnum::ELEMENT, ConstantTypeEnum::SUBDOMAIN }
 
enum  TEST_TYPE
 
typedef DataFileName DataFileParameterType
 

Public Member Functions

 RichardsMaterial (const InputParameters &parameters)
 
virtual const dof_id_typegetElementID (const std::string &id_parameter_name, unsigned int comp=0) const override
 
dof_id_type getElementID (const Elem *elem, unsigned int elem_id_index) const
 
virtual const dof_id_typegetElementIDNeighbor (const std::string &id_parameter_name, unsigned int comp=0) const override
 
virtual const dof_id_typegetElementIDByName (const std::string &id_parameter_name) const override
 
virtual const dof_id_typegetElementIDNeighborByName (const std::string &id_parameter_name) const override
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false, bool no_dep=false)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
virtual bool isBoundaryMaterial () const override
 
virtual const std::unordered_set< unsigned int > & getMatPropDependencies () const override
 
virtual void subdomainSetup () override
 
bool ghostable () const override final
 
virtual void resolveOptionalProperties () override
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty ()
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty ()
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty ()
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialPropertyByName (const std::string &prop_name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialPropertyByName (const std::string &prop_name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialPropertyByName (const std::string &prop_name)
 
const MaterialProperty< T > & getZeroMaterialProperty (Ts... args)
 
const MaterialProperty< T > & getZeroMaterialProperty (Ts... args)
 
const MaterialProperty< T > & getZeroMaterialProperty (Ts... args)
 
virtual void initStatefulProperties (unsigned int n_points)
 
virtual bool isInterfaceMaterial ()
 
virtual void resetProperties ()
 
virtual void computePropertiesAtQp (unsigned int qp)
 
const MaterialProperty< T > & getZeroMaterialPropertyByName (Ts... args)
 
virtual const std::set< std::string > & getRequestedItems () override
 
virtual const std::set< std::string > & getSuppliedItems () override
 
const std::set< unsigned int > & getSuppliedPropIDs ()
 
void checkStatefulSanity () const
 
std::set< OutputName > getOutputs ()
 
bool hasStatefulProperties () const
 
void setFaceInfo (const FaceInfo &fi)
 
void setActiveProperties (const std::unordered_set< unsigned int > &needed_props)
 
bool forceStatefulInit () const
 
virtual bool enabled () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
virtual const std::string & name () const
 
std::string typeAndName () const
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
const InputParametersparameters () const
 
MooseObjectName uniqueName () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &nm) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void mooseError (Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &name, const std::string *param=nullptr) const
 
const std::vector< SubdomainName > & blocks () const
 
unsigned int numBlocks () const
 
virtual const std::set< SubdomainID > & blockIDs () const
 
unsigned int blocksMaxDimension () const
 
bool hasBlocks (const SubdomainName &name) const
 
bool hasBlocks (const std::vector< SubdomainName > &names) const
 
bool hasBlocks (SubdomainID id) const
 
bool hasBlocks (const std::vector< SubdomainID > &ids) const
 
bool hasBlocks (const std::set< SubdomainID > &ids) const
 
bool isBlockSubset (const std::set< SubdomainID > &ids) const
 
bool isBlockSubset (const std::vector< SubdomainID > &ids) const
 
bool hasBlockMaterialProperty (const std::string &prop_name)
 
const std::set< SubdomainID > & meshBlockIDs () const
 
virtual bool blockRestricted () const
 
virtual void checkVariable (const MooseVariableFieldBase &variable) const
 
virtual const std::set< BoundaryID > & boundaryIDs () const
 
const std::vector< BoundaryName > & boundaryNames () const
 
unsigned int numBoundaryIDs () const
 
bool hasBoundary (const BoundaryName &name) const
 
bool hasBoundary (const std::vector< BoundaryName > &names) const
 
bool hasBoundary (const BoundaryID &id) const
 
bool hasBoundary (const std::vector< BoundaryID > &ids, TEST_TYPE type=ALL) const
 
bool hasBoundary (const std::set< BoundaryID > &ids, TEST_TYPE type=ALL) const
 
bool isBoundarySubset (const std::set< BoundaryID > &ids) const
 
bool isBoundarySubset (const std::vector< BoundaryID > &ids) const
 
bool hasBoundaryMaterialProperty (const std::string &prop_name) const
 
virtual bool boundaryRestricted () const
 
const std::set< BoundaryID > & meshBoundaryIDs () const
 
virtual bool checkVariableBoundaryIntegrity () const
 
virtual void initialSetup ()
 
virtual void timestepSetup ()
 
virtual void jacobianSetup ()
 
virtual void residualSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnumgetExecuteOnEnum () const
 
const std::set< MooseVariableFieldBase *> & getMooseVariableDependencies () const
 
std::set< MooseVariableFieldBase *> checkAllVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_omit={})
 
std::set< MooseVariableFieldBase *> checkVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
const std::vector< MooseVariableScalar *> & getCoupledMooseScalarVars ()
 
const std::set< TagID > & getScalarVariableCoupleableVectorTags () const
 
const std::set< TagID > & getScalarVariableCoupleableMatrixTags () const
 
const FunctiongetFunction (const std::string &name) const
 
const FunctiongetFunctionByName (const FunctionName &name) const
 
bool hasFunction (const std::string &param_name) const
 
bool hasFunctionByName (const FunctionName &name) const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const T & getUserObject (const std::string &param_name, bool is_dependency=true) const
 
const T & getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectgetUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const
 
bool isImplicit ()
 
bool isDefaultPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessor (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessorByName (const PostprocessorName &name) const
 
std::size_t coupledPostprocessors (const std::string &param_name) const
 
const PostprocessorName & getPostprocessorName (const std::string &param_name, const unsigned int index=0) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name) const
 
const VectorPostprocessorName & getVectorPostprocessorName (const std::string &param_name) const
 
virtual void meshChanged ()
 
void buildOutputHideVariableList (std::set< std::string > variable_names)
 
void setRandomResetFrequency (ExecFlagType exec_flag)
 
unsigned long getRandomLong () const
 
Real getRandomReal () const
 
unsigned int getSeed (std::size_t id)
 
unsigned int getMasterSeed () const
 
bool isNodal () const
 
ExecFlagType getResetOnTime () const
 
void setRandomDataPointer (RandomData *random_data)
 
virtual unsigned int getElementIDIndex (const std::string &id_parameter_name, unsigned int comp=0) const
 
virtual unsigned int getElementIDIndexByName (const std::string &id_name) const
 
bool hasElementID (const std::string &id_name) const
 
dof_id_type maxElementID (unsigned int elem_id_index) const
 
dof_id_type minElementID (unsigned int elem_id_index) const
 
bool areElemIDsIdentical (const std::string &id_name1, const std::string &id_name2) const
 
std::unordered_map< dof_id_type, std::set< dof_id_type > > getElemIDMapping (const std::string &id_name1, const std::string &id_name2) const
 
std::set< dof_id_typegetAllElemIDs (unsigned int elem_id_index) const
 
std::set< dof_id_typegetElemIDsOnBlocks (unsigned int elem_id_index, const std::set< SubdomainID > &blks) const
 
const std::unordered_map< std::string, std::vector< MooseVariableFieldBase *> > & getCoupledVars () const
 
const std::vector< MooseVariableFieldBase *> & getCoupledMooseVars () const
 
const std::vector< MooseVariable *> & getCoupledStandardMooseVars () const
 
const std::vector< VectorMooseVariable *> & getCoupledVectorMooseVars () const
 
const std::vector< ArrayMooseVariable *> & getCoupledArrayMooseVars () const
 
void addFEVariableCoupleableVectorTag (TagID tag)
 
void addFEVariableCoupleableMatrixTag (TagID tag)
 
std::set< TagID > & getFEVariableCoupleableVectorTags ()
 
const std::set< TagID > & getFEVariableCoupleableVectorTags () const
 
std::set< TagID > & getFEVariableCoupleableMatrixTags ()
 
const std::set< TagID > & getFEVariableCoupleableMatrixTags () const
 
auto & getWritableCoupledVariables () const
 
bool hasWritableCoupledVariables () const
 
const ADVariableValuegetADDefaultValue (const std::string &var_name) const
 
const ADVectorVariableValuegetADDefaultVectorValue (const std::string &var_name) const
 
const ADVariableGradientgetADDefaultGradient () const
 
const ADVectorVariableGradientgetADDefaultVectorGradient () const
 
const ADVariableSecondgetADDefaultSecond () const
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name, MaterialData &material_data)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const std::string &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const std::string &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const std::string &prop_name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const std::string &prop_name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const std::string &prop_name)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const std::string &prop_name)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const std::string &prop_name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const std::string &prop_name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const std::string &prop_name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const std::string &prop_name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > getBlockMaterialProperty (const MaterialPropertyName &name)
 
std::set< SubdomainIDgetMaterialPropertyBlocks (const std::string &name)
 
std::vector< SubdomainName > getMaterialPropertyBlockNames (const std::string &name)
 
std::set< BoundaryIDgetMaterialPropertyBoundaryIDs (const std::string &name)
 
std::vector< BoundaryName > getMaterialPropertyBoundaryNames (const std::string &name)
 
void checkBlockAndBoundaryCompatibility (std::shared_ptr< MaterialBase > discrete)
 
std::unordered_map< SubdomainID, std::vector< MaterialBase *> > buildRequiredMaterials (bool allow_stateful=true)
 
void statefulPropertiesAllowed (bool)
 
bool getMaterialPropertyCalled () const
 
const GenericMaterialProperty< T, is_ad > & getPossiblyConstantGenericMaterialPropertyByName (const MaterialPropertyName &prop_name, MaterialData &material_data, const unsigned int state)
 
const GenericOptionalMaterialProperty< T, is_ad > & getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const GenericOptionalMaterialProperty< T, is_ad > & getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalMaterialProperty< T > & getOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalMaterialProperty< T > & getOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalADMaterialProperty< T > & getOptionalADMaterialProperty (const std::string &name)
 
const OptionalADMaterialProperty< T > & getOptionalADMaterialProperty (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOld (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOld (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOlder (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOlder (const std::string &name)
 
MaterialProperty< T > & declarePropertyByName (const std::string &prop_name)
 
MaterialProperty< T > & declarePropertyByName (const std::string &prop_name)
 
MaterialProperty< T > & declareProperty (const std::string &name)
 
MaterialProperty< T > & declareProperty (const std::string &name)
 
ADMaterialProperty< T > & declareADPropertyByName (const std::string &prop_name)
 
ADMaterialProperty< T > & declareADPropertyByName (const std::string &prop_name)
 
ADMaterialProperty< T > & declareADProperty (const std::string &name)
 
ADMaterialProperty< T > & declareADProperty (const std::string &name)
 
auto & declareGenericProperty (const std::string &prop_name)
 
auto & declareGenericProperty (const std::string &prop_name)
 
GenericMaterialProperty< T, is_ad > & declareGenericPropertyByName (const std::string &prop_name)
 
GenericMaterialProperty< T, is_ad > & declareGenericPropertyByName (const std::string &prop_name)
 
const DistributiongetDistribution (const std::string &name) const
 
const T & getDistribution (const std::string &name) const
 
const DistributiongetDistribution (const std::string &name) const
 
const T & getDistribution (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const T & getDistributionByName (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const T & getDistributionByName (const std::string &name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
PenetrationLocatorgetPenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 
PenetrationLocatorgetQuadraturePenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 
NearestNodeLocatorgetNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary)
 
NearestNodeLocatorgetQuadratureNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary)
 
bool requiresGeometricSearch () const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static std::deque< MaterialBase *> buildRequiredMaterials (const Consumers &mat_consumers, const std::vector< std::shared_ptr< MaterialBase >> &mats, const bool allow_stateful)
 
static bool restricted (const std::set< BoundaryID > &ids)
 
static void sort (typename std::vector< T > &vector)
 
static void sortDFS (typename std::vector< T > &vector)
 
static void cyclicDependencyError (CyclicDependencyException< T2 > &e, const std::string &header)
 
static std::string deduceFunctorName (const std::string &name, const InputParameters &params)
 

Public Attributes

 ALL
 
 ANY
 
const ConsoleStream _console
 

Static Public Attributes

static constexpr PropertyValue::id_type default_property_id
 
static constexpr PropertyValue::id_type zero_property_id
 

Protected Types

enum  QP_Data_Type
 

Protected Member Functions

virtual void computeProperties ()
 
void computePandSeff ()
 computes the quadpoint values of the porepressure(s) and effective saturation(s), and their derivatives wrt the variables in the system. More...
 
void computeDerivedQuantities (unsigned int qp)
 Computes the "derived" quantities — those that depend on porepressure(s) and effective saturation(s) — such as density, relative permeability, mass, flux, etc. More...
 
void compute2ndDerivedQuantities (unsigned int qp)
 Computes 2nd derivatives of the flux. More...
 
void zeroSUPG (unsigned int qp)
 Assigns and zeroes the MaterialProperties associated with SUPG. More...
 
void computeSUPG ()
 Computes the tauvel_SUPG and its derivatives. More...
 
virtual void checkMaterialProperty (const std::string &name, const unsigned int state) override
 
virtual const MaterialDatamaterialData () const override
 
virtual MaterialDatamaterialData () override
 
virtual const QBase & qRule () const override
 
virtual void computeQpProperties ()
 
virtual void resetQpProperties ()
 
virtual void initQpStatefulProperties ()
 
virtual const FEProblemBasemiProblem () const
 
virtual FEProblemBasemiProblem ()
 
bool isPropertyActive (const unsigned int prop_id) const
 
void registerPropName (const std::string &prop_name, bool is_get, const unsigned int state)
 
void checkExecutionStage ()
 
void checkExecutionStage ()
 
virtual bool hasBlockMaterialPropertyHelper (const std::string &prop_name)
 
void initializeBlockRestrictable (const MooseObject *moose_object)
 
Moose::CoordinateSystemType getBlockCoordSystem ()
 
bool hasBoundaryMaterialPropertyHelper (const std::string &prop_name) const
 
void addMooseVariableDependency (MooseVariableFieldBase *var)
 
void addMooseVariableDependency (const std::vector< MooseVariableFieldBase * > &vars)
 
bool isCoupledScalar (const std::string &var_name, unsigned int i=0) const
 
unsigned int coupledScalarComponents (const std::string &var_name) const
 
unsigned int coupledScalar (const std::string &var_name, unsigned int comp=0) const
 
Order coupledScalarOrder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< is_ad > & coupledGenericScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const VariableValuecoupledVectorTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledMatrixTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const MooseVariableScalargetScalarVar (const std::string &var_name, unsigned int comp) const
 
virtual void addUserObjectDependencyHelper (const UserObject &) const
 
Moose::StateArg determineState () const
 
virtual void addPostprocessorDependencyHelper (const PostprocessorName &) const
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &) const
 
T & declareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< T > declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const T & getRestartableData (const std::string &data_name) const
 
T & declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
T & declareRecoverableData (const std::string &data_name, Args &&... args)
 
T & declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
T & declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
std::string deduceFunctorName (const std::string &name) const
 
const Moose::Functor< T > & getFunctor (const std::string &name)
 
const Moose::Functor< T > & getFunctor (const std::string &name, THREAD_ID tid)
 
const Moose::Functor< T > & getFunctor (const std::string &name, SubProblem &subproblem)
 
const Moose::Functor< T > & getFunctor (const std::string &name, SubProblem &subproblem, THREAD_ID tid)
 
bool isFunctor (const std::string &name) const
 
bool isFunctor (const std::string &name, const SubProblem &subproblem) const
 
Moose::ElemArg makeElemArg (const Elem *elem, bool correct_skewnewss=false) const
 
void checkFunctorSupportsSideIntegration (const std::string &name, bool qp_integration)
 
void flagInvalidSolutionInternal (InvalidSolutionID _invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message) const
 
virtual void coupledCallback (const std::string &, bool) const
 
virtual bool isCoupled (const std::string &var_name, unsigned int i=0) const
 
virtual bool isCoupledConstant (const std::string &var_name) const
 
unsigned int coupledComponents (const std::string &var_name) const
 
VariableName coupledName (const std::string &var_name, unsigned int comp=0) const
 
std::vector< VariableName > coupledNames (const std::string &var_name) const
 
virtual unsigned int coupled (const std::string &var_name, unsigned int comp=0) const
 
std::vector< unsigned intcoupledIndices (const std::string &var_name) const
 
virtual const VariableValuecoupledValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledValues (const std::string &var_name) const
 
std::vector< const VectorVariableValue *> coupledVectorValues (const std::string &var_name) const
 
const GenericVariableValue< is_ad > & coupledGenericValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericValue (const std::string &var_name, unsigned int comp) const
 
std::vector< const GenericVariableValue< is_ad > *> coupledGenericValues (const std::string &var_name) const
 
std::vector< const GenericVariableValue< false > *> coupledGenericValues (const std::string &var_name) const
 
std::vector< const GenericVariableValue< true > *> coupledGenericValues (const std::string &var_name) const
 
const GenericVariableValue< is_ad > & coupledGenericDofValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDofValue (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDofValue (const std::string &var_name, unsigned int comp) const
 
virtual const VariableValuecoupledValueLower (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue *> adCoupledValues (const std::string &var_name) const
 
const ADVariableValueadCoupledLowerValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValueadCoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVectorVariableValue *> adCoupledVectorValues (const std::string &var_name) const
 
virtual const VariableValuecoupledVectorTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledVectorTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableValue *> coupledVectorTagValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue *> coupledVectorTagValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const ArrayVariableValuecoupledVectorTagArrayValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableValuecoupledVectorTagArrayValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const ArrayVariableValue *> coupledVectorTagArrayValues (const std::string &var_names, TagID tag) const
 
std::vector< const ArrayVariableValue *> coupledVectorTagArrayValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableGradientcoupledVectorTagGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableGradientcoupledVectorTagGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableGradient *> coupledVectorTagGradients (const std::string &var_names, TagID tag) const
 
std::vector< const VariableGradient *> coupledVectorTagGradients (const std::string &var_names, const std::string &tag_name) const
 
virtual const ArrayVariableGradientcoupledVectorTagArrayGradient (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const ArrayVariableGradientcoupledVectorTagArrayGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const ArrayVariableGradient *> coupledVectorTagArrayGradients (const std::string &var_names, TagID tag) const
 
std::vector< const ArrayVariableGradient *> coupledVectorTagArrayGradients (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableValuecoupledVectorTagDofValue (const std::string &var_name, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledVectorTagDofValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
const ArrayVariableValuecoupledVectorTagArrayDofValue (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledVectorTagDofValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue *> coupledVectorTagDofValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VariableValuecoupledMatrixTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const
 
virtual const VariableValuecoupledMatrixTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const
 
std::vector< const VariableValue *> coupledMatrixTagValues (const std::string &var_names, TagID tag) const
 
std::vector< const VariableValue *> coupledMatrixTagValues (const std::string &var_names, const std::string &tag_name) const
 
virtual const VectorVariableValuecoupledVectorValue (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValue (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ArrayVariableValue *> coupledArrayValues (const std::string &var_name) const
 
MooseWritableVariablewritableVariable (const std::string &var_name, unsigned int comp=0)
 
virtual VariableValuewritableCoupledValue (const std::string &var_name, unsigned int comp=0)
 
void checkWritableVar (MooseWritableVariable *var)
 
virtual const VariableValuecoupledValueOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledValuesOld (const std::string &var_name) const
 
virtual const VariableValuecoupledValueOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledValuesOlder (const std::string &var_name) const
 
virtual const VariableValuecoupledValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValueOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayValueOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient *> coupledGradients (const std::string &var_name) const
 
const ADVariableGradientadCoupledGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableGradientadCoupledGradientDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableGradient *> adCoupledGradients (const std::string &var_name) const
 
const GenericVariableGradient< is_ad > & coupledGenericGradient (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableGradient< false > & coupledGenericGradient (const std::string &var_name, unsigned int comp) const
 
const GenericVariableGradient< true > & coupledGenericGradient (const std::string &var_name, unsigned int comp) const
 
std::vector< const GenericVariableGradient< is_ad > *> coupledGenericGradients (const std::string &var_name) const
 
std::vector< const GenericVariableGradient< false > *> coupledGenericGradients (const std::string &var_name) const
 
std::vector< const GenericVariableGradient< true > *> coupledGenericGradients (const std::string &var_name) const
 
const ADVectorVariableGradientadCoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableSecondadCoupledSecond (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableSecondadCoupledVectorSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableGradient *> coupledGradientsOld (const std::string &var_name) const
 
virtual const VariableGradientcoupledGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableGradientcoupledGradientDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableGradientcoupledVectorGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradient (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableGradientcoupledArrayGradientDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurlOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableCurlcoupledCurlOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecond (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondOlder (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableSecondcoupledSecondPreviousNL (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledDots (const std::string &var_name) const
 
virtual const VariableValuecoupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledDot (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const ADVariableValue *> adCoupledDots (const std::string &var_name) const
 
const ADVariableValueadCoupledDotDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVectorVariableValueadCoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableValuecoupledVectorDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledVectorDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledVectorDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const ArrayVariableValuecoupledArrayDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDu (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledArrayDotDu (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const Moose::ADType< T >::typeadCoupledNodalValue (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalValuePreviousNL (const std::string &var_name, unsigned int comp=0) const
 
const T & coupledNodalDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNodalDotDot (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNodalDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledNodalDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VariableValuecoupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValues (const std::string &var_name) const
 
virtual const VariableValuecoupledDofValuesOld (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValuesOld (const std::string &var_name) const
 
virtual const VariableValuecoupledDofValuesOlder (const std::string &var_name, unsigned int comp=0) const
 
std::vector< const VariableValue *> coupledAllDofValuesOlder (const std::string &var_name) const
 
virtual const ArrayVariableValuecoupledArrayDofValues (const std::string &var_name, unsigned int comp=0) const
 
virtual const ADVariableValueadCoupledDofValues (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadZeroValue () const
 
const ADVariableGradientadZeroGradient () const
 
const ADVariableSecondadZeroSecond () const
 
const GenericVariableValue< is_ad > & genericZeroValue ()
 
const GenericVariableValue< false > & genericZeroValue ()
 
const GenericVariableValue< true > & genericZeroValue ()
 
const GenericVariableGradient< is_ad > & genericZeroGradient ()
 
const GenericVariableGradient< false > & genericZeroGradient ()
 
const GenericVariableGradient< true > & genericZeroGradient ()
 
const GenericVariableSecond< is_ad > & genericZeroSecond ()
 
const GenericVariableSecond< false > & genericZeroSecond ()
 
const GenericVariableSecond< true > & genericZeroSecond ()
 
bool checkVar (const std::string &var_name, unsigned int comp=0, unsigned int comp_bound=0) const
 
const MooseVariableFieldBasegetFEVar (const std::string &var_name, unsigned int comp) const
 
const MooseVariableFieldBasegetFieldVar (const std::string &var_name, unsigned int comp) const
 
MooseVariableFieldBasegetFieldVar (const std::string &var_name, unsigned int comp)
 
const T * getVarHelper (const std::string &var_name, unsigned int comp) const
 
T * getVarHelper (const std::string &var_name, unsigned int comp)
 
MooseVariablegetVar (const std::string &var_name, unsigned int comp)
 
const MooseVariablegetVar (const std::string &var_name, unsigned int comp) const
 
VectorMooseVariablegetVectorVar (const std::string &var_name, unsigned int comp)
 
const VectorMooseVariablegetVectorVar (const std::string &var_name, unsigned int comp) const
 
ArrayMooseVariablegetArrayVar (const std::string &var_name, unsigned int comp)
 
const ArrayMooseVariablegetArrayVar (const std::string &var_name, unsigned int comp) const
 
void validateExecutionerType (const std::string &name, const std::string &fn_name) const
 
std::vector< T > coupledVectorHelper (const std::string &var_name, const Func &func) const
 
void markMatPropRequested (const std::string &)
 
MaterialPropertyName getMaterialPropertyName (const std::string &name) const
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 

Protected Attributes

Real _material_por
 porosity as entered by the user More...
 
const VariableValue_por_change
 porosity changes. if not entered they default to zero More...
 
const VariableValue_por_change_old
 
RealTensorValue _material_perm
 permeability as entered by the user More...
 
RealVectorValue _material_gravity
 gravity as entered by user More...
 
MaterialProperty< Real > & _porosity_old
 material properties More...
 
MaterialProperty< Real > & _porosity
 
MaterialProperty< RealTensorValue > & _permeability
 
MaterialProperty< RealVectorValue > & _gravity
 
const RichardsVarNames_richards_name_UO
 The variable names userobject for the Richards variables. More...
 
unsigned int _num_p
 
std::vector< const RichardsRelPerm * > _material_relperm_UO
 
std::vector< const RichardsSeff * > _material_seff_UO
 
std::vector< const RichardsSat * > _material_sat_UO
 
std::vector< const RichardsDensity * > _material_density_UO
 
std::vector< const RichardsSUPG * > _material_SUPG_UO
 
const std::vector< const VariableValue * > _perm_change
 
 CURR
 
 PREV
 
bool _bnd
 
bool _neighbor
 
const MooseArray< Point > & _q_point
 
const QBase *const & _qrule
 
const MooseArray< Real > & _JxW
 
const Elem *const & _current_elem
 
const SubdomainID_current_subdomain_id
 
const unsigned int_current_side
 
const ConstantTypeEnum _constant_option
 
SubProblem_subproblem
 
FEProblemBase_fe_problem
 
THREAD_ID _tid
 
Assembly_assembly
 
unsigned int _qp
 
const MooseArray< Real > & _coord
 
const MooseArray< Point > & _normals
 
MooseMesh_mesh
 
const Moose::CoordinateSystemType_coord_sys
 
std::set< std::string > _requested_props
 
std::set< std::string > _supplied_props
 
std::set< unsigned int_supplied_prop_ids
 
std::unordered_set< unsigned int_active_prop_ids
 
const bool _compute
 
std::unordered_map< unsigned int, unsigned int_props_to_min_states
 
std::vector< unsigned int_displacements
 
bool _has_stateful_property
 
bool _overrides_init_stateful_props
 
const FaceInfo_face_info
 
const bool & _enabled
 
MooseApp_app
 
const std::string _type
 
const std::string _name
 
const InputParameters_pars
 
Factory_factory
 
ActionFactory_action_factory
 
const MaterialData_blk_material_data
 
const ExecFlagEnum_execute_enum
 
const ExecFlagType_current_execute_flag
 
FEProblemBase_sc_fe_problem
 
const THREAD_ID _sc_tid
 
const Real_real_zero
 
const VariableValue_scalar_zero
 
const Point & _point_zero
 
const InputParameters_ti_params
 
FEProblemBase_ti_feproblem
 
bool _is_implicit
 
Real_t
 
int_t_step
 
Real_dt
 
Real_dt_old
 
bool _is_transient
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
FEProblemBase_mci_feproblem
 
GeometricSearchData_geometric_search_data
 
bool _requires_geometric_search
 
const InputParameters_c_parameters
 
const std::string & _c_name
 
const std::string & _c_type
 
FEProblemBase_c_fe_problem
 
const SystemBase *const _c_sys
 
std::unordered_map< std::string, std::vector< MooseVariableFieldBase *> > _coupled_vars
 
std::vector< MooseVariableFieldBase *> _coupled_moose_vars
 
std::vector< MooseVariable *> _coupled_standard_moose_vars
 
std::vector< VectorMooseVariable *> _coupled_vector_moose_vars
 
std::vector< ArrayMooseVariable *> _coupled_array_moose_vars
 
std::vector< MooseVariableFV< Real > *> _coupled_standard_fv_moose_vars
 
const std::unordered_map< std::string, std::string > & _new_to_deprecated_coupled_vars
 
bool _c_nodal
 
bool _c_is_implicit
 
const bool _c_allow_element_to_nodal_coupling
 
THREAD_ID _c_tid
 
std::unordered_map< std::string, std::vector< std::unique_ptr< VariableValue > > > _default_value
 
std::unordered_map< std::string, std::unique_ptr< MooseArray< DualReal > > > _ad_default_value
 
std::unordered_map< std::string, std::unique_ptr< VectorVariableValue > > _default_vector_value
 
std::unordered_map< std::string, std::unique_ptr< ArrayVariableValue > > _default_array_value
 
std::unordered_map< std::string, std::unique_ptr< MooseArray< ADRealVectorValue > > > _ad_default_vector_value
 
VariableValue _default_value_zero
 
VariableGradient _default_gradient
 
MooseArray< ADRealVectorValue_ad_default_gradient
 
MooseArray< ADRealTensorValue_ad_default_vector_gradient
 
VariableSecond _default_second
 
MooseArray< ADRealTensorValue_ad_default_second
 
const VariableValue_zero
 
const VariablePhiValue_phi_zero
 
const MooseArray< DualReal > & _ad_zero
 
const VariableGradient_grad_zero
 
const MooseArray< ADRealVectorValue > & _ad_grad_zero
 
const VariablePhiGradient_grad_phi_zero
 
const VariableSecond_second_zero
 
const MooseArray< ADRealTensorValue > & _ad_second_zero
 
const VariablePhiSecond_second_phi_zero
 
const VectorVariableValue_vector_zero
 
const VectorVariableCurl_vector_curl_zero
 
VectorVariableValue _default_vector_value_zero
 
VectorVariableGradient _default_vector_gradient
 
VectorVariableCurl _default_vector_curl
 
ArrayVariableValue _default_array_value_zero
 
ArrayVariableGradient _default_array_gradient
 
ArrayVariableCurl _default_array_curl
 
bool _coupleable_neighbor
 
const InputParameters_mi_params
 
const std::string _mi_name
 
const MooseObjectName _mi_moose_object_name
 
FEProblemBase_mi_feproblem
 
SubProblem_mi_subproblem
 
const THREAD_ID _mi_tid
 
const Moose::MaterialDataType _material_data_type
 
MaterialData_material_data
 
bool _stateful_allowed
 
bool _get_material_property_called
 
std::vector< std::unique_ptr< PropertyValue > > _default_properties
 
std::unordered_set< unsigned int_material_property_dependencies
 
const MaterialPropertyName _get_suffix
 
const bool _use_interpolated_state
 
const Parallel::Communicator & _communicator
 

Static Protected Attributes

static const std::string _interpolated_old
 
static const std::string _interpolated_older
 

Private Member Functions

void zero2ndDerivedQuantities (unsigned int qp)
 Zeroes 2nd derivatives of the flux. More...
 

Private Attributes

Real _trace_perm
 trace of permeability tensor More...
 
std::vector< Real_material_viscosity
 
MaterialProperty< std::vector< Real > > & _pp_old
 old values of porepressure(s) More...
 
MaterialProperty< std::vector< Real > > & _pp
 porepressure(s) More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _dpp_dv
 d(porepressure_i)/d(variable_j) More...
 
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _d2pp_dv
 d^2(porepressure_i)/d(variable_j)/d(variable_k) More...
 
MaterialProperty< std::vector< Real > > & _viscosity
 fluid viscosity (or viscosities in the multiphase case) More...
 
MaterialProperty< std::vector< Real > > & _density_old
 old fluid density (or densities for multiphase problems) More...
 
MaterialProperty< std::vector< Real > > & _density
 fluid density (or densities for multiphase problems) More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _ddensity_dv
 d(density_i)/d(variable_j) More...
 
MaterialProperty< std::vector< Real > > & _seff_old
 old effective saturation More...
 
MaterialProperty< std::vector< Real > > & _seff
 effective saturation (vector of effective saturations in case of multiphase) More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _dseff_dv
 d(Seff_i)/d(variable_j) More...
 
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _d2seff_dv
 d^2(Seff_i)/d(variable_j)/d(variable_k) More...
 
MaterialProperty< std::vector< Real > > & _sat_old
 old saturation More...
 
MaterialProperty< std::vector< Real > > & _sat
 saturation (vector of saturations in case of multiphase) More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _dsat_dv
 d(saturation_i)/d(variable_j) More...
 
MaterialProperty< std::vector< Real > > & _rel_perm
 relative permeability (vector of relative permeabilities in case of multiphase) More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _drel_perm_dv
 d(relperm_i)/d(variable_j) More...
 
MaterialProperty< std::vector< Real > > & _mass_old
 old value of fluid mass (a vector of masses for multicomponent) More...
 
MaterialProperty< std::vector< Real > > & _mass
 fluid mass (a vector of masses for multicomponent) More...
 
MaterialProperty< std::vector< std::vector< Real > > > & _dmass
 d(fluid mass_i)/dP_j (a vector of masses for multicomponent) More...
 
MaterialProperty< std::vector< RealVectorValue > > & _flux_no_mob
 permeability*(grad(P) - density*gravity) (a vector of these for multicomponent) More...
 
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dflux_no_mob_dv
 d(_flux_no_mob_i)/d(variable_j) More...
 
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dflux_no_mob_dgradv
 d(_flux_no_mob_i)/d(grad(variable_j)) More...
 
MaterialProperty< std::vector< RealVectorValue > > & _flux
 fluid flux (a vector of fluxes for multicomponent) More...
 
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dflux_dv
 d(Richards flux_i)/d(variable_j), here flux_i is the i_th flux, which is itself a RealVectorValue More...
 
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dflux_dgradv
 d(Richards flux_i)/d(grad(variable_j)), here flux_i is the i_th flux, which is itself a RealVectorValue More...
 
MaterialProperty< std::vector< std::vector< std::vector< RealVectorValue > > > > & _d2flux_dvdv
 d^2(Richards flux_i)/d(variable_j)/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue More...
 
MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dgradvdv
 d^2(Richards flux_i)/d(grad(variable_j))/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue More...
 
MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dvdgradv
 d^2(Richards flux_i)/d(variable_j)/d(grad(variable_k)), here flux_i is the i_th flux, which is itself a RealVectorValue. We should have _d2flux_dvdgradv[i][j][k] = _d2flux_dgradvdv[i][k][j], but i think it is more clear having both, and hopefully not a blowout on memory/CPU. More...
 
MaterialProperty< std::vector< RealVectorValue > > & _tauvel_SUPG
 
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dtauvel_SUPG_dgradp
 
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dtauvel_SUPG_dp
 
std::vector< std::vector< std::vector< Real > > > _d2density
 d^2(density)/dp_j/dP_k - used in various derivative calculations More...
 
std::vector< std::vector< std::vector< Real > > > _d2rel_perm_dv
 d^2(relperm_i)/dP_j/dP_k - used in various derivative calculations More...
 
std::vector< const VariableValue * > _pressure_vals
 
std::vector< const VariableValue * > _pressure_old_vals
 
std::vector< const VariableGradient * > _grad_p
 

Detailed Description

Definition at line 23 of file RichardsMaterial.h.

Constructor & Destructor Documentation

◆ RichardsMaterial()

RichardsMaterial::RichardsMaterial ( const InputParameters parameters)

Definition at line 66 of file RichardsMaterial.C.

68 
69  _material_por(getParam<Real>("mat_porosity")),
70  _por_change(coupledValue("por_change")),
71  _por_change_old(coupledValueOld("por_change")),
72 
73  _material_perm(getParam<RealTensorValue>("mat_permeability")),
74 
75  _material_gravity(getParam<RealVectorValue>("gravity")),
76 
77  _porosity_old(declareProperty<Real>("porosity_old")),
78  _porosity(declareProperty<Real>("porosity")),
79  _permeability(declareProperty<RealTensorValue>("permeability")),
80  _gravity(declareProperty<RealVectorValue>("gravity")),
81 
82  _richards_name_UO(getUserObject<RichardsVarNames>("richardsVarNames_UO")),
84 
85  _perm_change(isCoupled("perm_change")
86  ? coupledValues("perm_change")
87  : std::vector<const VariableValue *>(LIBMESH_DIM * LIBMESH_DIM, &_zero)),
88 
90 
91  _material_viscosity(getParam<std::vector<Real>>("viscosity")),
92 
93  _pp_old(declareProperty<std::vector<Real>>("porepressure_old")),
94  _pp(declareProperty<std::vector<Real>>("porepressure")),
95  _dpp_dv(declareProperty<std::vector<std::vector<Real>>>("dporepressure_dv")),
96  _d2pp_dv(declareProperty<std::vector<std::vector<std::vector<Real>>>>("d2porepressure_dvdv")),
97 
98  _viscosity(declareProperty<std::vector<Real>>("viscosity")),
99 
100  _density_old(declareProperty<std::vector<Real>>("density_old")),
101  _density(declareProperty<std::vector<Real>>("density")),
102  _ddensity_dv(declareProperty<std::vector<std::vector<Real>>>("ddensity_dv")),
103 
104  _seff_old(declareProperty<std::vector<Real>>("s_eff_old")),
105  _seff(declareProperty<std::vector<Real>>("s_eff")),
106  _dseff_dv(declareProperty<std::vector<std::vector<Real>>>("ds_eff_dv")),
107  _d2seff_dv(declareProperty<std::vector<std::vector<std::vector<Real>>>>("d2s_eff_dvdv")),
108 
109  _sat_old(declareProperty<std::vector<Real>>("sat_old")),
110  _sat(declareProperty<std::vector<Real>>("sat")),
111  _dsat_dv(declareProperty<std::vector<std::vector<Real>>>("dsat_dv")),
112 
113  _rel_perm(declareProperty<std::vector<Real>>("rel_perm")),
114  _drel_perm_dv(declareProperty<std::vector<std::vector<Real>>>("drel_perm_dv")),
115 
116  _mass_old(declareProperty<std::vector<Real>>("mass_old")),
117  _mass(declareProperty<std::vector<Real>>("mass")),
118  _dmass(declareProperty<std::vector<std::vector<Real>>>("dmass")),
119 
120  _flux_no_mob(declareProperty<std::vector<RealVectorValue>>("flux_no_mob")),
121  _dflux_no_mob_dv(declareProperty<std::vector<std::vector<RealVectorValue>>>("dflux_no_mob_dv")),
123  declareProperty<std::vector<std::vector<RealTensorValue>>>("dflux_no_mob_dgradv")),
124 
125  _flux(declareProperty<std::vector<RealVectorValue>>("flux")),
126  _dflux_dv(declareProperty<std::vector<std::vector<RealVectorValue>>>("dflux_dv")),
127  _dflux_dgradv(declareProperty<std::vector<std::vector<RealTensorValue>>>("dflux_dgradv")),
128  _d2flux_dvdv(
129  declareProperty<std::vector<std::vector<std::vector<RealVectorValue>>>>("d2flux_dvdv")),
131  declareProperty<std::vector<std::vector<std::vector<RealTensorValue>>>>("d2flux_dgradvdv")),
133  declareProperty<std::vector<std::vector<std::vector<RealTensorValue>>>>("d2flux_dvdgradv")),
134 
135  _tauvel_SUPG(declareProperty<std::vector<RealVectorValue>>("tauvel_SUPG")),
137  declareProperty<std::vector<std::vector<RealTensorValue>>>("dtauvel_SUPG_dgradv")),
138  _dtauvel_SUPG_dp(declareProperty<std::vector<std::vector<RealVectorValue>>>("dtauvel_SUPG_dv"))
139 
140 {
141 
142  // Need to add the variables that the user object is coupled to as dependencies so MOOSE will
143  // compute them
144  {
145  const std::vector<MooseVariableFEBase *> & coupled_vars =
147  for (unsigned int i = 0; i < coupled_vars.size(); i++)
148  addMooseVariableDependency(coupled_vars[i]);
149  }
150 
151  if (_material_por <= 0 || _material_por >= 1)
152  mooseError("Porosity set to ", _material_por, " but it must be between 0 and 1");
153 
154  if (isCoupled("perm_change") && (coupledComponents("perm_change") != LIBMESH_DIM * LIBMESH_DIM))
155  mooseError(LIBMESH_DIM * LIBMESH_DIM,
156  " components of perm_change must be given to a RichardsMaterial. You supplied ",
157  coupledComponents("perm_change"),
158  "\n");
159 
160  if (!(_material_viscosity.size() == _num_p &&
161  getParam<std::vector<UserObjectName>>("relperm_UO").size() == _num_p &&
162  getParam<std::vector<UserObjectName>>("seff_UO").size() == _num_p &&
163  getParam<std::vector<UserObjectName>>("sat_UO").size() == _num_p &&
164  getParam<std::vector<UserObjectName>>("density_UO").size() == _num_p &&
165  getParam<std::vector<UserObjectName>>("SUPG_UO").size() == _num_p))
166  mooseError("There are ",
167  _num_p,
168  " Richards fluid variables, so you need to specify this "
169  "number of viscosities, relperm_UO, seff_UO, sat_UO, "
170  "density_UO, SUPG_UO");
171 
172  _d2density.resize(_num_p);
173  _d2rel_perm_dv.resize(_num_p);
174  _pressure_vals.resize(_num_p);
175  _pressure_old_vals.resize(_num_p);
177  _material_seff_UO.resize(_num_p);
178  _material_sat_UO.resize(_num_p);
180  _material_SUPG_UO.resize(_num_p);
181  _grad_p.resize(_num_p);
182 
183  for (unsigned int i = 0; i < _num_p; ++i)
184  {
185  // DON'T WANT "pressure_vars" at all since pp_name_UO contains the same info
186  //_pressure_vals[i] = &coupledValue("pressure_vars", i); // coupled value returns a reference
187  //_pressure_old_vals[i] = (_is_transient ? &coupledValueOld("pressure_vars", i) : &_zero);
188  //_grad_p[i] = &coupledGradient("pressure_vars", i);
189 
190  // in the following. first get the userobject names that were inputted, then get the i_th one
191  // of these, then get the actual userobject that this corresponds to, then finally & gives
192  // pointer to RichardsRelPerm object.
193  _material_relperm_UO[i] = &getUserObjectByName<RichardsRelPerm>(
194  getParam<std::vector<UserObjectName>>("relperm_UO")[i]);
195  _material_seff_UO[i] =
196  &getUserObjectByName<RichardsSeff>(getParam<std::vector<UserObjectName>>("seff_UO")[i]);
197  _material_sat_UO[i] =
198  &getUserObjectByName<RichardsSat>(getParam<std::vector<UserObjectName>>("sat_UO")[i]);
199  _material_density_UO[i] = &getUserObjectByName<RichardsDensity>(
200  getParam<std::vector<UserObjectName>>("density_UO")[i]);
201  _material_SUPG_UO[i] =
202  &getUserObjectByName<RichardsSUPG>(getParam<std::vector<UserObjectName>>("SUPG_UO")[i]);
203  }
204 }
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dflux_no_mob_dgradv
d(_flux_no_mob_i)/d(grad(variable_j))
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _d2pp_dv
d^2(porepressure_i)/d(variable_j)/d(variable_k)
MaterialProperty< std::vector< Real > > & _pp
porepressure(s)
virtual bool isCoupled(const std::string &var_name, unsigned int i=0) const
const VariableValue & _zero
MaterialProperty< RealVectorValue > & _gravity
MaterialProperty< T > & declareProperty(const std::string &name)
MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dvdgradv
d^2(Richards flux_i)/d(variable_j)/d(grad(variable_k)), here flux_i is the i_th flux, which is itself a RealVectorValue. We should have _d2flux_dvdgradv[i][j][k] = _d2flux_dgradvdv[i][k][j], but i think it is more clear having both, and hopefully not a blowout on memory/CPU.
std::vector< std::vector< std::vector< Real > > > _d2rel_perm_dv
d^2(relperm_i)/dP_j/dP_k - used in various derivative calculations
MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dgradvdv
d^2(Richards flux_i)/d(grad(variable_j))/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue
std::vector< const RichardsRelPerm * > _material_relperm_UO
MaterialProperty< std::vector< Real > > & _pp_old
old values of porepressure(s)
const RichardsVarNames & _richards_name_UO
The variable names userobject for the Richards variables.
MaterialProperty< std::vector< RealVectorValue > > & _flux
fluid flux (a vector of fluxes for multicomponent)
std::vector< Real > _material_viscosity
const std::vector< const VariableValue * > _perm_change
unsigned int _num_p
virtual const VariableValue & coupledValueOld(const std::string &var_name, unsigned int comp=0) const
MaterialProperty< std::vector< Real > > & _sat
saturation (vector of saturations in case of multiphase)
std::vector< const RichardsSUPG * > _material_SUPG_UO
unsigned int num_v() const
the number of porepressure variables
MaterialProperty< std::vector< std::vector< Real > > > & _drel_perm_dv
d(relperm_i)/d(variable_j)
Real _material_por
porosity as entered by the user
const VariableValue & _por_change
porosity changes. if not entered they default to zero
virtual const VariableValue & coupledValue(const std::string &var_name, unsigned int comp=0) const
TensorValue< Real > RealTensorValue
MaterialProperty< std::vector< Real > > & _seff_old
old effective saturation
MaterialProperty< std::vector< std::vector< Real > > > & _dpp_dv
d(porepressure_i)/d(variable_j)
MaterialProperty< std::vector< std::vector< std::vector< RealVectorValue > > > > & _d2flux_dvdv
d^2(Richards flux_i)/d(variable_j)/d(variable_k), here flux_i is the i_th flux, which is itself a Rea...
MaterialProperty< RealTensorValue > & _permeability
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dflux_no_mob_dv
d(_flux_no_mob_i)/d(variable_j)
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dtauvel_SUPG_dgradp
std::vector< const VariableGradient * > _grad_p
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dflux_dv
d(Richards flux_i)/d(variable_j), here flux_i is the i_th flux, which is itself a RealVectorValue ...
const T & getParam(const std::string &name) const
std::vector< const VariableValue * > _pressure_vals
MaterialProperty< std::vector< Real > > & _rel_perm
relative permeability (vector of relative permeabilities in case of multiphase)
MaterialProperty< std::vector< Real > > & _mass
fluid mass (a vector of masses for multicomponent)
RealVectorValue _material_gravity
gravity as entered by user
MaterialProperty< std::vector< RealVectorValue > > & _flux_no_mob
permeability*(grad(P) - density*gravity) (a vector of these for multicomponent)
std::vector< const RichardsDensity * > _material_density_UO
std::vector< const VariableValue * > _pressure_old_vals
MaterialProperty< std::vector< Real > > & _density
fluid density (or densities for multiphase problems)
MaterialProperty< std::vector< Real > > & _sat_old
old saturation
const std::vector< MooseVariableFieldBase *> & getCoupledMooseVars() const
OutputTools< Real >::VariableValue VariableValue
std::vector< const RichardsSeff * > _material_seff_UO
unsigned int coupledComponents(const std::string &var_name) const
MaterialProperty< std::vector< Real > > & _mass_old
old value of fluid mass (a vector of masses for multicomponent)
void addMooseVariableDependency(MooseVariableFieldBase *var)
std::vector< const VariableValue *> coupledValues(const std::string &var_name) const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MaterialProperty< Real > & _porosity
MaterialProperty< std::vector< RealVectorValue > > & _tauvel_SUPG
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _d2seff_dv
d^2(Seff_i)/d(variable_j)/d(variable_k)
std::vector< const RichardsSat * > _material_sat_UO
MaterialProperty< std::vector< Real > > & _density_old
old fluid density (or densities for multiphase problems)
MaterialProperty< Real > & _porosity_old
material properties
const VariableValue & _por_change_old
void mooseError(Args &&... args) const
MaterialProperty< std::vector< Real > > & _seff
effective saturation (vector of effective saturations in case of multiphase)
RealTensorValue _material_perm
permeability as entered by the user
const InputParameters & parameters() const
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dflux_dgradv
d(Richards flux_i)/d(grad(variable_j)), here flux_i is the i_th flux, which is itself a RealVectorVal...
Real _trace_perm
trace of permeability tensor
MaterialProperty< std::vector< std::vector< Real > > > & _ddensity_dv
d(density_i)/d(variable_j)
MaterialProperty< std::vector< std::vector< Real > > > & _dsat_dv
d(saturation_i)/d(variable_j)
MaterialProperty< std::vector< std::vector< Real > > > & _dseff_dv
d(Seff_i)/d(variable_j)
MaterialProperty< std::vector< std::vector< Real > > > & _dmass
d(fluid mass_i)/dP_j (a vector of masses for multicomponent)
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dtauvel_SUPG_dp
std::vector< std::vector< std::vector< Real > > > _d2density
d^2(density)/dp_j/dP_k - used in various derivative calculations
Material(const InputParameters &parameters)
MaterialProperty< std::vector< Real > > & _viscosity
fluid viscosity (or viscosities in the multiphase case)

Member Function Documentation

◆ compute2ndDerivedQuantities()

void RichardsMaterial::compute2ndDerivedQuantities ( unsigned int  qp)
protected

Computes 2nd derivatives of the flux.

These are needed by kernels if doing SUPG

Parameters
qpThe quadpoint to evaluate the quantites at

Definition at line 388 of file RichardsMaterial.C.

Referenced by computeProperties().

389 {
391 
392  for (unsigned int i = 0; i < _num_p; ++i)
393  {
394  if ((*_material_SUPG_UO[i]).SUPG_trivial())
395  continue; // as the derivatives won't be needed
396 
397  // second derivative of density
398  _d2density[i].resize(_num_p);
399  Real ddens = (*_material_density_UO[i]).ddensity(_pp[qp][i]);
400  Real d2dens = (*_material_density_UO[i]).d2density(_pp[qp][i]);
401  for (unsigned int j = 0; j < _num_p; ++j)
402  {
403  _d2density[i][j].resize(_num_p);
404  for (unsigned int k = 0; k < _num_p; ++k)
405  _d2density[i][j][k] =
406  d2dens * _dpp_dv[qp][i][j] * _dpp_dv[qp][i][k] + ddens * _d2pp_dv[qp][i][j][k];
407  }
408 
409  // second derivative of relative permeability
410  _d2rel_perm_dv[i].resize(_num_p);
411  Real drel = (*_material_relperm_UO[i]).drelperm(_seff[qp][i]);
412  Real d2rel = (*_material_relperm_UO[i]).d2relperm(_seff[qp][i]);
413  for (unsigned int j = 0; j < _num_p; ++j)
414  {
415  _d2rel_perm_dv[i][j].resize(_num_p);
416  for (unsigned int k = 0; k < _num_p; ++k)
417  _d2rel_perm_dv[i][j][k] =
418  d2rel * _dseff_dv[qp][i][j] * _dseff_dv[qp][i][k] + drel * _d2seff_dv[qp][i][j][k];
419  }
420 
421  // now compute the second derivs of the fluxes
422  for (unsigned int j = 0; j < _num_p; ++j)
423  {
424  for (unsigned int k = 0; k < _num_p; ++k)
425  {
426  _d2flux_dvdv[qp][i][j][k] =
427  _d2density[i][j][k] * _rel_perm[qp][i] *
428  (_permeability[qp] * ((*_grad_p[i])[qp] - _density[qp][i] * _gravity[qp]));
429  _d2flux_dvdv[qp][i][j][k] +=
430  (_ddensity_dv[qp][i][j] * _drel_perm_dv[qp][i][k] +
431  _ddensity_dv[qp][i][k] * _drel_perm_dv[qp][i][j]) *
432  (_permeability[qp] * ((*_grad_p[i])[qp] - _density[qp][i] * _gravity[qp]));
433  _d2flux_dvdv[qp][i][j][k] +=
434  _density[qp][i] * _d2rel_perm_dv[i][j][k] *
435  (_permeability[qp] * ((*_grad_p[i])[qp] - _density[qp][i] * _gravity[qp]));
436  _d2flux_dvdv[qp][i][j][k] += (_ddensity_dv[qp][i][j] * _rel_perm[qp][i] +
437  _density[qp][i] * _drel_perm_dv[qp][i][j]) *
438  (_permeability[qp] * (-_ddensity_dv[qp][i][k] * _gravity[qp]));
439  _d2flux_dvdv[qp][i][j][k] += (_ddensity_dv[qp][i][k] * _rel_perm[qp][i] +
440  _density[qp][i] * _drel_perm_dv[qp][i][k]) *
441  (_permeability[qp] * (-_ddensity_dv[qp][i][j] * _gravity[qp]));
442  _d2flux_dvdv[qp][i][j][k] += _density[qp][i] * _rel_perm[qp][i] *
443  (_permeability[qp] * (-_d2density[i][j][k] * _gravity[qp]));
444  }
445  }
446  for (unsigned int j = 0; j < _num_p; ++j)
447  for (unsigned int k = 0; k < _num_p; ++k)
448  _d2flux_dvdv[qp][i][j][k] /= _viscosity[qp][i];
449 
450  for (unsigned int j = 0; j < _num_p; ++j)
451  {
452  for (unsigned int k = 0; k < _num_p; ++k)
453  {
454  _d2flux_dgradvdv[qp][i][j][k] = (_ddensity_dv[qp][i][k] * _rel_perm[qp][i] +
455  _density[qp][i] * _drel_perm_dv[qp][i][k]) *
456  _permeability[qp] * _dpp_dv[qp][i][j] / _viscosity[qp][i];
457  _d2flux_dvdgradv[qp][i][k][j] = _d2flux_dgradvdv[qp][i][j][k];
458  }
459  }
460  }
461 }
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _d2pp_dv
d^2(porepressure_i)/d(variable_j)/d(variable_k)
MaterialProperty< std::vector< Real > > & _pp
porepressure(s)
MaterialProperty< RealVectorValue > & _gravity
MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dvdgradv
d^2(Richards flux_i)/d(variable_j)/d(grad(variable_k)), here flux_i is the i_th flux, which is itself a RealVectorValue. We should have _d2flux_dvdgradv[i][j][k] = _d2flux_dgradvdv[i][k][j], but i think it is more clear having both, and hopefully not a blowout on memory/CPU.
std::vector< std::vector< std::vector< Real > > > _d2rel_perm_dv
d^2(relperm_i)/dP_j/dP_k - used in various derivative calculations
MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dgradvdv
d^2(Richards flux_i)/d(grad(variable_j))/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue
std::vector< const RichardsRelPerm * > _material_relperm_UO
unsigned int _num_p
std::vector< const RichardsSUPG * > _material_SUPG_UO
MaterialProperty< std::vector< std::vector< Real > > > & _drel_perm_dv
d(relperm_i)/d(variable_j)
void zero2ndDerivedQuantities(unsigned int qp)
Zeroes 2nd derivatives of the flux.
MaterialProperty< std::vector< std::vector< Real > > > & _dpp_dv
d(porepressure_i)/d(variable_j)
MaterialProperty< std::vector< std::vector< std::vector< RealVectorValue > > > > & _d2flux_dvdv
d^2(Richards flux_i)/d(variable_j)/d(variable_k), here flux_i is the i_th flux, which is itself a Rea...
MaterialProperty< RealTensorValue > & _permeability
std::vector< const VariableGradient * > _grad_p
MaterialProperty< std::vector< Real > > & _rel_perm
relative permeability (vector of relative permeabilities in case of multiphase)
std::vector< const RichardsDensity * > _material_density_UO
MaterialProperty< std::vector< Real > > & _density
fluid density (or densities for multiphase problems)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _d2seff_dv
d^2(Seff_i)/d(variable_j)/d(variable_k)
MaterialProperty< std::vector< Real > > & _seff
effective saturation (vector of effective saturations in case of multiphase)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
MaterialProperty< std::vector< std::vector< Real > > > & _ddensity_dv
d(density_i)/d(variable_j)
MaterialProperty< std::vector< std::vector< Real > > > & _dseff_dv
d(Seff_i)/d(variable_j)
static const std::string k
Definition: NS.h:124
std::vector< std::vector< std::vector< Real > > > _d2density
d^2(density)/dp_j/dP_k - used in various derivative calculations
MaterialProperty< std::vector< Real > > & _viscosity
fluid viscosity (or viscosities in the multiphase case)

◆ computeDerivedQuantities()

void RichardsMaterial::computeDerivedQuantities ( unsigned int  qp)
protected

Computes the "derived" quantities — those that depend on porepressure(s) and effective saturation(s) — such as density, relative permeability, mass, flux, etc.

Parameters
qpThe quadpoint to evaluate the quantites at

Definition at line 266 of file RichardsMaterial.C.

Referenced by computeProperties().

267 {
268  // fluid viscosity
269  _viscosity[qp].resize(_num_p);
270  for (unsigned int i = 0; i < _num_p; ++i)
271  _viscosity[qp][i] = _material_viscosity[i];
272 
273  // fluid saturation
274  _sat_old[qp].resize(_num_p);
275  _sat[qp].resize(_num_p);
276  _dsat_dv[qp].resize(_num_p);
277  for (unsigned int i = 0; i < _num_p; ++i)
278  {
279  _sat_old[qp][i] = (*_material_sat_UO[i]).sat(_seff_old[qp][i]);
280  _sat[qp][i] = (*_material_sat_UO[i]).sat(_seff[qp][i]);
281  _dsat_dv[qp][i].assign(_num_p, (*_material_sat_UO[i]).dsat(_seff[qp][i]));
282  for (unsigned int j = 0; j < _num_p; ++j)
283  _dsat_dv[qp][i][j] *= _dseff_dv[qp][i][j];
284  }
285 
286  // fluid density
288  _density[qp].resize(_num_p);
290  for (unsigned int i = 0; i < _num_p; ++i)
291  {
292  _density_old[qp][i] = (*_material_density_UO[i]).density(_pp_old[qp][i]);
293  _density[qp][i] = (*_material_density_UO[i]).density(_pp[qp][i]);
294  _ddensity_dv[qp][i].assign(_num_p, (*_material_density_UO[i]).ddensity(_pp[qp][i]));
295  for (unsigned int j = 0; j < _num_p; ++j)
296  _ddensity_dv[qp][i][j] *= _dpp_dv[qp][i][j];
297  }
298 
299  // relative permeability
300  _rel_perm[qp].resize(_num_p);
302  for (unsigned int i = 0; i < _num_p; ++i)
303  {
304  _rel_perm[qp][i] = (*_material_relperm_UO[i]).relperm(_seff[qp][i]);
305  _drel_perm_dv[qp][i].assign(_num_p, (*_material_relperm_UO[i]).drelperm(_seff[qp][i]));
306  for (unsigned int j = 0; j < _num_p; ++j)
307  _drel_perm_dv[qp][i][j] *= _dseff_dv[qp][i][j];
308  }
309 
310  // fluid mass
311  _mass_old[qp].resize(_num_p);
312  _mass[qp].resize(_num_p);
313  _dmass[qp].resize(_num_p);
314  for (unsigned int i = 0; i < _num_p; ++i)
315  {
316  _mass_old[qp][i] = _porosity_old[qp] * _density_old[qp][i] * _sat_old[qp][i];
317  _mass[qp][i] = _porosity[qp] * _density[qp][i] * _sat[qp][i];
318  _dmass[qp][i].resize(_num_p);
319  for (unsigned int j = 0; j < _num_p; ++j)
320  _dmass[qp][i][j] = _porosity[qp] * (_ddensity_dv[qp][i][j] * _sat[qp][i] +
321  _density[qp][i] * _dsat_dv[qp][i][j]);
322  }
323 
324  // flux without the mobility part
325  _flux_no_mob[qp].resize(_num_p);
326  _dflux_no_mob_dv[qp].resize(_num_p);
328  for (unsigned int i = 0; i < _num_p; ++i)
329  {
330  _flux_no_mob[qp][i] = _permeability[qp] * ((*_grad_p[i])[qp] - _density[qp][i] * _gravity[qp]);
331 
332  _dflux_no_mob_dv[qp][i].resize(_num_p);
333  for (unsigned int j = 0; j < _num_p; ++j)
334  _dflux_no_mob_dv[qp][i][j] = _permeability[qp] * (-_ddensity_dv[qp][i][j] * _gravity[qp]);
335 
337  for (unsigned int j = 0; j < _num_p; ++j)
338  _dflux_no_mob_dgradv[qp][i][j] = _permeability[qp] * _dpp_dv[qp][i][j];
339  }
340 
341  // flux
342  _flux[qp].resize(_num_p);
343  _dflux_dv[qp].resize(_num_p);
345  for (unsigned int i = 0; i < _num_p; ++i)
346  {
347  _flux[qp][i] = _density[qp][i] * _rel_perm[qp][i] * _flux_no_mob[qp][i] / _viscosity[qp][i];
348 
349  _dflux_dv[qp][i].resize(_num_p);
350  for (unsigned int j = 0; j < _num_p; ++j)
351  {
352  _dflux_dv[qp][i][j] =
353  _density[qp][i] * _rel_perm[qp][i] * _dflux_no_mob_dv[qp][i][j] / _viscosity[qp][i];
354  _dflux_dv[qp][i][j] +=
355  (_ddensity_dv[qp][i][j] * _rel_perm[qp][i] + _density[qp][i] * _drel_perm_dv[qp][i][j]) *
356  _flux_no_mob[qp][i] / _viscosity[qp][i];
357  }
358 
359  _dflux_dgradv[qp][i].resize(_num_p);
360  for (unsigned int j = 0; j < _num_p; ++j)
361  _dflux_dgradv[qp][i][j] =
362  _density[qp][i] * _rel_perm[qp][i] * _dflux_no_mob_dgradv[qp][i][j] / _viscosity[qp][i];
363  }
364 }
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dflux_no_mob_dgradv
d(_flux_no_mob_i)/d(grad(variable_j))
MaterialProperty< std::vector< Real > > & _pp
porepressure(s)
MaterialProperty< RealVectorValue > & _gravity
std::vector< const RichardsRelPerm * > _material_relperm_UO
MaterialProperty< std::vector< Real > > & _pp_old
old values of porepressure(s)
MaterialProperty< std::vector< RealVectorValue > > & _flux
fluid flux (a vector of fluxes for multicomponent)
std::vector< Real > _material_viscosity
static const std::string density
Definition: NS.h:33
unsigned int _num_p
MaterialProperty< std::vector< Real > > & _sat
saturation (vector of saturations in case of multiphase)
MaterialProperty< std::vector< std::vector< Real > > > & _drel_perm_dv
d(relperm_i)/d(variable_j)
virtual void resize(const std::size_t size) override final
MaterialProperty< std::vector< Real > > & _seff_old
old effective saturation
MaterialProperty< std::vector< std::vector< Real > > > & _dpp_dv
d(porepressure_i)/d(variable_j)
MaterialProperty< RealTensorValue > & _permeability
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dflux_no_mob_dv
d(_flux_no_mob_i)/d(variable_j)
std::vector< const VariableGradient * > _grad_p
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dflux_dv
d(Richards flux_i)/d(variable_j), here flux_i is the i_th flux, which is itself a RealVectorValue ...
MaterialProperty< std::vector< Real > > & _rel_perm
relative permeability (vector of relative permeabilities in case of multiphase)
MaterialProperty< std::vector< Real > > & _mass
fluid mass (a vector of masses for multicomponent)
MaterialProperty< std::vector< RealVectorValue > > & _flux_no_mob
permeability*(grad(P) - density*gravity) (a vector of these for multicomponent)
std::vector< const RichardsDensity * > _material_density_UO
MaterialProperty< std::vector< Real > > & _density
fluid density (or densities for multiphase problems)
MaterialProperty< std::vector< Real > > & _sat_old
old saturation
MaterialProperty< std::vector< Real > > & _mass_old
old value of fluid mass (a vector of masses for multicomponent)
MaterialProperty< Real > & _porosity
std::vector< const RichardsSat * > _material_sat_UO
MaterialProperty< std::vector< Real > > & _density_old
old fluid density (or densities for multiphase problems)
MaterialProperty< Real > & _porosity_old
material properties
MaterialProperty< std::vector< Real > > & _seff
effective saturation (vector of effective saturations in case of multiphase)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dflux_dgradv
d(Richards flux_i)/d(grad(variable_j)), here flux_i is the i_th flux, which is itself a RealVectorVal...
MaterialProperty< std::vector< std::vector< Real > > > & _ddensity_dv
d(density_i)/d(variable_j)
MaterialProperty< std::vector< std::vector< Real > > > & _dsat_dv
d(saturation_i)/d(variable_j)
MaterialProperty< std::vector< std::vector< Real > > > & _dseff_dv
d(Seff_i)/d(variable_j)
MaterialProperty< std::vector< std::vector< Real > > > & _dmass
d(fluid mass_i)/dP_j (a vector of masses for multicomponent)
MaterialProperty< std::vector< Real > > & _viscosity
fluid viscosity (or viscosities in the multiphase case)

◆ computePandSeff()

void RichardsMaterial::computePandSeff ( )
protected

computes the quadpoint values of the porepressure(s) and effective saturation(s), and their derivatives wrt the variables in the system.

These are then used in computeProperties to compute relative permeability, density, and so on

Definition at line 207 of file RichardsMaterial.C.

Referenced by computeProperties().

208 {
209  // Get the pressure and effective saturation at each quadpoint
210  // From these we will build the relative permeability, density, flux, etc
211  if (_richards_name_UO.var_types() == "pppp")
212  {
213  for (unsigned int i = 0; i < _num_p; ++i)
214  {
218  }
219  }
220 
221  for (unsigned int qp = 0; qp < _qrule->n_points(); qp++)
222  {
223  _pp_old[qp].resize(_num_p);
224  _pp[qp].resize(_num_p);
225  _dpp_dv[qp].resize(_num_p);
226  _d2pp_dv[qp].resize(_num_p);
227 
228  _seff_old[qp].resize(_num_p);
229  _seff[qp].resize(_num_p);
230  _dseff_dv[qp].resize(_num_p);
231  _d2seff_dv[qp].resize(_num_p);
232 
233  if (_richards_name_UO.var_types() == "pppp")
234  {
235  for (unsigned int i = 0; i < _num_p; ++i)
236  {
237  _pp_old[qp][i] = (*_pressure_old_vals[i])[qp];
238  _pp[qp][i] = (*_pressure_vals[i])[qp];
239 
240  _dpp_dv[qp][i].assign(_num_p, 0);
241  _dpp_dv[qp][i][i] = 1;
242 
243  _d2pp_dv[qp][i].resize(_num_p);
244  for (unsigned int j = 0; j < _num_p; ++j)
245  _d2pp_dv[qp][i][j].assign(_num_p, 0);
246 
247  _seff_old[qp][i] = (*_material_seff_UO[i]).seff(_pressure_old_vals, qp);
248  _seff[qp][i] = (*_material_seff_UO[i]).seff(_pressure_vals, qp);
249 
250  _dseff_dv[qp][i].resize(_num_p);
251  (*_material_seff_UO[i]).dseff(_pressure_vals, qp, _dseff_dv[qp][i]);
252 
253  _d2seff_dv[qp][i].resize(_num_p);
254  for (unsigned int j = 0; j < _num_p; ++j)
255  _d2seff_dv[qp][i][j].resize(_num_p);
256  (*_material_seff_UO[i]).d2seff(_pressure_vals, qp, _d2seff_dv[qp][i]);
257  }
258  }
259  // the above lines of code are only valid for "pppp"
260  // if you decide to code other RichardsVariables (eg "psss")
261  // you will need to add some lines here
262  }
263 }
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _d2pp_dv
d^2(porepressure_i)/d(variable_j)/d(variable_k)
MaterialProperty< std::vector< Real > > & _pp
porepressure(s)
const QBase *const & _qrule
const VariableValue * richards_vals_old(unsigned int richards_var_num) const
a vector of pointers to old VariableValues
MaterialProperty< std::vector< Real > > & _pp_old
old values of porepressure(s)
const RichardsVarNames & _richards_name_UO
The variable names userobject for the Richards variables.
unsigned int _num_p
virtual void resize(const std::size_t size) override final
MaterialProperty< std::vector< Real > > & _seff_old
old effective saturation
MaterialProperty< std::vector< std::vector< Real > > > & _dpp_dv
d(porepressure_i)/d(variable_j)
std::string var_types() const
return the _var_types string
const VariableGradient * grad_var(unsigned int richards_var_num) const
a vector of pointers to grad(Variable)
std::vector< const VariableGradient * > _grad_p
std::vector< const VariableValue * > _pressure_vals
std::vector< const VariableValue * > _pressure_old_vals
std::vector< const RichardsSeff * > _material_seff_UO
const VariableValue * richards_vals(unsigned int richards_var_num) const
a vector of pointers to VariableValues
MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _d2seff_dv
d^2(Seff_i)/d(variable_j)/d(variable_k)
MaterialProperty< std::vector< Real > > & _seff
effective saturation (vector of effective saturations in case of multiphase)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
MaterialProperty< std::vector< std::vector< Real > > > & _dseff_dv
d(Seff_i)/d(variable_j)

◆ computeProperties()

void RichardsMaterial::computeProperties ( )
protectedvirtual

Reimplemented from Material.

Definition at line 571 of file RichardsMaterial.C.

572 {
573  // compute porepressures and effective saturations
574  // with algorithms depending on the _richards_name_UO.var_types()
575  computePandSeff();
576 
577  // porosity, permeability, and gravity
578  for (unsigned int qp = 0; qp < _qrule->n_points(); qp++)
579  {
580  _porosity[qp] = _material_por + _por_change[qp];
582 
584  for (const auto i : make_range(Moose::dim))
585  for (const auto j : make_range(Moose::dim))
586  _permeability[qp](i, j) *= std::pow(10, (*_perm_change[LIBMESH_DIM * i + j])[qp]);
587 
589  }
590 
591  // compute "derived" quantities -- those that depend on P and Seff --- such as density, relperm
592  for (unsigned int qp = 0; qp < _qrule->n_points(); qp++)
594 
595  // compute certain second derivatives of the derived quantities
596  // These are needed in Jacobian calculations if doing SUPG
597  for (unsigned int qp = 0; qp < _qrule->n_points(); qp++)
599 
600  // Now for SUPG itself
601  for (unsigned int qp = 0; qp < _qrule->n_points(); qp++)
602  zeroSUPG(qp);
603 
604  // the following saves computational effort if all SUPG is trivial
605  bool trivial_supg = true;
606  for (unsigned int i = 0; i < _num_p; ++i)
607  trivial_supg = trivial_supg && (*_material_SUPG_UO[i]).SUPG_trivial();
608  if (trivial_supg)
609  return;
610  else
611  computeSUPG();
612 }
const QBase *const & _qrule
MaterialProperty< RealVectorValue > & _gravity
const std::vector< const VariableValue * > _perm_change
static constexpr std::size_t dim
unsigned int _num_p
std::vector< const RichardsSUPG * > _material_SUPG_UO
Real _material_por
porosity as entered by the user
const VariableValue & _por_change
porosity changes. if not entered they default to zero
void computePandSeff()
computes the quadpoint values of the porepressure(s) and effective saturation(s), and their derivativ...
MaterialProperty< RealTensorValue > & _permeability
RealVectorValue _material_gravity
gravity as entered by user
void computeDerivedQuantities(unsigned int qp)
Computes the "derived" quantities — those that depend on porepressure(s) and effective saturation(s)...
MaterialProperty< Real > & _porosity
void computeSUPG()
Computes the tauvel_SUPG and its derivatives.
void compute2ndDerivedQuantities(unsigned int qp)
Computes 2nd derivatives of the flux.
void zeroSUPG(unsigned int qp)
Assigns and zeroes the MaterialProperties associated with SUPG.
IntRange< T > make_range(T beg, T end)
MaterialProperty< Real > & _porosity_old
material properties
const VariableValue & _por_change_old
RealTensorValue _material_perm
permeability as entered by the user
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
MooseUnits pow(const MooseUnits &, int)

◆ computeSUPG()

void RichardsMaterial::computeSUPG ( )
protected

Computes the tauvel_SUPG and its derivatives.

Definition at line 477 of file RichardsMaterial.C.

Referenced by computeProperties().

478 {
479  // Grab reference to linear Lagrange finite element object pointer,
480  // currently this is always a linear Lagrange element, so this might need to
481  // be generalized if we start working with higher-order elements...
482  auto && fe = _assembly.getFE(getParam<bool>("linear_shape_fcns") ? FEType(FIRST, LAGRANGE)
483  : FEType(SECOND, LAGRANGE),
484  _current_elem->dim());
485 
486  // Grab references to FE object's mapping data from the _subproblem's FE object
487  const std::vector<Real> & dxidx(fe->get_dxidx());
488  const std::vector<Real> & dxidy(fe->get_dxidy());
489  const std::vector<Real> & dxidz(fe->get_dxidz());
490  const std::vector<Real> & detadx(fe->get_detadx());
491  const std::vector<Real> & detady(fe->get_detady());
492  const std::vector<Real> & detadz(fe->get_detadz());
493  const std::vector<Real> & dzetadx(fe->get_dzetadx());
494  const std::vector<Real> & dzetady(fe->get_dzetady());
495  const std::vector<Real> & dzetadz(fe->get_dzetadz());
496 
497  for (unsigned int qp = 0; qp < _qrule->n_points(); qp++)
498  {
499 
500  // Bounds checking on element data and putting into vector form
501  mooseAssert(qp < dxidx.size(), "Insufficient data in dxidx array!");
502  mooseAssert(qp < dxidy.size(), "Insufficient data in dxidy array!");
503  mooseAssert(qp < dxidz.size(), "Insufficient data in dxidz array!");
504  if (_mesh.dimension() >= 2)
505  {
506  mooseAssert(qp < detadx.size(), "Insufficient data in detadx array!");
507  mooseAssert(qp < detady.size(), "Insufficient data in detady array!");
508  mooseAssert(qp < detadz.size(), "Insufficient data in detadz array!");
509  }
510  if (_mesh.dimension() >= 3)
511  {
512  mooseAssert(qp < dzetadx.size(), "Insufficient data in dzetadx array!");
513  mooseAssert(qp < dzetady.size(), "Insufficient data in dzetady array!");
514  mooseAssert(qp < dzetadz.size(), "Insufficient data in dzetadz array!");
515  }
516 
517  // CHECK : Does this work spherical, cylindrical, etc?
518  RealVectorValue xi_prime(dxidx[qp], dxidy[qp], dxidz[qp]);
519  RealVectorValue eta_prime, zeta_prime;
520  if (_mesh.dimension() >= 2)
521  {
522  eta_prime(0) = detadx[qp];
523  eta_prime(1) = detady[qp];
524  }
525  if (_mesh.dimension() == 3)
526  {
527  eta_prime(2) = detadz[qp];
528  zeta_prime(0) = dzetadx[qp];
529  zeta_prime(1) = dzetady[qp];
530  zeta_prime(2) = dzetadz[qp];
531  }
532 
533  _trace_perm = _permeability[qp].tr();
534  for (unsigned int i = 0; i < _num_p; ++i)
535  {
536  RealVectorValue vel =
537  (*_material_SUPG_UO[i])
538  .velSUPG(_permeability[qp], (*_grad_p[i])[qp], _density[qp][i], _gravity[qp]);
539  RealTensorValue dvel_dgradp = (*_material_SUPG_UO[i]).dvelSUPG_dgradp(_permeability[qp]);
540  RealVectorValue dvel_dp =
541  (*_material_SUPG_UO[i])
542  .dvelSUPG_dp(_permeability[qp], _ddensity_dv[qp][i][i], _gravity[qp]);
543  RealVectorValue bb =
544  (*_material_SUPG_UO[i]).bb(vel, _mesh.dimension(), xi_prime, eta_prime, zeta_prime);
545  RealVectorValue dbb2_dgradp =
546  (*_material_SUPG_UO[i]).dbb2_dgradp(vel, dvel_dgradp, xi_prime, eta_prime, zeta_prime);
547  Real dbb2_dp = (*_material_SUPG_UO[i]).dbb2_dp(vel, dvel_dp, xi_prime, eta_prime, zeta_prime);
548  Real tau = (*_material_SUPG_UO[i]).tauSUPG(vel, _trace_perm, bb);
549  RealVectorValue dtau_dgradp =
550  (*_material_SUPG_UO[i]).dtauSUPG_dgradp(vel, dvel_dgradp, _trace_perm, bb, dbb2_dgradp);
551  Real dtau_dp = (*_material_SUPG_UO[i]).dtauSUPG_dp(vel, dvel_dp, _trace_perm, bb, dbb2_dp);
552 
553  _tauvel_SUPG[qp][i] = tau * vel;
554 
555  RealTensorValue dtauvel_dgradp = tau * dvel_dgradp;
556  for (const auto j : make_range(Moose::dim))
557  for (const auto k : make_range(Moose::dim))
558  dtauvel_dgradp(j, k) +=
559  dtau_dgradp(j) * vel(k); // this is outerproduct - maybe libmesh can do it better?
560  for (unsigned int j = 0; j < _num_p; ++j)
561  _dtauvel_SUPG_dgradp[qp][i][j] = dtauvel_dgradp * _dpp_dv[qp][i][j];
562 
563  RealVectorValue dtauvel_dp = dtau_dp * vel + tau * dvel_dp;
564  for (unsigned int j = 0; j < _num_p; ++j)
565  _dtauvel_SUPG_dp[qp][i][j] = dtauvel_dp * _dpp_dv[qp][i][j];
566  }
567  }
568 }
const QBase *const & _qrule
MaterialProperty< RealVectorValue > & _gravity
static constexpr std::size_t dim
unsigned int _num_p
std::vector< const RichardsSUPG * > _material_SUPG_UO
TensorValue< Real > RealTensorValue
MaterialProperty< std::vector< std::vector< Real > > > & _dpp_dv
d(porepressure_i)/d(variable_j)
MaterialProperty< RealTensorValue > & _permeability
MooseMesh & _mesh
virtual unsigned int dimension() const
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dtauvel_SUPG_dgradp
Assembly & _assembly
std::vector< const VariableGradient * > _grad_p
MaterialProperty< std::vector< Real > > & _density
fluid density (or densities for multiphase problems)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MaterialProperty< std::vector< RealVectorValue > > & _tauvel_SUPG
IntRange< T > make_range(T beg, T end)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
Real _trace_perm
trace of permeability tensor
const FEBase *const & getFE(FEType type, unsigned int dim) const
MaterialProperty< std::vector< std::vector< Real > > > & _ddensity_dv
d(density_i)/d(variable_j)
static const std::string k
Definition: NS.h:124
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dtauvel_SUPG_dp
const Elem *const & _current_elem

◆ validParams()

InputParameters RichardsMaterial::validParams ( )
static

Definition at line 21 of file RichardsMaterial.C.

22 {
24 
25  params.addRequiredParam<Real>(
26  "mat_porosity", "The porosity of the material. Should be between 0 and 1. Eg, 0.1");
27  params.addCoupledVar("por_change",
28  0,
29  "An auxillary variable describing porosity changes. "
30  "Porosity = mat_porosity + por_change. If this is not "
31  "provided, zero is used.");
32  params.addRequiredParam<RealTensorValue>("mat_permeability", "The permeability tensor (m^2).");
33  params.addCoupledVar("perm_change",
34  "A list of auxillary variable describing permeability "
35  "changes. There must be 9 of these, corresponding to the "
36  "xx, xy, xz, yx, yy, yz, zx, zy, zz components respectively. "
37  " Permeability = mat_permeability*10^(perm_change).");
38  params.addRequiredParam<UserObjectName>(
39  "richardsVarNames_UO", "The UserObject that holds the list of Richards variable names.");
40  params.addRequiredParam<std::vector<UserObjectName>>(
41  "relperm_UO", "List of names of user objects that define relative permeability");
42  params.addRequiredParam<std::vector<UserObjectName>>(
43  "seff_UO",
44  "List of name of user objects that define effective saturation as a function of "
45  "pressure list");
46  params.addRequiredParam<std::vector<UserObjectName>>(
47  "sat_UO",
48  "List of names of user objects that define saturation as a function of effective saturation");
49  params.addRequiredParam<std::vector<UserObjectName>>(
50  "density_UO", "List of names of user objects that define the fluid density");
51  params.addRequiredParam<std::vector<UserObjectName>>(
52  "SUPG_UO", "List of names of user objects that define the SUPG");
53  params.addRequiredParam<std::vector<Real>>(
54  "viscosity", "List of viscosity of fluids (Pa.s). Typical value for water is=1E-3");
56  "gravity",
57  "Gravitational acceleration (m/s^2) as a vector pointing downwards. Eg (0,0,-10)");
58  // params.addRequiredCoupledVar("pressure_vars", "List of variables that represent the pressure");
59  params.addParam<bool>(
60  "linear_shape_fcns",
61  true,
62  "If you are using second-order Lagrange shape functions you need to set this to false.");
63  return params;
64 }
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
TensorValue< Real > RealTensorValue
static InputParameters validParams()
void addCoupledVar(const std::string &name, const std::string &doc_string)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ zero2ndDerivedQuantities()

void RichardsMaterial::zero2ndDerivedQuantities ( unsigned int  qp)
private

Zeroes 2nd derivatives of the flux.

The values are only calculated in compute2ndDerivedQuantites if the SUPG UserObject says they are need. This is for computational efficiency as these are very expensive to calculate

Parameters
qpThe quadpoint to evaluate the quantites at

Definition at line 367 of file RichardsMaterial.C.

Referenced by compute2ndDerivedQuantities().

368 {
369  _d2flux_dvdv[qp].resize(_num_p);
372 
373  for (unsigned int i = 0; i < _num_p; ++i)
374  {
375  _d2flux_dvdv[qp][i].resize(_num_p);
378  for (unsigned int j = 0; j < _num_p; ++j)
379  {
380  _d2flux_dvdv[qp][i][j].assign(_num_p, RealVectorValue());
381  _d2flux_dgradvdv[qp][i][j].assign(_num_p, RealTensorValue());
382  _d2flux_dvdgradv[qp][i][j].assign(_num_p, RealTensorValue());
383  }
384  }
385 }
MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dvdgradv
d^2(Richards flux_i)/d(variable_j)/d(grad(variable_k)), here flux_i is the i_th flux, which is itself a RealVectorValue. We should have _d2flux_dvdgradv[i][j][k] = _d2flux_dgradvdv[i][k][j], but i think it is more clear having both, and hopefully not a blowout on memory/CPU.
MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dgradvdv
d^2(Richards flux_i)/d(grad(variable_j))/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue
unsigned int _num_p
virtual void resize(const std::size_t size) override final
TensorValue< Real > RealTensorValue
MaterialProperty< std::vector< std::vector< std::vector< RealVectorValue > > > > & _d2flux_dvdv
d^2(Richards flux_i)/d(variable_j)/d(variable_k), here flux_i is the i_th flux, which is itself a Rea...
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")

◆ zeroSUPG()

void RichardsMaterial::zeroSUPG ( unsigned int  qp)
protected

Assigns and zeroes the MaterialProperties associated with SUPG.

Parameters
qpThe quadpoint to assign+zero at

Definition at line 464 of file RichardsMaterial.C.

Referenced by computeProperties().

465 {
466  _tauvel_SUPG[qp].assign(_num_p, RealVectorValue());
468  _dtauvel_SUPG_dp[qp].resize(_num_p);
469  for (unsigned int i = 0; i < _num_p; ++i)
470  {
471  _dtauvel_SUPG_dp[qp][i].assign(_num_p, RealVectorValue());
472  _dtauvel_SUPG_dgradp[qp][i].assign(_num_p, RealTensorValue());
473  }
474 }
unsigned int _num_p
virtual void resize(const std::size_t size) override final
TensorValue< Real > RealTensorValue
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dtauvel_SUPG_dgradp
MaterialProperty< std::vector< RealVectorValue > > & _tauvel_SUPG
MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dtauvel_SUPG_dp

Member Data Documentation

◆ _d2density

std::vector<std::vector<std::vector<Real> > > RichardsMaterial::_d2density
private

d^2(density)/dp_j/dP_k - used in various derivative calculations

Definition at line 198 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), and RichardsMaterial().

◆ _d2flux_dgradvdv

MaterialProperty<std::vector<std::vector<std::vector<RealTensorValue> > > >& RichardsMaterial::_d2flux_dgradvdv
private

d^2(Richards flux_i)/d(grad(variable_j))/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue

Definition at line 186 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), and zero2ndDerivedQuantities().

◆ _d2flux_dvdgradv

MaterialProperty<std::vector<std::vector<std::vector<RealTensorValue> > > >& RichardsMaterial::_d2flux_dvdgradv
private

d^2(Richards flux_i)/d(variable_j)/d(grad(variable_k)), here flux_i is the i_th flux, which is itself a RealVectorValue. We should have _d2flux_dvdgradv[i][j][k] = _d2flux_dgradvdv[i][k][j], but i think it is more clear having both, and hopefully not a blowout on memory/CPU.

Definition at line 189 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), and zero2ndDerivedQuantities().

◆ _d2flux_dvdv

MaterialProperty<std::vector<std::vector<std::vector<RealVectorValue> > > >& RichardsMaterial::_d2flux_dvdv
private

d^2(Richards flux_i)/d(variable_j)/d(variable_k), here flux_i is the i_th flux, which is itself a RealVectorValue

Definition at line 183 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), and zero2ndDerivedQuantities().

◆ _d2pp_dv

MaterialProperty<std::vector<std::vector<std::vector<Real> > > >& RichardsMaterial::_d2pp_dv
private

d^2(porepressure_i)/d(variable_j)/d(variable_k)

Definition at line 114 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), and computePandSeff().

◆ _d2rel_perm_dv

std::vector<std::vector<std::vector<Real> > > RichardsMaterial::_d2rel_perm_dv
private

d^2(relperm_i)/dP_j/dP_k - used in various derivative calculations

Definition at line 201 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), and RichardsMaterial().

◆ _d2seff_dv

MaterialProperty<std::vector<std::vector<std::vector<Real> > > >& RichardsMaterial::_d2seff_dv
private

d^2(Seff_i)/d(variable_j)/d(variable_k)

Definition at line 138 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), and computePandSeff().

◆ _ddensity_dv

MaterialProperty<std::vector<std::vector<Real> > >& RichardsMaterial::_ddensity_dv
private

d(density_i)/d(variable_j)

Definition at line 126 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and computeSUPG().

◆ _density

MaterialProperty<std::vector<Real> >& RichardsMaterial::_density
private

fluid density (or densities for multiphase problems)

Definition at line 123 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and computeSUPG().

◆ _density_old

MaterialProperty<std::vector<Real> >& RichardsMaterial::_density_old
private

old fluid density (or densities for multiphase problems)

Definition at line 120 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _dflux_dgradv

MaterialProperty<std::vector<std::vector<RealTensorValue> > >& RichardsMaterial::_dflux_dgradv
private

d(Richards flux_i)/d(grad(variable_j)), here flux_i is the i_th flux, which is itself a RealVectorValue

Definition at line 180 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _dflux_dv

MaterialProperty<std::vector<std::vector<RealVectorValue> > >& RichardsMaterial::_dflux_dv
private

d(Richards flux_i)/d(variable_j), here flux_i is the i_th flux, which is itself a RealVectorValue

Definition at line 177 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _dflux_no_mob_dgradv

MaterialProperty<std::vector<std::vector<RealTensorValue> > >& RichardsMaterial::_dflux_no_mob_dgradv
private

d(_flux_no_mob_i)/d(grad(variable_j))

Definition at line 171 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _dflux_no_mob_dv

MaterialProperty<std::vector<std::vector<RealVectorValue> > >& RichardsMaterial::_dflux_no_mob_dv
private

d(_flux_no_mob_i)/d(variable_j)

Definition at line 168 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _dmass

MaterialProperty<std::vector<std::vector<Real> > >& RichardsMaterial::_dmass
private

d(fluid mass_i)/dP_j (a vector of masses for multicomponent)

Definition at line 162 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _dpp_dv

MaterialProperty<std::vector<std::vector<Real> > >& RichardsMaterial::_dpp_dv
private

d(porepressure_i)/d(variable_j)

Definition at line 111 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), computePandSeff(), and computeSUPG().

◆ _drel_perm_dv

MaterialProperty<std::vector<std::vector<Real> > >& RichardsMaterial::_drel_perm_dv
private

d(relperm_i)/d(variable_j)

Definition at line 153 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), and computeDerivedQuantities().

◆ _dsat_dv

MaterialProperty<std::vector<std::vector<Real> > >& RichardsMaterial::_dsat_dv
private

d(saturation_i)/d(variable_j)

Definition at line 147 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _dseff_dv

MaterialProperty<std::vector<std::vector<Real> > >& RichardsMaterial::_dseff_dv
private

d(Seff_i)/d(variable_j)

Definition at line 135 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and computePandSeff().

◆ _dtauvel_SUPG_dgradp

MaterialProperty<std::vector<std::vector<RealTensorValue> > >& RichardsMaterial::_dtauvel_SUPG_dgradp
private

Definition at line 193 of file RichardsMaterial.h.

Referenced by computeSUPG(), and zeroSUPG().

◆ _dtauvel_SUPG_dp

MaterialProperty<std::vector<std::vector<RealVectorValue> > >& RichardsMaterial::_dtauvel_SUPG_dp
private

Definition at line 195 of file RichardsMaterial.h.

Referenced by computeSUPG(), and zeroSUPG().

◆ _flux

MaterialProperty<std::vector<RealVectorValue> >& RichardsMaterial::_flux
private

fluid flux (a vector of fluxes for multicomponent)

Definition at line 174 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _flux_no_mob

MaterialProperty<std::vector<RealVectorValue> >& RichardsMaterial::_flux_no_mob
private

permeability*(grad(P) - density*gravity) (a vector of these for multicomponent)

Definition at line 165 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _grad_p

std::vector<const VariableGradient *> RichardsMaterial::_grad_p
private

◆ _gravity

MaterialProperty<RealVectorValue>& RichardsMaterial::_gravity
protected

◆ _mass

MaterialProperty<std::vector<Real> >& RichardsMaterial::_mass
private

fluid mass (a vector of masses for multicomponent)

Definition at line 159 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _mass_old

MaterialProperty<std::vector<Real> >& RichardsMaterial::_mass_old
private

old value of fluid mass (a vector of masses for multicomponent)

Definition at line 156 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _material_density_UO

std::vector<const RichardsDensity *> RichardsMaterial::_material_density_UO
protected

◆ _material_gravity

RealVectorValue RichardsMaterial::_material_gravity
protected

gravity as entered by user

Definition at line 42 of file RichardsMaterial.h.

Referenced by computeProperties().

◆ _material_perm

RealTensorValue RichardsMaterial::_material_perm
protected

permeability as entered by the user

Definition at line 39 of file RichardsMaterial.h.

Referenced by computeProperties().

◆ _material_por

Real RichardsMaterial::_material_por
protected

porosity as entered by the user

Definition at line 32 of file RichardsMaterial.h.

Referenced by computeProperties(), and RichardsMaterial().

◆ _material_relperm_UO

std::vector<const RichardsRelPerm *> RichardsMaterial::_material_relperm_UO
protected

◆ _material_sat_UO

std::vector<const RichardsSat *> RichardsMaterial::_material_sat_UO
protected

Definition at line 56 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities(), and RichardsMaterial().

◆ _material_seff_UO

std::vector<const RichardsSeff *> RichardsMaterial::_material_seff_UO
protected

Definition at line 55 of file RichardsMaterial.h.

Referenced by computePandSeff(), and RichardsMaterial().

◆ _material_SUPG_UO

std::vector<const RichardsSUPG *> RichardsMaterial::_material_SUPG_UO
protected

◆ _material_viscosity

std::vector<Real> RichardsMaterial::_material_viscosity
private

Definition at line 102 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities(), and RichardsMaterial().

◆ _num_p

unsigned int RichardsMaterial::_num_p
protected

◆ _perm_change

const std::vector<const VariableValue *> RichardsMaterial::_perm_change
protected

Definition at line 60 of file RichardsMaterial.h.

Referenced by computeProperties().

◆ _permeability

MaterialProperty<RealTensorValue>& RichardsMaterial::_permeability
protected

◆ _por_change

const VariableValue& RichardsMaterial::_por_change
protected

porosity changes. if not entered they default to zero

Definition at line 35 of file RichardsMaterial.h.

Referenced by computeProperties().

◆ _por_change_old

const VariableValue& RichardsMaterial::_por_change_old
protected

Definition at line 36 of file RichardsMaterial.h.

Referenced by computeProperties().

◆ _porosity

MaterialProperty<Real>& RichardsMaterial::_porosity
protected

Definition at line 46 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities(), and computeProperties().

◆ _porosity_old

MaterialProperty<Real>& RichardsMaterial::_porosity_old
protected

material properties

Definition at line 45 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities(), and computeProperties().

◆ _pp

MaterialProperty<std::vector<Real> >& RichardsMaterial::_pp
private

porepressure(s)

Definition at line 108 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and computePandSeff().

◆ _pp_old

MaterialProperty<std::vector<Real> >& RichardsMaterial::_pp_old
private

old values of porepressure(s)

Definition at line 105 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities(), and computePandSeff().

◆ _pressure_old_vals

std::vector<const VariableValue *> RichardsMaterial::_pressure_old_vals
private

Definition at line 204 of file RichardsMaterial.h.

Referenced by computePandSeff(), and RichardsMaterial().

◆ _pressure_vals

std::vector<const VariableValue *> RichardsMaterial::_pressure_vals
private

Definition at line 203 of file RichardsMaterial.h.

Referenced by computePandSeff(), and RichardsMaterial().

◆ _rel_perm

MaterialProperty<std::vector<Real> >& RichardsMaterial::_rel_perm
private

relative permeability (vector of relative permeabilities in case of multiphase)

Definition at line 150 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), and computeDerivedQuantities().

◆ _richards_name_UO

const RichardsVarNames& RichardsMaterial::_richards_name_UO
protected

The variable names userobject for the Richards variables.

Definition at line 51 of file RichardsMaterial.h.

Referenced by computePandSeff(), and RichardsMaterial().

◆ _sat

MaterialProperty<std::vector<Real> >& RichardsMaterial::_sat
private

saturation (vector of saturations in case of multiphase)

Definition at line 144 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _sat_old

MaterialProperty<std::vector<Real> >& RichardsMaterial::_sat_old
private

old saturation

Definition at line 141 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities().

◆ _seff

MaterialProperty<std::vector<Real> >& RichardsMaterial::_seff
private

effective saturation (vector of effective saturations in case of multiphase)

Definition at line 132 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), computeDerivedQuantities(), and computePandSeff().

◆ _seff_old

MaterialProperty<std::vector<Real> >& RichardsMaterial::_seff_old
private

old effective saturation

Definition at line 129 of file RichardsMaterial.h.

Referenced by computeDerivedQuantities(), and computePandSeff().

◆ _tauvel_SUPG

MaterialProperty<std::vector<RealVectorValue> >& RichardsMaterial::_tauvel_SUPG
private

Definition at line 191 of file RichardsMaterial.h.

Referenced by computeSUPG(), and zeroSUPG().

◆ _trace_perm

Real RichardsMaterial::_trace_perm
private

trace of permeability tensor

Definition at line 100 of file RichardsMaterial.h.

Referenced by computeSUPG().

◆ _viscosity

MaterialProperty<std::vector<Real> >& RichardsMaterial::_viscosity
private

fluid viscosity (or viscosities in the multiphase case)

Definition at line 117 of file RichardsMaterial.h.

Referenced by compute2ndDerivedQuantities(), and computeDerivedQuantities().


The documentation for this class was generated from the following files: