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
ADComputeIncrementalShellStrain Class Reference

#include <ADComputeIncrementalShellStrain.h>

Inheritance diagram for ADComputeIncrementalShellStrain:
[legend]

Public Types

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

Public Member Functions

 ADComputeIncrementalShellStrain (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 initQpStatefulProperties () override
 
virtual void computeProperties () override
 
virtual void computeSolnVector ()
 Computes the 20x1 soln vector and its derivatives for each shell element. More...
 
virtual void computeBMatrix ()
 Computes the B matrix that connects strains to nodal displacements and rotations. More...
 
virtual void computeNodeNormal ()
 Computes the node normal at each node. More...
 
virtual void updateGVectors ()
 Updates the vectors required for shear locking computation for finite rotations. More...
 
virtual void updatedxyz ()
 Updates covariant vectors at each qp for finite rotations. More...
 
virtual void computeGMatrix ()
 Computes the transformation matrix from natural coordinates to local cartesian coordinates for elasticity tensor transformation. More...
 
virtual void computeLocalCoordinates ()
 Computes the element's local coordinates and store in _e1, _e2 and _e3. 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 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

unsigned int _nrot
 Number of coupled rotational variables. More...
 
unsigned int _ndisp
 Number of coupled displacement variables. More...
 
std::vector< unsigned int_rot_num
 Variable numbers corresponding to the rotational variables. More...
 
std::vector< unsigned int_disp_num
 Variable numbers corresponding to the displacement variables. More...
 
const VariableValue_thickness
 Coupled variable for the shell thickness. More...
 
const bool _large_strain
 Flag to compute large strains. More...
 
std::vector< ADMaterialProperty< RankTwoTensor > * > _strain_increment
 Strain increment in the covariant coordinate system. More...
 
std::vector< ADMaterialProperty< RankTwoTensor > * > _total_strain
 Total strain increment in the covariant coordinate system. More...
 
std::vector< const MaterialProperty< RankTwoTensor > * > _total_strain_old
 Old total strain increment in the covariant coordinate system. More...
 
NonlinearSystemBase_nonlinear_sys
 Reference to the nonlinear system object. More...
 
std::vector< std::vector< unsigned int > > _soln_disp_index
 Indices of solution vector corresponding to displacement DOFs in 3 directions at the 4 nodes. More...
 
std::vector< std::vector< unsigned int > > _soln_rot_index
 Indices of solution vector corresponding to rotation DOFs in 2 directions at the 4 nodes. More...
 
ADDenseVector _soln_vector
 Vector that stores the incremental solution at all the 20 DOFs in the 4 noded element. More...
 
ADDenseVector _strain_vector
 Vector that stores the strain in the the 2 axial and 3 shear directions. More...
 
std::vector< const Node * > _nodes
 Vector storing pointers to the nodes of the shell element. More...
 
ADMaterialProperty< RealVectorValue > & _node_normal
 Material property storing the normal to the element at the 4 nodes. Stored as a material property for convinience. More...
 
const MaterialProperty< RealVectorValue > & _node_normal_old
 Material property storing the old normal to the element at the 4 nodes. More...
 
std::unique_ptr< libMesh::QGauss_t_qrule
 Quadrature rule in the out of plane direction. More...
 
std::vector< Point > _t_points
 Quadrature points in the out of plane direction in isoparametric coordinate system. More...
 
std::vector< Point > _2d_points
 Quadrature points in the in-plane direction in isoparametric coordinate system. More...
 
std::vector< std::vector< Real > > _dphidxi_map
 Derivatives of shape functions w.r.t isoparametric coordinates xi. More...
 
std::vector< std::vector< Real > > _dphideta_map
 Derivatives of shape functions w.r.t isoparametric coordinates eta. More...
 
std::vector< std::vector< Real > > _phi_map
 Shape function value. More...
 
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_dxi
 Derivative of global x, y and z w.r.t isoparametric coordinate xi. More...
 
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_deta
 Derivative of global x, y and z w.r.t isoparametric coordinate eta. More...
 
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_dzeta
 Derivative of global x, y and z w.r.t isoparametric coordinate zeta. More...
 
std::vector< const MaterialProperty< RealVectorValue > * > _dxyz_dxi_old
 Old derivative of global x, y and z w.r.t isoparametric coordinate xi. More...
 
std::vector< const MaterialProperty< RealVectorValue > * > _dxyz_deta_old
 Old derivative of global x, y and z w.r.t isoparametric coordinate eta. More...
 
std::vector< const MaterialProperty< RealVectorValue > * > _dxyz_dzeta_old
 Old derivative of global x, y and z w.r.t isoparametric coordinate zeta. More...
 
std::vector< ADRealVectorValue_v1
 First tangential vectors at nodes. More...
 
std::vector< ADRealVectorValue_v2
 First tangential vectors at nodes. More...
 
std::vector< ADMaterialProperty< DenseMatrix< Real > > * > _B
 B_matrix for small strain. More...
 
std::vector< const MaterialProperty< DenseMatrix< Real > > * > _B_old
 Old B_matrix for small strain. More...
 
std::vector< ADMaterialProperty< RankTwoTensor > * > _ge
 ge matrix for elasticity tensor conversion More...
 
std::vector< const MaterialProperty< RankTwoTensor > * > _ge_old
 Old ge matrix for elasticity tensor conversion. More...
 
std::vector< ADMaterialProperty< Real > * > _J_map
 Material property containing jacobian of transformation. More...
 
std::vector< const MaterialProperty< Real > * > _J_map_old
 Old material property containing jacobian of transformation. More...
 
std::vector< MaterialProperty< RankTwoTensor > * > _local_transformation_matrix
 Transformation matrix to map stresses from global coordinate to the element's local coordinate. More...
 
std::vector< const MaterialProperty< RankTwoTensor > * > _local_transformation_matrix_old
 
std::vector< MaterialProperty< RankTwoTensor > * > _covariant_transformation_matrix
 Covariant base vector matrix material property to transform stress. More...
 
std::vector< const MaterialProperty< RankTwoTensor > * > _covariant_transformation_matrix_old
 
std::vector< MaterialProperty< RankTwoTensor > * > _contravariant_transformation_matrix
 Contravariant base vector matrix material property to transform strain. More...
 
std::vector< const MaterialProperty< RankTwoTensor > * > _contravariant_transformation_matrix_old
 
std::vector< MaterialProperty< RankTwoTensor > * > _total_global_strain
 Total strain in global coordinate system. More...
 
ADMaterialProperty< RankTwoTensor > * _transformation_matrix
 Rotation matrix material property. More...
 
ADRealVectorValue _x2
 simulation variables More...
 
ADRealVectorValue _x3
 
const NumericVector< Number > *const & _sol
 
const NumericVector< Number > & _sol_old
 
const RealVectorValue _ref_first_local_dir
 
ADRealVectorValue _g3_a
 
ADRealVectorValue _g3_c
 
ADRealVectorValue _g3_b
 
ADRealVectorValue _g3_d
 
ADRealVectorValue _g1_a
 
ADRealVectorValue _g1_c
 
ADRealVectorValue _g2_b
 
ADRealVectorValue _g2_d
 
RankTwoTensor _unrotated_total_strain
 
ADRealVectorValue _e1
 
ADRealVectorValue _e2
 
ADRealVectorValue _e3
 
 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
 

Detailed Description

Definition at line 21 of file ADComputeIncrementalShellStrain.h.

Constructor & Destructor Documentation

◆ ADComputeIncrementalShellStrain()

ADComputeIncrementalShellStrain::ADComputeIncrementalShellStrain ( const InputParameters parameters)

Definition at line 51 of file ADComputeIncrementalShellStrain.C.

53  _nrot(coupledComponents("rotations")),
54  _ndisp(coupledComponents("displacements")),
55  _rot_num(_nrot),
57  _thickness(coupledValue("thickness")),
58  _large_strain(getParam<bool>("large_strain")),
60  _total_strain(),
64  _soln_rot_index(4),
65  _soln_vector(20, 1),
66  _strain_vector(5, 1),
67  _nodes(4),
68  _node_normal(declareADProperty<RealVectorValue>("node_normal")),
69  _node_normal_old(getMaterialPropertyOldByName<RealVectorValue>("node_normal")),
70  _dxyz_dxi(),
71  _dxyz_deta(),
72  _dxyz_dzeta(),
73  _dxyz_dxi_old(),
76  _v1(4),
77  _v2(4),
78  _B(),
79  _B_old(),
80  _ge(),
81  _ge_old(),
82  _J_map(),
83  _J_map_old(),
93  _ref_first_local_dir(getParam<RealVectorValue>("reference_first_local_direction"))
94 
95 {
96  // Checking for consistency between length of the provided displacements and rotations vector
97  if (_ndisp != 3 || _nrot != 2)
98  mooseError(
99  "ADComputeIncrementalShellStrain: The number of variables supplied in 'displacements' "
100  "must be 3 and that in 'rotations' must be 2.");
101 
103  mooseError(
104  "ADComputeIncrementalShellStrain: Shell element is implemented only for linear elements.");
105 
106  // Checking if the size of the first local vector is within an acceptable range
108  mooseError(
109  "The norm of the defined first local axis is less than the acceptable telerance (1e-3)");
110 
111  // fetch coupled variables and gradients (as stateful properties if necessary)
112  for (unsigned int i = 0; i < _ndisp; ++i)
113  {
114  MooseVariable * disp_variable = getVar("displacements", i);
115  _disp_num[i] = disp_variable->number();
116 
117  if (i < _nrot)
118  {
119  MooseVariable * rot_variable = getVar("rotations", i);
120  _rot_num[i] = rot_variable->number();
121  }
122  }
123 
124  _t_qrule = std::make_unique<libMesh::QGauss>(
125  1, Utility::string_to_enum<Order>(getParam<std::string>("through_thickness_order")));
126  _t_points = _t_qrule->get_points();
127  _strain_increment.resize(_t_points.size());
128  _total_strain.resize(_t_points.size());
129  _total_strain_old.resize(_t_points.size());
130  _B.resize(_t_points.size());
131  _B_old.resize(_t_points.size());
132  _ge.resize(_t_points.size());
133  _ge_old.resize(_t_points.size());
134  _J_map.resize(_t_points.size());
135  _J_map_old.resize(_t_points.size());
136  _dxyz_dxi.resize(_t_points.size());
137  _dxyz_deta.resize(_t_points.size());
138  _dxyz_dzeta.resize(_t_points.size());
139  _dxyz_dxi_old.resize(_t_points.size());
140  _dxyz_deta_old.resize(_t_points.size());
141  _dxyz_dzeta_old.resize(_t_points.size());
148  _total_global_strain.resize(_t_points.size());
149 
150  _transformation_matrix = &declareADProperty<RankTwoTensor>("transformation_matrix_element");
151 
152  for (unsigned int i = 0; i < _t_points.size(); ++i)
153  {
154  _strain_increment[i] =
155  &declareADProperty<RankTwoTensor>("strain_increment_t_points_" + std::to_string(i));
156  _total_strain[i] =
157  &declareADProperty<RankTwoTensor>("total_strain_t_points_" + std::to_string(i));
158  _total_strain_old[i] =
159  &getMaterialPropertyOldByName<RankTwoTensor>("total_strain_t_points_" + std::to_string(i));
160  _B[i] = &declareADProperty<DenseMatrix<Real>>("B_t_points_" + std::to_string(i));
161  _B_old[i] = &getMaterialPropertyOldByName<DenseMatrix<Real>>("B_t_points_" + std::to_string(i));
162  _ge[i] = &declareADProperty<RankTwoTensor>("ge_t_points_" + std::to_string(i));
163  _ge_old[i] = &getMaterialPropertyOldByName<RankTwoTensor>("ge_t_points_" + std::to_string(i));
164  _J_map[i] = &declareADProperty<Real>("J_mapping_t_points_" + std::to_string(i));
165  _J_map_old[i] = &getMaterialPropertyOldByName<Real>("J_mapping_t_points_" + std::to_string(i));
166  _dxyz_dxi[i] = &declareADProperty<RealVectorValue>("dxyz_dxi_t_points_" + std::to_string(i));
167  _dxyz_dxi_old[i] =
168  &getMaterialPropertyOldByName<RealVectorValue>("dxyz_dxi_t_points_" + std::to_string(i));
169  _dxyz_deta[i] = &declareADProperty<RealVectorValue>("dxyz_deta_t_points_" + std::to_string(i));
170  _dxyz_deta_old[i] =
171  &getMaterialPropertyOldByName<RealVectorValue>("dxyz_deta_t_points_" + std::to_string(i));
172  _dxyz_dzeta[i] =
173  &declareADProperty<RealVectorValue>("dxyz_dzeta_t_points_" + std::to_string(i));
174  _dxyz_dzeta_old[i] =
175  &getMaterialPropertyOldByName<RealVectorValue>("dxyz_dzeta_t_points_" + std::to_string(i));
176  // Create rotation matrix and total strain global for output purposes only
178  &declareProperty<RankTwoTensor>("local_transformation_t_points_" + std::to_string(i));
179  _local_transformation_matrix_old[i] = &getMaterialPropertyOldByName<RankTwoTensor>(
180  "local_transformation_t_points_" + std::to_string(i));
182  &declareProperty<RankTwoTensor>("covariant_transformation_t_points_" + std::to_string(i));
183  _covariant_transformation_matrix_old[i] = &getMaterialPropertyOldByName<RankTwoTensor>(
184  "covariant_transformation_t_points_" + std::to_string(i));
185  _contravariant_transformation_matrix[i] = &declareProperty<RankTwoTensor>(
186  "contravariant_transformation_t_points_" + std::to_string(i));
187  _contravariant_transformation_matrix_old[i] = &getMaterialPropertyOldByName<RankTwoTensor>(
188  "contravariant_transformation_t_points_" + std::to_string(i));
190  &declareProperty<RankTwoTensor>("total_global_strain_t_points_" + std::to_string(i));
191  }
192 
193  // used later for computing local coordinate system
194  _x2(1) = 1;
195  _x3(2) = 1;
196  _e1(0) = 1;
197  _e2(1) = 1;
198  _e3(2) = 1;
199 }
std::vector< ADMaterialProperty< RankTwoTensor > * > _strain_increment
Strain increment in the covariant coordinate system.
NonlinearSystemBase & _nonlinear_sys
Reference to the nonlinear system object.
std::vector< const MaterialProperty< DenseMatrix< Real > > * > _B_old
Old B_matrix for small strain.
const MaterialProperty< RealVectorValue > & _node_normal_old
Material property storing the old normal to the element at the 4 nodes.
FEProblemBase & _fe_problem
std::vector< unsigned int > _rot_num
Variable numbers corresponding to the rotational variables.
std::vector< ADRealVectorValue > _v2
First tangential vectors at nodes.
const NumericVector< Number > & _sol_old
ADRealVectorValue _x2
simulation variables
auto norm() const -> decltype(std::norm(Real()))
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
std::vector< MaterialProperty< RankTwoTensor > * > _contravariant_transformation_matrix
Contravariant base vector matrix material property to transform strain.
std::vector< const MaterialProperty< Real > * > _J_map_old
Old material property containing jacobian of transformation.
std::vector< unsigned int > _disp_num
Variable numbers corresponding to the displacement variables.
std::vector< const MaterialProperty< RealVectorValue > * > _dxyz_deta_old
Old derivative of global x, y and z w.r.t isoparametric coordinate eta.
unsigned int number() const
std::vector< ADMaterialProperty< DenseMatrix< Real > > * > _B
B_matrix for small strain.
std::vector< ADMaterialProperty< RankTwoTensor > * > _total_strain
Total strain increment in the covariant coordinate system.
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_dzeta
Derivative of global x, y and z w.r.t isoparametric coordinate zeta.
std::vector< const MaterialProperty< RealVectorValue > * > _dxyz_dxi_old
Old derivative of global x, y and z w.r.t isoparametric coordinate xi.
MooseVariable * getVar(const std::string &var_name, unsigned int comp)
const VariableValue & _thickness
Coupled variable for the shell thickness.
unsigned int _nrot
Number of coupled rotational variables.
std::vector< const MaterialProperty< RankTwoTensor > * > _covariant_transformation_matrix_old
virtual const VariableValue & coupledValue(const std::string &var_name, unsigned int comp=0) const
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_deta
Derivative of global x, y and z w.r.t isoparametric coordinate eta.
std::vector< std::vector< unsigned int > > _soln_rot_index
Indices of solution vector corresponding to rotation DOFs in 2 directions at the 4 nodes...
MooseMesh & _mesh
std::vector< const MaterialProperty< RankTwoTensor > * > _ge_old
Old ge matrix for elasticity tensor conversion.
virtual const NumericVector< Number > *const & currentSolution() const override final
std::vector< const MaterialProperty< RankTwoTensor > * > _contravariant_transformation_matrix_old
std::vector< const Node * > _nodes
Vector storing pointers to the nodes of the shell element.
std::vector< Point > _t_points
Quadrature points in the out of plane direction in isoparametric coordinate system.
ADDenseVector _strain_vector
Vector that stores the strain in the the 2 axial and 3 shear directions.
unsigned int _ndisp
Number of coupled displacement variables.
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_dxi
Derivative of global x, y and z w.r.t isoparametric coordinate xi.
ADDenseVector _soln_vector
Vector that stores the incremental solution at all the 20 DOFs in the 4 noded element.
ADMaterialProperty< RealVectorValue > & _node_normal
Material property storing the normal to the element at the 4 nodes. Stored as a material property for...
NonlinearSystemBase & getNonlinearSystemBase(const unsigned int sys_num)
std::vector< const MaterialProperty< RankTwoTensor > * > _local_transformation_matrix_old
bool hasSecondOrderElements()
std::unique_ptr< libMesh::QGauss > _t_qrule
Quadrature rule in the out of plane direction.
std::vector< ADRealVectorValue > _v1
First tangential vectors at nodes.
std::vector< std::vector< unsigned int > > _soln_disp_index
Indices of solution vector corresponding to displacement DOFs in 3 directions at the 4 nodes...
unsigned int coupledComponents(const std::string &var_name) const
std::vector< MaterialProperty< RankTwoTensor > * > _local_transformation_matrix
Transformation matrix to map stresses from global coordinate to the element&#39;s local coordinate...
std::vector< ADMaterialProperty< RankTwoTensor > * > _ge
ge matrix for elasticity tensor conversion
std::vector< MaterialProperty< RankTwoTensor > * > _total_global_strain
Total strain in global coordinate system.
void mooseError(Args &&... args) const
const InputParameters & parameters() const
const bool _large_strain
Flag to compute large strains.
const NumericVector< Number > *const & _sol
std::vector< MaterialProperty< RankTwoTensor > * > _covariant_transformation_matrix
Covariant base vector matrix material property to transform stress.
std::vector< const MaterialProperty< RealVectorValue > * > _dxyz_dzeta_old
Old derivative of global x, y and z w.r.t isoparametric coordinate zeta.
NumericVector< Number > & solutionOld()
std::vector< ADMaterialProperty< Real > * > _J_map
Material property containing jacobian of transformation.
ADMaterialProperty< RankTwoTensor > * _transformation_matrix
Rotation matrix material property.
Material(const InputParameters &parameters)
std::vector< const MaterialProperty< RankTwoTensor > * > _total_strain_old
Old total strain increment in the covariant coordinate system.

Member Function Documentation

◆ computeBMatrix()

void ADComputeIncrementalShellStrain::computeBMatrix ( )
protectedvirtual

Computes the B matrix that connects strains to nodal displacements and rotations.

Definition at line 497 of file ADComputeIncrementalShellStrain.C.

Referenced by ADComputeFiniteShellStrain::computeProperties(), and initQpStatefulProperties().

498 {
499  // compute nodal local axis
501  for (unsigned int k = 0; k < _nodes.size(); ++k)
502  {
503  _v1[k] = _e1;
504  _v2[k] = _e2;
505  }
506 
507  // compute B matrix rows correspond to [ux1, ux2, ux3, ux4, uy1, uy2, uy3, uy4, uz1, uz2, uz3,
508  // uz4, a1, a2, a3, a4, b1, b2, b3, b4]
509  for (unsigned int i = 0; i < _2d_points.size(); ++i)
510  {
511  for (unsigned int j = 0; j < _t_points.size(); ++j)
512  {
513  (*_B[j])[i].resize(5, 20);
514  (*_B[j])[i].zero();
515  for (unsigned int k = 0; k < _nodes.size(); ++k)
516  {
517  // corresponding to strain(0,0)
518  (*_B[j])[i](0, k) += _dphidxi_map[k][i] * (*_dxyz_dxi[j])[i](0);
519  (*_B[j])[i](0, 4 + k) = _dphidxi_map[k][i] * (*_dxyz_dxi[j])[i](1);
520  (*_B[j])[i](0, 8 + k) = _dphidxi_map[k][i] * (*_dxyz_dxi[j])[i](2);
521  (*_B[j])[i](0, 12 + k) = _dphidxi_map[k][i] * _t_points[j](0) / 2.0 * _thickness[i] *
522  (-_v2[k] * (*_dxyz_dxi[j])[i]);
523  (*_B[j])[i](0, 16 + k) = _dphidxi_map[k][i] * _t_points[j](0) / 2.0 * _thickness[i] *
524  (_v1[k] * (*_dxyz_dxi[j])[i]);
525 
526  // corresponding to strain(1,1)
527  (*_B[j])[i](1, k) = _dphideta_map[k][i] * (*_dxyz_deta[j])[i](0);
528  (*_B[j])[i](1, 4 + k) = _dphideta_map[k][i] * (*_dxyz_deta[j])[i](1);
529  (*_B[j])[i](1, 8 + k) = _dphideta_map[k][i] * (*_dxyz_deta[j])[i](2);
530  (*_B[j])[i](1, 12 + k) = _dphideta_map[k][i] * _t_points[j](0) / 2.0 * _thickness[i] *
531  (-_v2[k] * (*_dxyz_deta[j])[i]);
532  (*_B[j])[i](1, 16 + k) = _dphideta_map[k][i] * _t_points[j](0) / 2.0 * _thickness[i] *
533  (_v1[k] * (*_dxyz_deta[j])[i]);
534 
535  // corresponding to strain(2,2) = 0
536 
537  // corresponding to strain(0,1)
538  (*_B[j])[i](2, k) = 0.5 * (_dphideta_map[k][i] * (*_dxyz_dxi[j])[i](0) +
539  _dphidxi_map[k][i] * (*_dxyz_deta[j])[i](0));
540  (*_B[j])[i](2, 4 + k) = 0.5 * (_dphideta_map[k][i] * (*_dxyz_dxi[j])[i](1) +
541  _dphidxi_map[k][i] * (*_dxyz_deta[j])[i](1));
542  (*_B[j])[i](2, 8 + k) = 0.5 * (_dphideta_map[k][i] * (*_dxyz_dxi[j])[i](2) +
543  _dphidxi_map[k][i] * (*_dxyz_deta[j])[i](2));
544  (*_B[j])[i](2, 12 + k) =
545  0.25 * _t_points[j](0) * _thickness[i] * -_v2[k] *
546  (_dphideta_map[k][i] * (*_dxyz_dxi[j])[i] + _dphidxi_map[k][i] * (*_dxyz_deta[j])[i]);
547  (*_B[j])[i](2, 16 + k) =
548  0.25 * _t_points[j](0) * _thickness[i] * _v1[k] *
549  ((*_dxyz_deta[j])[i] * _dphidxi_map[k][i] + (*_dxyz_dxi[j])[i] * _dphideta_map[k][i]);
550  }
551 
552  _g3_a = _thickness[i] / 4.0 * (_node_normal[2] + _node_normal[3]);
553  _g3_c = _thickness[i] / 4.0 * (_node_normal[0] + _node_normal[1]);
554  _g3_b = _thickness[i] / 4.0 * (_node_normal[0] + _node_normal[3]);
555  _g3_d = _thickness[i] / 4.0 * (_node_normal[1] + _node_normal[2]);
556 
557  _g1_a = 0.5 * ((*_nodes[2]) - (*_nodes[3])) +
558  _t_points[j](0) / 4.0 * _thickness[i] * (_node_normal[2] - _node_normal[3]);
559  _g1_c = 0.5 * ((*_nodes[1]) - (*_nodes[0])) +
560  _t_points[j](0) / 4.0 * _thickness[i] * (_node_normal[1] - _node_normal[0]);
561  _g2_b = 0.5 * ((*_nodes[3]) - (*_nodes[0])) +
562  _t_points[j](0) / 4.0 * _thickness[i] * (_node_normal[3] - _node_normal[0]);
563  _g2_d = 0.5 * ((*_nodes[2]) - (*_nodes[1])) +
564  _t_points[j](0) / 4.0 * _thickness[i] * (_node_normal[2] - _node_normal[1]);
565 
566  updateGVectors(); // for large strain problems
567 
568  // corresponding to strain(0,2)
569  for (unsigned int component = 0; component < 3; component++)
570  {
571  (*_B[j])[i](3, 2 + component * 4) = 0.125 * (1.0 + _2d_points[i](1)) * _g3_a(component);
572  (*_B[j])[i](3, 3 + component * 4) = 0.125 * (1.0 + _2d_points[i](1)) * -_g3_a(component);
573  (*_B[j])[i](3, 1 + component * 4) = 0.125 * (1.0 - _2d_points[i](1)) * _g3_c(component);
574  (*_B[j])[i](3, component * 4) = 0.125 * (1.0 - _2d_points[i](1)) * -_g3_c(component);
575  }
576  (*_B[j])[i](3, 14) = 0.125 * (1.0 + _2d_points[i](1)) * 0.5 * _thickness[i] * _g1_a * -_v2[2];
577  (*_B[j])[i](3, 18) = 0.125 * (1.0 + _2d_points[i](1)) * 0.5 * _thickness[i] * _g1_a * _v1[2];
578  (*_B[j])[i](3, 15) = 0.125 * (1.0 + _2d_points[i](1)) * 0.5 * _thickness[i] * _g1_a * -_v2[3];
579  (*_B[j])[i](3, 19) = 0.125 * (1.0 + _2d_points[i](1)) * 0.5 * _thickness[i] * _g1_a * _v1[3];
580 
581  (*_B[j])[i](3, 13) = 0.125 * (1.0 - _2d_points[i](1)) * 0.5 * _thickness[i] * _g1_c * -_v2[1];
582  (*_B[j])[i](3, 17) = 0.125 * (1.0 - _2d_points[i](1)) * 0.5 * _thickness[i] * _g1_c * _v1[1];
583  (*_B[j])[i](3, 12) = 0.125 * (1.0 - _2d_points[i](1)) * 0.5 * _thickness[i] * _g1_c * -_v2[0];
584  (*_B[j])[i](3, 16) = 0.125 * (1.0 - _2d_points[i](1)) * 0.5 * _thickness[i] * _g1_c * _v1[0];
585 
586  // corresponding to strain(1,2)
587  for (unsigned int component = 0; component < 3; component++)
588  {
589  (*_B[j])[i](4, 2 + component * 4) = 0.125 * (1.0 + _2d_points[i](0)) * _g3_d(component);
590  (*_B[j])[i](4, 1 + component * 4) = 0.125 * (1.0 + _2d_points[i](0)) * -_g3_d(component);
591  (*_B[j])[i](4, 3 + component * 4) = 0.125 * (1.0 - _2d_points[i](0)) * _g3_b(component);
592  (*_B[j])[i](4, component * 4) = 0.125 * (1.0 - _2d_points[i](0)) * -_g3_b(component);
593  }
594  (*_B[j])[i](4, 14) = 0.125 * (1.0 + _2d_points[i](0)) * 0.5 * _thickness[i] * _g2_d * -_v2[2];
595  (*_B[j])[i](4, 18) = 0.125 * (1.0 + _2d_points[i](0)) * 0.5 * _thickness[i] * _g2_d * _v1[2];
596  (*_B[j])[i](4, 13) = 0.125 * (1.0 + _2d_points[i](0)) * 0.5 * _thickness[i] * _g2_d * -_v2[1];
597  (*_B[j])[i](4, 17) = 0.125 * (1.0 + _2d_points[i](0)) * 0.5 * _thickness[i] * _g2_d * _v1[1];
598 
599  (*_B[j])[i](4, 15) = 0.125 * (1.0 - _2d_points[i](0)) * 0.5 * _thickness[i] * _g2_b * -_v2[3];
600  (*_B[j])[i](4, 19) = 0.125 * (1.0 - _2d_points[i](0)) * 0.5 * _thickness[i] * _g2_b * _v1[3];
601  (*_B[j])[i](4, 12) = 0.125 * (1.0 - _2d_points[i](0)) * 0.5 * _thickness[i] * _g2_b * -_v2[0];
602  (*_B[j])[i](4, 16) = 0.125 * (1.0 - _2d_points[i](0)) * 0.5 * _thickness[i] * _g2_b * _v1[0];
603  }
604  }
605 }
std::vector< ADRealVectorValue > _v2
First tangential vectors at nodes.
std::vector< std::vector< Real > > _dphidxi_map
Derivatives of shape functions w.r.t isoparametric coordinates xi.
std::vector< std::vector< Real > > _dphideta_map
Derivatives of shape functions w.r.t isoparametric coordinates eta.
std::vector< ADMaterialProperty< DenseMatrix< Real > > * > _B
B_matrix for small strain.
static const std::string component
Definition: NS.h:153
const VariableValue & _thickness
Coupled variable for the shell thickness.
const Number zero
virtual void computeLocalCoordinates()
Computes the element&#39;s local coordinates and store in _e1, _e2 and _e3.
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_deta
Derivative of global x, y and z w.r.t isoparametric coordinate eta.
std::vector< const Node * > _nodes
Vector storing pointers to the nodes of the shell element.
std::vector< Point > _t_points
Quadrature points in the out of plane direction in isoparametric coordinate system.
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_dxi
Derivative of global x, y and z w.r.t isoparametric coordinate xi.
ADMaterialProperty< RealVectorValue > & _node_normal
Material property storing the normal to the element at the 4 nodes. Stored as a material property for...
std::vector< ADRealVectorValue > _v1
First tangential vectors at nodes.
virtual void updateGVectors()
Updates the vectors required for shear locking computation for finite rotations.
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
std::vector< Point > _2d_points
Quadrature points in the in-plane direction in isoparametric coordinate system.
static const std::string k
Definition: NS.h:130

◆ computeGMatrix()

void ADComputeIncrementalShellStrain::computeGMatrix ( )
protectedvirtual

Computes the transformation matrix from natural coordinates to local cartesian coordinates for elasticity tensor transformation.

Definition at line 291 of file ADComputeIncrementalShellStrain.C.

Referenced by ADComputeFiniteShellStrain::initQpStatefulProperties(), and initQpStatefulProperties().

292 {
293  // quadrature points in isoparametric space
294  _2d_points = _qrule->get_points(); // would be in 2D
295 
296  unsigned int dim = _current_elem->dim();
297 
298  // derivatives of shape functions (dphidxi, dphideta and dphidzeta) evaluated at quadrature points
299  // (in isoparametric space).
300  FEType fe_type(Utility::string_to_enum<Order>("First"),
301  Utility::string_to_enum<FEFamily>("LAGRANGE"));
302  auto & fe = _fe_problem.assembly(_tid, _nonlinear_sys.number()).getFE(fe_type, dim);
303  _dphidxi_map = fe->get_fe_map().get_dphidxi_map();
304  _dphideta_map = fe->get_fe_map().get_dphideta_map();
305  _phi_map = fe->get_fe_map().get_phi_map();
306 
307  for (unsigned int i = 0; i < _nodes.size(); ++i)
308  _nodes[i] = _current_elem->node_ptr(i);
309 
310  ADRealVectorValue x = (*_nodes[1] - *_nodes[0]);
311  ADRealVectorValue y = (*_nodes[3] - *_nodes[0]);
312  ADRealVectorValue normal = x.cross(y);
313  normal /= normal.norm();
314 
315  for (unsigned int k = 0; k < 4; ++k)
316  _node_normal[k] = normal;
317 
319  ADDenseMatrix b(5, 20);
323  for (unsigned int t = 0; t < _t_points.size(); ++t)
324  {
325  (*_strain_increment[t])[_qp] = a;
326  (*_total_strain[t])[_qp] = a;
327  (*_B[t])[_qp] = b;
328  (*_ge[t])[_qp] = a;
329  (*_J_map[t])[_qp] = 0;
330  (*_dxyz_dxi[t])[_qp] = c;
331  (*_dxyz_deta[t])[_qp] = c;
332  (*_dxyz_dzeta[t])[_qp] = c;
336  }
337 
338  // calculating derivatives of shape function in physical space (dphi/dx, dphi/dy, dphi/dz) at
339  // quadrature points these are g_{i} in Dvorkin's paper
340  for (unsigned int i = 0; i < _2d_points.size(); ++i)
341  {
342  for (unsigned int j = 0; j < _t_points.size(); ++j)
343  {
344  (*_dxyz_dxi[j])[i].zero();
345  for (unsigned int component = 0; component < 3; ++component)
346  {
347  (*_dxyz_dxi[j])[i](component) = 0.0;
348  (*_dxyz_deta[j])[i](component) = 0.0;
349  (*_dxyz_dzeta[j])[i](component) = 0.0;
350 
351  for (unsigned int k = 0; k < _nodes.size(); ++k)
352  {
353  (*_dxyz_dxi[j])[i](component) += _dphidxi_map[k][i] * ((*_nodes[k])(component)) +
354  _t_points[j](0) / 2.0 * _thickness[i] *
356  (*_dxyz_deta[j])[i](component) += _dphideta_map[k][i] * ((*_nodes[k])(component)) +
357  _t_points[j](0) / 2.0 * _thickness[i] *
359  (*_dxyz_dzeta[j])[i](component) +=
360  _thickness[i] * _phi_map[k][i] * _node_normal[k](component) / 2.0;
361  }
362  }
363  }
364  }
365 
366  for (unsigned int i = 0; i < _2d_points.size(); ++i)
367  {
368  for (unsigned int j = 0; j < _t_points.size(); ++j)
369  {
370  // calculate gij for elasticity tensor
371  ADRankTwoTensor gmn;
372  RankTwoTensor J;
373  for (unsigned int component = 0; component < 3; ++component)
374  {
375  gmn(0, 0) += (*_dxyz_dxi[j])[i](component) * (*_dxyz_dxi[j])[i](component);
376  gmn(1, 1) += (*_dxyz_deta[j])[i](component) * (*_dxyz_deta[j])[i](component);
377  gmn(2, 2) += (*_dxyz_dzeta[j])[i](component) * (*_dxyz_dzeta[j])[i](component);
378  gmn(0, 1) += (*_dxyz_dxi[j])[i](component) * (*_dxyz_deta[j])[i](component);
379  gmn(0, 2) += (*_dxyz_dxi[j])[i](component) * (*_dxyz_dzeta[j])[i](component);
380  gmn(1, 2) += (*_dxyz_deta[j])[i](component) * (*_dxyz_dzeta[j])[i](component);
381 
382  // why are we dropping derivatives here?!
386  }
387  gmn(1, 0) = gmn(0, 1);
388  gmn(2, 0) = gmn(0, 2);
389  gmn(2, 1) = gmn(1, 2);
390 
391  ADRankTwoTensor gmninv_temp = gmn.inverse();
392  (*_J_map[j])[i] = std::sqrt(gmn.det());
394 
397 
398  Real normx = std::sqrt(J(0, 0) * J(0, 0) + J(0, 1) * J(0, 1) + J(0, 2) * J(0, 2));
399  Real normy = std::sqrt(J(1, 0) * J(1, 0) + J(1, 1) * J(1, 1) + J(1, 2) * J(1, 2));
400  Real normz = std::sqrt(J(2, 0) * J(2, 0) + J(2, 1) * J(2, 1) + J(2, 2) * J(2, 2));
401 
402  J(0, 0) /= normx;
403  J(0, 1) /= normx;
404  J(0, 2) /= normx;
405 
406  J(1, 0) /= normy;
407  J(1, 1) /= normy;
408  J(1, 2) /= normy;
409 
410  J(2, 0) /= normz;
411  J(2, 1) /= normz;
412  J(2, 2) /= normz;
413 
414  // _transformation_matrix is an AD property, but we're not setting the derivatives!
415  (*_transformation_matrix)[i] = J;
416 
417  // compute element's local coordinate
419 
420  // calculate the local transformation matrix to be used to map the global stresses to the
421  // local element coordinate
422  const auto local_rotation_mat = ADRankTwoTensor::initializeFromRows(_e1, _e2, _e3);
423 
424  for (const auto ii : make_range(Moose::dim))
425  for (const auto jj : make_range(Moose::dim))
426  (*_local_transformation_matrix[j])[i](ii, jj) =
427  MetaPhysicL::raw_value(local_rotation_mat(ii, jj));
428 
429  // Calculate the contravariant base vectors g^0, g^1, g^2
430  // The base vectors for the strain tensor in the convected coordinate
431  // are g_0, g_1, g_2 (g_i=dx/dr_i)
432  // The following contravariant base vectors have the property:
433  // g^i*g_j= 1 if {i=j} otherwise g^i*g_j= 0
434 
435  const auto denom = (*_dxyz_dxi[j])[i] * (*_dxyz_deta[j])[i].cross((*_dxyz_dzeta[j])[i]);
436  const auto gi0 = (*_dxyz_deta[j])[i].cross((*_dxyz_dzeta[j])[i]) / denom;
437  const auto gi1 = (*_dxyz_dzeta[j])[i].cross((*_dxyz_dxi[j])[i]) / denom;
438  const auto gi2 = (*_dxyz_dxi[j])[i].cross((*_dxyz_deta[j])[i]) / denom;
439 
440  // Calculate the rotation matrix for the elasticity tensor that maps
441  // the strain tensor (with g_1, g2_, g_3 base vectors) to
442  // the stress tensor (with base vectors e1, e2, e3)
443 
444  (*_ge[j])[i](0, 0) = gi0 * _e1;
445  (*_ge[j])[i](0, 1) = gi0 * _e2;
446  (*_ge[j])[i](0, 2) = gi0 * _e3;
447  (*_ge[j])[i](1, 0) = gi1 * _e1;
448  (*_ge[j])[i](1, 1) = gi1 * _e2;
449  (*_ge[j])[i](1, 2) = gi1 * _e3;
450  (*_ge[j])[i](2, 0) = gi2 * _e1;
451  (*_ge[j])[i](2, 1) = gi2 * _e2;
452  (*_ge[j])[i](2, 2) = gi2 * _e3;
453  }
454  }
455 }
std::vector< ADMaterialProperty< RankTwoTensor > * > _strain_increment
Strain increment in the covariant coordinate system.
NonlinearSystemBase & _nonlinear_sys
Reference to the nonlinear system object.
RankTwoTensorTempl< T > inverse() const
FEProblemBase & _fe_problem
const QBase *const & _qrule
std::vector< std::vector< Real > > _dphidxi_map
Derivatives of shape functions w.r.t isoparametric coordinates xi.
auto norm() const -> decltype(std::norm(T()))
std::vector< MaterialProperty< RankTwoTensor > * > _contravariant_transformation_matrix
Contravariant base vector matrix material property to transform strain.
std::vector< std::vector< Real > > _dphideta_map
Derivatives of shape functions w.r.t isoparametric coordinates eta.
std::vector< ADMaterialProperty< DenseMatrix< Real > > * > _B
B_matrix for small strain.
unsigned int dim
static const std::string component
Definition: NS.h:153
std::vector< ADMaterialProperty< RankTwoTensor > * > _total_strain
Total strain increment in the covariant coordinate system.
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_dzeta
Derivative of global x, y and z w.r.t isoparametric coordinate zeta.
auto raw_value(const Eigen::Map< T > &in)
static constexpr std::size_t dim
const std::vector< double > y
const VariableValue & _thickness
Coupled variable for the shell thickness.
const Number zero
virtual void computeLocalCoordinates()
Computes the element&#39;s local coordinates and store in _e1, _e2 and _e3.
virtual Assembly & assembly(const THREAD_ID tid, const unsigned int sys_num) override
static RankTwoTensorTempl initializeFromRows(const libMesh::TypeVector< ADReal > &row0, const libMesh::TypeVector< ADReal > &row1, const libMesh::TypeVector< ADReal > &row2)
unsigned int _qp
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_deta
Derivative of global x, y and z w.r.t isoparametric coordinate eta.
const std::vector< double > x
THREAD_ID _tid
Real f(Real x)
Test function for Brents method.
std::vector< const Node * > _nodes
Vector storing pointers to the nodes of the shell element.
std::vector< Point > _t_points
Quadrature points in the out of plane direction in isoparametric coordinate system.
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_dxi
Derivative of global x, y and z w.r.t isoparametric coordinate xi.
ADMaterialProperty< RealVectorValue > & _node_normal
Material property storing the normal to the element at the 4 nodes. Stored as a material property for...
unsigned int number() const
std::vector< MaterialProperty< RankTwoTensor > * > _local_transformation_matrix
Transformation matrix to map stresses from global coordinate to the element&#39;s local coordinate...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< ADMaterialProperty< RankTwoTensor > * > _ge
ge matrix for elasticity tensor conversion
std::vector< std::vector< Real > > _phi_map
Shape function value.
IntRange< T > make_range(T beg, T end)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
std::vector< MaterialProperty< RankTwoTensor > * > _covariant_transformation_matrix
Covariant base vector matrix material property to transform stress.
std::vector< Point > _2d_points
Quadrature points in the in-plane direction in isoparametric coordinate system.
std::vector< ADMaterialProperty< Real > * > _J_map
Material property containing jacobian of transformation.
static const std::string k
Definition: NS.h:130
const Elem *const & _current_elem

◆ computeLocalCoordinates()

void ADComputeIncrementalShellStrain::computeLocalCoordinates ( )
protectedvirtual

Computes the element's local coordinates and store in _e1, _e2 and _e3.

Definition at line 458 of file ADComputeIncrementalShellStrain.C.

Referenced by computeBMatrix(), and computeGMatrix().

459 {
460  // default option for the first local vector:the global X-axis is projected on the shell plane
461  // alternatively the reference first local vector provided by the user can be used to define the
462  // 1st local axis
463 
464  // All nodes in an element have the same normal vector. Therefore, here, we use only the normal
465  // vecor of the first node as "the element's normal vector"
466  _e3 = _node_normal[0];
467 
469 
470  _e1 /= _e1.norm();
471 
472  // The reference first local axis and the normal are considered parallel if the angle between them
473  // is less than 0.05 degrees
474  if (MooseUtils::absoluteFuzzyEqual(std::abs(_e1 * _e3), 1.0, 0.05 * libMesh::pi / 180.0))
475  {
476  mooseError("The reference first local axis must not be perpendicular to any of the shell "
477  "elements ");
478  }
479 
480  // we project the reference first local vector on the shell element and calculate the in-plane e1
481  // and e2 vectors
482  _e2 = _e3.cross(_e1);
483  _e2 /= _e2.norm();
484 
485  _e1 = _e2.cross(_e3);
486  _e1 /= _e1.norm();
487 }
auto norm() const -> decltype(std::norm(T()))
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
ADMaterialProperty< RealVectorValue > & _node_normal
Material property storing the normal to the element at the 4 nodes. Stored as a material property for...
TypeVector< typename CompareTypes< T, T2 >::supertype > cross(const TypeVector< T2 > &v) const
void mooseError(Args &&... args) const
const Real pi

◆ computeNodeNormal()

void ADComputeIncrementalShellStrain::computeNodeNormal ( )
protectedvirtual

Computes the node normal at each node.

Reimplemented in ADComputeFiniteShellStrain.

Definition at line 490 of file ADComputeIncrementalShellStrain.C.

Referenced by computeProperties().

491 {
492  for (unsigned int k = 0; k < _nodes.size(); ++k)
494 }
const MaterialProperty< RealVectorValue > & _node_normal_old
Material property storing the old normal to the element at the 4 nodes.
std::vector< const Node * > _nodes
Vector storing pointers to the nodes of the shell element.
ADMaterialProperty< RealVectorValue > & _node_normal
Material property storing the normal to the element at the 4 nodes. Stored as a material property for...
static const std::string k
Definition: NS.h:130

◆ computeProperties()

void ADComputeIncrementalShellStrain::computeProperties ( )
overrideprotectedvirtual

Reimplemented from Material.

Reimplemented in ADComputeFiniteShellStrain.

Definition at line 219 of file ADComputeIncrementalShellStrain.C.

220 {
221  // quadrature points in isoparametric space
222  _2d_points = _qrule->get_points(); // would be in 2D
223 
224  // derivatives of shape functions (dphidxi, dphideta and dphidzeta) evaluated at quadrature points
225  // (in isoparametric space).
226  unsigned int dim = _current_elem->dim();
227  FEType fe_type(Utility::string_to_enum<Order>("First"),
228  Utility::string_to_enum<FEFamily>("LAGRANGE"));
229  auto & fe = _fe_problem.assembly(_tid, _nonlinear_sys.number()).getFE(fe_type, dim);
230  _dphidxi_map = fe->get_fe_map().get_dphidxi_map();
231  _dphideta_map = fe->get_fe_map().get_dphideta_map();
232  _phi_map = fe->get_fe_map().get_phi_map();
233 
234  for (unsigned int i = 0; i < 4; ++i)
235  _nodes[i] = _current_elem->node_ptr(i);
236 
237  for (unsigned int i = 0; i < _2d_points.size(); ++i)
238  {
239  for (unsigned int j = 0; j < _t_points.size(); ++j)
240  {
241  (*_ge[j])[i] = (*_ge_old[j])[i];
242  (*_J_map[j])[i] = (*_J_map_old[j])[i];
243  (*_dxyz_dxi[j])[i] = (*_dxyz_dxi_old[j])[i];
244  (*_dxyz_deta[j])[i] = (*_dxyz_deta_old[j])[i];
245  (*_dxyz_dzeta[j])[i] = (*_dxyz_dzeta_old[j])[i];
246  (*_B[j])[i] = (*_B_old[j])[i];
251  }
252  }
253 
255 
257 
258  for (unsigned int i = 0; i < _2d_points.size(); ++i)
259  {
260  for (unsigned int j = 0; j < _t_points.size(); ++j)
261  {
262  // compute strain increment in covariant coordinate system using B and _soln_vector
263  for (unsigned int temp1 = 0; temp1 < 5; ++temp1)
264  {
265  _strain_vector(temp1) = 0.0;
266  for (unsigned int temp2 = 0; temp2 < 20; ++temp2)
267  _strain_vector(temp1) += (*_B[j])[i](temp1, temp2) * _soln_vector(temp2);
268  }
269  (*_strain_increment[j])[i](0, 0) = _strain_vector(0);
270  (*_strain_increment[j])[i](1, 1) = _strain_vector(1);
271  (*_strain_increment[j])[i](0, 1) = _strain_vector(2);
272  (*_strain_increment[j])[i](0, 2) = _strain_vector(3);
273  (*_strain_increment[j])[i](1, 2) = _strain_vector(4);
274  (*_strain_increment[j])[i](1, 0) = (*_strain_increment[j])[i](0, 1);
275  (*_strain_increment[j])[i](2, 0) = (*_strain_increment[j])[i](0, 2);
276  (*_strain_increment[j])[i](2, 1) = (*_strain_increment[j])[i](1, 2);
277 
278  (*_total_strain[j])[i] = (*_total_strain_old[j])[i] + (*_strain_increment[j])[i];
279 
280  for (unsigned int ii = 0; ii < 3; ++ii)
281  for (unsigned int jj = 0; jj < 3; ++jj)
285  (*_contravariant_transformation_matrix[j])[i].transpose();
286  }
287  }
288 }
std::vector< ADMaterialProperty< RankTwoTensor > * > _strain_increment
Strain increment in the covariant coordinate system.
NonlinearSystemBase & _nonlinear_sys
Reference to the nonlinear system object.
std::vector< const MaterialProperty< DenseMatrix< Real > > * > _B_old
Old B_matrix for small strain.
FEProblemBase & _fe_problem
const QBase *const & _qrule
std::vector< std::vector< Real > > _dphidxi_map
Derivatives of shape functions w.r.t isoparametric coordinates xi.
std::vector< MaterialProperty< RankTwoTensor > * > _contravariant_transformation_matrix
Contravariant base vector matrix material property to transform strain.
std::vector< const MaterialProperty< Real > * > _J_map_old
Old material property containing jacobian of transformation.
std::vector< const MaterialProperty< RealVectorValue > * > _dxyz_deta_old
Old derivative of global x, y and z w.r.t isoparametric coordinate eta.
std::vector< std::vector< Real > > _dphideta_map
Derivatives of shape functions w.r.t isoparametric coordinates eta.
std::vector< ADMaterialProperty< DenseMatrix< Real > > * > _B
B_matrix for small strain.
unsigned int dim
std::vector< ADMaterialProperty< RankTwoTensor > * > _total_strain
Total strain increment in the covariant coordinate system.
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_dzeta
Derivative of global x, y and z w.r.t isoparametric coordinate zeta.
auto raw_value(const Eigen::Map< T > &in)
std::vector< const MaterialProperty< RealVectorValue > * > _dxyz_dxi_old
Old derivative of global x, y and z w.r.t isoparametric coordinate xi.
std::vector< const MaterialProperty< RankTwoTensor > * > _covariant_transformation_matrix_old
virtual Assembly & assembly(const THREAD_ID tid, const unsigned int sys_num) override
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_deta
Derivative of global x, y and z w.r.t isoparametric coordinate eta.
std::vector< const MaterialProperty< RankTwoTensor > * > _ge_old
Old ge matrix for elasticity tensor conversion.
std::vector< const MaterialProperty< RankTwoTensor > * > _contravariant_transformation_matrix_old
THREAD_ID _tid
std::vector< const Node * > _nodes
Vector storing pointers to the nodes of the shell element.
std::vector< Point > _t_points
Quadrature points in the out of plane direction in isoparametric coordinate system.
ADDenseVector _strain_vector
Vector that stores the strain in the the 2 axial and 3 shear directions.
std::vector< ADMaterialProperty< RealVectorValue > * > _dxyz_dxi
Derivative of global x, y and z w.r.t isoparametric coordinate xi.
ADDenseVector _soln_vector
Vector that stores the incremental solution at all the 20 DOFs in the 4 noded element.
unsigned int number() const
std::vector< const MaterialProperty< RankTwoTensor > * > _local_transformation_matrix_old
std::vector< MaterialProperty< RankTwoTensor > * > _local_transformation_matrix
Transformation matrix to map stresses from global coordinate to the element&#39;s local coordinate...
std::vector< ADMaterialProperty< RankTwoTensor > * > _ge
ge matrix for elasticity tensor conversion
std::vector< std::vector< Real > > _phi_map
Shape function value.
std::vector< MaterialProperty< RankTwoTensor > * > _total_global_strain
Total strain in global coordinate system.
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
std::vector< MaterialProperty< RankTwoTensor > * > _covariant_transformation_matrix
Covariant base vector matrix material property to transform stress.
std::vector< const MaterialProperty< RealVectorValue > * > _dxyz_dzeta_old
Old derivative of global x, y and z w.r.t isoparametric coordinate zeta.
virtual void computeSolnVector()
Computes the 20x1 soln vector and its derivatives for each shell element.
std::vector< Point > _2d_points
Quadrature points in the in-plane direction in isoparametric coordinate system.
std::vector< ADMaterialProperty< Real > * > _J_map
Material property containing jacobian of transformation.
const Elem *const & _current_elem
virtual void computeNodeNormal()
Computes the node normal at each node.
std::vector< const MaterialProperty< RankTwoTensor > * > _total_strain_old
Old total strain increment in the covariant coordinate system.

◆ computeSolnVector()

void ADComputeIncrementalShellStrain::computeSolnVector ( )
protectedvirtual

Computes the 20x1 soln vector and its derivatives for each shell element.

Definition at line 608 of file ADComputeIncrementalShellStrain.C.

Referenced by ADComputeFiniteShellStrain::computeProperties(), and computeProperties().

609 {
610  _soln_vector.zero();
611 
612  for (unsigned int j = 0; j < 4; ++j)
613  {
614  _soln_disp_index[j].resize(_ndisp);
615  _soln_rot_index[j].resize(_nrot);
616 
617  for (unsigned int i = 0; i < _ndisp; ++i)
618  {
619  _soln_disp_index[j][i] = _nodes[j]->dof_number(_nonlinear_sys.number(), _disp_num[i], 0);
620  _soln_vector(j + i * _nodes.size()) =
622  if (ADReal::do_derivatives)
624  _soln_vector(j + i * _nodes.size()).derivatives(), _soln_disp_index[j][i], 1.);
625  }
626 
627  for (unsigned int i = 0; i < _nrot; ++i)
628  {
629  _soln_rot_index[j][i] = _nodes[j]->dof_number(_nonlinear_sys.number(), _rot_num[i], 0);
630  _soln_vector(j + 12 + i * _nodes.size()) =
632  if (ADReal::do_derivatives)
634  _soln_vector(j + 12 + i * _nodes.size()).derivatives(), _soln_rot_index[j][i], 1.);
635  }
636  }
637 }
NonlinearSystemBase & _nonlinear_sys
Reference to the nonlinear system object.
std::vector< unsigned int > _rot_num
Variable numbers corresponding to the rotational variables.
const NumericVector< Number > & _sol_old
virtual void zero() override final
std::vector< unsigned int > _disp_num
Variable numbers corresponding to the displacement variables.
unsigned int _nrot
Number of coupled rotational variables.
std::vector< std::vector< unsigned int > > _soln_rot_index
Indices of solution vector corresponding to rotation DOFs in 2 directions at the 4 nodes...
std::vector< const Node * > _nodes
Vector storing pointers to the nodes of the shell element.
unsigned int _ndisp
Number of coupled displacement variables.
ADDenseVector _soln_vector
Vector that stores the incremental solution at all the 20 DOFs in the 4 noded element.
unsigned int number() const
std::vector< std::vector< unsigned int > > _soln_disp_index
Indices of solution vector corresponding to displacement DOFs in 3 directions at the 4 nodes...
void derivInsert(SemiDynamicSparseNumberArray< Real, libMesh::dof_id_type, NWrapper< N >> &derivs, libMesh::dof_id_type index, Real value)
const NumericVector< Number > *const & _sol
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")

