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 | List of all members
KKSPhaseConcentrationMaterial Class Reference

#include <KKSPhaseConcentrationMaterial.h>

Inheritance diagram for KKSPhaseConcentrationMaterial:
[legend]

Public Types

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

Public Member Functions

 KKSPhaseConcentrationMaterial (const InputParameters &parameters)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialPropertyByName (const std::string &name)
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 
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
 
virtual void computeProperties () override
 
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)
 
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)
 
std::unordered_map< SubdomainID, std::vector< MaterialBase *> > buildRequiredMaterials (bool allow_stateful=true)
 
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 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 ADVariableValuegetADDefaultValue (const std::string &var_name) 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 ADVectorVariableValuegetADDefaultVectorValue (const std::string &var_name) const
 
const ADVariableGradientgetADDefaultGradient () const
 
const ADVectorVariableGradientgetADDefaultVectorGradient () const
 
const ADVariableSecondgetADDefaultSecond () const
 
const ADVectorVariableCurlgetADDefaultCurl () const
 
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)
 
void statefulPropertiesAllowed (bool)
 
bool getMaterialPropertyCalled () const
 
const GenericMaterialProperty< T, is_ad > & getPossiblyConstantGenericMaterialPropertyByName (const MaterialPropertyName &prop_name, MaterialData &material_data, const unsigned int state)
 
const MaterialPropertyName derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
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)
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
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 initQpStatefulProperties () override
 
virtual void initialSetup () override
 
virtual void computeQpProperties () override
 
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 resetQpProperties ()
 
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 ()
 
void markMatPropRequested (const std::string &)
 
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
 
bool checkVar (const std::string &var_name, unsigned int comp=0, unsigned int comp_bound=0) const
 
void validateExecutionerType (const std::string &name, const std::string &fn_name) 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 ()
 
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
 
std::vector< T > coupledVectorHelper (const std::string &var_name, const Func &func) const
 
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 std::vector< const VariableValue * > _prop_c
 Global concentrations. More...
 
const unsigned int _num_c
 Number of global concentrations. More...
 
const MaterialProperty< Real > & _prop_h
 Switching functions. More...
 
const std::vector< VariableName > _args_names
 Coupled variables of free energies. More...
 
const unsigned int _n_args
 Number of coupled variables of free energies. More...
 
MaterialProperty< Real > & _iter
 Number of nested Newton iteration. More...
 
const bool _damped_newton
 Add damping functionality to nested Newton solve. More...
 
NestedSolve _nested_solve
 Instantiation of the NestedSolve class. More...
 
 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
 
std::unordered_map< std::string, std::vector< std::unique_ptr< VariableValue > > > _default_value
 
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::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
 
const std::vector< MaterialPropertyName > _ci_names
 Phase concentrations. More...
 
std::vector< MaterialProperty< Real > * > _prop_ci
 
std::vector< const MaterialProperty< Real > * > _ci_old
 
const std::vector< Real_ci_IC
 
const MaterialName _Fa_name
 Free energies. More...
 
const MaterialName _Fb_name
 
std::vector< const MaterialProperty< Real > * > _prop_Fi
 
std::vector< MaterialProperty< Real > * > _Fi_copy
 
std::vector< const MaterialProperty< Real > * > _dFidci
 Derivative of free energies wrt phase concentrations \( \frac d{dc_i} F_i \). More...
 
std::vector< MaterialProperty< Real > * > _dFidci_copy
 
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d2Fidcidbi
 
std::vector< std::vector< MaterialProperty< Real > * > > _d2Fadc1db1_copy
 
std::vector< const MaterialProperty< Real > * > _dFadarg
 Derivative of free energies wrt coupled variables \( \frac d{dq} F_a \). More...
 
std::vector< MaterialProperty< Real > * > _dFadarg_copy
 
std::vector< const MaterialProperty< Real > * > _dFbdarg
 Derivative of free energies wrt coupled variables \( \frac d{dq} F_b \). More...
 
std::vector< MaterialProperty< Real > * > _dFbdarg_copy
 
std::vector< std::vector< const MaterialProperty< Real > * > > _d2Fadcadarg
 
std::vector< std::vector< MaterialProperty< Real > * > > _d2Fadcadarg_copy
 
const Real _abs_tol
 Absolute and relative tolerance of nested Newton iteration. More...
 
