v0.14.0
Public Member Functions | List of all members
SmallStrainTranverslyIsotropicDouble Struct Reference

#include <users_modules/basic_finite_elements/nonlinear_elastic_materials/src/SmallTransverselyIsotropic.hpp>

Inheritance diagram for SmallStrainTranverslyIsotropicDouble:
[legend]
Collaboration diagram for SmallStrainTranverslyIsotropicDouble:
[legend]

Public Member Functions

 SmallStrainTranverslyIsotropicDouble ()
 
virtual MoFEMErrorCode calculateAngles ()
 
virtual MoFEMErrorCode getDataOnPostProcessor (std::map< std::string, std::vector< VectorDouble > > &field_map, std::map< std::string, std::vector< MatrixDouble > > &grad_map)
 
- Public Member Functions inherited from SmallStrainTranverslyIsotropic< double >
 SmallStrainTranverslyIsotropic ()
 
MoFEMErrorCode calculateStrain ()
 
MoFEMErrorCode calculateLocalStiffnesMatrix ()
 
MoFEMErrorCode calculateAxisAngleRotationalMatrix ()
 Function to Calculate the Rotation Matrix at a given axis and angle of rotation. More...
 
MoFEMErrorCode stressTransformation ()
 Function to Calculate Stress Transformation Matrix This function computes the stress transformation Matrix at a give axis and angle of rotation
One can also output the axis/angle rotational Matrix. More...
 
MoFEMErrorCode strainTransformation ()
 Function to Calculate Strain Transformation Matrix
This function computes the strain transformation Matrix at a give axis and angle of rotation
One can also output the axis/angle rotational Matrix. More...
 
MoFEMErrorCode calculateGlobalStiffnesMatrix ()
 
virtual MoFEMErrorCode calculateP_PiolaKirchhoffI (const NonlinearElasticElement::BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr)
 Calculate global stress. More...
 
virtual MoFEMErrorCode calculateElasticEnergy (const NonlinearElasticElement::BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr)
 calculate density of strain energy More...
 
MoFEMErrorCode calculateFibreAngles ()
 
- Public Member Functions inherited from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< double >
 FunctionsToCalculatePiolaKirchhoffI ()
 
virtual ~FunctionsToCalculatePiolaKirchhoffI ()=default
 
MoFEMErrorCode calculateC_CauchyDeformationTensor ()
 
MoFEMErrorCode calculateE_GreenStrain ()
 
MoFEMErrorCode calculateS_PiolaKirchhoffII ()
 
virtual MoFEMErrorCode calculateCauchyStress (const BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr)
 Function overload to implement user material. More...
 
virtual MoFEMErrorCode setUserActiveVariables (int &nb_active_variables)
 add additional active variables More...
 
virtual MoFEMErrorCode setUserActiveVariables (VectorDouble &activeVariables)
 Add additional independent variables More complex physical models depend on gradient of defamation and some additional variables. For example can depend on temperature. This function adds additional independent variables to the model. More...
 
virtual MoFEMErrorCode calculatesIGma_EshelbyStress (const BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr)
 Calculate Eshelby stress. More...
 
virtual MoFEMErrorCode getDataOnPostProcessor (std::map< std::string, std::vector< VectorDouble >> &field_map, std::map< std::string, std::vector< MatrixDouble >> &grad_map)
 Do operations when pre-process. More...
 

Additional Inherited Members

- Public Attributes inherited from SmallStrainTranverslyIsotropic< double >
ublas::matrix< doublesTrain
 
ublas::vector< doublevoightStrain
 
double tR
 
double nu_p
 
double nu_pz
 
double E_p
 
double E_z
 
double G_zp
 
ublas::symmetric_matrix< double, ublas::upper > localStiffnessMatrix
 
ublas::matrix< doubleaARotMat
 
ublas::vector< doubleaxVector
 
double axAngle
 
ublas::matrix< doublestressRotMat
 
ublas::matrix< doublestrainRotMat
 
ublas::matrix< doubledR
 
ublas::matrix< doubleglobalStiffnessMatrix
 
ublas::vector< doublevoigtStress
 
VectorDouble normalizedPhi
 
VectorDouble axVectorDouble
 
double axAngleDouble
 
- Public Attributes inherited from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< double >
FTensor::Index< 'i', 3 > i
 
FTensor::Index< 'j', 3 > j
 
FTensor::Index< 'k', 3 > k
 
double lambda
 
double mu
 
MatrixBoundedArray< double, 9 > F
 
MatrixBoundedArray< double, 9 > C
 
MatrixBoundedArray< double, 9 > E
 
MatrixBoundedArray< double, 9 > S
 
MatrixBoundedArray< double, 9 > invF
 
MatrixBoundedArray< double, 9 > P
 
MatrixBoundedArray< double, 9 > sIGma
 
MatrixBoundedArray< double, 9 > h
 
MatrixBoundedArray< double, 9 > H
 
MatrixBoundedArray< double, 9 > invH
 
MatrixBoundedArray< double, 9 > sigmaCauchy
 
FTensor::Tensor2< FTensor::PackPtr< double *, 0 >, 3, 3 > t_F
 
FTensor::Tensor2< FTensor::PackPtr< double *, 0 >, 3, 3 > t_C
 
