https://mooseframework.inl.gov
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 | List of all members
NavierStokesMaterial Class Reference

This is the base class all materials should use if you are trying to use the Navier-Stokes Kernels. More...

#include <NavierStokesMaterial.h>

Inheritance diagram for NavierStokesMaterial:
[legend]

Public Types

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

Public Member Functions

 NavierStokesMaterial (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
 
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 * queryParam (const std::string &name) 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 &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) 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 (const std::set< 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)
 
void addMooseVariableDependency (MooseVariableFieldBase *var)
 
void addMooseVariableDependency (const std::vector< MooseVariableFieldBase * > &vars)
 
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 ()
 
Moose::StateArg determineState () 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
 
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 ADVectorVariableCurlgetADDefaultCurl () 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 ()
 Must be called after the child class computes dynamic_viscocity. 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
 
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
 
libMesh::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
 
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 (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) 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
 
const GenericVectorVariableValue< is_ad > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVectorVariableValue< false > & coupledGenericVectorValue (const std::string &var_name, unsigned int comp) const
 
const GenericVectorVariableValue< true > & coupledGenericVectorValue (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
 
const GenericVariableValue< is_ad > & coupledGenericDot (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< is_ad > & coupledGenericDotDot (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericDotDot (const std::string &var_name, unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericDotDot (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
 
std::vector< const VectorVariableValue *> coupledVectorValuesOld (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
 
const ADVectorVariableCurladCoupledCurl (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDiv (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDivOld (const std::string &var_name, unsigned int comp=0) const
 
virtual const VectorVariableDivergencecoupledDivOlder (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

const unsigned int _mesh_dimension
 
const VariableGradient_grad_u
 
const VariableGradient_grad_v
 
const VariableGradient_grad_w
 
MaterialProperty< RealTensorValue > & _viscous_stress_tensor
 
MaterialProperty< Real > & _thermal_conductivity
 
MaterialProperty< Real > & _dynamic_viscosity
 
MaterialProperty< std::vector< RealTensorValue > > & _calA
 
MaterialProperty< std::vector< RealTensorValue > > & _calC
 
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _calE
 
std::vector< const VariableGradient * > _vel_grads
 
const VariableValue_u_vel
 
const VariableValue_v_vel
 
const VariableValue_w_vel
 
const VariableValue_temperature
 
const VariableValue_specific_total_enthalpy
 
const VariableValue_rho
 
const VariableValue_rho_u
 
const VariableValue_rho_v
 
const VariableValue_rho_w
 
const VariableValue_rho_et
 
const VariableValue_drho_dt
 
const VariableValue_drhou_dt
 
const VariableValue_drhov_dt
 
const VariableValue_drhow_dt
 
const VariableValue_drhoE_dt
 
const VariableGradient_grad_rho
 
const VariableGradient_grad_rho_u
 
const VariableGradient_grad_rho_v
 
const VariableGradient_grad_rho_w
 
const VariableGradient_grad_rho_et
 
MaterialProperty< Real > & _hsupg
 
MaterialProperty< Real > & _tauc
 
MaterialProperty< Real > & _taum
 
MaterialProperty< Real > & _taue
 
MaterialProperty< std::vector< Real > > & _strong_residuals
 
const IdealGasFluidProperties_fp
 
 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
 
const Real_t_old
 
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
 
std::vector< MooseLinearVariableFV< Real > *> _coupled_standard_linear_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< ADReal > > > _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
 
MooseArray< ADRealVectorValue_ad_default_curl
 
const VariableValue_zero
 
const VariablePhiValue_phi_zero
 
const MooseArray< ADReal > & _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
 
VectorVariableDivergence _default_div
 
ArrayVariableValue _default_array_value_zero
 
ArrayVariableGradient _default_array_gradient
 
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 computeHSUPG (unsigned int qp)
 
void computeTau (unsigned int qp)
 
void computeStrongResiduals (unsigned int qp)
 

Detailed Description

This is the base class all materials should use if you are trying to use the Navier-Stokes Kernels.

Note that the derived class just needs to compute dynamic_viscocity then call this class's computeProperties() function.

Also make sure that the derived class's validParams function just adds to this class's validParams.

Finally, note that this Material isn't registered with the MaterialFactory. The reason is that by itself this material doesn't work! You must derive from this material and compute dynamic_viscocity!

Definition at line 32 of file NavierStokesMaterial.h.

Constructor & Destructor Documentation

◆ NavierStokesMaterial()

NavierStokesMaterial::NavierStokesMaterial ( const InputParameters parameters)

Definition at line 50 of file NavierStokesMaterial.C.

56 
57  _viscous_stress_tensor(declareProperty<RealTensorValue>("viscous_stress_tensor")),
58  _thermal_conductivity(declareProperty<Real>("thermal_conductivity")),
59 
60  // Declared here but _not_ calculated here
61  // (See e.g. derived class, bighorn/include/materials/FluidTC1.h)
62  _dynamic_viscosity(declareProperty<Real>("dynamic_viscosity")),
63 
64  // The momentum components of the inviscid flux Jacobians.
65  _calA(declareProperty<std::vector<RealTensorValue>>("calA")),
66 
67  // "Velocity column" matrices
68  _calC(declareProperty<std::vector<RealTensorValue>>("calC")),
69 
70  // Energy equation inviscid flux matrices, "cal E_{kl}" in the notes.
71  _calE(declareProperty<std::vector<std::vector<RealTensorValue>>>("calE")),
73 
74  // Coupled solution values needed for computing SUPG stabilization terms
77  _w_vel(_mesh.dimension() == 3 ? coupledValue(nms::velocity_z) : _zero),
78 
81 
82  // Coupled solution values
85  _rho_v(_mesh.dimension() >= 2 ? coupledValue(nms::momentum_y) : _zero),
86  _rho_w(_mesh.dimension() == 3 ? coupledValue(nms::momentum_z) : _zero),
88 
89  // Time derivative values
92  _drhov_dt(_mesh.dimension() >= 2 ? coupledDot(nms::momentum_y) : _zero),
93  _drhow_dt(_mesh.dimension() == 3 ? coupledDot(nms::momentum_z) : _zero),
95 
96  // Gradients
99  _grad_rho_v(_mesh.dimension() >= 2 ? coupledGradient(nms::momentum_y) : _grad_zero),
100  _grad_rho_w(_mesh.dimension() == 3 ? coupledGradient(nms::momentum_z) : _grad_zero),
102 
103  // Material properties for stabilization
104  _hsupg(declareProperty<Real>("hsupg")),
105  _tauc(declareProperty<Real>("tauc")),
106  _taum(declareProperty<Real>("taum")),
107  _taue(declareProperty<Real>("taue")),
108  _strong_residuals(declareProperty<std::vector<Real>>("strong_residuals")),
109  _fp(getUserObject<IdealGasFluidProperties>("fluid_properties"))
110 {
111 }
static const std::string total_energy_density
Definition: NS.h:65
static const std::string momentum_x
Definition: NS.h:35
const VariableValue & _zero
MaterialProperty< Real > & _dynamic_viscosity
MaterialProperty< Real > & _hsupg
const unsigned int _mesh_dimension
MaterialProperty< T > & declareProperty(const std::string &name)
const VariableGradient & _grad_zero
const VariableValue & _drhow_dt
MaterialProperty< std::vector< RealTensorValue > > & _calC
static const std::string velocity_z
Definition: NS.h:48
const VariableGradient & _grad_rho_v
virtual const VariableValue & coupledDot(const std::string &var_name, unsigned int comp=0) const
static const std::string density
Definition: NS.h:33
static const std::string velocity_x
Definition: NS.h:46
const VariableValue & _u_vel
static const std::string temperature
Definition: NS.h:59
MaterialProperty< Real > & _tauc
const VariableGradient & _grad_rho_w
virtual const VariableGradient & coupledGradient(const std::string &var_name, unsigned int comp=0) const
MaterialProperty< Real > & _taue
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _calE
const VariableValue & _rho_et
virtual const VariableValue & coupledValue(const std::string &var_name, unsigned int comp=0) const
std::vector< const VariableGradient * > _vel_grads
TensorValue< Real > RealTensorValue
MooseMesh & _mesh
MaterialProperty< std::vector< RealTensorValue > > & _calA
virtual unsigned int dimension() const
const VariableValue & _v_vel
MaterialProperty< std::vector< Real > > & _strong_residuals
static const std::string velocity_y
Definition: NS.h:47
const VariableGradient & _grad_rho_u
const T & getUserObject(const std::string &param_name, bool is_dependency=true) const
const VariableGradient & _grad_rho_et
const VariableValue & _specific_total_enthalpy
const VariableValue & _drhou_dt
static const std::string momentum_y
Definition: NS.h:36
const VariableGradient & _grad_rho
const VariableValue & _rho_w
const VariableValue & _w_vel
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VariableGradient & _grad_u
static const std::string specific_total_enthalpy
Definition: NS.h:69
MaterialProperty< RealTensorValue > & _viscous_stress_tensor
const VariableValue & _drhoE_dt
MaterialProperty< Real > & _thermal_conductivity
const InputParameters & parameters() const
static const std::string momentum_z
Definition: NS.h:37
const VariableGradient & _grad_v
Ideal gas fluid properties Default parameters are for air at atmospheric pressure and temperature...
const VariableValue & _drhov_dt
const IdealGasFluidProperties & _fp
const VariableValue & _drho_dt
const VariableValue & _rho_u
const VariableValue & _temperature
const VariableValue & _rho_v
Material(const InputParameters &parameters)
const VariableGradient & _grad_w
const VariableValue & _rho
MaterialProperty< Real > & _taum

Member Function Documentation

◆ computeHSUPG()

void NavierStokesMaterial::computeHSUPG ( unsigned int  qp)
private

Definition at line 179 of file NavierStokesMaterial.C.

Referenced by computeProperties().

180 {
181  // // Grab reference to linear Lagrange finite element object pointer,
182  // // currently this is always a linear Lagrange element, so this might need to
183  // // be generalized if we start working with higher-order elements...
184  // FEBase*& fe(_assembly.getFE(FEType(), _current_elem->dim()));
185  //
186  // // Grab references to FE object's mapping data from the _subproblem's FE object
187  // const std::vector<Real> & dxidx(fe->get_dxidx());
188  // const std::vector<Real> & dxidy(fe->get_dxidy());
189  // const std::vector<Real> & dxidz(fe->get_dxidz());
190  // const std::vector<Real> & detadx(fe->get_detadx());
191  // const std::vector<Real> & detady(fe->get_detady());
192  // const std::vector<Real> & detadz(fe->get_detadz());
193  // const std::vector<Real> & dzetadx(fe->get_dzetadx()); // Empty in 2D
194  // const std::vector<Real> & dzetady(fe->get_dzetady()); // Empty in 2D
195  // const std::vector<Real> & dzetadz(fe->get_dzetadz()); // Empty in 2D
196  //
197  // // Bounds checking on element data
198  // mooseAssert(qp < dxidx.size(), "Insufficient data in dxidx array!");
199  // mooseAssert(qp < dxidy.size(), "Insufficient data in dxidy array!");
200  // mooseAssert(qp < dxidz.size(), "Insufficient data in dxidz array!");
201  //
202  // mooseAssert(qp < detadx.size(), "Insufficient data in detadx array!");
203  // mooseAssert(qp < detady.size(), "Insufficient data in detady array!");
204  // mooseAssert(qp < detadz.size(), "Insufficient data in detadz array!");
205  //
206  // if (_mesh_dimension == 3)
207  // {
208  // mooseAssert(qp < dzetadx.size(), "Insufficient data in dzetadx array!");
209  // mooseAssert(qp < dzetady.size(), "Insufficient data in dzetady array!");
210  // mooseAssert(qp < dzetadz.size(), "Insufficient data in dzetadz array!");
211  // }
212  //
213  // // The velocity vector at this quadrature point.
214  // RealVectorValue U(_u_vel[qp],_v_vel[qp],_w_vel[qp]);
215  //
216  // // Pull out element inverse map values at the current qp into a little dense matrix
217  // Real dxi_dx[3][3] = {{0.,0.,0.}, {0.,0.,0.}, {0.,0.,0.}};
218  //
219  // dxi_dx[0][0] = dxidx[qp]; dxi_dx[0][1] = dxidy[qp];
220  // dxi_dx[1][0] = detadx[qp]; dxi_dx[1][1] = detady[qp];
221  //
222  // // OK to access third entries on 2D elements if LIBMESH_DIM==3, though they
223  // // may be zero...
224  // if (LIBMESH_DIM == 3)
225  // {
226  // /**/ /**/ dxi_dx[0][2] = dxidz[qp];
227  // /**/ /**/ dxi_dx[1][2] = detadz[qp];
228  // }
229  //
230  // // The last row of entries available only for 3D elements.
231  // if (_mesh_dimension == 3)
232  // {
233  // dxi_dx[2][0] = dzetadx[qp]; dxi_dx[2][1] = dzetady[qp]; dxi_dx[2][2] = dzetadz[qp];
234  // }
235  //
236  // // Construct the g_ij = d(xi_k)/d(x_j) * d(xi_k)/d(x_i) matrix
237  // // from Ben and Bova's paper by summing over k...
238  // Real g[3][3] = {{0.,0.,0.}, {0.,0.,0.}, {0.,0.,0.}};
239  // for (unsigned int i = 0; i < 3; ++i)
240  // for (unsigned int j = 0; j < 3; ++j)
241  // for (unsigned int k = 0; k < 3; ++k)
242  // g[i][j] += dxi_dx[k][j] * dxi_dx[k][i];
243  //
244  // // Compute the denominator of the h_supg term: U * (g) * U
245  // Real denom = 0.;
246  // for (unsigned int i = 0; i < 3; ++i)
247  // for (unsigned int j = 0; j < 3; ++j)
248  // denom += U(j) * g[i][j] * U(i);
249  //
250  // // Compute h_supg. Some notes:
251  // // .) The 2 coefficient in this term should be a 1 if we are using tets/triangles.
252  // // .) The denominator will be identically zero only if the velocity
253  // // is identically zero, in which case we can't divide by it.
254  // if (denom != 0.0)
255  // _hsupg[qp] = 2.* sqrt( U.norm_sq() / denom );
256  // else
257  // _hsupg[qp] = 0.;
258 
259  // Simple (and fast) implementation: Just use hmin for the element!
260  _hsupg[qp] = _current_elem->hmin();
261 }
MaterialProperty< Real > & _hsupg
const Elem *const & _current_elem

◆ computeProperties()

void NavierStokesMaterial::computeProperties ( )
protectedvirtual

Must be called after the child class computes dynamic_viscocity.

Must be called after the child class computes dynamic_viscosity.

Reimplemented from Material.

Reimplemented in Air.

Definition at line 117 of file NavierStokesMaterial.C.

Referenced by Air::computeProperties().

118 {
119  for (unsigned int qp = 0; qp < _qrule->n_points(); ++qp)
120  {
121  /******* Viscous Stress Tensor *******/
122  // Technically... this _is_ the transpose (since we are loading these by rows)
123  // But it doesn't matter....
124  RealTensorValue grad_outer_u(_grad_u[qp], _grad_v[qp], _grad_w[qp]);
125 
126  grad_outer_u += grad_outer_u.transpose();
127 
128  Real div_vel = 0.0;
129  for (unsigned int i = 0; i < 3; ++i)
130  div_vel += (*_vel_grads[i])[qp](i);
131 
132  // Add diagonal terms
133  for (unsigned int i = 0; i < 3; ++i)
134  grad_outer_u(i, i) -= 2.0 / 3.0 * div_vel;
135 
136  grad_outer_u *= _dynamic_viscosity[qp];
137 
138  _viscous_stress_tensor[qp] = grad_outer_u;
139 
140  // Tabulated values of thermal conductivity vs. Temperature for air (k increases slightly with
141  // T):
142  // T (K) k (W/m-K)
143  // 273 0.0243
144  // 373 0.0314
145  // 473 0.0386
146  // 573 0.0454
147  // 673 0.0515
148 
149  // Pr = (mu * cp) / k ==> k = (mu * cp) / Pr = (mu * gamma * cv) / Pr.
150  // TODO: We are using a fixed value of the Prandtl number which is
151  // valid for air, it may or may not depend on temperature? Since
152  // this is a property of the fluid, it could possibly be moved to
153  // the FluidProperties module...
154  const Real Pr = 0.71;
155  _thermal_conductivity[qp] = (_dynamic_viscosity[qp] * _fp.cp()) / Pr;
156 
157  // Compute stabilization parameters:
158 
159  // .) Compute SUPG element length scale.
160  computeHSUPG(qp);
161  // Moose::out << "_hsupg[" << qp << "]=" << _hsupg[qp] << std::endl;
162 
163  // .) Compute SUPG parameter values. (Must call this after computeHSUPG())
164  computeTau(qp);
165  // Moose::out << "_tauc[" << qp << "]=" << _tauc[qp] << ", ";
166  // Moose::out << "_taum[" << qp << "]=" << _taum[qp] << ", ";
167  // Moose::out << "_taue[" << qp << "]=" << _taue[qp] << std::endl;
168 
169  // .) Compute strong residual values.
171  // Moose::out << "_strong_residuals[" << qp << "]=";
172  // for (unsigned i=0; i<_strong_residuals[qp].size(); ++i)
173  // Moose::out << _strong_residuals[qp][i] << " ";
174  // Moose::out << std::endl;
175  }
176 }
MaterialProperty< Real > & _dynamic_viscosity
const QBase *const & _qrule
void computeTau(unsigned int qp)
void computeHSUPG(unsigned int qp)
void computeStrongResiduals(unsigned int qp)
std::vector< const VariableGradient * > _vel_grads
TensorValue< Real > RealTensorValue
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VariableGradient & _grad_u
MaterialProperty< RealTensorValue > & _viscous_stress_tensor
MaterialProperty< Real > & _thermal_conductivity
const VariableGradient & _grad_v
const IdealGasFluidProperties & _fp
const VariableGradient & _grad_w

◆ computeStrongResiduals()

void NavierStokesMaterial::computeStrongResiduals ( unsigned int  qp)
private

Definition at line 354 of file NavierStokesMaterial.C.

Referenced by computeProperties().

355 {
356  // Create storage at this qp for the strong residuals of all the equations.
357  // In 2D, the value for the z-velocity equation will just be zero.
358  _strong_residuals[qp].resize(5);
359 
360  // The timestep is stored in the Problem object, which can be accessed through
361  // the parent pointer of the SubProblem. Don't need this if we are not
362  // approximating time derivatives ourselves.
363  // Real dt = _subproblem.parent()->dt();
364  // Moose::out << "dt=" << dt << std::endl;
365 
366  // Vector object for the velocity
367  RealVectorValue vel(_u_vel[qp], _v_vel[qp], _w_vel[qp]);
368 
369  // A VectorValue object containing all zeros. Makes it easier to
370  // construct type tensor objects
371  RealVectorValue zero(0., 0., 0.);
372 
373  // Velocity vector magnitude squared
374  Real velmag2 = vel.norm_sq();
375 
376  // Debugging: How large are the time derivative parts of the strong residuals?
377  // Moose::out << "drho_dt=" << _drho_dt
378  // << ", drhou_dt=" << _drhou_dt
379  // << ", drhov_dt=" << _drhov_dt
380  // << ", drhow_dt=" << _drhow_dt
381  // << ", drhoE_dt=" << _drhoE_dt
382  // << std::endl;
383 
384  // Momentum divergence
385  Real divU = _grad_rho_u[qp](0) + _grad_rho_v[qp](1) + _grad_rho_w[qp](2);
386 
387  // Enough space to hold three space dimensions of velocity components at each qp,
388  // regardless of what dimension we are actually running in.
389  _calC[qp].resize(3);
390 
391  // Explicitly zero the calC
392  for (unsigned int i = 0; i < 3; ++i)
393  _calC[qp][i].zero();
394 
395  // x-column matrix
396  _calC[qp][0](0, 0) = _u_vel[qp];
397  _calC[qp][0](1, 0) = _v_vel[qp];
398  _calC[qp][0](2, 0) = _w_vel[qp];
399 
400  // y-column matrix
401  _calC[qp][1](0, 1) = _u_vel[qp];
402  _calC[qp][1](1, 1) = _v_vel[qp];
403  _calC[qp][1](2, 1) = _w_vel[qp];
404 
405  // z-column matrix (this assumes LIBMESH_DIM==3!)
406  _calC[qp][2](0, 2) = _u_vel[qp];
407  _calC[qp][2](1, 2) = _v_vel[qp];
408  _calC[qp][2](2, 2) = _w_vel[qp];
409 
410  // The matrix S can be computed from any of the calC via calC_1*calC_1^T
411  RealTensorValue calS = _calC[qp][0] * _calC[qp][0].transpose();
412 
413  // Enough space to hold five (=n_sd + 2) 3*3 calA matrices at this qp, regarless of dimension
414  _calA[qp].resize(5);
415 
416  // 0.) _calA_0 = diag( (gam - 1)/2*|u|^2 ) - S
417  _calA[qp][0].zero(); // zero this calA entry
418  _calA[qp][0](0, 0) = _calA[qp][0](1, 1) = _calA[qp][0](2, 2) =
419  0.5 * (_fp.gamma() - 1.0) * velmag2; // set diag. entries
420  _calA[qp][0] -= calS;
421 
422  for (unsigned int m = 1; m <= 3; ++m)
423  {
424  // Use m_local when indexing into matrices and vectors
425  unsigned int m_local = m - 1;
426 
427  // For m=1,2,3, calA_m = C_m + C_m^T + diag( (1.-gam)*u_m )
428  _calA[qp][m].zero(); // zero this calA entry
429  _calA[qp][m](0, 0) = _calA[qp][m](1, 1) = _calA[qp][m](2, 2) =
430  (1. - _fp.gamma()) * vel(m_local); // set diag. entries
431  _calA[qp][m] += _calC[qp][m_local]; // Note: use m_local for indexing into _calC!
432  _calA[qp][m] += _calC[qp][m_local].transpose(); // Note: use m_local for indexing into _calC!
433  }
434 
435  // 4.) calA_4 = diag(gam - 1)
436  _calA[qp][4].zero(); // zero this calA entry
437  _calA[qp][4](0, 0) = _calA[qp][4](1, 1) = _calA[qp][4](2, 2) = (_fp.gamma() - 1.0);
438 
439  // Enough space to hold the 3*5 "cal E" matrices which comprise the inviscid flux term
440  // of the energy equation. See notes for additional details
441  _calE[qp].resize(3); // Three rows, 5 entries in each row
442 
443  for (unsigned int k = 0; k < 3; ++k)
444  {
445  // Make enough room to store all 5 E matrices for this k
446  _calE[qp][k].resize(5);
447 
448  // Store and reuse the velocity column transpose matrix for the
449  // current value of k.
450  RealTensorValue Ck_T = _calC[qp][k].transpose();
451 
452  // E_{k0} (density gradient term)
453  _calE[qp][k][0].zero();
454  _calE[qp][k][0] = (0.5 * (_fp.gamma() - 1.0) * velmag2 - _specific_total_enthalpy[qp]) * Ck_T;
455 
456  for (unsigned int m = 1; m <= 3; ++m)
457  {
458  // Use m_local when indexing into matrices and vectors
459  unsigned int m_local = m - 1;
460 
461  // E_{km} (momentum gradient terms)
462  _calE[qp][k][m].zero();
463  _calE[qp][k][m](k, m_local) = _specific_total_enthalpy[qp]; // H * D_{km}
464  _calE[qp][k][m] += (1. - _fp.gamma()) * vel(m_local) * Ck_T; // (1-gam) * u_m * C_k^T
465  }
466 
467  // E_{k4} (energy gradient term)
468  _calE[qp][k][4].zero();
469  _calE[qp][k][4] = _fp.gamma() * Ck_T;
470  }
471 
472  // Compute the sum over ell of: A_ell grad(U_ell), store in DenseVector or Gradient object?
473  // The gradient object might be more useful, since we are multiplying by VariableGradient
474  // (which is a MooseArray of RealGradients) objects?
475  RealVectorValue mom_resid = _calA[qp][0] * _grad_rho[qp] + _calA[qp][1] * _grad_rho_u[qp] +
476  _calA[qp][2] * _grad_rho_v[qp] + _calA[qp][3] * _grad_rho_w[qp] +
477  _calA[qp][4] * _grad_rho_et[qp];
478 
479  // No matrices/vectors for the energy residual strong form... just write it out like
480  // the mass equation residual. See "Momentum SUPG terms prop. to energy residual"
481  // section of the notes.
482  Real energy_resid =
483  (0.5 * (_fp.gamma() - 1.0) * velmag2 - _specific_total_enthalpy[qp]) * (vel * _grad_rho[qp]) +
484  _specific_total_enthalpy[qp] * divU +
485  (1. - _fp.gamma()) * (vel(0) * (vel * _grad_rho_u[qp]) + vel(1) * (vel * _grad_rho_v[qp]) +
486  vel(2) * (vel * _grad_rho_w[qp])) +
487  _fp.gamma() * (vel * _grad_rho_et[qp]);
488 
489  // Now for the actual residual values...
490 
491  // The density strong-residual
492  _strong_residuals[qp][0] = _drho_dt[qp] + divU;
493 
494  // The x-momentum strong-residual, viscous terms neglected.
495  // TODO: If we want to add viscous contributions back in, should this kernel
496  // not inherit from NSViscousFluxBase so it can get tau values? This would
497  // also involve shape function second derivative values.
498  _strong_residuals[qp][1] = _drhou_dt[qp] + mom_resid(0);
499 
500  // The y-momentum strong residual, viscous terms neglected.
501  _strong_residuals[qp][2] = _drhov_dt[qp] + mom_resid(1);
502 
503  // The z-momentum strong residual, viscous terms neglected.
504  if (_mesh_dimension == 3)
505  _strong_residuals[qp][3] = _drhow_dt[qp] + mom_resid(2);
506  else
507  _strong_residuals[qp][3] = 0.;
508 
509  // The energy equation strong residual
510  _strong_residuals[qp][4] = _drhoE_dt[qp] + energy_resid;
511 }
const unsigned int _mesh_dimension
const VariableValue & _drhow_dt
MaterialProperty< std::vector< RealTensorValue > > & _calC
const VariableGradient & _grad_rho_v
const VariableValue & _u_vel
const Number zero
const VariableGradient & _grad_rho_w
virtual void resize(const std::size_t size) override final
MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _calE
TensorValue< Real > RealTensorValue
MaterialProperty< std::vector< RealTensorValue > > & _calA
const VariableValue & _v_vel
MaterialProperty< std::vector< Real > > & _strong_residuals
const VariableGradient & _grad_rho_u
const VariableGradient & _grad_rho_et
const VariableValue & _specific_total_enthalpy
const VariableValue & _drhou_dt
const VariableGradient & _grad_rho
const VariableValue & _w_vel
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VariableValue & _drhoE_dt
static const std::string k
Definition: NS.h:130
const VariableValue & _drhov_dt
const IdealGasFluidProperties & _fp
const VariableValue & _drho_dt

◆ computeTau()

void NavierStokesMaterial::computeTau ( unsigned int  qp)
private

Definition at line 264 of file NavierStokesMaterial.C.

Referenced by computeProperties().

265 {
266  Real velmag =
267  std::sqrt(_u_vel[qp] * _u_vel[qp] + _v_vel[qp] * _v_vel[qp] + _w_vel[qp] * _w_vel[qp]);
268 
269  // Moose::out << "velmag=" << velmag << std::endl;
270 
271  // Make sure temperature >= 0 before trying to take sqrt
272  // if (_temperature[qp] < 0.)
273  // {
274  // Moose::err << "Negative temperature "
275  // << _temperature[qp]
276  // << " found at quadrature point "
277  // << qp
278  // << ", element "
279  // << _current_elem->id()
280  // << std::endl;
281  // mooseError("Can't continue, would be nice to throw an exception here?");
282  // }
283 
284  // The speed of sound for an ideal gas, sqrt(gamma * R * T). Not needed unless
285  // we want to use a form of Tau that requires it.
286  // Real soundspeed = _fp.c_from_v_e(_specific_volume[_qp], _internal_energy[_qp]);
287 
288  // If velmag == 0, then _hsupg should be zero as well. Then tau
289  // will have only the time-derivative contribution (or zero, if we
290  // are not including dt terms in our taus!) Note that using the
291  // time derivative contribution in this way assumes we are solving
292  // unsteady, and guarantees *some* stabilization is added even when
293  // u -> 0 in certain regions of the flow.
294  if (velmag == 0.)
295  {
296  // 1.) Tau without dt terms
297  // _tauc[qp] = 0.;
298  // _taum[qp] = 0.;
299  // _taue[qp] = 0.;
300 
301  // 2.) Tau *with* dt terms
302  _tauc[qp] = _taum[qp] = _taue[qp] = 0.5 * _dt;
303  }
304  else
305  {
306  // The element length parameter, squared
307  Real h2 = _hsupg[qp] * _hsupg[qp];
308 
309  // The viscosity-based term
310  Real visc_term = _dynamic_viscosity[qp] / _rho[qp] / h2;
311 
312  // The thermal conductivity-based term, cp = gamma * cv
313  Real k_term = _thermal_conductivity[qp] / _rho[qp] / _fp.cp() / h2;
314 
315  // 1a.) Standard compressible flow tau. Does not account for low Mach number
316  // limit.
317  // _tauc[qp] = _hsupg[qp] / (velmag + soundspeed);
318 
319  // 1b.) Inspired by Hauke, the sum of the compressible and incompressible tauc.
320  // _tauc[qp] =
321  // _hsupg[qp] / (velmag + soundspeed) +
322  // _hsupg[qp] / (velmag);
323 
324  // 1c.) From Wong 2001. This tau is O(M^2) for small M. At small M,
325  // tauc dominates the inverse square sums and basically makes
326  // taum=taue=tauc. However, all my flows occur at low Mach numbers,
327  // so there would basically never be any stabilization...
328  // _tauc[qp] = (_hsupg[qp] * velmag) / (velmag*velmag + soundspeed*soundspeed);
329 
330  // For use with option "1",
331  // (tau_c)^{-2}
332  // Real taucm2 = 1./_tauc[qp]/_tauc[qp];
333  // _taum[qp] = 1. / std::sqrt(taucm2 + visc_term*visc_term);
334  // _taue[qp] = 1. / std::sqrt(taucm2 + k_term*k_term);
335 
336  // 2.) Tau with timestep dependence (guarantees stabilization even
337  // in zero-velocity limit) incorporated via the "r-switch" method,
338  // with r=2.
339  Real sqrt_term = 4. / _dt / _dt + velmag * velmag / h2;
340 
341  // For use with option "2", i.e. the option that uses dt in the definition of tau
342  _tauc[qp] = 1. / std::sqrt(sqrt_term);
343  _taum[qp] = 1. / std::sqrt(sqrt_term + visc_term * visc_term);
344  _taue[qp] = 1. / std::sqrt(sqrt_term + k_term * k_term);
345  }
346 
347  // Debugging
348  // Moose::out << "_tauc[" << qp << "]=" << _tauc[qp] << std::endl;
349  // Moose::out << "_hsupg[" << qp << "]=" << _hsupg[qp] << std::endl;
350  // Moose::out << "velmag[" << qp << "]=" << velmag << std::endl;
351 }
MaterialProperty< Real > & _dynamic_viscosity
MaterialProperty< Real > & _hsupg
Real & _dt
const VariableValue & _u_vel
MaterialProperty< Real > & _tauc
MaterialProperty< Real > & _taue
const VariableValue & _v_vel
const VariableValue & _w_vel
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MaterialProperty< Real > & _thermal_conductivity
const IdealGasFluidProperties & _fp
const VariableValue & _rho
MaterialProperty< Real > & _taum

◆ validParams()

InputParameters NavierStokesMaterial::validParams ( )
static

Definition at line 26 of file NavierStokesMaterial.C.

Referenced by Air::validParams().

27 {
29 
30  params.addClassDescription(
31  "This is the base class of all materials should use if you are trying to "
32  "use the Navier-Stokes Kernels.");
33  params.addRequiredCoupledVar(nms::velocity_x, "x-velocity");
34  params.addCoupledVar(nms::velocity_y, "y-velocity"); // only required in >= 2D
35  params.addCoupledVar(nms::velocity_z, "z-velocity"); // only required in 3D
36 
37  params.addRequiredCoupledVar(nms::temperature, "temperature");
38  params.addRequiredCoupledVar(nms::specific_total_enthalpy, "specific total enthalpy");
39 
40  params.addRequiredCoupledVar(nms::density, "density");
41  params.addRequiredCoupledVar(nms::momentum_x, "x-momentum");
42  params.addCoupledVar(nms::momentum_y, "y-momentum"); // only required in >= 2D
43  params.addCoupledVar(nms::momentum_z, "z-momentum"); // only required in 3D
45  params.addRequiredParam<UserObjectName>("fluid_properties",
46  "The name of the user object for fluid properties");
47  return params;
48 }
static const std::string total_energy_density
Definition: NS.h:65
static const std::string momentum_x
Definition: NS.h:35
static const std::string velocity_z
Definition: NS.h:48
static const std::string density
Definition: NS.h:33
static const std::string velocity_x
Definition: NS.h:46
static const std::string temperature
Definition: NS.h:59
void addRequiredParam(const std::string &name, const std::string &doc_string)
static InputParameters validParams()
static const std::string velocity_y
Definition: NS.h:47
void addCoupledVar(const std::string &name, const std::string &doc_string)
static const std::string momentum_y
Definition: NS.h:36
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
static const std::string specific_total_enthalpy
Definition: NS.h:69
void addClassDescription(const std::string &doc_string)
static const std::string momentum_z
Definition: NS.h:37

Member Data Documentation

◆ _calA

MaterialProperty<std::vector<RealTensorValue> >& NavierStokesMaterial::_calA
protected

Definition at line 59 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _calC

MaterialProperty<std::vector<RealTensorValue> >& NavierStokesMaterial::_calC
protected

Definition at line 63 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _calE

MaterialProperty<std::vector<std::vector<RealTensorValue> > >& NavierStokesMaterial::_calE
protected

Definition at line 68 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _drho_dt

const VariableValue& NavierStokesMaterial::_drho_dt
protected

Definition at line 94 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _drhoE_dt

const VariableValue& NavierStokesMaterial::_drhoE_dt
protected

Definition at line 98 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _drhou_dt

const VariableValue& NavierStokesMaterial::_drhou_dt
protected

Definition at line 95 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _drhov_dt

const VariableValue& NavierStokesMaterial::_drhov_dt
protected

Definition at line 96 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _drhow_dt

const VariableValue& NavierStokesMaterial::_drhow_dt
protected

Definition at line 97 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _dynamic_viscosity

MaterialProperty<Real>& NavierStokesMaterial::_dynamic_viscosity
protected

Definition at line 53 of file NavierStokesMaterial.h.

Referenced by Air::computeProperties(), computeProperties(), and computeTau().

◆ _fp

const IdealGasFluidProperties& NavierStokesMaterial::_fp
protected

Definition at line 119 of file NavierStokesMaterial.h.

Referenced by computeProperties(), computeStrongResiduals(), and computeTau().

◆ _grad_rho

const VariableGradient& NavierStokesMaterial::_grad_rho
protected

Definition at line 101 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _grad_rho_et

const VariableGradient& NavierStokesMaterial::_grad_rho_et
protected

Definition at line 105 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _grad_rho_u

const VariableGradient& NavierStokesMaterial::_grad_rho_u
protected

Definition at line 102 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _grad_rho_v

const VariableGradient& NavierStokesMaterial::_grad_rho_v
protected

Definition at line 103 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _grad_rho_w

const VariableGradient& NavierStokesMaterial::_grad_rho_w
protected

Definition at line 104 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _grad_u

const VariableGradient& NavierStokesMaterial::_grad_u
protected

Definition at line 47 of file NavierStokesMaterial.h.

Referenced by computeProperties(), and NavierStokesMaterial().

◆ _grad_v

const VariableGradient& NavierStokesMaterial::_grad_v
protected

Definition at line 48 of file NavierStokesMaterial.h.

Referenced by computeProperties(), and NavierStokesMaterial().

◆ _grad_w

const VariableGradient& NavierStokesMaterial::_grad_w
protected

Definition at line 49 of file NavierStokesMaterial.h.

Referenced by computeProperties(), and NavierStokesMaterial().

◆ _hsupg

MaterialProperty<Real>& NavierStokesMaterial::_hsupg
protected

Definition at line 109 of file NavierStokesMaterial.h.

Referenced by computeHSUPG(), and computeTau().

◆ _mesh_dimension

const unsigned int NavierStokesMaterial::_mesh_dimension
protected

Definition at line 45 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _rho

const VariableValue& NavierStokesMaterial::_rho
protected

Definition at line 87 of file NavierStokesMaterial.h.

Referenced by computeTau().

◆ _rho_et

const VariableValue& NavierStokesMaterial::_rho_et
protected

Definition at line 91 of file NavierStokesMaterial.h.

◆ _rho_u

const VariableValue& NavierStokesMaterial::_rho_u
protected

Definition at line 88 of file NavierStokesMaterial.h.

◆ _rho_v

const VariableValue& NavierStokesMaterial::_rho_v
protected

Definition at line 89 of file NavierStokesMaterial.h.

◆ _rho_w

const VariableValue& NavierStokesMaterial::_rho_w
protected

Definition at line 90 of file NavierStokesMaterial.h.

◆ _specific_total_enthalpy

const VariableValue& NavierStokesMaterial::_specific_total_enthalpy
protected

Definition at line 84 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _strong_residuals

MaterialProperty<std::vector<Real> >& NavierStokesMaterial::_strong_residuals
protected

Definition at line 116 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals().

◆ _tauc

MaterialProperty<Real>& NavierStokesMaterial::_tauc
protected

Definition at line 110 of file NavierStokesMaterial.h.

Referenced by computeTau().

◆ _taue

MaterialProperty<Real>& NavierStokesMaterial::_taue
protected

Definition at line 112 of file NavierStokesMaterial.h.

Referenced by computeTau().

◆ _taum

MaterialProperty<Real>& NavierStokesMaterial::_taum
protected

Definition at line 111 of file NavierStokesMaterial.h.

Referenced by computeTau().

◆ _temperature

const VariableValue& NavierStokesMaterial::_temperature
protected

Definition at line 81 of file NavierStokesMaterial.h.

◆ _thermal_conductivity

MaterialProperty<Real>& NavierStokesMaterial::_thermal_conductivity
protected

Definition at line 52 of file NavierStokesMaterial.h.

Referenced by computeProperties(), and computeTau().

◆ _u_vel

const VariableValue& NavierStokesMaterial::_u_vel
protected

Definition at line 76 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals(), and computeTau().

◆ _v_vel

const VariableValue& NavierStokesMaterial::_v_vel
protected

Definition at line 77 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals(), and computeTau().

◆ _vel_grads

std::vector<const VariableGradient *> NavierStokesMaterial::_vel_grads
protected

Definition at line 72 of file NavierStokesMaterial.h.

Referenced by computeProperties().

◆ _viscous_stress_tensor

MaterialProperty<RealTensorValue>& NavierStokesMaterial::_viscous_stress_tensor
protected

Definition at line 51 of file NavierStokesMaterial.h.

Referenced by computeProperties().

◆ _w_vel

const VariableValue& NavierStokesMaterial::_w_vel
protected

Definition at line 78 of file NavierStokesMaterial.h.

Referenced by computeStrongResiduals(), and computeTau().


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