const Real _rel_tol
 
MaterialName _condition_name
 Material property that defines the confidence bounds for the newton solve. More...
 
MaterialBase_condition
 
const MaterialProperty< Real > * _C
 
MaterialBase_Fa
 Free energy instantiation of the MaterialBase class. More...
 
MaterialBase_Fb
 

Static Protected Attributes

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

Detailed Description

Definition at line 15 of file KKSPhaseConcentrationMaterial.h.

Constructor & Destructor Documentation

◆ KKSPhaseConcentrationMaterial()

KKSPhaseConcentrationMaterial::KKSPhaseConcentrationMaterial ( const InputParameters parameters)

Definition at line 47 of file KKSPhaseConcentrationMaterial.C.

49  _prop_c(coupledValues("global_cs")),
50  _num_c(coupledComponents("global_cs")),
51  _prop_h(getMaterialProperty<Real>("h_name")),
52  _ci_names(getParam<std::vector<MaterialPropertyName>>("ci_names")),
53  _prop_ci(_num_c * 2),
54  _ci_old(_num_c * 2),
55  _ci_IC(getParam<std::vector<Real>>("ci_IC")),
56  _Fa_name(getParam<MaterialName>("fa_name")),
57  _Fb_name(getParam<MaterialName>("fb_name")),
58  _prop_Fi(2),
59  _Fi_copy(2),
60  _dFidci(_num_c * 2),
61  _dFidci_copy(_num_c * 2),
62  _d2Fidcidbi(2),
64  _args_names(coupledNames("args")),
65  _n_args(coupledComponents("args")),
72  _iter(declareProperty<Real>("nested_iterations")),
73  _abs_tol(getParam<Real>("absolute_tolerance")),
74  _rel_tol(getParam<Real>("relative_tolerance")),
75  _damped_newton(getParam<bool>("damped_Newton")),
76  _condition_name(getParam<MaterialName>("conditions")),
78 
79 {
80  // phase concentrations
81  for (const auto m : make_range(_num_c * 2))
82  {
83  _prop_ci[m] = &declareProperty<Real>(_ci_names[m]);
84  _ci_old[m] = &getMaterialPropertyOld<Real>(_ci_names[m]);
85  }
86 
87  // free energies
88  _prop_Fi[0] = &getMaterialPropertyByName<Real>(_Fa_name);
89  _prop_Fi[1] = &getMaterialPropertyByName<Real>(_Fb_name);
90 
91  // declare _fi_copy to be passed to the kernels
92  _Fi_copy[0] = &declareProperty<Real>("cp" + _Fa_name);
93  _Fi_copy[1] = &declareProperty<Real>("cp" + _Fb_name);
94 
95  // derivative of free energy wrt phase concentrations
96  for (const auto m : make_range(_num_c))
97  {
98  _dFidci[m * 2] = &getMaterialPropertyDerivative<Real>(_Fa_name, _ci_names[m * 2]);
99  _dFidci[m * 2 + 1] = &getMaterialPropertyDerivative<Real>(_Fb_name, _ci_names[m * 2 + 1]);
100 
101  // declare _dFidci_copy to be passed to the kernels
102  _dFidci_copy[m * 2] = &declarePropertyDerivative<Real>("cp" + _Fa_name, _ci_names[m * 2]);
103  _dFidci_copy[m * 2 + 1] =
104  &declarePropertyDerivative<Real>("cp" + _Fb_name, _ci_names[m * 2 + 1]);
105  }
106 
107  // Second derivative of free energy wrt phase concentrations for use in this material. In
108  // _d2Fidcidbi[m][n][l], m is phase index of Fi, n is the species index of ci, l is the species
109  // index of bi.
110  for (const auto m : make_range(2))
111  {
112  _d2Fidcidbi[m].resize(_num_c);
113  for (const auto n : make_range(_num_c))
114  {
115  _d2Fidcidbi[m][n].resize(_num_c);
116  for (const auto l : make_range(_num_c))
117  {
118  if (m == 0)
119  _d2Fidcidbi[0][n][l] =
120  &getMaterialPropertyDerivative<Real>(_Fa_name, _ci_names[n * 2], _ci_names[l * 2]);
121 
122  else
123  _d2Fidcidbi[1][n][l] = &getMaterialPropertyDerivative<Real>(
124  _Fb_name, _ci_names[n * 2 + 1], _ci_names[l * 2 + 1]);
125  }
126  }
127  }
128 
129  // _d2Fadc1db1_copy (2D symmetric matrix), to be passed to kernels
130  for (const auto m : make_range(_num_c))
131  {
132  _d2Fadc1db1_copy[m].resize(_num_c);
133  for (const auto n : make_range(_num_c))
134  _d2Fadc1db1_copy[m][n] =
135  &declarePropertyDerivative<Real>("cp" + _Fa_name, _ci_names[m * 2], _ci_names[n * 2]);
136  }
137 
138  // partial derivative of Fa and Fb wrt coupled variables, to be passed to kernels
139  for (const auto m : make_range(_n_args))
140  {
141  _dFadarg[m] = &getMaterialPropertyDerivative<Real>(_Fa_name, _args_names[m]);
142  _dFadarg_copy[m] = &declarePropertyDerivative<Real>("cp" + _Fa_name, _args_names[m]);
143  _dFbdarg[m] = &getMaterialPropertyDerivative<Real>(_Fb_name, _args_names[m]);
144  _dFbdarg_copy[m] = &declarePropertyDerivative<Real>("cp" + _Fb_name, _args_names[m]);
145  }
146 
147  // second partial derivatives of Fa wrt ca and another coupled variable, to be passed to
148  // kernels
149  for (const auto m : make_range(_n_args))
150  {
151  _d2Fadcadarg[m].resize(_num_c);
152  _d2Fadcadarg_copy[m].resize(_num_c);
153  for (const auto n : make_range(_num_c))
154  {
155  _d2Fadcadarg[m][n] =
156  &getMaterialPropertyDerivative<Real>(_Fa_name, _ci_names[n * 2], _args_names[m]);
157  _d2Fadcadarg_copy[m][n] =
158  &declarePropertyDerivative<Real>("cp" + _Fa_name, _ci_names[n * 2], _args_names[m]);
159  }
160  }
161 
162  if (_damped_newton)
163  _C = &getMaterialPropertyByName<Real>(_condition_name);
164  else
165  _C = nullptr;
166 }
std::vector< std::vector< MaterialProperty< Real > * > > _d2Fadcadarg_copy
std::vector< MaterialProperty< Real > * > _dFidci_copy
const Real _abs_tol
Absolute and relative tolerance of nested Newton iteration.
std::vector< const MaterialProperty< Real > * > _prop_Fi
const unsigned int _n_args
Number of coupled variables of free energies.
const MaterialName _Fa_name
Free energies.
std::vector< VariableName > coupledNames(const std::string &var_name) const
const std::vector< const VariableValue * > _prop_c
Global concentrations.
std::vector< const MaterialProperty< Real > * > _ci_old
const unsigned int _num_c
Number of global concentrations.
std::vector< const MaterialProperty< Real > * > _dFadarg
Derivative of free energies wrt coupled variables .
const bool _damped_newton
Add damping functionality to nested Newton solve.
NestedSolve _nested_solve
Instantiation of the NestedSolve class.
std::vector< std::vector< const MaterialProperty< Real > * > > _d2Fadcadarg
std::vector< MaterialProperty< Real > * > _dFadarg_copy
std::vector< std::vector< MaterialProperty< Real > * > > _d2Fadc1db1_copy
const T & getParam(const std::string &name) const
MaterialProperty< Real > & _iter
Number of nested Newton iteration.
std::vector< MaterialProperty< Real > * > _Fi_copy
const MaterialProperty< Real > & _prop_h
Switching functions.
MaterialName _condition_name
Material property that defines the confidence bounds for the newton solve.
std::vector< MaterialProperty< Real > * > _prop_ci
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d2Fidcidbi
unsigned int coupledComponents(const std::string &var_name) const
const std::vector< MaterialPropertyName > _ci_names
Phase concentrations.
std::vector< const VariableValue *> coupledValues(const std::string &var_name) const
IntRange< T > make_range(T beg, T end)
const InputParameters & parameters() const
const std::vector< VariableName > _args_names
Coupled variables of free energies.
std::vector< const MaterialProperty< Real > * > _dFidci
Derivative of free energies wrt phase concentrations .
const MaterialProperty< Real > * _C
std::vector< MaterialProperty< Real > * > _dFbdarg_copy
std::vector< const MaterialProperty< Real > * > _dFbdarg
Derivative of free energies wrt coupled variables .