◆ initQpStatefulProperties()

void ADComputeIncrementalShellStrain::initQpStatefulProperties ( )
overrideprotectedvirtual

Reimplemented from Material.

Reimplemented in ADComputeFiniteShellStrain.

Definition at line 202 of file ADComputeIncrementalShellStrain.C.

203 {
204  unsigned int dim = _current_elem->dim();
205  if ((dim != 2))
206  mooseError(
207  "ADComputeIncrementalShellStrain: Shell element is implemented only for 2D elements");
208  if (_current_elem->n_nodes() != 4)
209  mooseError("ADComputeIncrementalShellStrain: Shell element needs to have exactly four nodes.");
210  if (_qrule->get_points().size() != 4)
211  mooseError("ADComputeIncrementalShellStrain: Shell element needs to have exactly four "
212  "quadrature points.");
213 
214  computeGMatrix();
215  computeBMatrix();
216 }
const QBase *const & _qrule
unsigned int dim
virtual void computeBMatrix()
Computes the B matrix that connects strains to nodal displacements and rotations. ...
virtual void computeGMatrix()
Computes the transformation matrix from natural coordinates to local cartesian coordinates for elasti...
void mooseError(Args &&... args) const
const Elem *const & _current_elem

◆ updatedxyz()

virtual void ADComputeIncrementalShellStrain::updatedxyz ( )
inlineprotectedvirtual

