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

[Auxiliary functions functions More...

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

Inheritance diagram for PlasticOps::OpCalculatePlasticHardeningImpl< DIM, GAUSS, DomainEleOp >:
[legend]
Collaboration diagram for PlasticOps::OpCalculatePlasticHardeningImpl< DIM, GAUSS, DomainEleOp >:
[legend]

Public Member Functions

 OpCalculatePlasticHardeningImpl (const std::string field_name, boost::shared_ptr< CommonData > plastic_common_data_ptr, boost::shared_ptr< ThermoPlasticOps::ThermoPlasticBlockedParameters > tp_common_data_ptr=nullptr)
 
MoFEMErrorCode doWork (int side, EntityType type, EntData &data)
 

Protected Attributes

boost::shared_ptr< CommonDatacommonDataPtr
 
boost::shared_ptr< ThermoPlasticOps::ThermoPlasticBlockedParameterscommonTPDataPtr
 

Detailed Description

template<int DIM, typename DomainEleOp>
struct PlasticOps::OpCalculatePlasticHardeningImpl< DIM, GAUSS, DomainEleOp >

[Auxiliary functions functions

Definition at line 407 of file PlasticOpsGeneric.hpp.

Constructor & Destructor Documentation

◆ OpCalculatePlasticHardeningImpl()

template<int DIM, typename DomainEleOp >
PlasticOps::OpCalculatePlasticHardeningImpl< DIM, GAUSS, DomainEleOp >::OpCalculatePlasticHardeningImpl ( const std::string  field_name,
boost::shared_ptr< CommonData plastic_common_data_ptr,
boost::shared_ptr< ThermoPlasticOps::ThermoPlasticBlockedParameters tp_common_data_ptr = nullptr 
)

Definition at line 423 of file PlasticOpsGeneric.hpp.

429 : DomainEleOp(field_name, DomainEleOp::OPROW),
430 commonDataPtr(common_data_ptr), commonTPDataPtr(tp_common_data_ptr) {
431 // Operator is only executed for vertices
432 std::fill(&DomainEleOp::doEntities[MBEDGE],
433 &DomainEleOp::doEntities[MBMAXTYPE], false);
434}
DomainEle::UserDataOperator DomainEleOp
Finire element operator type.
constexpr auto field_name
boost::shared_ptr< ThermoPlasticOps::ThermoPlasticBlockedParameters > commonTPDataPtr

Member Function Documentation

◆ doWork()

template<int DIM, typename DomainEleOp >
MoFEMErrorCode PlasticOps::OpCalculatePlasticHardeningImpl< DIM, GAUSS, DomainEleOp >::doWork ( int  side,
EntityType  type,
EntData data 
)

Definition at line 437 of file PlasticOpsGeneric.hpp.

438 {
440
441 FTENSOR_INDEX(DIM, i);
442 FTENSOR_INDEX(DIM, j);
443
444 const size_t nb_gauss_pts = commonDataPtr->mStressPtr->size2();
445
446 auto t_tau = getFTensor0FromVec(commonDataPtr->plasticTau);
447 auto t_plastic_strain =
448 getFTensor2SymmetricFromMat<DIM>(commonDataPtr->plasticStrain);
449 auto t_temp = getFTensor0FromVec(commonTPDataPtr->temperature);
450
451 commonDataPtr->plasticIsoHardening.resize(nb_gauss_pts, false);
452 // commonDataPtr->plasticKinHardening.resize(size_symm, nb_gauss_pts, false);
453 // TODO: sort issue with FTensor::Tensor2_symmetric<double, DIM> for kinematic
454 // hardening
455 // commonDataPtr->plasticKinHardening.resize(size_symm, nb_gauss_pts, false);
456 auto t_iso_hardening = getFTensor0FromVec(commonDataPtr->plasticIsoHardening);
457 // auto t_kin_hardening =
458 // getFTensor2SymmetricFromMat<DIM>(commonDataPtr->plasticKinHardening);
459
460 auto &params = commonDataPtr->blockParams;
461
462 for (int i = 0; i != nb_gauss_pts; ++i) {
463 t_iso_hardening =
464 iso_hardening(t_tau, params[CommonData::H], commonTPDataPtr->omega0,
465 params[CommonData::QINF], commonTPDataPtr->omegaH,
466 params[CommonData::BISO], params[CommonData::SIGMA_Y],
467 commonTPDataPtr->temp0, t_temp);
468
469 // auto t_kin_hardening_tmp =
470 // kinematic_hardening(t_plastic_strain, params[CommonData::C1_k]);
471
472 // t_kin_hardening(i, j) = t_kin_hardening_tmp(i, j);
473
474 ++t_tau;
475 ++t_plastic_strain;
476 ++t_temp;
477 ++t_iso_hardening;
478 // ++t_kin_hardening;
479 }
480
482}
#define FTENSOR_INDEX(DIM, I)
#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', 3 > j
double iso_hardening(double tau, double H, double Qinf, double b_iso, double sigmaY)
Definition plastic.cpp:73

Member Data Documentation

◆ commonDataPtr

template<int DIM, typename DomainEleOp >
boost::shared_ptr<CommonData> PlasticOps::OpCalculatePlasticHardeningImpl< DIM, GAUSS, DomainEleOp >::commonDataPtr
protected

Definition at line 417 of file PlasticOpsGeneric.hpp.

◆ commonTPDataPtr

template<int DIM, typename DomainEleOp >
boost::shared_ptr<ThermoPlasticOps::ThermoPlasticBlockedParameters> PlasticOps::OpCalculatePlasticHardeningImpl< DIM, GAUSS, DomainEleOp >::commonTPDataPtr
protected

Definition at line 419 of file PlasticOpsGeneric.hpp.


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