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

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

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

Public Member Functions

 OpCalculatePlasticFlowLhs_dEPImpl (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_dEPImpl (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_dEPImpl< DIM, GAUSS, AssemblyDomainEleOp >

Definition at line 947 of file PlasticOpsGeneric.hpp.

Constructor & Destructor Documentation

◆ OpCalculatePlasticFlowLhs_dEPImpl() [1/2]

template<int DIM, typename AssemblyDomainEleOp >
PlasticOps::OpCalculatePlasticFlowLhs_dEPImpl< DIM, GAUSS, AssemblyDomainEleOp >::OpCalculatePlasticFlowLhs_dEPImpl ( 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 962 of file PlasticOpsGeneric.hpp.

◆ OpCalculatePlasticFlowLhs_dEPImpl() [2/2]

template<int DIM, typename AssemblyDomainEleOp >
PlasticOps::OpCalculatePlasticFlowLhs_dEPImpl< DIM, GAUSS, AssemblyDomainEleOp >::OpCalculatePlasticFlowLhs_dEPImpl ( 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_dEPImpl< DIM, GAUSS, AssemblyDomainEleOp >::iNtegrate ( EntitiesFieldData::EntData &  row_data,
EntitiesFieldData::EntData &  col_data 
)

Definition at line 1000 of file PlasticOpsGeneric.hpp.

1018 {
1019 int nb_points_avtive_on_elem = 0;
1020 int nb_points_on_elem = 0;
1021
1022 auto t_tau = getFTensor0FromVec(commonDataPtr->plasticTau);
1023 auto t_tau_dot = getFTensor0FromVec(commonDataPtr->plasticTauDot);
1024 auto t_f = getFTensor0FromVec(commonDataPtr->plasticSurface);
1025 auto t_plastic_strain_dot =
1026 getFTensor2SymmetricFromMat<SPACE_DIM>(commonDataPtr->plasticStrainDot);
1027 auto t_temp = getFTensor0FromVec(TPCommonDataPtr->temperature);
1028
1029 auto dt = this->getTStimeStep();
1030
1031 for (auto gg = 0; gg != nb_gauss_pts; ++gg) {
1032 auto eqiv = equivalent_strain_dot(t_plastic_strain_dot);
1033 const auto ww =
1034 w(eqiv, t_tau_dot, t_f,
1035 iso_hardening(t_tau, params[CommonData::H], TPCommonDataPtr->omega0,
1036 params[CommonData::QINF], TPCommonDataPtr->omegaH,
1037 params[CommonData::BISO], params[CommonData::SIGMA_Y],
1038 TPCommonDataPtr->temp0, t_temp),
1039 params[CommonData::SIGMA_Y]);
1040 const auto sign_ww = constrian_sign(ww, dt);
1041
1042 ++nb_points_on_elem;
1043 if (sign_ww > 0) {
1044 ++nb_points_avtive_on_elem;
1045 }
1046
1047 ++t_tau;
1048 ++t_tau_dot;
1049 ++t_f;
1050 ++t_plastic_strain_dot;
1051 ++t_temp;
1052 }
1053
1054 int &active_points = PlasticOps::CommonData::activityData[0];
1055 int &avtive_full_elems = PlasticOps::CommonData::activityData[1];
1056 int &avtive_elems = PlasticOps::CommonData::activityData[2];
1057 int &nb_points = PlasticOps::CommonData::activityData[3];
1058 int &nb_elements = PlasticOps::CommonData::activityData[4];
1059
1060 ++nb_elements;
1061 nb_points += nb_points_on_elem;
double dt
double constrian_sign(double x, double dt)
double w(double eqiv, double dot_tau, double f, double sigma_y, double sigma_Y)
auto equivalent_strain_dot(FTensor::Tensor2_symmetric< T, DIM > &t_plastic_strain_dot)
static std::array< int, 5 > activityData
double iso_hardening(double tau, double H, double Qinf, double b_iso, double sigmaY)
Definition plastic.cpp:73

◆ iNtegrate() [2/2]

template<int DIM, typename AssemblyDomainEleOp >
MoFEMErrorCode PlasticOps::OpCalculatePlasticFlowLhs_dEPImpl< 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_dEPImpl< DIM, GAUSS, AssemblyDomainEleOp >::commonDataPtr
private

Definition at line 957 of file PlasticOpsGeneric.hpp.

◆ mDPtr

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

Definition at line 958 of file PlasticOpsGeneric.hpp.


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