Member Function Documentation

◆ computeQpProperties()

void KKSPhaseConcentrationMaterial::computeQpProperties ( )
overrideprotectedvirtual

Reimplemented from DerivativeMaterialInterface< Material >.

Definition at line 185 of file KKSPhaseConcentrationMaterial.C.

186 {
187  // parameters for nested Newton iteration
188  NestedSolve::Value<> solution(_num_c * 2);
189 
190  for (unsigned int m = 0; m < _num_c * 2; ++m)
191  solution(m) = (*_ci_old[m])[_qp];
192 
195 
196  auto compute = [&](const NestedSolve::Value<> & guess,
197  NestedSolve::Value<> & residual,
198  NestedSolve::Jacobian<> & jacobian)
199  {
200  for (const auto m : make_range(_num_c * 2))
201  (*_prop_ci[m])[_qp] = guess(m);
202 
205 
206  // assign residual functions
207  for (const auto m : make_range(_num_c))
208  {
209  residual(m * 2) = (*_dFidci[m * 2])[_qp] - (*_dFidci[m * 2 + 1])[_qp];
210  residual(m * 2 + 1) = (1 - _prop_h[_qp]) * (*_prop_ci[m * 2])[_qp] +
211  _prop_h[_qp] * (*_prop_ci[m * 2 + 1])[_qp] - (*_prop_c[m])[_qp];
212  }
213 
214  jacobian.setZero();
215 
216  // fill in the non-zero elements in jacobian
217  for (const auto m : make_range(_num_c))
218  {
219  for (const auto n : make_range(_num_c))
220  {
221  // equal chemical potential derivative equations
222  jacobian(m * 2, n * 2) = (*_d2Fidcidbi[0][m][n])[_qp];
223  jacobian(m * 2, n * 2 + 1) = -(*_d2Fidcidbi[1][m][n])[_qp];
224  }
225  // concentration conservation derivative equations
226  jacobian(m * 2 + 1, m * 2) = 1 - _prop_h[_qp];
227  jacobian(m * 2 + 1, m * 2 + 1) = _prop_h[_qp];
228  }
229  };
230  auto computeCondition = [&](const NestedSolve::Value<> & guess) -> Real
231  {
232  for (const auto m : make_range(_num_c * 2))
233  (*_prop_ci[m])[_qp] = guess(m);
235  return ((*_C)[_qp]);
236  };
237  // choose between Newton or damped Newton's method
238  if (!_damped_newton)
239  _nested_solve.nonlinear(solution, compute);
240  else
241  _nested_solve.nonlinearDamped(solution, compute, computeCondition);
243 
244  if (_nested_solve.getState() == NestedSolve::State::NOT_CONVERGED)
245  mooseException("Nested Newton iteration did not converge.");
246 
247  // assign solution to ci
248  for (const auto m : make_range(_num_c * 2))
249  (*_prop_ci[m])[_qp] = solution[m];
250 
251  // assign to the copied parameters to be used in kernels
252  for (const auto m : make_range(2))
253  (*_Fi_copy[m])[_qp] = (*_prop_Fi[m])[_qp];
254 
255  for (const auto m : make_range(_num_c * 2))
256  (*_dFidci_copy[m])[_qp] = (*_dFidci[m])[_qp];
257 
258  for (const auto m : make_range(_num_c))
259  {
260  for (const auto n : make_range(_num_c))
261  (*_d2Fadc1db1_copy[m][n])[_qp] = (*_d2Fidcidbi[0][m][n])[_qp];
262  }
263 
264  for (const auto m : make_range(_n_args))
265  {
266  (*_dFadarg_copy[m])[_qp] = (*_dFadarg[m])[_qp];
267  (*_dFbdarg_copy[m])[_qp] = (*_dFbdarg[m])[_qp];
268  }
269 
270  for (const auto m : make_range(_n_args))
271  {
272  for (const auto n : make_range(_num_c))
273  (*_d2Fadcadarg_copy[m][n])[_qp] = (*_d2Fadcadarg[m][n])[_qp];
274  }
275 }
const std::size_t & getIterations()
std::vector< std::vector< MaterialProperty< Real > * > > _d2Fadcadarg_copy
std::vector< MaterialProperty< Real > * > _dFidci_copy
const Real _abs_tol
Absolute and relative tolerance of nested Newton iteration.
std::vector< const MaterialProperty< Real > * > _prop_Fi
const unsigned int _n_args
Number of coupled variables of free energies.
const std::vector< const VariableValue * > _prop_c
Global concentrations.
MaterialBase * _Fa
Free energy instantiation of the MaterialBase class.
typename std::conditional< N==1, NSReal, typename std::conditional< N==0, NestedSolveTempl< false >::DynamicVector, Eigen::Matrix< NSReal, N, 1 > >::type >::type Value
std::vector< const MaterialProperty< Real > * > _ci_old
const unsigned int _num_c
Number of global concentrations.
std::vector< const MaterialProperty< Real > * > _dFadarg
Derivative of free energies wrt coupled variables .
void nonlinear(V &guess, T &&compute)
const bool _damped_newton
Add damping functionality to nested Newton solve.
NestedSolve _nested_solve
Instantiation of the NestedSolve class.
std::vector< std::vector< const MaterialProperty< Real > * > > _d2Fadcadarg
std::vector< MaterialProperty< Real > * > _dFadarg_copy
typename std::conditional< N==1, NSReal, typename std::conditional< N==0, NestedSolveTempl< false >::DynamicMatrix, Eigen::Matrix< NSReal, N, N > >::type >::type Jacobian
std::vector< std::vector< MaterialProperty< Real > * > > _d2Fadc1db1_copy
void setRelativeTolerance(Real rel)
MaterialProperty< Real > & _iter
Number of nested Newton iteration.
std::vector< MaterialProperty< Real > * > _Fi_copy
const MaterialProperty< Real > & _prop_h
Switching functions.
std::vector< MaterialProperty< Real > * > _prop_ci
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d2Fidcidbi
void setAbsoluteTolerance(Real abs)
IntRange< T > make_range(T beg, T end)
virtual void computePropertiesAtQp(unsigned int qp)
std::vector< const MaterialProperty< Real > * > _dFidci
Derivative of free energies wrt phase concentrations .
void nonlinearDamped(V &guess, T &&compute, C &&computeCondition)
const MaterialProperty< Real > * _C
std::vector< MaterialProperty< Real > * > _dFbdarg_copy
std::vector< const MaterialProperty< Real > * > _dFbdarg
Derivative of free energies wrt coupled variables .
const State & getState() const

