v0.15.0
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
PlasticOps::OpCalculatePlasticFlowLhs_dTAUImpl< DIM, GAUSS, AssemblyDomainEleOp > Struct Template Reference

#include "users_modules/multifield-thermoplasticity-private/tutorials/adv-0/src/PlasticOpsGeneric.hpp"

Inheritance diagram for PlasticOps::OpCalculatePlasticFlowLhs_dTAUImpl< DIM, GAUSS, AssemblyDomainEleOp >:
[legend]
Collaboration diagram for PlasticOps::OpCalculatePlasticFlowLhs_dTAUImpl< DIM, GAUSS, AssemblyDomainEleOp >:
[legend]

Public Member Functions

 OpCalculatePlasticFlowLhs_dTAUImpl (const std::string row_field_name, const std::string col_field_name, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< MatrixDouble > m_D_ptr)
 
MoFEMErrorCode iNtegrate (EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
 
 OpCalculatePlasticFlowLhs_dTAUImpl (const std::string row_field_name, const std::string col_field_name, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< MatrixDouble > m_D_ptr)
 
MoFEMErrorCode iNtegrate (EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
 

Private Attributes

boost::shared_ptr< CommonDatacommonDataPtr
 
boost::shared_ptr< MatrixDouble > mDPtr
 

Detailed Description

template<int DIM, typename AssemblyDomainEleOp>
struct PlasticOps::OpCalculatePlasticFlowLhs_dTAUImpl< DIM, GAUSS, AssemblyDomainEleOp >

Definition at line 1079 of file PlasticOpsGeneric.hpp.

Constructor & Destructor Documentation

◆ OpCalculatePlasticFlowLhs_dTAUImpl() [1/2]

template<int DIM, typename AssemblyDomainEleOp >
PlasticOps::OpCalculatePlasticFlowLhs_dTAUImpl< DIM, GAUSS, AssemblyDomainEleOp >::OpCalculatePlasticFlowLhs_dTAUImpl ( const std::string  row_field_name,
const std::string  col_field_name,
boost::shared_ptr< CommonData common_data_ptr,
boost::shared_ptr< MatrixDouble >  m_D_ptr 
)

Definition at line 1094 of file PlasticOpsGeneric.hpp.

◆ OpCalculatePlasticFlowLhs_dTAUImpl() [2/2]

template<int DIM, typename AssemblyDomainEleOp >
PlasticOps::OpCalculatePlasticFlowLhs_dTAUImpl< DIM, GAUSS, AssemblyDomainEleOp >::OpCalculatePlasticFlowLhs_dTAUImpl ( const std::string  row_field_name,
const std::string  col_field_name,
boost::shared_ptr< CommonData common_data_ptr,
boost::shared_ptr< MatrixDouble >  m_D_ptr 
)

Member Function Documentation

◆ iNtegrate() [1/2]

template<int DIM, typename AssemblyDomainEleOp >
MoFEMErrorCode PlasticOps::OpCalculatePlasticFlowLhs_dTAUImpl< DIM, GAUSS, AssemblyDomainEleOp >::iNtegrate ( EntitiesFieldData::EntData &  row_data,
EntitiesFieldData::EntData &  col_data 
)

Definition at line 1120 of file PlasticOpsGeneric.hpp.

1123 :
1124 boost::shared_ptr<MatrixDouble> mDPtr;
1125 boost::shared_ptr<CommonData> commonDataPtr;
1126};
1127
1128template <int DIM, typename DomainEleOp>
1129OpPlasticStressImpl<DIM, GAUSS, DomainEleOp>::OpPlasticStressImpl(
1130 const std::string field_name, boost::shared_ptr<CommonData> common_data_ptr,
1131 boost::shared_ptr<MatrixDouble> m_D_ptr)
1133 commonDataPtr(common_data_ptr), mDPtr(m_D_ptr) {
1134 // Operator is only executed for vertices
1135 std::fill(&DomainEleOp::doEntities[MBEDGE],
1136 &DomainEleOp::doEntities[MBMAXTYPE], false);
1137}
1138
1139template <int DIM, typename DomainEleOp>
1140OpPlasticStressImpl<DIM, GAUSS, DomainEleOp>::OpPlasticStressImpl(
1141 boost::shared_ptr<CommonData> common_data_ptr,
1142 boost::shared_ptr<MatrixDouble> m_D_ptr)
1143 : DomainEleOp(NOSPACE, DomainEleOp::OPSPACE),
1144 commonDataPtr(common_data_ptr), mDPtr(m_D_ptr) {}
1145
1146//! [Calculate stress]
1147template <int DIM, typename DomainEleOp>
1149OpPlasticStressImpl<DIM, GAUSS, DomainEleOp>::doWork(int side, EntityType type,
1150 EntData &data) {
1152
1153 FTensor::Index<'i', DIM> i;
1154 FTensor::Index<'j', DIM> j;
1155 FTensor::Index<'k', DIM> k;
1156 FTensor::Index<'l', DIM> l;
1157
1158 const size_t nb_gauss_pts = commonDataPtr->mStrainPtr->size2();
1159 commonDataPtr->mStressPtr->resize((DIM * (DIM + 1)) / 2, nb_gauss_pts);
1160 auto t_D = getFTensor4DdgFromMat<DIM, DIM, 0>(*mDPtr);
1161 auto t_strain =
1162 getFTensor2SymmetricFromMat<DIM>(*(commonDataPtr->mStrainPtr));
1163 auto t_plastic_strain =
1164 getFTensor2SymmetricFromMat<DIM>(commonDataPtr->plasticStrain);
1165 auto t_stress =
1166 getFTensor2SymmetricFromMat<DIM>(*(commonDataPtr->mStressPtr));
1167
@ NOSPACE
Definition definitions.h:83
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j
FTensor::Index< 'k', 3 > k
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
constexpr auto field_name
Data on single entity (This is passed as argument to DataOperator::doWork)

◆ iNtegrate() [2/2]

template<int DIM, typename AssemblyDomainEleOp >
MoFEMErrorCode PlasticOps::OpCalculatePlasticFlowLhs_dTAUImpl< DIM, GAUSS, AssemblyDomainEleOp >::iNtegrate ( EntitiesFieldData::EntData &  row_data,
EntitiesFieldData::EntData &  col_data 
)

Member Data Documentation

◆ commonDataPtr

template<int DIM, typename AssemblyDomainEleOp >
boost::shared_ptr< CommonData > PlasticOps::OpCalculatePlasticFlowLhs_dTAUImpl< DIM, GAUSS, AssemblyDomainEleOp >::commonDataPtr
private

Definition at line 1089 of file PlasticOpsGeneric.hpp.

◆ mDPtr

template<int DIM, typename AssemblyDomainEleOp >
boost::shared_ptr< MatrixDouble > PlasticOps::OpCalculatePlasticFlowLhs_dTAUImpl< DIM, GAUSS, AssemblyDomainEleOp >::mDPtr
private

Definition at line 1090 of file PlasticOpsGeneric.hpp.


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