Updates covariant vectors at each qp for finite rotations.

Reimplemented in ADComputeFiniteShellStrain.

Definition at line 45 of file ADComputeIncrementalShellStrain.h.

45 {};

◆ updateGVectors()

virtual void ADComputeIncrementalShellStrain::updateGVectors ( )
inlineprotectedvirtual

Updates the vectors required for shear locking computation for finite rotations.

Reimplemented in ADComputeFiniteShellStrain.

Definition at line 42 of file ADComputeIncrementalShellStrain.h.

Referenced by computeBMatrix().

42 {};

◆ validParams()

InputParameters ADComputeIncrementalShellStrain::validParams ( )
static

Definition at line 28 of file ADComputeIncrementalShellStrain.C.

Referenced by ADComputeFiniteShellStrain::validParams().

29 {
31  params.addClassDescription("Compute a small strain increment for the shell.");
32  params.addRequiredCoupledVar(
33  "rotations", "The rotations appropriate for the simulation geometry and coordinate system");
34  params.addRequiredCoupledVar(
35  "displacements",
36  "The displacements appropriate for the simulation geometry and coordinate system");
37  params.addRequiredCoupledVar(
38  "thickness",
39  "Thickness of the shell. Can be supplied as either a number or a variable name.");
40  params.addRequiredParam<std::string>("through_thickness_order",
41  "Quadrature order in out of plane direction");
42  params.addParam<bool>(
43  "large_strain", false, "Set to true to turn on finite strain calculations.");
44  params.addParam<RealVectorValue>("reference_first_local_direction",
45  RealVectorValue(1, 0, 0),
46  "Vector that is projected onto an element to define the "
47  "direction for the first local coordinate direction e1.");
48  return params;
49 }
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
static InputParameters validParams()
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _2d_points