◆ initialSetup()

void KKSPhaseConcentrationMaterial::initialSetup ( )
overrideprotectedvirtual

Reimplemented from DerivativeMaterialInterface< Material >.

Definition at line 176 of file KKSPhaseConcentrationMaterial.C.

177 {
178  _Fa = &getMaterial("fa_name");
179  _Fb = &getMaterial("fb_name");
180  if (_damped_newton)
182 }
MaterialBase * _Fa
Free energy instantiation of the MaterialBase class.
const bool _damped_newton
Add damping functionality to nested Newton solve.
MaterialBase & getMaterial(const std::string &name)
MaterialBase & getMaterialByName(const std::string &name, bool no_warn=false, bool no_dep=false)
MaterialName _condition_name
Material property that defines the confidence bounds for the newton solve.

◆ initQpStatefulProperties()

void KKSPhaseConcentrationMaterial::initQpStatefulProperties ( )
overrideprotectedvirtual

Reimplemented from DerivativeMaterialInterface< Material >.

Definition at line 169 of file KKSPhaseConcentrationMaterial.C.

170 {
171  for (const auto m : make_range(_num_c * 2))
172  (*_prop_ci[m])[_qp] = _ci_IC[m];
173 }
const unsigned int _num_c
Number of global concentrations.
std::vector< MaterialProperty< Real > * > _prop_ci
IntRange< T > make_range(T beg, T end)

