v0.16.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 337 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 353 of file PlasticOpsGeneric.hpp.

359 : DomainEleOp(field_name, DomainEleOp::OPROW),
360 commonDataPtr(common_data_ptr), commonTPDataPtr(tp_common_data_ptr) {
361 // Operator is only executed for vertices
362 std::fill(&DomainEleOp::doEntities[MBEDGE],
363 &DomainEleOp::doEntities[MBMAXTYPE], false);
364}
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 367 of file PlasticOpsGeneric.hpp.

368 {
370
371 FTENSOR_INDEX(DIM, i);
372 FTENSOR_INDEX(DIM, j);
373
374 const size_t nb_gauss_pts = commonDataPtr->mStressPtr->size2();
375
376 auto t_tau = getFTensor0FromVec(commonDataPtr->plasticTau);
377 auto t_plastic_strain =
378 getFTensor2SymmetricFromMat<DIM>(commonDataPtr->plasticStrain);
379 auto t_temp = getFTensor0FromVec(commonTPDataPtr->temperature);
380
381 commonDataPtr->plasticIsoHardening.resize(nb_gauss_pts, false);
382 // commonDataPtr->plasticKinHardening.resize(size_symm, nb_gauss_pts, false);
383 // TODO: sort issue with FTensor::Tensor2_symmetric<double, DIM> for kinematic
384 // hardening
385 // commonDataPtr->plasticKinHardening.resize(size_symm, nb_gauss_pts, false);
386 auto t_iso_hardening = getFTensor0FromVec(commonDataPtr->plasticIsoHardening);
387 // auto t_kin_hardening =
388 // getFTensor2SymmetricFromMat<DIM>(commonDataPtr->plasticKinHardening);
389
390 auto &params = commonDataPtr->blockParams;
391
392 for (int i = 0; i != nb_gauss_pts; ++i) {
393 t_iso_hardening =
394 iso_hardening(t_tau, params[CommonData::H], commonTPDataPtr->omega0,
395 params[CommonData::QINF], commonTPDataPtr->omegaH,
396 params[CommonData::BISO], params[CommonData::SIGMA_Y],
397 commonTPDataPtr->temp0, t_temp);
398
399 // auto t_kin_hardening_tmp =
400 // kinematic_hardening(t_plastic_strain, params[CommonData::C1_k]);
401
402 // t_kin_hardening(i, j) = t_kin_hardening_tmp(i, j);
403
404 ++t_tau;
405 ++t_plastic_strain;
406 ++t_temp;
407 ++t_iso_hardening;
408 // ++t_kin_hardening;
409 }
410
412}
#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:74

Member Data Documentation

◆ commonDataPtr

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

Definition at line 347 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 349 of file PlasticOpsGeneric.hpp.


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