v0.16.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | Static Protected Attributes | List of all members
MatOps::MatMetaElastic< DIM > Struct Template Reference
Inheritance diagram for MatOps::MatMetaElastic< DIM >:
[legend]
Collaboration diagram for MatOps::MatMetaElastic< DIM >:
[legend]

Public Types

using A = MatElasticImpl< DIM >
 
- Public Types inherited from MatOps::PhysicalEquations
using HookFunction = std::function< MoFEMErrorCode(boost::shared_ptr< MatOpsData >, int, EntityHandle, int)>
 

Public Member Functions

MoFEMErrorCode getOptions (MoFEM::Interface *m_field_ptr=nullptr) override
 
MoFEMErrorCode setParams (FEMethod *fe_ptr, int gg) override
 
MoFEMErrorCode recordTape () override
 
MoFEMErrorCode evaluateVariable (int tag, EntityHandle entity, int gg) override
 
MoFEMErrorCode evaluateDerivatives (int tag, EntityHandle entity, int gg) override
 
MoFEMErrorCode updateState (int tag, EntityHandle entity, int gg) override
 
std::map< int, boost::shared_ptr< PhysicalEquations > > & getMetaElasticMap ()
 
- Public Member Functions inherited from MatOps::MatElasticImpl< DIM >
ForcesAndSourcesCore::UserDataOperator * createOp (boost::shared_ptr< PhysicalEquations > physical_ptr, bool eval_stress, bool eval_tangent, bool update) override
 
ForcesAndSourcesCore::UserDataOperator * createOp (boost::shared_ptr< PhysicalEquations > physical_ptr, bool eval_stress, bool eval_tangent, bool update)
 
ForcesAndSourcesCore::UserDataOperator * createOp (boost::shared_ptr< PhysicalEquations > physical_ptr, bool eval_stress, bool eval_tangent, bool update)
 
- Public Member Functions inherited from MatOps::MatElastic
 PhysicalEquations ()=delete
 
 PhysicalEquations (boost::shared_ptr< MatOpsData > mat_ops_data_ptr, int tag, boost::shared_ptr< std::map< int, Range > > tag_vs_range_ptr=nullptr)
 
- Public Member Functions inherited from MatOps::PhysicalEquations
 PhysicalEquations ()=delete
 
 PhysicalEquations (boost::shared_ptr< MatOpsData > mat_ops_data_ptr, int tag, boost::shared_ptr< std::map< int, Range > > tag_vs_range_ptr=nullptr)
 
virtual ~PhysicalEquations ()=default
 

Protected Attributes

std::map< int, boost::shared_ptr< PhysicalEquations > > metaElasticAtPts
 

Static Protected Attributes

static constexpr int modelType
 

Additional Inherited Members

- Public Attributes inherited from MatOps::PhysicalEquations
HookFunction hookEvaluateVariable = AdolCEvaluation::evaluateVariable
 
HookFunction hookEvaluateDerivatives = AdolCEvaluation::evaluateDerivatives
 
HookFunction hookUpdateState = AdolCEvaluation::evaluateVariable
 
int tAg
 
boost::shared_ptr< std::map< int, Range > > tagVsRangePtr
 
std::vector< std::pair< Range, std::vector< double > > > paramVecByRange
 
boost::shared_ptr< MatOpsDatamatOpsDataPtr
 
- Static Public Attributes inherited from MatOps::MatElastic
static bool useDeformationGradient
 

Detailed Description

template<int DIM>
struct MatOps::MatMetaElastic< DIM >

Definition at line 13 of file MatMetaElastic.cpp.

Member Typedef Documentation

◆ A

template<int DIM>
using MatOps::MatMetaElastic< DIM >::A = MatElasticImpl<DIM>

Definition at line 16 of file MatMetaElastic.cpp.

Member Function Documentation

◆ evaluateDerivatives()

template<int DIM>
MoFEMErrorCode MatOps::MatMetaElastic< DIM >::evaluateDerivatives ( int  tag,
EntityHandle  entity,
int  gg 
)
inlineoverridevirtual

Reimplemented from MatOps::PhysicalEquations.

Definition at line 56 of file MatMetaElastic.cpp.

57 {
58 return metaElasticAtPts.at(tag)->evaluateDerivatives(tag, entity, gg);
59 }
std::map< int, boost::shared_ptr< PhysicalEquations > > metaElasticAtPts

◆ evaluateVariable()

template<int DIM>
MoFEMErrorCode MatOps::MatMetaElastic< DIM >::evaluateVariable ( int  tag,
EntityHandle  entity,
int  gg 
)
inlineoverridevirtual

Reimplemented from MatOps::PhysicalEquations.

Definition at line 51 of file MatMetaElastic.cpp.

52 {
53 return metaElasticAtPts.at(tag)->evaluateVariable(tag, entity, gg);
54 }