FTensor::Tensor2< FTensor::PackPtr< double *, 0 >, 3, 3 > t_E
 
FTensor::Tensor2< FTensor::PackPtr< double *, 0 >, 3, 3 > t_S
 
FTensor::Tensor2< FTensor::PackPtr< double *, 0 >, 3, 3 > t_invF
 
FTensor::Tensor2< FTensor::PackPtr< double *, 0 >, 3, 3 > t_P
 
FTensor::Tensor2< FTensor::PackPtr< double *, 0 >, 3, 3 > t_sIGma
 
FTensor::Tensor2< FTensor::PackPtr< double *, 0 >, 3, 3 > t_h
 
FTensor::Tensor2< FTensor::PackPtr< double *, 0 >, 3, 3 > t_H
 
FTensor::Tensor2< FTensor::PackPtr< double *, 0 >, 3, 3 > t_invH
 
FTensor::Tensor2< FTensor::PackPtr< double *, 0 >, 3, 3 > t_sigmaCauchy
 
double J
 
double eNergy
 
double detH
 
double detF
 
int gG
 Gauss point number. More...
 
CommonDatacommonDataPtr
 
MoFEM::VolumeElementForcesAndSourcesCore::UserDataOperatoropPtr
 pointer to finite element tetrahedral operator More...
 
- Static Protected Member Functions inherited from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< double >
static auto resizeAndSet (MatrixBoundedArray< double, 9 > &m)
 

Detailed Description

Definition at line 350 of file SmallTransverselyIsotropic.hpp.

Constructor & Destructor Documentation

◆ SmallStrainTranverslyIsotropicDouble()

SmallStrainTranverslyIsotropicDouble::SmallStrainTranverslyIsotropicDouble ( )
inline

Member Function Documentation

◆ calculateAngles()

virtual MoFEMErrorCode SmallStrainTranverslyIsotropicDouble::calculateAngles ( )
inlinevirtual

Reimplemented from SmallStrainTranverslyIsotropic< double >.

Definition at line 354 of file SmallTransverselyIsotropic.hpp.

354  {
356 
357  try {
358 
360  axVector.resize(3,false);
361  axVector[0] = axVectorDouble[0];
362  axVector[1] = axVectorDouble[1];
363  axVector[2] = axVectorDouble[2];
365 
366  } catch (const std::exception& ex) {
367  std::ostringstream ss;
368  ss << "throw in method: " << ex.what() << std::endl;
369  SETERRQ(PETSC_COMM_SELF,1,ss.str().c_str());
370  }
372  }

◆ getDataOnPostProcessor()

virtual MoFEMErrorCode SmallStrainTranverslyIsotropicDouble::getDataOnPostProcessor ( std::map< std::string, std::vector< VectorDouble > > &  field_map,
std::map< std::string, std::vector< MatrixDouble > > &  grad_map 
)
inlinevirtual

Definition at line 374 of file SmallTransverselyIsotropic.hpp.

377  {
379  int nb_gauss_pts = grad_map["POTENTIAL_FIELD"].size();
380  this->commonDataPtr->gradAtGaussPts["POTENTIAL_FIELD"].resize(nb_gauss_pts);
381  for(int gg = 0;gg<nb_gauss_pts;gg++) {
382  this->commonDataPtr->gradAtGaussPts["POTENTIAL_FIELD"][gg].resize(1,3,false);
383  for(int ii = 0;ii<3;ii++) {
384  this->commonDataPtr->gradAtGaussPts["POTENTIAL_FIELD"][gg](0,ii) =
385  ((grad_map["POTENTIAL_FIELD"])[gg])(0,ii);
386  }
387  }
389  }

The documentation for this struct was generated from the following file:
MoFEMFunctionReturnHot
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:460
SmallStrainTranverslyIsotropic< double >::axVector
ublas::vector< double > axVector
Definition: SmallTransverselyIsotropic.hpp:70
SmallStrainTranverslyIsotropic< double >
SmallStrainTranverslyIsotropic< double >::calculateFibreAngles
MoFEMErrorCode calculateFibreAngles()
Definition: SmallTransverselyIsotropic.hpp:310
SmallStrainTranverslyIsotropic< double >::axAngle
double axAngle
Definition: SmallTransverselyIsotropic.hpp:71
SmallStrainTranverslyIsotropic< double >::axAngleDouble
double axAngleDouble
Definition: SmallTransverselyIsotropic.hpp:308
MoFEM::Exceptions::ierr
static MoFEMErrorCodeGeneric< PetscErrorCode > ierr
Definition: Exceptions.hpp:76
MoFEMFunctionBeginHot
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:453
NonlinearElasticElement::CommonData::gradAtGaussPts
std::map< std::string, std::vector< MatrixDouble > > gradAtGaussPts
Definition: NonLinearElasticElement.hpp:108
CHKERRG
#define CHKERRG(n)
Check error code of MoFEM/MOAB/PETSc function.
Definition: definitions.h:496
SmallStrainTranverslyIsotropic< double >::axVectorDouble
VectorDouble axVectorDouble
Definition: SmallTransverselyIsotropic.hpp:307
NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< double >::commonDataPtr
CommonData * commonDataPtr
Definition: NonLinearElasticElement.hpp:155