std::vector<Point> ADComputeIncrementalShellStrain::_2d_points
protected

◆ _B

std::vector<ADMaterialProperty<DenseMatrix<Real> > *> ADComputeIncrementalShellStrain::_B
protected

◆ _B_old

std::vector<const MaterialProperty<DenseMatrix<Real> > *> ADComputeIncrementalShellStrain::_B_old
protected

Old B_matrix for small strain.

Definition at line 150 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), and computeProperties().

◆ _contravariant_transformation_matrix

std::vector<MaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_contravariant_transformation_matrix
protected

Contravariant base vector matrix material property to transform strain.

Definition at line 173 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), computeGMatrix(), ADComputeFiniteShellStrain::computeProperties(), and computeProperties().

◆ _contravariant_transformation_matrix_old

std::vector<const MaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_contravariant_transformation_matrix_old
protected

◆ _covariant_transformation_matrix

std::vector<MaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_covariant_transformation_matrix
protected

Covariant base vector matrix material property to transform stress.

Definition at line 169 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), computeGMatrix(), and computeProperties().

◆ _covariant_transformation_matrix_old

std::vector<const MaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_covariant_transformation_matrix_old
protected

◆ _disp_num

std::vector<unsigned int> ADComputeIncrementalShellStrain::_disp_num
protected

