v0.14.0
Public Member Functions | Public Attributes | List of all members
SmallStrainPlasticity::OpCalculateStress Struct Reference

#include <users_modules/small_strain_plasticity/src/SmallStrainPlasticity.hpp>

Inheritance diagram for SmallStrainPlasticity::OpCalculateStress:
[legend]
Collaboration diagram for SmallStrainPlasticity::OpCalculateStress:
[legend]

Public Member Functions

 OpCalculateStress (MoFEM::Interface &m_field, string field_name, CommonData &common_data, ClosestPointProjection &cp, bool is_linear=true)
 
PetscErrorCode getTags ()
 
PetscErrorCode setTagsData (const EntityHandle tet, const int nb_gauss_pts, const int nb_internal_variables)
 
PetscErrorCode doWork (int side, EntityType type, DataForcesAndSourcesCore::EntData &data)
 
- Public Member Functions inherited from MoFEM::VolumeElementForcesAndSourcesCore::UserDataOperator
int getNumNodes ()
 get element number of nodes More...
 
const EntityHandlegetConn ()
 get element connectivity More...
 
double getVolume () const
 element volume (linear geometry) More...
 
doublegetVolume ()
 element volume (linear geometry) More...
 
FTensor::Tensor2< double *, 3, 3 > & getJac ()
 get element Jacobian More...
 
FTensor::Tensor2< double *, 3, 3 > & getInvJac ()
 get element inverse Jacobian More...
 
VectorDoublegetCoords ()
 nodal coordinates More...
 
VolumeElementForcesAndSourcesCoregetVolumeFE () const
 return pointer to Generic Volume Finite Element object More...
 
- Public Member Functions inherited from MoFEM::ForcesAndSourcesCore::UserDataOperator
 UserDataOperator (const FieldSpace space, const char type=OPSPACE, const bool symm=true)
 
 UserDataOperator (const std::string field_name, const char type, const bool symm=true)
 
 UserDataOperator (const std::string row_field_name, const std::string col_field_name, const char type, const bool symm=true)
 
boost::shared_ptr< const NumeredEntFiniteElementgetNumeredEntFiniteElementPtr () const
 Return raw pointer to NumeredEntFiniteElement. More...
 
EntityHandle getFEEntityHandle () const
 Return finite element entity handle. More...
 
int getFEDim () const
 Get dimension of finite element. More...
 
EntityType getFEType () const
 Get dimension of finite element. More...
 
boost::weak_ptr< SideNumbergetSideNumberPtr (const int side_number, const EntityType type)
 Get the side number pointer. More...
 
EntityHandle getSideEntity (const int side_number, const EntityType type)
 Get the side entity. More...
 
int getNumberOfNodesOnElement () const
 Get the number of nodes on finite element. More...
 
MoFEMErrorCode getProblemRowIndices (const std::string filed_name, const EntityType type, const int side, VectorInt &indices) const
 Get row indices. More...
 
MoFEMErrorCode getProblemColIndices (const std::string filed_name, const EntityType type, const int side, VectorInt &indices) const
 Get col indices. More...
 
const FEMethodgetFEMethod () const
 Return raw pointer to Finite Element Method object. More...
 
int getOpType () const
 Get operator types. More...
 
void setOpType (const OpType type)
 Set operator type. More...
 
void addOpType (const OpType type)
 Add operator type. More...
 
int getNinTheLoop () const
 get number of finite element in the loop More...
 
int getLoopSize () const
 get size of elements in the loop More...
 
std::string getFEName () const
 Get name of the element. More...
 
ForcesAndSourcesCoregetPtrFE () const
 
ForcesAndSourcesCoregetSidePtrFE () const
 
ForcesAndSourcesCoregetRefinePtrFE () const
 
const PetscData::SwitchesgetDataCtx () const
 
const KspMethod::KSPContext getKSPCtx () const
 
const SnesMethod::SNESContext getSNESCtx () const
 
const TSMethod::TSContext getTSCtx () const
 
Vec getKSPf () const
 