◆ getMetaElasticMap()

template<int DIM>
std::map< int, boost::shared_ptr< PhysicalEquations > > & MatOps::MatMetaElastic< DIM >::getMetaElasticMap ( )
inline

Definition at line 65 of file MatMetaElastic.cpp.

65 {
66 return metaElasticAtPts;
67 }

◆ getOptions()

template<int DIM>
MoFEMErrorCode MatOps::MatMetaElastic< DIM >::getOptions ( MoFEM::Interface m_field_ptr = nullptr)
inlineoverridevirtual

Implements MatOps::PhysicalEquations.

Definition at line 18 of file MatMetaElastic.cpp.

18 {
20 for (auto &m : metaElasticAtPts) {
21 CHKERR m.second->getOptions(m_field_ptr);
22 }
23 A::tagVsRangePtr = boost::make_shared<std::map<int, Range>>();
24 for (const auto &m : metaElasticAtPts) {
25 A::tagVsRangePtr->insert(
26 {m.first, Range()}); // Initialize with empty range
27 for (auto &rp : m.second->paramVecByRange) {
28 A::tagVsRangePtr->at(m.first).merge(
29 rp.first); // Merge ranges for the same tag
30 }
31 }
33 }
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
#define CHKERR
Inline error check.
FTensor::Index< 'm', 3 > m
std::vector< std::pair< Range, std::vector< double > > > paramVecByRange
Definition MatOps.hpp:152
boost::shared_ptr< std::map< int, Range > > tagVsRangePtr
Definition MatOps.hpp:151

◆ recordTape()

template<int DIM>
MoFEMErrorCode MatOps::MatMetaElastic< DIM >::recordTape ( )
inlineoverridevirtual

Implements MatOps::PhysicalEquations.

Definition at line 43 of file MatMetaElastic.cpp.

43 {
45 for (auto &m : metaElasticAtPts) {
46 CHKERR m.second->recordTape();
47 }
49 }

◆ setParams()

template<int DIM>
MoFEMErrorCode MatOps::MatMetaElastic< DIM >::setParams ( FEMethod fe_ptr,
int  gg 
)
inlineoverridevirtual

Implements MatOps::PhysicalEquations.

Definition at line 35 of file MatMetaElastic.cpp.

35 {
37 for (auto &m : metaElasticAtPts) {
38 CHKERR m.second->setParams(fe_ptr, gg);
39 }
41 }

◆ updateState()

template<int DIM>
MoFEMErrorCode MatOps::MatMetaElastic< DIM >::updateState ( int  tag,
EntityHandle  entity,
int  gg 
)
inlineoverridevirtual

Reimplemented from MatOps::PhysicalEquations.

Definition at line 61 of file MatMetaElastic.cpp.

61 {
62 return metaElasticAtPts.at(tag)->updateState(tag, entity, gg);
63 }

Member Data Documentation

◆ metaElasticAtPts

template<int DIM>
std::map<int, boost::shared_ptr<PhysicalEquations> > MatOps::MatMetaElastic< DIM >::metaElasticAtPts
protected

Definition at line 73 of file MatMetaElastic.cpp.

73 {
74
75 {
76
77 // First tag is always MetaElastic tag
79 createMatOpsPhysicalEquationsPtr<ELASTICITY::NEOHOOKEAN, modelType>(
80 this->matOpsDataPtr,
82
83 },
84
85 {
86
87 MatOps::MatOpsTagsRegistry::setTagName("MooneyRivlinWriggersEq63"),
88 createMatOpsPhysicalEquationsPtr<ELASTICITY::MOONEYRIVLINWRIGGERSEQ63,
89 modelType>(
91 "MooneyRivlinWriggersEq63"))
92
93 },
94
95 {
96
97 MatOps::MatOpsTagsRegistry::setTagName("StVenantKirchhoff"),
98 createMatOpsPhysicalEquationsPtr<ELASTICITY::STVENANTKIRCHHOFF,
99 modelType>(
100 this->matOpsDataPtr,
101 MatOps::MatOpsTagsRegistry::setTagName("StVenantKirchhoff"))
102
103 }
104
105 };
boost::shared_ptr< PhysicalEquations > createMatOpsPhysicalEquationsPtr(boost::shared_ptr< MatOpsData > mat_ops_data_ptr, int tag)
static constexpr int modelType
static int setTagName(std::string name, int tag=-1)
Definition MatOps.cpp:30
boost::shared_ptr< MatOpsData > matOpsDataPtr
Definition MatOps.hpp:154

◆ modelType

template<int DIM>
constexpr int MatOps::MatMetaElastic< DIM >::modelType
inlinestaticconstexprprotected
Initial value:

Definition at line 70 of file MatMetaElastic.cpp.


The documentation for this struct was generated from the following file: