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

standard SUPG relationships valid for the Richards equation. More...

#include <RichardsSUPGstandard.h>

Inheritance diagram for RichardsSUPGstandard:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 RichardsSUPGstandard (const InputParameters &parameters)
 
RealVectorValue velSUPG (RealTensorValue perm, RealVectorValue gradp, Real density, RealVectorValue gravity) const
 SUPG velocity = -perm*(gradp - density*gravity) This points in direction of information propagation. More...
 
RealTensorValue dvelSUPG_dgradp (RealTensorValue perm) const
 derivative of SUPG velocity wrt gradient of porepressure More...
 
RealVectorValue dvelSUPG_dp (RealTensorValue perm, Real density_prime, RealVectorValue gravity) const
 derivative of SUPG velocity wrt porepressure (keeping gradp fixed) More...
 
RealVectorValue bb (RealVectorValue vel, int dimen, RealVectorValue xi_prime, RealVectorValue eta_prime, RealVectorValue zeta_prime) const
 |bb| ~ 2*velocity/element_length More...
 
RealVectorValue dbb2_dgradp (RealVectorValue vel, RealTensorValue dvel_dgradp, RealVectorValue xi_prime, RealVectorValue eta_prime, RealVectorValue zeta_prime) const
 derivative of bb*bb wrt gradient of porepressure More...
 
Real dbb2_dp (RealVectorValue vel, RealVectorValue dvel_dp, RealVectorValue xi_prime, RealVectorValue eta_prime, RealVectorValue zeta_prime) const
 derivative of bb*bb wrt porepressure More...
 
Real tauSUPG (RealVectorValue vel, Real traceperm, RealVectorValue b) const
 The SUPG tau parameter. More...
 
RealVectorValue dtauSUPG_dgradp (RealVectorValue vel, RealTensorValue dvel_dgradp, Real traceperm, RealVectorValue b, RealVectorValue db2_dgradp) const
 derivative of tau wrt gradient of porepressure More...
 
Real dtauSUPG_dp (RealVectorValue vel, RealVectorValue dvel_dp, Real traceperm, RealVectorValue b, Real db2_dp) const
 derivative of tau wrt porepressure (keeping gradp fixed) More...
 
bool SUPG_trivial () const
 returns false in this case since everything is trivial More...
 
void initialize ()
 
void execute ()
 
void finalize ()
 
SubProblemgetSubProblem () const
 
bool shouldDuplicateInitialExecution () const
 
virtual Real spatialValue (const Point &) const
 
virtual const std::vector< Point > spatialPoints () const
 
void gatherSum (T &value)
 
void gatherMax (T &value)
 
void gatherMin (T &value)
 
void gatherProxyValueMax (T1 &value, T2 &proxy)
 
void gatherProxyValueMin (T1 &value, T2 &proxy)
 
void setPrimaryThreadCopy (UserObject *primary)
 
UserObjectprimaryThreadCopy ()
 
std::set< UserObjectName > getDependObjects () const
 
virtual bool needThreadedCopy () const
 
const std::set< std::string > & getRequestedItems () override
 
const std::set< std::string > & getSuppliedItems () override
 
unsigned int systemNumber () const
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () 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 mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, 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
 
virtual void initialSetup ()
 
virtual void timestepSetup ()
 
virtual void jacobianSetup ()
 
virtual void residualSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnumgetExecuteOnEnum () 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
 
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 MaterialPropertyName &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 MaterialPropertyName &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 MaterialPropertyName &name)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > getBlockMaterialProperty (const MaterialPropertyName &name)
 
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 MaterialProperty< T > & getZeroMaterialProperty (Ts... args)
 
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 std::unordered_set< unsigned int > & getMatPropDependencies () const
 
virtual void resolveOptionalProperties ()
 
const GenericMaterialProperty< T, is_ad > & getPossiblyConstantGenericMaterialPropertyByName (const MaterialPropertyName &prop_name, MaterialData &material_data, const unsigned int state)
 
bool isImplicit ()
 