Mat getKSPA () const
 
Mat getKSPB () const
 
Vec getSNESf () const
 
Vec getSNESx () const
 
Mat getSNESA () const
 
Mat getSNESB () const
 
Vec getTSu () const
 
Vec getTSu_t () const
 
Vec getTSu_tt () const
 
Vec getTSf () const
 
Mat getTSA () const
 
Mat getTSB () const
 
int getTSstep () const
 
double getTStime () const
 
double getTStimeStep () const
 
double getTSa () const
 
double getTSaa () const
 
MatrixDoublegetGaussPts ()
 matrix of integration (Gauss) points for Volume Element More...
 
auto getFTensor0IntegrationWeight ()
 Get integration weights. More...
 
MatrixDoublegetCoordsAtGaussPts ()
 Gauss points and weight, matrix (nb. of points x 3) More...
 
auto getFTensor1CoordsAtGaussPts ()
 Get coordinates at integration points assuming linear geometry. More...
 
double getMeasure () const
 get measure of element More...
 
doublegetMeasure ()
 get measure of element More...
 
MoFEMErrorCode loopSide (const string &fe_name, ForcesAndSourcesCore *side_fe, const size_t dim, const EntityHandle ent_for_side=0, const int verb=QUIET, const LogManager::SeverityLevel sev=Sev::noisy, AdjCache *adj_cache=nullptr)
 User calls this function to loop over elements on the side of face. This function calls finite element with its operator to do calculations. More...
 
MoFEMErrorCode loopThis (const string &fe_name, ForcesAndSourcesCore *this_fe, const int verb=QUIET, const LogManager::SeverityLevel sev=Sev::noisy)
 User calls this function to loop over the same element using a different set of integration points. This function calls finite element with its operator to do calculations. More...
 
MoFEMErrorCode loopParent (const string &fe_name, ForcesAndSourcesCore *parent_fe, const int verb=QUIET, const LogManager::SeverityLevel sev=Sev::noisy)
 User calls this function to loop over parent elements. This function calls finite element with its operator to do calculations. More...
 
MoFEMErrorCode loopChildren (const string &fe_name, ForcesAndSourcesCore *child_fe, const int verb=QUIET, const LogManager::SeverityLevel sev=Sev::noisy)
 User calls this function to loop over parent elements. This function calls finite element with its operator to do calculations. More...
 
- Public Member Functions inherited from MoFEM::DataOperator
 DataOperator (const bool symm=true)
 
virtual ~DataOperator ()=default
 
virtual MoFEMErrorCode doWork (int row_side, int col_side, EntityType row_type, EntityType col_type, EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)
 Operator for bi-linear form, usually to calculate values on left hand side. More...
 
virtual MoFEMErrorCode opLhs (EntitiesFieldData &row_data, EntitiesFieldData &col_data)
 
virtual MoFEMErrorCode doWork (int side, EntityType type, EntitiesFieldData::EntData &data)
 Operator for linear form, usually to calculate values on right hand side. More...
 
virtual MoFEMErrorCode opRhs (EntitiesFieldData &data, const bool error_if_no_base=false)
 
bool getSymm () const
 Get if operator uses symmetry of DOFs or not. More...
 
void setSymm ()
 set if operator is executed taking in account symmetry More...
 
void unSetSymm ()
 unset if operator is executed for non symmetric problem More...
 

Public Attributes

MoFEM::InterfacemField
 
CommonDatacommonData
 
ClosestPointProjectioncP
 
bool initCp
 
bool isLinear
 
bool hessianWCalculated
 
Tag thPlasticStrain
 
Tag thInternalVariables
 
- Public Attributes inherited from MoFEM::ForcesAndSourcesCore::UserDataOperator
char opType
 
std::string rowFieldName
 
std::string colFieldName
 
FieldSpace sPace
 
- Public Attributes inherited from MoFEM::DataOperator
DoWorkLhsHookFunType doWorkLhsHook
 
DoWorkRhsHookFunType doWorkRhsHook
 
bool sYmm
 If true assume that matrix is symmetric structure. More...
 