Variable numbers corresponding to the displacement variables.

Definition at line 63 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), and computeSolnVector().

◆ _dphideta_map

std::vector<std::vector<Real> > ADComputeIncrementalShellStrain::_dphideta_map
protected

◆ _dphidxi_map

std::vector<std::vector<Real> > ADComputeIncrementalShellStrain::_dphidxi_map
protected

◆ _dxyz_deta

std::vector<ADMaterialProperty<RealVectorValue> *> ADComputeIncrementalShellStrain::_dxyz_deta
protected

Derivative of global x, y and z w.r.t isoparametric coordinate eta.

Definition at line 126 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), computeBMatrix(), computeGMatrix(), computeProperties(), and ADComputeFiniteShellStrain::updatedxyz().

◆ _dxyz_deta_old

std::vector<const MaterialProperty<RealVectorValue> *> ADComputeIncrementalShellStrain::_dxyz_deta_old
protected

Old derivative of global x, y and z w.r.t isoparametric coordinate eta.

Definition at line 135 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), and computeProperties().

◆ _dxyz_dxi

std::vector<ADMaterialProperty<RealVectorValue> *> ADComputeIncrementalShellStrain::_dxyz_dxi
protected

Derivative of global x, y and z w.r.t isoparametric coordinate xi.

Definition at line 123 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), computeBMatrix(), computeGMatrix(), computeProperties(), and ADComputeFiniteShellStrain::updatedxyz().

