19 boost::shared_ptr<MatrixDouble>
mA;
20 boost::shared_ptr<MatrixDouble>
mB;
23 boost::shared_ptr<MatrixDouble> m_b)
29 DataForcesAndSourcesCore::EntData &data) {
37template <
int DIM, IntegrationType I,
typename DomainEleOp>
40 std::string block_name,
41 boost::shared_ptr<ADOLCPlasticity::CommonData> common_data_ptr,
42 boost::shared_ptr<ClosestPointProjection> cp_ptr);
44template <
int DIM, IntegrationType I,
typename DomainEleOp>
47 std::string block_name,
48 boost::shared_ptr<ADOLCPlasticity::CommonData> common_data_ptr,
49 boost::shared_ptr<ClosestPointProjection> cp_ptr) {
55 auto common_hencky_ptr = boost::make_shared<HenckyOps::CommonData>();
57 common_hencky_ptr->matDPtr = boost::make_shared<MatrixDouble>();
58 common_hencky_ptr->matGradPtr = boost::make_shared<MatrixDouble>();
64 pip.push_back(
new typename H::template OpCalculateEigenVals<DIM, I>(
66 pip.push_back(
new typename H::template OpCalculateLogC<DIM, I>(
68 pip.push_back(
new typename H::template OpCalculateLogC_dC<DIM, I>(
72 common_hencky_ptr->getMatLogC()));
74 CHKERR cp_ptr->addMatBlockOps(m_field, pip, block_name, Sev::inform);
79 common_data_ptr->getStressMatrixPtr()));
81 common_data_ptr->getMatTangentPtr()));
84 pip.push_back(
new typename H::template OpCalculatePiolaStress<DIM, I, 1>(
88 common_hencky_ptr->getMatFirstPiolaStress()));
92template <
int DIM, IntegrationType I,
typename DomainEleOp>
95 std::string block_name,
96 boost::shared_ptr<ADOLCPlasticity::CommonData> common_data_ptr,
97 boost::shared_ptr<ClosestPointProjection> cp_ptr) {
99 m_field,
field_name, pip, block_name, common_data_ptr, cp_ptr);
102template <
int DIM, IntegrationType I,
typename DomainEleOp>
105 std::string block_name,
106 boost::shared_ptr<ADOLCPlasticity::CommonData> common_data_ptr,
107 boost::shared_ptr<ClosestPointProjection> cp_ptr);
109template <
int DIM, IntegrationType I,
typename DomainEleOp>
112 std::string block_name,
113 boost::shared_ptr<ADOLCPlasticity::CommonData> common_data_ptr,
114 boost::shared_ptr<ClosestPointProjection> cp_ptr) {
118 auto common_hencky_ptr = boost::make_shared<HenckyOps::CommonData>();
119 common_hencky_ptr->matDPtr = boost::make_shared<MatrixDouble>();
120 common_hencky_ptr->matGradPtr = boost::make_shared<MatrixDouble>();
126 pip.push_back(
new typename H::template OpCalculateEigenVals<DIM, I>(
128 pip.push_back(
new typename H::template OpCalculateLogC<DIM, I>(
130 pip.push_back(
new typename H::template OpCalculateLogC_dC<DIM, I>(
134 common_hencky_ptr->getMatLogC()));
136 CHKERR cp_ptr->addMatBlockOps(m_field, pip, block_name, Sev::inform);
141 common_data_ptr->getStressMatrixPtr()));
143 common_data_ptr->getMatTangentPtr()));
144 pip.push_back(
new typename H::template OpCalculatePiolaStress<DIM, I, 1>(
147 pip.push_back(
new typename H::template OpHenckyTangent<DIM, I, 1>(
150 common_hencky_ptr->getMatTangent()));
154template <
int DIM, IntegrationType I,
typename DomainEleOp>
157 std::string block_name,
158 boost::shared_ptr<ADOLCPlasticity::CommonData> common_data_ptr,
159 boost::shared_ptr<ClosestPointProjection> cp_ptr) {
161 m_field,
field_name, pip, block_name, common_data_ptr, cp_ptr);
ForcesAndSourcesCore::UserDataOperator UserDataOperator
#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.
MoFEMErrorCode opFactoryDomainHenckyStrainLhs(MoFEM::Interface &m_field, std::string field_name, Pip &pip, std::string block_name, boost::shared_ptr< ADOLCPlasticity::CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr)
MoFEMErrorCode opFactoryDomainHenckyStrainRhs(MoFEM::Interface &m_field, std::string field_name, Pip &pip, std::string block_name, boost::shared_ptr< ADOLCPlasticity::CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr)
ForcesAndSourcesCore::UserDataOperator * getRawPtrOpCalculateStress(MoFEM::Interface &m_field, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr, bool calc_lhs)
Get opreator to calulate stress.
MoFEMErrorCode opFactoryDomainHenckyStrainRhsImpl(MoFEM::Interface &m_field, std::string field_name, Pip &pip, std::string block_name, boost::shared_ptr< ADOLCPlasticity::CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr)
MoFEMErrorCode opFactoryDomainHenckyStrainLhsImpl(MoFEM::Interface &m_field, std::string field_name, Pip &pip, std::string block_name, boost::shared_ptr< ADOLCPlasticity::CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr)
boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > Pip
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
implementation of Data Operators for Forces and Sources
constexpr auto field_name
boost::shared_ptr< MatrixDouble > mA
OpTransferCommonData(boost::shared_ptr< MatrixDouble > m_a, boost::shared_ptr< MatrixDouble > m_b)
MoFEMErrorCode doWork(int side, EntityType type, DataForcesAndSourcesCore::EntData &data)
boost::shared_ptr< MatrixDouble > mB
Deprecated interface functions.
structure to get information form mofem into EntitiesFieldData
Get field gradients at integration pts for scalar field rank 0, i.e. vector field.