std::array< bool, MBMAXTYPE > doEntities
 If true operator is executed for entity. More...
 
booldoVertices
 \deprectaed If false skip vertices More...
 
booldoEdges
 \deprectaed If false skip edges More...
 
booldoQuads
 \deprectaed More...
 
booldoTris
 \deprectaed More...
 
booldoTets
 \deprectaed More...
 
booldoPrisms
 \deprectaed More...
 

Additional Inherited Members

- Public Types inherited from MoFEM::ForcesAndSourcesCore::UserDataOperator
enum  OpType {
  OPROW = 1 << 0, OPCOL = 1 << 1, OPROWCOL = 1 << 2, OPSPACE = 1 << 3,
  OPLAST = 1 << 3
}
 Controls loop over entities on element. More...
 
using AdjCache = std::map< EntityHandle, std::vector< boost::weak_ptr< NumeredEntFiniteElement > >>
 
- Public Types inherited from MoFEM::DataOperator
using DoWorkLhsHookFunType = boost::function< MoFEMErrorCode(DataOperator *op_ptr, int row_side, int col_side, EntityType row_type, EntityType col_type, EntitiesFieldData::EntData &row_data, EntitiesFieldData::EntData &col_data)>
 
using DoWorkRhsHookFunType = boost::function< MoFEMErrorCode(DataOperator *op_ptr, int side, EntityType type, EntitiesFieldData::EntData &data)>
 
- Static Public Attributes inherited from MoFEM::ForcesAndSourcesCore::UserDataOperator
static const char *const OpTypeNames []
 
- Protected Member Functions inherited from MoFEM::VolumeElementForcesAndSourcesCore::UserDataOperator
MoFEMErrorCode setPtrFE (ForcesAndSourcesCore *ptr)
 
- Protected Attributes inherited from MoFEM::ForcesAndSourcesCore::UserDataOperator
ForcesAndSourcesCoreptrFE
 

Detailed Description

Definition at line 603 of file SmallStrainPlasticity.hpp.

Constructor & Destructor Documentation

◆ OpCalculateStress()

SmallStrainPlasticity::OpCalculateStress::OpCalculateStress ( MoFEM::Interface m_field,
string  field_name,
CommonData common_data,
ClosestPointProjection cp,
bool  is_linear = true 
)
inline
Examples
SmallStrainPlasticity.hpp.

Definition at line 614 of file SmallStrainPlasticity.hpp.

620  :
622  mField(m_field),
623  commonData(common_data),
624  cP(cp),
625  initCp(false),
626  isLinear(is_linear),
627  hessianWCalculated(false) {
628  }

Member Function Documentation

◆ doWork()

PetscErrorCode SmallStrainPlasticity::OpCalculateStress::doWork ( int  side,
EntityType  type,
DataForcesAndSourcesCore::EntData data 
)

< higher order geometry

Examples
SmallStrainPlasticity.hpp.

Definition at line 489 of file SmallStrainPlasticity.cpp.