◆ _dxyz_dxi_old

std::vector<const MaterialProperty<RealVectorValue> *> ADComputeIncrementalShellStrain::_dxyz_dxi_old
protected

Old derivative of global x, y and z w.r.t isoparametric coordinate xi.

Definition at line 132 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), and computeProperties().

◆ _dxyz_dzeta

std::vector<ADMaterialProperty<RealVectorValue> *> ADComputeIncrementalShellStrain::_dxyz_dzeta
protected

Derivative of global x, y and z w.r.t isoparametric coordinate zeta.

Definition at line 129 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), computeGMatrix(), computeProperties(), and ADComputeFiniteShellStrain::updatedxyz().

◆ _dxyz_dzeta_old

std::vector<const MaterialProperty<RealVectorValue> *> ADComputeIncrementalShellStrain::_dxyz_dzeta_old
protected

Old derivative of global x, y and z w.r.t isoparametric coordinate zeta.

Definition at line 138 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), and computeProperties().

◆ _e1

ADRealVectorValue ADComputeIncrementalShellStrain::_e1
protected

◆ _e2

ADRealVectorValue ADComputeIncrementalShellStrain::_e2
protected

◆ _e3

ADRealVectorValue ADComputeIncrementalShellStrain::_e3
protected

◆ _g1_a

ADRealVectorValue ADComputeIncrementalShellStrain::_g1_a
protected

◆ _g1_c

ADRealVectorValue ADComputeIncrementalShellStrain::_g1_c
protected

◆ _g2_b

ADRealVectorValue ADComputeIncrementalShellStrain::_g2_b
protected

◆ _g2_d

ADRealVectorValue ADComputeIncrementalShellStrain::_g2_d
protected

◆ _g3_a

ADRealVectorValue ADComputeIncrementalShellStrain::_g3_a
protected

Definition at line 188 of file ADComputeIncrementalShellStrain.h.

Referenced by computeBMatrix().

◆ _g3_b

ADRealVectorValue ADComputeIncrementalShellStrain::_g3_b
protected

Definition at line 190 of file ADComputeIncrementalShellStrain.h.

Referenced by computeBMatrix().

◆ _g3_c

ADRealVectorValue ADComputeIncrementalShellStrain::_g3_c
protected

Definition at line 189 of file ADComputeIncrementalShellStrain.h.

Referenced by computeBMatrix().

◆ _g3_d

ADRealVectorValue ADComputeIncrementalShellStrain::_g3_d
protected

Definition at line 191 of file ADComputeIncrementalShellStrain.h.

Referenced by computeBMatrix().

◆ _ge