virtual void threadJoin (const UserObject &) override
 
virtual void threadJoin (const UserObject &) override
 
virtual void subdomainSetup () override
 
virtual void subdomainSetup () override
 
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 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)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
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)
 
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
 
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
 
T & getSampler (const std::string &name)
 
SamplergetSampler (const std::string &name)
 
T & getSamplerByName (const SamplerName &name)
 
SamplergetSamplerByName (const SamplerName &name)
 
virtual void meshChanged ()
 
const std::vector< MooseVariableScalar *> & getCoupledMooseScalarVars ()
 
const std::set< TagID > & getScalarVariableCoupleableVectorTags () const
 
const std::set< TagID > & getScalarVariableCoupleableMatrixTags () const
 
PerfGraphperfGraph ()
 
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
 
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
 
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 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)
 

Public Attributes

const ConsoleStream _console
 

Static Public Attributes

static constexpr PropertyValue::id_type default_property_id
 
static constexpr PropertyValue::id_type zero_property_id
 
static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Member Functions

virtual void addPostprocessorDependencyHelper (const PostprocessorName &name) const override
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &name) const override
 
virtual void addUserObjectDependencyHelper (const UserObject &uo) const override
 
void addReporterDependencyHelper (const ReporterName &reporter_name) override
 
const ReporterNamegetReporterName (const std::string &param_name) 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
 
const T & getMeshProperty (const std::string &data_name, const std::string &prefix)
 
const T & getMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
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
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 
virtual void checkMaterialProperty (const std::string &name, const unsigned int state)
 
void markMatPropRequested (const std::string &)
 
MaterialPropertyName getMaterialPropertyName (const std::string &name) const
 
void checkExecutionStage ()
 
Moose::StateArg determineState () const
 
const T & getReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const T & getReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const T & getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_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)
 

Static Protected Member Functions

static std::string meshPropertyName (const std::string &data_name, const std::string &prefix)
 

Protected Attributes

Real _p_SUPG
 the SUPG pressure parameter This dictates how strong the SUPG is _p_SUPG large means only a little SUPG _p_SUPG small means close to fully-upwind More...
 
SubProblem_subproblem
 
FEProblemBase_fe_problem
 
SystemBase_sys
 
const THREAD_ID _tid
 
Assembly_assembly
 
const Moose::CoordinateSystemType_coord_sys
 
const bool _duplicate_initial_execution
 
std::set< std::string > _depend_uo
 
const bool & _enabled
 
MooseApp_app
 
const std::string _type
 
const std::string _name
 
const InputParameters_pars
 
Factory_factory
 
ActionFactory_action_factory
 
const ExecFlagEnum_execute_enum
 
const ExecFlagType_current_execute_flag
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
FEProblemBase_mci_feproblem
 
FEProblemBase_sc_fe_problem
 
const THREAD_ID _sc_tid
 
const Real_real_zero
 
const VariableValue_scalar_zero
 
const Point & _point_zero
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
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 InputParameters_ti_params
 
FEProblemBase_ti_feproblem
 
bool _is_implicit
 
Real_t
 
int_t_step
 
Real_dt
 
Real_dt_old
 
bool _is_transient
 
const Parallel::Communicator & _communicator
 

Static Protected Attributes

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

Private Member Functions

Real cosh_relation (Real alpha) const
 cosh(alpha)/sinh(alpha) - 1/alpha, modified at extreme values of alpha to prevent overflows More...
 
Real cosh_relation_prime (Real alpha) const
 derivative of cosh_relation wrt alpha More...
 

Detailed Description

standard SUPG relationships valid for the Richards equation.