491  {
492  PetscFunctionBegin;
493 
494  try {
495 
496  //do it only once, no need to repeat this for edges,faces or tets
497  if(type != MBVERTEX) PetscFunctionReturn(0);
498 
499  int nb_dofs = data.getFieldData().size();
500  if(nb_dofs==0) PetscFunctionReturn(0);
501 
502  int nb_gauss_pts = data.getN().size1();
503  int nb_internal_variables = cP.internalVariables.size();
504  if(!initCp) {
505  ierr = getTags(); CHKERRQ(ierr);
506  }
508  ierr = setTagsData(tet,nb_gauss_pts,nb_internal_variables); CHKERRQ(ierr);
509 
510  commonData.sTress.resize(nb_gauss_pts);
511  commonData.materialTangentOperator.resize(nb_gauss_pts);
512  commonData.plasticStrain.resize(nb_gauss_pts);
513  commonData.internalVariables.resize(nb_gauss_pts);
514  commonData.internalFluxes.resize(nb_gauss_pts);
515  commonData.deltaGamma.resize(nb_gauss_pts);
516 
517  // B-bar
518  double ave_tr_strain = 0;
519  if(commonData.bBar) {
520  double v = 0;
521  for(int gg = 0;gg<nb_gauss_pts;gg++) {
522  double val = getVolume()*getGaussPts()(3,gg);
523  if(getHoGaussPtsDetJac().size()>0) {
524  val *= getHoGaussPtsDetJac()[gg]; ///< higher order geometry
525  }
526  v += val;
527  for(int ii = 0;ii<3;ii++) {
528  ave_tr_strain += val*commonData.gradAtGaussPts[rowFieldName][gg](ii,ii)/3.;
529  }
530  // cerr << commonData.gradAtGaussPts[rowFieldName][gg] << endl;
531  }
532  ave_tr_strain /= v;
533  // cerr << "v " << v << " ave_tr_strain " << ave_tr_strain << endl;
534  }
535 
536  for(int gg = 0;gg<nb_gauss_pts;gg++) {
537 
538  VectorAdaptor plastic_strain = VectorAdaptor(
539  6,ublas::shallow_array_adaptor<double>(6,&commonData.plasticStrainPtr[gg*6])
540  );
541  VectorAdaptor internal_variables = VectorAdaptor(
542  nb_internal_variables,
543  ublas::shallow_array_adaptor<double>(
544  nb_internal_variables,&commonData.internalVariablesPtr[gg*nb_internal_variables]
545  )
546  );
547 
548  cP.sTrain.resize(6,false);
549  {
550  double tr_strain = 0;
551  for(int ii = 0;ii<3;ii++) {
552  cP.sTrain[ii] = commonData.gradAtGaussPts[rowFieldName][gg](ii,ii);
553  tr_strain += cP.sTrain[ii]/3;
554  }
555  if(commonData.bBar) {
556  for(int ii = 0;ii<3;ii++) {
557  cP.sTrain[ii] += ave_tr_strain-tr_strain;
558  }
559  }
560  cP.sTrain[3] =
563  cP.sTrain[4] =
566  cP.sTrain[5] =
569  // cerr << "Grad " << commonData.gradAtGaussPts[rowFieldName][gg] << endl;
570  // cerr << cP.sTrain << endl;
571  }
572 
573 
574  {
575  cP.plasticStrain0.resize(6,false);
576  noalias(cP.plasticStrain0) = plastic_strain;
577  cP.internalVariables0.resize(nb_internal_variables,false);
578  noalias(cP.internalVariables0) = internal_variables;
579  cP.plasticStrain.resize(6,false);
580  noalias(cP.plasticStrain) = plastic_strain;
581  cP.internalVariables.resize(nb_internal_variables,false);
582  noalias(cP.internalVariables) = internal_variables;
583  cP.deltaGamma = 0;
584  commonData.sTress[gg].clear();
585  commonData.internalFluxes[gg].clear();
586  }
587 
588  if(!initCp) {
589  cP.gG = 0;
590  ierr = cP.evaluatePotentials(); CHKERRQ(ierr);
591  } else {
592  cP.gG = 1;
593  ierr = cP.setActiveVariablesW(); CHKERRQ(ierr);
594  if(
595  getFEMethod()->snes_ctx ==
596  SnesMethod::CTX_SNESSETJACOBIAN &&
598  ) {
599  ierr = cP.pLayW(); CHKERRQ(ierr);
600  hessianWCalculated = true;
601  } else {
602  ierr = cP.pLayW_NoHessian(); CHKERRQ(ierr);
603  }
604  ierr = cP.setActiveVariablesYH(); CHKERRQ(ierr);
605  ierr = cP.pLayY_NoGradient(); CHKERRQ(ierr);
606  // cerr << "C " << cP.C << endl;
607  }
608 
609  double y = cP.y;
610  if(y>0) {
611  // ierr = PCFactorSetMatSolverPackage(cP.pC,MATSOLVERPETSC); CHKERRQ(ierr);
612  // ierr = KSPMonitorCancel(cP.kSp); CHKERRQ(ierr);
613  // ierr = SNESMonitorCancel(cP.sNes); CHKERRQ(ierr);
614  // ierr = SNESSetTolerances(cP.sNes,cP.tOl,1e-12,0,20,1000); CHKERRQ(ierr);
615  // ierr = SNESLineSearchSetType(cP.lineSearch,SNESLINESEARCHBT); CHKERRQ(ierr);
616  ierr = cP.solveColasetProjection(); CHKERRQ(ierr);
617  }
618 
619  {
620  commonData.sTress[gg].resize(6,false);
621  noalias(commonData.sTress[gg]) = cP.sTress;
622  commonData.plasticStrain[gg].resize(6,false);
623  noalias(commonData.plasticStrain[gg]) = cP.plasticStrain;
624  commonData.internalVariables[gg].resize(nb_internal_variables,false);
626  commonData.internalFluxes[gg].resize(nb_internal_variables,false);
629  }
630 
631  if(getFEMethod()->snes_ctx == SnesMethod::CTX_SNESSETJACOBIAN) {
632  int iter;
633  ierr = SNESGetIterationNumber(getFEMethod()->snes,&iter); CHKERRQ(ierr);
634  commonData.materialTangentOperator[gg].resize(6,6,false);
635  if(iter>0 && cP.deltaGamma>0) {
636  ierr = cP.consistentTangent(); CHKERRQ(ierr);
637  noalias(commonData.materialTangentOperator[gg]) = cP.Cep;
638  } else {
639  noalias(commonData.materialTangentOperator[gg]) = cP.C;
640  }
641  }
642 
643  if(getFEMethod()->snes_ctx == SnesMethod::CTX_SNESSETFUNCTION) {
644  int iter;
645  ierr = SNESGetIterationNumber(getFEMethod()->snes,&iter); CHKERRQ(ierr);
646  if(iter>1) {
647  ierr = SNESSetLagJacobian(getFEMethod()->snes,1); CHKERRQ(ierr);
648  }
649  }
650 
651 
652  initCp = true;
653 
654  }
655 
656  } catch (const std::exception& ex) {
657  ostringstream ss;
658  ss << "throw in method: " << ex.what() << endl;
659  SETERRQ(PETSC_COMM_SELF,1,ss.str().c_str());
660  }
661 
662  PetscFunctionReturn(0);
663 }