◆ validParams()

InputParameters KKSPhaseConcentrationMaterial::validParams ( )
static

Definition at line 16 of file KKSPhaseConcentrationMaterial.C.

17 {
19  params.addClassDescription("Computes the KKS phase concentrations by using nested Newton "
20  "iteration to solve the equal chemical "
21  "potential and concentration conservation equations. This class is "
22  "intended to be used with KKSPhaseConcentrationDerivatives.");
23  params.addRequiredCoupledVar("global_cs", "The interpolated concentrations c, b, etc.");
24  params.addRequiredParam<MaterialPropertyName>("h_name", "Switching function h(eta).");
25  params.addRequiredParam<std::vector<MaterialPropertyName>>(
26  "ci_names",
27  "Phase concentrations. The order must match Fa, Fb, and global_cs, for example, c1, c2, b1, "
28  "b2, etc.");
29  params.addRequiredParam<std::vector<Real>>("ci_IC",
30  "Initial values of ci in the same order as ci_names.");
31  params.addRequiredParam<MaterialName>("fa_name", "Fa material object.");
32  params.addRequiredParam<MaterialName>("fb_name", "Fb material object.");
33  params.addParam<MaterialPropertyName>(
34  "nested_iterations",
35  "The output number of nested Newton iterations at each quadrature point.");
36  params.addCoupledVar("args", "The coupled variables of Fa and Fb.");
37  params.addParam<bool>(
38  "damped_Newton", false, "Whether or not to use the damped Newton's method.");
39  params.addParam<MaterialName>("conditions",
40  "C",
41  "Material property that checks bounds and conditions on the "
42  "material properties being solved for.");
43  params += NestedSolve::validParams();
44  return params;
45 }
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
static InputParameters validParams()
void addRequiredParam(const std::string &name, const std::string &doc_string)
InputParameters validParams()
void addCoupledVar(const std::string &name, const std::string &doc_string)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _abs_tol