here i use a formula for "tau" presented in Appendix A of TJR Hughes, M Mallet and A Mizukami `‘A new finite element formulation for computational fluid dynamics:: II. Behond SUPG’' Computer Methods in Applied Mechanics and Engineering 54 (1986) 341–355

Definition at line 22 of file RichardsSUPGstandard.h.

Constructor & Destructor Documentation

◆ RichardsSUPGstandard()

RichardsSUPGstandard::RichardsSUPGstandard ( const InputParameters parameters)

Definition at line 36 of file RichardsSUPGstandard.C.

37  : RichardsSUPG(parameters), _p_SUPG(getParam<Real>("p_SUPG"))
38 {
39 }
Real _p_SUPG
the SUPG pressure parameter This dictates how strong the SUPG is _p_SUPG large means only a little SU...
RichardsSUPG(const InputParameters &parameters)
Definition: RichardsSUPG.C:22
const InputParameters & parameters() const

Member Function Documentation

◆ bb()

RealVectorValue RichardsSUPGstandard::bb ( RealVectorValue  vel,
int  dimen,
RealVectorValue  xi_prime,
RealVectorValue  eta_prime,
RealVectorValue  zeta_prime 
) const
virtual

|bb| ~ 2*velocity/element_length

Parameters
velSUPG velocity
dimendimension of problem
xi_primespatial gradient of the isoparametric coordinate xi
eta_primespatial gradient of the isoparametric coordinate eta
zeta_primespatial gradient of the isoparametric coordinate zeta

Implements RichardsSUPG.

Definition at line 86 of file RichardsSUPGstandard.C.

91 {
93  b(0) = xi_prime * vel;
94  if (dimen >= 2)
95  b(1) = eta_prime * vel;
96  if (dimen == 3)
97  b(2) = zeta_prime * vel;
98  return b;
99 }

◆ cosh_relation()

Real RichardsSUPGstandard::cosh_relation ( Real  alpha) const
private

cosh(alpha)/sinh(alpha) - 1/alpha, modified at extreme values of alpha to prevent overflows

Definition at line 65 of file RichardsSUPGstandard.C.

Referenced by dtauSUPG_dgradp(), dtauSUPG_dp(), and tauSUPG().

66 {
67  if (alpha >= 5.0 || alpha <= -5.0)
68  return ((alpha > 0.0) ? 1.0 : -1.0) - 1.0 / alpha; // prevents overflows
69  else if (alpha == 0)
70  return 0.0;
71  return 1.0 / std::tanh(alpha) - 1.0 / alpha;
72 }
static const std::string alpha
Definition: NS.h:126

◆ cosh_relation_prime()

Real RichardsSUPGstandard::cosh_relation_prime ( Real  alpha) const
private

derivative of cosh_relation wrt alpha

Definition at line 75 of file RichardsSUPGstandard.C.

Referenced by dtauSUPG_dgradp(), and dtauSUPG_dp().

76 {
77  if (alpha >= 5.0 || alpha <= -5.0)
78  return 1.0 / (alpha * alpha); // prevents overflows
79  else if (alpha == 0)
80  return 1.0 / 3.0;
81  return 1.0 - Utility::pow<2>(std::cosh(alpha) / std::sinh(alpha)) + 1.0 / (alpha * alpha);
82 }
static const std::string alpha
Definition: NS.h:126

◆ dbb2_dgradp()

RealVectorValue RichardsSUPGstandard::dbb2_dgradp ( RealVectorValue  vel,
RealTensorValue  dvel_dgradp,
RealVectorValue  xi_prime,
RealVectorValue  eta_prime,
RealVectorValue  zeta_prime 
) const
virtual

derivative of bb*bb wrt gradient of porepressure

Parameters
velSUPG velocity
dvel_dgradpderivative of velocity wrt gradient of porepressure
xi_primespatial gradient of the isoparametric coordinate xi
eta_primespatial gradient of the isoparametric coordinate eta
zeta_primespatial gradient of the isoparametric coordinate zeta

Implements RichardsSUPG.

Definition at line 103 of file RichardsSUPGstandard.C.

108 {
109  // if dvel_dgradp is symmetric so transpose is probably a waste of time
110  return 2.0 * ((xi_prime * vel) * (dvel_dgradp.transpose() * xi_prime) +
111  (eta_prime * vel) * (dvel_dgradp.transpose() * eta_prime) +
112  (zeta_prime * vel) * (dvel_dgradp.transpose() * zeta_prime));
113 }

◆ dbb2_dp()

Real RichardsSUPGstandard::dbb2_dp ( RealVectorValue  vel,
RealVectorValue  dvel_dp,
RealVectorValue  xi_prime,
RealVectorValue  eta_prime,
RealVectorValue  zeta_prime 
) const
virtual

derivative of bb*bb wrt porepressure

Parameters
velSUPG velocity
dvel_dpderivative of velocity wrt porepressure
xi_primespatial gradient of the isoparametric coordinate xi
eta_primespatial gradient of the isoparametric coordinate eta
zeta_primespatial gradient of the isoparametric coordinate zeta

Implements RichardsSUPG.

Definition at line 117 of file RichardsSUPGstandard.C.

122 {
123  return 2.0 *
124  ((xi_prime * vel) * (dvel_dp * xi_prime) + (eta_prime * vel) * (dvel_dp * eta_prime) +
125  (zeta_prime * vel) * (dvel_dp * zeta_prime));
126 }

◆ dtauSUPG_dgradp()

RealVectorValue RichardsSUPGstandard::dtauSUPG_dgradp ( RealVectorValue  vel,
RealTensorValue  dvel_dgradp,
Real  traceperm,
RealVectorValue  b,
RealVectorValue  db2_dgradp 
) const
virtual

derivative of tau wrt gradient of porepressure

Parameters
velSUPG velocity
dvel_dgradpderivative of the SUPG velocity wrt gradient of porepressure
tracepermtrace of the permeability tensor for the material
bthe b parameter: |b| ~ 2*SUPGvelocity/element_length
db2_dgradpderivative of b*b wrt gradient of porepressure

Implements RichardsSUPG.

Definition at line 149 of file RichardsSUPGstandard.C.

154 {
155  Real norm_vel = vel.norm();
156  if (norm_vel == 0)
157  return RealVectorValue();
158 
159  RealVectorValue norm_vel_dgradp(dvel_dgradp * vel / norm_vel);
160 
161  Real norm_b = b.norm();
162  if (norm_b == 0)
163  return RealVectorValue();
164  RealVectorValue norm_b_dgradp = db2_dgradp / 2.0 / norm_b;
165 
166  Real h = 2 * norm_vel / norm_b; // h is a measure of the element length in the "a" direction
167  RealVectorValue h_dgradp(2 * norm_vel_dgradp / norm_b -
168  2.0 * norm_vel * norm_b_dgradp / norm_b / norm_b);
169 
170  Real alpha = 0.5 * norm_vel * h / traceperm / _p_SUPG; // this is the Peclet number
171  RealVectorValue alpha_dgradp =
172  0.5 * (norm_vel_dgradp * h + norm_vel * h_dgradp) / traceperm / _p_SUPG;
173 
176  RealVectorValue xi_tilde_dgradp = xi_tilde_prime * alpha_dgradp;
177 
178  RealVectorValue tau_dgradp =
179  xi_tilde_dgradp / norm_b - xi_tilde * norm_b_dgradp / (norm_b * norm_b);
180 
181  return tau_dgradp;
182 }
auto norm() const -> decltype(std::norm(Real()))
Real _p_SUPG
the SUPG pressure parameter This dictates how strong the SUPG is _p_SUPG large means only a little SU...
Real cosh_relation_prime(Real alpha) const
derivative of cosh_relation wrt alpha
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string alpha
Definition: NS.h:126
Real cosh_relation(Real alpha) const
cosh(alpha)/sinh(alpha) - 1/alpha, modified at extreme values of alpha to prevent overflows ...

◆ dtauSUPG_dp()

Real RichardsSUPGstandard::dtauSUPG_dp ( RealVectorValue  vel,
RealVectorValue  dvel_dp,
Real  traceperm,
RealVectorValue  b,
Real  db2_dp 
) const
virtual

derivative of tau wrt porepressure (keeping gradp fixed)

Parameters
velSUPG velocity
dvel_dpderivative of the SUPG velocity wrt porepressure
tracepermtrace of the permeability tensor for the material
bthe b parameter: |b| ~ 2*SUPGvelocity/element_length
db2_dpderivative of b*b wrt porepressure

Implements RichardsSUPG.

Definition at line 185 of file RichardsSUPGstandard.C.

190 {
191  Real norm_vel = vel.norm();
192  if (norm_vel == 0.0)
193  return 0.0; // this deriv is not necessarily correct, but i can't see a better thing to do
194 
195  Real norm_vel_dp = dvel_dp * vel / norm_vel;
196 
197  Real norm_b = b.norm();
198  if (norm_b == 0)
199  return 0.0; // this deriv is not necessarily correct, but i can't see a better thing to do
200  Real norm_b_dp = db2_dp / (2.0 * norm_b);
201 
202  Real h = 2.0 * norm_vel / norm_b; // h is a measure of the element length in the "a" direction
203  Real h_dp = 2.0 * norm_vel_dp / norm_b - 2.0 * norm_vel * norm_b_dp / (norm_b * norm_b);
204 
205  Real alpha = 0.5 * norm_vel * h / (traceperm * _p_SUPG); // this is the Peclet number
206  Real alpha_dp = 0.5 * (norm_vel_dp * h + norm_vel * h_dp) / (traceperm * _p_SUPG);
207 
210  Real xi_tilde_dp = xi_tilde_prime * alpha_dp;
211 
212  // Real tau = xi_tilde/norm_b;
213  const Real tau_dp = xi_tilde_dp / norm_b - xi_tilde * norm_b_dp / (norm_b * norm_b);
214 
215  return tau_dp;
216 }
auto norm() const -> decltype(std::norm(Real()))
Real _p_SUPG
the SUPG pressure parameter This dictates how strong the SUPG is _p_SUPG large means only a little SU...
Real cosh_relation_prime(Real alpha) const
derivative of cosh_relation wrt alpha
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string alpha
Definition: NS.h:126
Real cosh_relation(Real alpha) const
cosh(alpha)/sinh(alpha) - 1/alpha, modified at extreme values of alpha to prevent overflows ...

◆ dvelSUPG_dgradp()

RealTensorValue RichardsSUPGstandard::dvelSUPG_dgradp ( RealTensorValue  perm) const
virtual

derivative of SUPG velocity wrt gradient of porepressure

Parameters
permpermeability tensor

Implements RichardsSUPG.

Definition at line 51 of file RichardsSUPGstandard.C.

52 {
53  return -perm;
54 }

◆ dvelSUPG_dp()

RealVectorValue RichardsSUPGstandard::dvelSUPG_dp ( RealTensorValue  perm,
Real  density_prime,
RealVectorValue  gravity 
) const
virtual

derivative of SUPG velocity wrt porepressure (keeping gradp fixed)

Parameters
permpermeability tensor
density_primederivative of fluid density wrt porepressure
gravitygravitational acceleration vector

Implements RichardsSUPG.

Definition at line 57 of file RichardsSUPGstandard.C.

60 {
61  return perm * density_prime * gravity;
62 }

◆ execute()

void RichardsSUPG::execute ( )
virtualinherited

Implements GeneralUserObject.

Definition at line 30 of file RichardsSUPG.C.

31 {
32 }

◆ finalize()

void RichardsSUPG::finalize ( )
virtualinherited

Implements GeneralUserObject.

Definition at line 35 of file RichardsSUPG.C.

36 {
37 }

◆ initialize()

void RichardsSUPG::initialize ( )
virtualinherited

Implements GeneralUserObject.

Definition at line 25 of file RichardsSUPG.C.

26 {
27 }

◆ SUPG_trivial()

bool RichardsSUPGstandard::SUPG_trivial ( ) const
virtual

returns false in this case since everything is trivial

Implements RichardsSUPG.

Definition at line 219 of file RichardsSUPGstandard.C.

220 {
221  return false;
222 }

◆ tauSUPG()

Real RichardsSUPGstandard::tauSUPG ( RealVectorValue  vel,
Real  traceperm,
RealVectorValue  b 
) const
virtual

The SUPG tau parameter.

This dictates how strong the SUPG is

Parameters
velSUPG velocity
tracepermtrace of the permeability tensor for the material
bthe b parameter: |b| ~ 2*SUPGvelocity/element_length

Implements RichardsSUPG.

Definition at line 129 of file RichardsSUPGstandard.C.

130 {
131  // vel = velocity, b = bb
132  Real norm_v = vel.norm();
133  Real norm_b = b.norm(); // Hughes et al investigate infinity-norm and 2-norm. i just use 2-norm
134  // here. norm_b ~ 2|a|/ele_length_in_direction_of_a
135 
136  if (norm_b == 0)
137  return 0.0; // Only way for norm_b=0 is for zero ele size, or vel=0. Either way we don't have
138  // to upwind.
139 
140  Real h = 2.0 * norm_v / norm_b; // h is a measure of the element length in the "a" direction
141  Real alpha = 0.5 * norm_v * h / (traceperm * _p_SUPG); // this is the Peclet number
142 
144 
145  return xi_tilde / norm_b;
146 }
auto norm() const -> decltype(std::norm(Real()))
Real _p_SUPG
the SUPG pressure parameter This dictates how strong the SUPG is _p_SUPG large means only a little SU...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string alpha
Definition: NS.h:126
Real cosh_relation(Real alpha) const
cosh(alpha)/sinh(alpha) - 1/alpha, modified at extreme values of alpha to prevent overflows ...

◆ validParams()

InputParameters RichardsSUPGstandard::validParams ( )
static

Definition at line 16 of file RichardsSUPGstandard.C.

17 {
20  "p_SUPG",
21  "p_SUPG > 0",
22  "SUPG pressure. This parameter controls the strength of the "
23  "upwinding. This parameter must be positive. If you need to track "
24  "advancing fronts in a problem, then set to less than your expected "
25  "range of pressures in your unsaturated zone. Otherwise, set "
26  "larger, and then minimal upwinding will occur and convergence will "
27  "typically be good. If you need no SUPG, it is more efficient not "
28  "to use this UserObject.");
29  params.addClassDescription(
30  "Standard SUPG relationships for Richards flow based on Appendix A of TJR Hughes, M "
31  "Mallet and A Mizukami ``A new finite element formulation for computational fluid dynamics:: "
32  "II. Behond SUPG'' Computer Methods in Applied Mechanics and Engineering 54 (1986) 341--355");
33  return params;
34 }
static InputParameters validParams()
Definition: RichardsSUPG.C:15
void addRequiredRangeCheckedParam(const std::string &name, const std::string &parsed_function, const std::string &doc_string)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)

◆ velSUPG()

RealVectorValue RichardsSUPGstandard::velSUPG ( RealTensorValue  perm,
RealVectorValue  gradp,
Real  density,
RealVectorValue  gravity 
) const
virtual

SUPG velocity = -perm*(gradp - density*gravity) This points in direction of information propagation.

Parameters
permpermeability tensor
gradpgradient of porepressure
densityfluid density
gravitygravitational acceleration vector

Implements RichardsSUPG.

Definition at line 42 of file RichardsSUPGstandard.C.

46 {
47  return -perm * (gradp - density * gravity); // points in direction of info propagation
48 }
static const std::string density
Definition: NS.h:33

Member Data Documentation

◆ _p_SUPG

Real RichardsSUPGstandard::_p_SUPG
protected

the SUPG pressure parameter This dictates how strong the SUPG is _p_SUPG large means only a little SUPG _p_SUPG small means close to fully-upwind

Definition at line 144 of file RichardsSUPGstandard.h.

Referenced by dtauSUPG_dgradp(), dtauSUPG_dp(), and tauSUPG().


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