◆ getTags()

PetscErrorCode SmallStrainPlasticity::OpCalculateStress::getTags ( )
Examples
SmallStrainPlasticity.hpp.

Definition at line 432 of file SmallStrainPlasticity.cpp.

432  {
433  PetscFunctionBegin;
434 
435  rval = mField.get_moab().tag_get_handle(
436  "PLASTIC_STRAIN",thPlasticStrain
437  ); CHKERRQ_MOAB(rval);
438  rval = mField.get_moab().tag_get_handle(
439  "INTERNAL_VARIABLES",thInternalVariables
440  ); CHKERRQ_MOAB(rval);
441  PetscFunctionReturn(0);
442 }

◆ setTagsData()

PetscErrorCode SmallStrainPlasticity::OpCalculateStress::setTagsData ( const EntityHandle  tet,
const int  nb_gauss_pts,
const int  nb_internal_variables 
)
Examples
SmallStrainPlasticity.hpp.

Definition at line 444 of file SmallStrainPlasticity.cpp.

446  {
447  PetscFunctionBegin;
448 
449  VectorDouble v;
450  {
451  rval = mField.get_moab().tag_get_by_ptr(
453  );
454  if(rval != MB_SUCCESS || commonData.plasticStrainSize != 6*nb_gauss_pts) {
455  v.resize(6*nb_gauss_pts,false);
456  v.clear();
457  int tag_size[1];
458  tag_size[0] = v.size();
459  void const* tag_data[] = { &v[0] };
460  rval = mField.get_moab().tag_set_by_ptr(
461  thPlasticStrain,&tet,1,tag_data,tag_size
462  ); CHKERRQ_MOAB(rval);
463  rval = mField.get_moab().tag_get_by_ptr(
465  ); CHKERRQ_MOAB(rval);
466  }
467  }
468  if(nb_internal_variables>0) {
469  rval = mField.get_moab().tag_get_by_ptr(
471  );
472  if(rval != MB_SUCCESS || commonData.internalVariablesSize != nb_internal_variables*nb_gauss_pts) {
473  v.resize(nb_internal_variables*nb_gauss_pts,false);
474  v.clear();
475  int tag_size[1];
476  tag_size[0] = v.size();
477  void const* tag_data[] = { &v[0] };
478  rval = mField.get_moab().tag_set_by_ptr(
479  thInternalVariables,&tet,1,tag_data,tag_size
480  ); CHKERRQ_MOAB(rval);
481  rval = mField.get_moab().tag_get_by_ptr(
483  );
484  }
485  }
486  PetscFunctionReturn(0);
487 }

