16 auto set_material_stiffness = [
this]() {
39 auto t_D = getFTensor4DdgFromMat<SPACE_DIM, SPACE_DIM, 0>(*
matDPtr);
46 "Failed to set material stiffness");
54 auto t_grad = getFTensor2FromPtr<SPACE_DIM, SPACE_DIM>(
55 mat_ops_data_ptr->getActiveDataPtr(
"F")->data().data());
56 auto t_P = getFTensor2FromPtr<SPACE_DIM, SPACE_DIM>(
57 mat_ops_data_ptr->getDependentDataPtr(
"P")->data().data());
62 auto t_D = getFTensor4DdgFromMat<SPACE_DIM, SPACE_DIM, 0>(*
matDPtr);
63 t_P(
i,
J) = t_D(
i,
J,
k, L) * t_grad(
k, L);
70 auto t_dP = getFTensor4FromPtr<SPACE_DIM, SPACE_DIM, SPACE_DIM, SPACE_DIM>(
71 mat_ops_data_ptr->getDependentDerivativesDataPtr(
"P_dF")->data().data());
76 auto t_D = getFTensor4DdgFromMat<SPACE_DIM, SPACE_DIM, 0>(*
matDPtr);
77 t_dP(
i,
J,
k, L) = t_D(
i,
J,
k, L);
87 inline static boost::shared_ptr<MatrixDouble>
matDPtr;
#define FTENSOR_INDEX(DIM, I)
Kronecker Delta class symmetric.
#define CHK_THROW_MESSAGE(err, msg)
Check and throw MoFEM exception.
#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()
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'J', DIM1 > J
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j
FTensor::Index< 'k', 3 > k
static MoFEMErrorCode hookEvaluateVariable(boost::shared_ptr< MatOps::MatOpsData > mat_ops_data_ptr, int, EntityHandle, int)
static MoFEMErrorCode hookEvaluateDerivatives(boost::shared_ptr< MatOps::MatOpsData > mat_ops_data_ptr, int, EntityHandle, int)
auto getMaterialStiffness()
static boost::shared_ptr< MatrixDouble > matDPtr
static MoFEMErrorCode hookUpdateState(boost::shared_ptr< MatOps::MatOpsData >, int, EntityHandle, int)