std::vector<ADMaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_ge
protected

◆ _ge_old

std::vector<const MaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_ge_old
protected

Old ge matrix for elasticity tensor conversion.

Definition at line 156 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), ADComputeFiniteShellStrain::computeProperties(), and computeProperties().

◆ _J_map

std::vector<ADMaterialProperty<Real> *> ADComputeIncrementalShellStrain::_J_map
protected

Material property containing jacobian of transformation.

Definition at line 159 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), computeGMatrix(), ADComputeFiniteShellStrain::computeProperties(), and computeProperties().

◆ _J_map_old

std::vector<const MaterialProperty<Real> *> ADComputeIncrementalShellStrain::_J_map_old
protected

Old material property containing jacobian of transformation.

Definition at line 162 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), ADComputeFiniteShellStrain::computeProperties(), and computeProperties().

◆ _large_strain

const bool ADComputeIncrementalShellStrain::_large_strain
protected

Flag to compute large strains.

Definition at line 69 of file ADComputeIncrementalShellStrain.h.

◆ _local_transformation_matrix

std::vector<MaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_local_transformation_matrix
protected

Transformation matrix to map stresses from global coordinate to the element's local coordinate.

Definition at line 165 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), computeGMatrix(), and computeProperties().

◆ _local_transformation_matrix_old

std::vector<const MaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_local_transformation_matrix_old
protected

◆ _ndisp

unsigned int ADComputeIncrementalShellStrain::_ndisp
protected

Number of coupled displacement variables.

Definition at line 57 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), and computeSolnVector().

◆ _node_normal

ADMaterialProperty<RealVectorValue>& ADComputeIncrementalShellStrain::_node_normal
protected

Material property storing the normal to the element at the 4 nodes. Stored as a material property for convinience.

Definition at line 99 of file ADComputeIncrementalShellStrain.h.

Referenced by computeBMatrix(), computeGMatrix(), computeLocalCoordinates(), ADComputeFiniteShellStrain::computeNodeNormal(), computeNodeNormal(), and ADComputeFiniteShellStrain::computeProperties().

◆ _node_normal_old

const MaterialProperty<RealVectorValue>& ADComputeIncrementalShellStrain::_node_normal_old
protected

◆ _nodes

std::vector<const Node *> ADComputeIncrementalShellStrain::_nodes
protected

◆ _nonlinear_sys

NonlinearSystemBase& ADComputeIncrementalShellStrain::_nonlinear_sys
protected

Reference to the nonlinear system object.

Definition at line 81 of file ADComputeIncrementalShellStrain.h.

Referenced by computeGMatrix(), computeProperties(), and computeSolnVector().

◆ _nrot

unsigned int ADComputeIncrementalShellStrain::_nrot
protected

Number of coupled rotational variables.

Definition at line 54 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), and computeSolnVector().

◆ _phi_map

std::vector<std::vector<Real> > ADComputeIncrementalShellStrain::_phi_map
protected

◆ _ref_first_local_dir

const RealVectorValue ADComputeIncrementalShellStrain::_ref_first_local_dir
protected

◆ _rot_num

std::vector<unsigned int> ADComputeIncrementalShellStrain::_rot_num
protected

Variable numbers corresponding to the rotational variables.

Definition at line 60 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), and computeSolnVector().

◆ _sol

const NumericVector<Number>* const& ADComputeIncrementalShellStrain::_sol
protected

Definition at line 185 of file ADComputeIncrementalShellStrain.h.

Referenced by computeSolnVector().

◆ _sol_old

const NumericVector<Number>& ADComputeIncrementalShellStrain::_sol_old
protected

◆ _soln_disp_index

std::vector<std::vector<unsigned int> > ADComputeIncrementalShellStrain::_soln_disp_index
protected

Indices of solution vector corresponding to displacement DOFs in 3 directions at the 4 nodes.

Definition at line 84 of file ADComputeIncrementalShellStrain.h.

Referenced by computeSolnVector(), ADComputeFiniteShellStrain::updatedxyz(), and ADComputeFiniteShellStrain::updateGVectors().

◆ _soln_rot_index

std::vector<std::vector<unsigned int> > ADComputeIncrementalShellStrain::_soln_rot_index
protected

Indices of solution vector corresponding to rotation DOFs in 2 directions at the 4 nodes.

Definition at line 87 of file ADComputeIncrementalShellStrain.h.

Referenced by computeSolnVector().

◆ _soln_vector

ADDenseVector ADComputeIncrementalShellStrain::_soln_vector
protected

Vector that stores the incremental solution at all the 20 DOFs in the 4 noded element.

Definition at line 90 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeFiniteShellStrain::computeBNLMatrix(), ADComputeFiniteShellStrain::computeNodeNormal(), ADComputeFiniteShellStrain::computeProperties(), computeProperties(), and computeSolnVector().

◆ _strain_increment

std::vector<ADMaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_strain_increment
protected

Strain increment in the covariant coordinate system.

Definition at line 72 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), computeGMatrix(), ADComputeFiniteShellStrain::computeProperties(), and computeProperties().

◆ _strain_vector

ADDenseVector ADComputeIncrementalShellStrain::_strain_vector
protected

Vector that stores the strain in the the 2 axial and 3 shear directions.

Definition at line 93 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeFiniteShellStrain::computeProperties(), and computeProperties().

◆ _t_points

std::vector<Point> ADComputeIncrementalShellStrain::_t_points
protected

◆ _t_qrule

std::unique_ptr<libMesh::QGauss> ADComputeIncrementalShellStrain::_t_qrule
protected

Quadrature rule in the out of plane direction.

Definition at line 105 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain().

◆ _thickness

const VariableValue& ADComputeIncrementalShellStrain::_thickness
protected

◆ _total_global_strain

std::vector<MaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_total_global_strain
protected

Total strain in global coordinate system.

Definition at line 177 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), ADComputeFiniteShellStrain::computeProperties(), and computeProperties().

◆ _total_strain

std::vector<ADMaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_total_strain
protected

Total strain increment in the covariant coordinate system.

Definition at line 75 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), computeGMatrix(), ADComputeFiniteShellStrain::computeProperties(), and computeProperties().

◆ _total_strain_old

std::vector<const MaterialProperty<RankTwoTensor> *> ADComputeIncrementalShellStrain::_total_strain_old
protected

Old total strain increment in the covariant coordinate system.

Definition at line 78 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain(), ADComputeFiniteShellStrain::computeProperties(), and computeProperties().

◆ _transformation_matrix

ADMaterialProperty<RankTwoTensor>* ADComputeIncrementalShellStrain::_transformation_matrix
protected

Rotation matrix material property.

Definition at line 180 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain().

◆ _unrotated_total_strain

RankTwoTensor ADComputeIncrementalShellStrain::_unrotated_total_strain
protected

◆ _v1

std::vector<ADRealVectorValue> ADComputeIncrementalShellStrain::_v1
protected

◆ _v2

std::vector<ADRealVectorValue> ADComputeIncrementalShellStrain::_v2
protected

◆ _x2

ADRealVectorValue ADComputeIncrementalShellStrain::_x2
protected

simulation variables

Definition at line 183 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain().

◆ _x3

ADRealVectorValue ADComputeIncrementalShellStrain::_x3
protected

Definition at line 184 of file ADComputeIncrementalShellStrain.h.

Referenced by ADComputeIncrementalShellStrain().


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