Member Data Documentation

◆ commonData

CommonData& SmallStrainPlasticity::OpCalculateStress::commonData
Examples
SmallStrainPlasticity.hpp.

Definition at line 606 of file SmallStrainPlasticity.hpp.

◆ cP

ClosestPointProjection& SmallStrainPlasticity::OpCalculateStress::cP
Examples
SmallStrainPlasticity.hpp.

Definition at line 607 of file SmallStrainPlasticity.hpp.

◆ hessianWCalculated

bool SmallStrainPlasticity::OpCalculateStress::hessianWCalculated
Examples
SmallStrainPlasticity.hpp.

Definition at line 610 of file SmallStrainPlasticity.hpp.

◆ initCp

bool SmallStrainPlasticity::OpCalculateStress::initCp
Examples
SmallStrainPlasticity.hpp.

Definition at line 609 of file SmallStrainPlasticity.hpp.

◆ isLinear

bool SmallStrainPlasticity::OpCalculateStress::isLinear
Examples
SmallStrainPlasticity.hpp.

Definition at line 610 of file SmallStrainPlasticity.hpp.

◆ mField

MoFEM::Interface& SmallStrainPlasticity::OpCalculateStress::mField
Examples
SmallStrainPlasticity.hpp.

Definition at line 605 of file SmallStrainPlasticity.hpp.

◆ thInternalVariables

Tag SmallStrainPlasticity::OpCalculateStress::thInternalVariables
Examples
SmallStrainPlasticity.hpp.

Definition at line 631 of file SmallStrainPlasticity.hpp.

◆ thPlasticStrain

Tag SmallStrainPlasticity::OpCalculateStress::thPlasticStrain
Examples
SmallStrainPlasticity.hpp.

Definition at line 630 of file SmallStrainPlasticity.hpp.