const Real KKSPhaseConcentrationMaterial::_abs_tol
protected

Absolute and relative tolerance of nested Newton iteration.

Definition at line 87 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties().

◆ _args_names

const std::vector<VariableName> KKSPhaseConcentrationMaterial::_args_names
protected

Coupled variables of free energies.

Definition at line 62 of file KKSPhaseConcentrationMaterial.h.

Referenced by KKSPhaseConcentrationMaterial().

◆ _C

const MaterialProperty<Real>* KKSPhaseConcentrationMaterial::_C
protected

◆ _ci_IC

const std::vector<Real> KKSPhaseConcentrationMaterial::_ci_IC
protected

Definition at line 40 of file KKSPhaseConcentrationMaterial.h.

Referenced by initQpStatefulProperties().

◆ _ci_names

const std::vector<MaterialPropertyName> KKSPhaseConcentrationMaterial::_ci_names
protected

Phase concentrations.

Definition at line 37 of file KKSPhaseConcentrationMaterial.h.

Referenced by KKSPhaseConcentrationMaterial().

◆ _ci_old

std::vector<const MaterialProperty<Real> *> KKSPhaseConcentrationMaterial::_ci_old
protected

◆ _condition

MaterialBase* KKSPhaseConcentrationMaterial::_condition
protected

Definition at line 96 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties(), and initialSetup().

◆ _condition_name

MaterialName KKSPhaseConcentrationMaterial::_condition_name
protected

Material property that defines the confidence bounds for the newton solve.

Definition at line 95 of file KKSPhaseConcentrationMaterial.h.

Referenced by initialSetup(), and KKSPhaseConcentrationMaterial().

◆ _d2Fadc1db1_copy

std::vector<std::vector<MaterialProperty<Real> *> > KKSPhaseConcentrationMaterial::_d2Fadc1db1_copy
protected

◆ _d2Fadcadarg

std::vector<std::vector<const MaterialProperty<Real> *> > KKSPhaseConcentrationMaterial::_d2Fadcadarg
protected

Second derivative of free energy Fa wrt phase concentration ca and a coupled variable \( \frac{d^2}{dc_a dq} F_a \)

Definition at line 79 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties(), and KKSPhaseConcentrationMaterial().

◆ _d2Fadcadarg_copy

std::vector<std::vector<MaterialProperty<Real> *> > KKSPhaseConcentrationMaterial::_d2Fadcadarg_copy
protected

◆ _d2Fidcidbi

std::vector<std::vector<std::vector<const MaterialProperty<Real> *> > > KKSPhaseConcentrationMaterial::_d2Fidcidbi
protected

Second derivative of free energies wrt phase concentrations \( \frac {d^2}{dc_i db_i} F_i \)

Definition at line 57 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties(), and KKSPhaseConcentrationMaterial().