The documentation for this struct was generated from the following files:
SmallStrainPlasticity::ClosestPointProjection::evaluatePotentials
virtual PetscErrorCode evaluatePotentials()
Definition: SmallStrainPlasticity.cpp:945
SmallStrainPlasticity::OpCalculateStress::cP
ClosestPointProjection & cP
Definition: SmallStrainPlasticity.hpp:607
SmallStrainPlasticity::ClosestPointProjection::plasticStrain0
VectorDouble plasticStrain0
Definition: SmallStrainPlasticity.hpp:488
EntityHandle
SmallStrainPlasticity::ClosestPointProjection::internalVariables0
VectorDouble internalVariables0
Definition: SmallStrainPlasticity.hpp:487
CHKERRQ_MOAB
#define CHKERRQ_MOAB(a)
check error code of MoAB function
Definition: definitions.h:454
SmallStrainPlasticity::CommonData::sTress
vector< VectorDouble > sTress
Definition: SmallStrainPlasticity.hpp:379
SmallStrainPlasticity::ClosestPointProjection::setActiveVariablesW
virtual PetscErrorCode setActiveVariablesW()
Definition: SmallStrainPlasticity.cpp:665
SmallStrainPlasticity::ClosestPointProjection::plasticStrain
VectorDouble plasticStrain
Definition: SmallStrainPlasticity.hpp:489
SmallStrainPlasticity::CommonData::plasticStrainSize
int plasticStrainSize
Definition: SmallStrainPlasticity.hpp:387
SmallStrainPlasticity::ClosestPointProjection::sTrain
VectorDouble sTrain
Definition: SmallStrainPlasticity.hpp:485
SmallStrainPlasticity::CommonData::deltaGamma
vector< double > deltaGamma
Definition: SmallStrainPlasticity.hpp:384
SmallStrainPlasticity::ClosestPointProjection::solveColasetProjection
PetscErrorCode solveColasetProjection()
Definition: SmallStrainPlasticity.cpp:1050
MoFEM::VolumeElementForcesAndSourcesCore::UserDataOperator::getVolume
double getVolume() const
element volume (linear geometry)
Definition: VolumeElementForcesAndSourcesCore.hpp:161
MoFEM::ForcesAndSourcesCore::UserDataOperator::rowFieldName
std::string rowFieldName
Definition: ForcesAndSourcesCore.hpp:577
SmallStrainPlasticity::ClosestPointProjection::pLayY_NoGradient
virtual PetscErrorCode pLayY_NoGradient()
Definition: SmallStrainPlasticity.cpp:860
SmallStrainPlasticity::ClosestPointProjection::gG
int gG
Definition: SmallStrainPlasticity.hpp:492
SmallStrainPlasticity::CommonData::internalVariablesPtr
double * internalVariablesPtr
Definition: SmallStrainPlasticity.hpp:386
MoFEM::ForcesAndSourcesCore::UserDataOperator::getGaussPts
MatrixDouble & getGaussPts()
matrix of integration (Gauss) points for Volume Element
Definition: ForcesAndSourcesCore.hpp:1235
SmallStrainPlasticity::CommonData::internalVariablesSize
int internalVariablesSize
Definition: SmallStrainPlasticity.hpp:388
SmallStrainPlasticity::ClosestPointProjection::internalFluxes
VectorAdaptor internalFluxes
Definition: SmallStrainPlasticity.hpp:495
SmallStrainPlasticity::CommonData::plasticStrain
vector< VectorDouble > plasticStrain
Definition: SmallStrainPlasticity.hpp:381
MoFEM::Exceptions::rval
static MoFEMErrorCodeGeneric< moab::ErrorCode > rval
Definition: Exceptions.hpp:74
SmallStrainPlasticity::OpCalculateStress::thInternalVariables
Tag thInternalVariables
Definition: SmallStrainPlasticity.hpp:631
MoFEM::CoreInterface::get_moab
virtual moab::Interface & get_moab()=0
SmallStrainPlasticity::OpCalculateStress::mField
MoFEM::Interface & mField
Definition: SmallStrainPlasticity.hpp:605
SmallStrainPlasticity::CommonData::gradAtGaussPts
map< string, vector< MatrixDouble > > gradAtGaussPts
Definition: SmallStrainPlasticity.hpp:378
convert.type
type
Definition: convert.py:64
SmallStrainPlasticity::CommonData::internalFluxes
vector< VectorDouble > internalFluxes
Definition: SmallStrainPlasticity.hpp:383
SmallStrainPlasticity::OpCalculateStress::hessianWCalculated
bool hessianWCalculated
Definition: SmallStrainPlasticity.hpp:610
SmallStrainPlasticity::ClosestPointProjection::y
double y
Definition: SmallStrainPlasticity.hpp:516
MoFEM::VolumeElementForcesAndSourcesCore::UserDataOperator
friend class UserDataOperator
Definition: VolumeElementForcesAndSourcesCore.hpp:105
SmallStrainPlasticity::OpCalculateStress::thPlasticStrain
Tag thPlasticStrain
Definition: SmallStrainPlasticity.hpp:630
MoFEM::ForcesAndSourcesCore::UserDataOperator::getNumeredEntFiniteElementPtr
boost::shared_ptr< const NumeredEntFiniteElement > getNumeredEntFiniteElementPtr() const
Return raw pointer to NumeredEntFiniteElement.
Definition: ForcesAndSourcesCore.hpp:999
SmallStrainPlasticity::OpCalculateStress::commonData
CommonData & commonData
Definition: SmallStrainPlasticity.hpp:606
SmallStrainPlasticity::CommonData::materialTangentOperator
vector< MatrixDouble > materialTangentOperator
Definition: SmallStrainPlasticity.hpp:380
MoFEM::Types::VectorAdaptor
VectorShallowArrayAdaptor< double > VectorAdaptor
Definition: Types.hpp:115
SmallStrainPlasticity::ClosestPointProjection::sTress
VectorAdaptor sTress
Definition: SmallStrainPlasticity.hpp:494
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
MoFEM::ForcesAndSourcesCore::UserDataOperator::getFEMethod
const FEMethod * getFEMethod() const
Return raw pointer to Finite Element Method object.
Definition: ForcesAndSourcesCore.hpp:1041
SmallStrainPlasticity::ClosestPointProjection::internalVariables
VectorDouble internalVariables
Definition: SmallStrainPlasticity.hpp:486
SmallStrainPlasticity::CommonData::plasticStrainPtr
double * plasticStrainPtr
Definition: SmallStrainPlasticity.hpp:385
v
const double v
phase velocity of light in medium (cm/ns)
Definition: initial_diffusion.cpp:40
SmallStrainPlasticity::OpCalculateStress::getTags
PetscErrorCode getTags()
Definition: SmallStrainPlasticity.cpp:432
SmallStrainPlasticity::ClosestPointProjection::pLayW
virtual PetscErrorCode pLayW()
Definition: SmallStrainPlasticity.cpp:762
SmallStrainPlasticity::OpCalculateStress::initCp
bool initCp
Definition: SmallStrainPlasticity.hpp:609
SmallStrainPlasticity::ClosestPointProjection::pLayW_NoHessian
virtual PetscErrorCode pLayW_NoHessian()
Definition: SmallStrainPlasticity.cpp:813
MoFEM::Exceptions::ierr
static MoFEMErrorCodeGeneric< PetscErrorCode > ierr
Definition: Exceptions.hpp:76
SmallStrainPlasticity::ClosestPointProjection::setActiveVariablesYH
virtual PetscErrorCode setActiveVariablesYH()
Definition: SmallStrainPlasticity.cpp:680
MoFEM::Types::VectorDouble
UBlasVector< double > VectorDouble
Definition: Types.hpp:68
SmallStrainPlasticity::OpCalculateStress::setTagsData
PetscErrorCode setTagsData(const EntityHandle tet, const int nb_gauss_pts, const int nb_internal_variables)
Definition: SmallStrainPlasticity.cpp:444
SmallStrainPlasticity::OpCalculateStress::isLinear
bool isLinear
Definition: SmallStrainPlasticity.hpp:610
SmallStrainPlasticity::CommonData::bBar
bool bBar
Definition: SmallStrainPlasticity.hpp:389
SmallStrainPlasticity::ClosestPointProjection::consistentTangent
PetscErrorCode consistentTangent()
Definition: SmallStrainPlasticity.cpp:1095
SmallStrainPlasticity::ClosestPointProjection::deltaGamma
double deltaGamma
Definition: SmallStrainPlasticity.hpp:490
SmallStrainPlasticity::CommonData::internalVariables
vector< VectorDouble > internalVariables
Definition: SmallStrainPlasticity.hpp:382
SmallStrainPlasticity::ClosestPointProjection::C
ublas::symmetric_matrix< double, ublas::lower > C
Definition: SmallStrainPlasticity.hpp:496
SmallStrainPlasticity::ClosestPointProjection::Cep
MatrixDouble Cep
Definition: SmallStrainPlasticity.hpp:566
MoFEM::ForcesAndSourcesCore::UserDataOperator::OPROW
@ OPROW
operator doWork function is executed on FE rows
Definition: ForcesAndSourcesCore.hpp:567