◆ _damped_newton

const bool KKSPhaseConcentrationMaterial::_damped_newton
protected

Add damping functionality to nested Newton solve.

Definition at line 92 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties(), initialSetup(), and KKSPhaseConcentrationMaterial().

◆ _dFadarg

std::vector<const MaterialProperty<Real> *> KKSPhaseConcentrationMaterial::_dFadarg
protected

Derivative of free energies wrt coupled variables \( \frac d{dq} F_a \).

Definition at line 68 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties(), and KKSPhaseConcentrationMaterial().

◆ _dFadarg_copy

std::vector<MaterialProperty<Real> *> KKSPhaseConcentrationMaterial::_dFadarg_copy
protected

◆ _dFbdarg

std::vector<const MaterialProperty<Real> *> KKSPhaseConcentrationMaterial::_dFbdarg
protected

Derivative of free energies wrt coupled variables \( \frac d{dq} F_b \).

Definition at line 73 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties(), and KKSPhaseConcentrationMaterial().

◆ _dFbdarg_copy

std::vector<MaterialProperty<Real> *> KKSPhaseConcentrationMaterial::_dFbdarg_copy
protected

◆ _dFidci

std::vector<const MaterialProperty<Real> *> KKSPhaseConcentrationMaterial::_dFidci
protected

Derivative of free energies wrt phase concentrations \( \frac d{dc_i} F_i \).

Definition at line 51 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties(), and KKSPhaseConcentrationMaterial().

◆ _dFidci_copy

std::vector<MaterialProperty<Real> *> KKSPhaseConcentrationMaterial::_dFidci_copy
protected

◆ _Fa

MaterialBase* KKSPhaseConcentrationMaterial::_Fa
protected

Free energy instantiation of the MaterialBase class.

Definition at line 104 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties(), and initialSetup().

◆ _Fa_name

const MaterialName KKSPhaseConcentrationMaterial::_Fa_name
protected

Free energies.

Definition at line 44 of file KKSPhaseConcentrationMaterial.h.

Referenced by KKSPhaseConcentrationMaterial().

◆ _Fb

MaterialBase* KKSPhaseConcentrationMaterial::_Fb
protected

Definition at line 105 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties(), and initialSetup().

◆ _Fb_name

const MaterialName KKSPhaseConcentrationMaterial::_Fb_name
protected

Definition at line 45 of file KKSPhaseConcentrationMaterial.h.

Referenced by KKSPhaseConcentrationMaterial().

◆ _Fi_copy

std::vector<MaterialProperty<Real> *> KKSPhaseConcentrationMaterial::_Fi_copy
protected

◆ _iter

MaterialProperty<Real>& KKSPhaseConcentrationMaterial::_iter
protected

Number of nested Newton iteration.

Definition at line 84 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties().

◆ _n_args

const unsigned int KKSPhaseConcentrationMaterial::_n_args
protected

Number of coupled variables of free energies.

Definition at line 65 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties(), and KKSPhaseConcentrationMaterial().

◆ _nested_solve

NestedSolve KKSPhaseConcentrationMaterial::_nested_solve
protected

Instantiation of the NestedSolve class.

Definition at line 101 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties().

◆ _num_c

const unsigned int KKSPhaseConcentrationMaterial::_num_c
protected

Number of global concentrations.

Definition at line 31 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties(), initQpStatefulProperties(), and KKSPhaseConcentrationMaterial().

◆ _prop_c

const std::vector<const VariableValue *> KKSPhaseConcentrationMaterial::_prop_c
protected

Global concentrations.

Definition at line 28 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties().

◆ _prop_ci

std::vector<MaterialProperty<Real> *> KKSPhaseConcentrationMaterial::_prop_ci
protected

◆ _prop_Fi

std::vector<const MaterialProperty<Real> *> KKSPhaseConcentrationMaterial::_prop_Fi
protected

◆ _prop_h

const MaterialProperty<Real>& KKSPhaseConcentrationMaterial::_prop_h
protected

Switching functions.

Definition at line 34 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties().

◆ _rel_tol

const Real KKSPhaseConcentrationMaterial::_rel_tol
protected

Definition at line 88 of file KKSPhaseConcentrationMaterial.h.

Referenced by computeQpProperties().


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