v0.16.3
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
EshelbianPlasticity::MatElasticPhysicalEquations Struct Reference
Inheritance diagram for EshelbianPlasticity::MatElasticPhysicalEquations:
[legend]
Collaboration diagram for EshelbianPlasticity::MatElasticPhysicalEquations:
[legend]

Public Member Functions

 MatElasticPhysicalEquations (boost::shared_ptr< MatOps::MatElastic > mat_elastic_ptr, const MaterialModel material_model, const Features features)
 
bool providesHelmholtzFreeEnergy () const override
 
VolUserDataOperatorreturnOpCalculateHelmholtzFreeEnergy (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< double > total_helmholtz_free_energy_ptr) override
 
- Public Member Functions inherited from EshelbianPlasticity::MatPhysicalEquations
 MatPhysicalEquations (boost::shared_ptr< MatOps::MatPiolaResponse > mat_physical_equations_ptr, const MaterialModel material_model, const Features features)
 
MoFEMErrorCode getOptions ()
 
UserDataOperatorreturnOpJacobian (const bool eval_rhs, const bool eval_lhs, boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr) override
 
VolUserDataOperatorreturnOpSpatialPhysical (const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha) override
 
VolUserDataOperatorreturnOpSpatialPhysical_du_du (std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha) override
 
VolUserDataOperatorreturnOpSpatialPhysicalExternalStrain (const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< ExternalStrainVec > external_strain_vec_ptr, std::map< std::string, boost::shared_ptr< ScalingMethod > > smv) override
 
- Public Member Functions inherited from EshelbianPlasticity::PhysicalEquations
 PhysicalEquations (MaterialModel model, Features features)
 
virtual ~PhysicalEquations ()=default
 
MoFEMErrorCode checkSetup (const EshelbianCore &ep) const
 Check material capabilities after geometry and boundary setup.
 
MaterialModel getMaterialModel () const
 
const FeaturesgetFeatures () const
 
std::vector< FieldDefinitiongetMaterialFieldDefinitions (const EshelbianCore &ep) const
 
std::vector< std::string > getMaterialFields (const EshelbianCore &ep) const
 Active material unknowns used by the element, DMs and field split.
 
std::vector< std::pair< std::string, std::string > > getMaterialCouplings (const EshelbianCore &ep) const
 Material-dependent blocks; each pair also represents its transpose.
 
std::vector< std::pair< std::string, std::string > > getMaterialEmptyBlocks (const EshelbianCore &ep) const
 
MoFEMErrorCode pushMaterialFields (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr, FieldState state=CURRENT)
 Evaluate the selected fields, or recover stretch from the matching stress.
 
MoFEMErrorCode pushMaterialRates (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
 
MoFEMErrorCode pushMaterialEvaluation (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr, bool rhs, bool lhs)
 Evaluate constitutive data after kinematics and before material assembly.
 
virtual MoFEMErrorCode pushHelmholtzStateGradient (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
 Assemble the physical Helmholtz state derivative at equilibrium.
 
MoFEMErrorCode pushStretchFromStress (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< MatrixDouble > strain_ptr=nullptr, boost::shared_ptr< MatrixDouble > stress_ptr=nullptr)
 
MoFEMErrorCode pushMaterialResidual (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
 
MoFEMErrorCode pushMaterialTangent (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
 
MoFEMErrorCode pushEnergyEvaluation (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< double > total_energy_ptr)
 
MoFEMErrorCode pushMaterialForceFields (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr)
 
MoFEMErrorCode pushPostProc (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr, MaterialPostProcData &output)
 
MoFEMErrorCode pushMaterialVariation (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr, SmartPetscObj< Vec > variation, MaterialPostProcData *output=nullptr)
 
MoFEMErrorCode pushPostProcResidual (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr, SmartPetscObj< Vec > residual, MaterialPostProcData &output)
 
MoFEMErrorCode pushSkeletonEvaluation (const EshelbianCore &ep, VolumeElementForcesAndSourcesCoreOnSide &fe, boost::shared_ptr< DataAtIntegrationPts > data_ptr, SmartPetscObj< Vec > residual, MaterialPostProcData &output)
 
virtual MoFEMErrorCode pushAuxiliaryLogarithmicStressOps (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr, bool lhs)
 Assemble the selected material field group after kinematic reconstruction.
 
virtual MoFEMErrorCode pushAuxiliaryLogarithmicMaterialEvaluation (const EshelbianCore &ep, boost::ptr_deque< UserDataOperator > &pipeline, boost::shared_ptr< DataAtIntegrationPts > data_ptr, bool lhs=false)
 Evaluate the auxiliary material copy and energies without assembly.
 
virtual VolUserDataOperatorreturnOpTopoSpatialPhysical (const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, SmartPetscObj< Vec > assemble_vec, boost::shared_ptr< TopologicalData > topo_ptr, const double alpha_u, boost::shared_ptr< double > J_ptr)
 
virtual VolUserDataOperatorreturnOpCalculateStretchFromStress (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr, boost::shared_ptr< MatrixDouble > strain_ptr=nullptr)
 
virtual VolUserDataOperatorreturnOpCalculateStretchFromStress (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr, boost::shared_ptr< MatrixDouble > strain_ptr, VectorPtr external_pressure_ptr)
 
virtual VolUserDataOperatorreturnOpCalculateStretchFromStress (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr, boost::shared_ptr< MatrixDouble > strain_ptr, boost::shared_ptr< MatrixDouble > stress_ptr, VectorPtr external_pressure_ptr)
 
virtual VolUserDataOperatorreturnOpCalculateExternalPressure (VectorPtr external_pressure_ptr, boost::shared_ptr< ExternalStrainVec > external_strain_vec_ptr, std::map< std::string, boost::shared_ptr< ScalingMethod > > smv)
 
virtual VolUserDataOperatorreturnOpCalculateVarStretchFromStress (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr)
 

Private Attributes

boost::shared_ptr< MatOps::MatElasticmatElasticPtr
 

Additional Inherited Members

- Public Types inherited from EshelbianPlasticity::PhysicalEquations
enum  MaterialModel {
  StVenantKirchhoff , MooneyRivlin , Hencky , Neohookean ,
  Meta , LastMaterial
}
 
enum  Feature {
  DIRECT_STRETCH = 0 , NO_STRETCH_LINEAR , NO_STRETCH_NONLINEAR , AUXILIARY_LOGARITHMIC_STRESS ,
  NON_HOMOGENEOUS_MATERIAL , LAST_FEATURE
}
 
enum  FieldState { CURRENT , PREVIOUS }
 
using Features = std::bitset< LAST_FEATURE >
 
- Static Public Member Functions inherited from EshelbianPlasticity::PhysicalEquations
static MoFEMErrorCode create (EshelbianCore &ep)
 Select and configure the material before registering fields and DMs.
 
- Static Public Attributes inherited from EshelbianPlasticity::PhysicalEquations
static const Features noStretchMask
 
- Protected Attributes inherited from EshelbianPlasticity::MatPhysicalEquations
boost::shared_ptr< MatOps::MatPiolaResponse > matPhysicalEquationsPtr
 
double alphaGradU = 0
 
- Protected Attributes inherited from EshelbianPlasticity::PhysicalEquations
Features materialFeatures
 

Detailed Description

Definition at line 156 of file EshelbianMatCore.cpp.

Constructor & Destructor Documentation

◆ MatElasticPhysicalEquations()

EshelbianPlasticity::MatElasticPhysicalEquations::MatElasticPhysicalEquations ( boost::shared_ptr< MatOps::MatElastic mat_elastic_ptr,
const MaterialModel  material_model,
const Features  features 
)
inline

Definition at line 158 of file EshelbianMatCore.cpp.

161 : MatPhysicalEquations(mat_elastic_ptr, material_model, features),
162 matElasticPtr(mat_elastic_ptr) {
163 if (!matElasticPtr)
165 "Mat core elastic equations are not allocated");
166 }
#define CHK_THROW_MESSAGE(err, msg)
Check and throw MoFEM exception.
@ MOFEM_DATA_INCONSISTENCY
Definition definitions.h:31
const char features[]
boost::shared_ptr< MatOps::MatElastic > matElasticPtr
MatPhysicalEquations(boost::shared_ptr< MatOps::MatPiolaResponse > mat_physical_equations_ptr, const MaterialModel material_model, const Features features)

Member Function Documentation

◆ providesHelmholtzFreeEnergy()

bool EshelbianPlasticity::MatElasticPhysicalEquations::providesHelmholtzFreeEnergy ( ) const
inlineoverridevirtual

True when the material supplies its Helmholtz free energy.

Reimplemented from EshelbianPlasticity::PhysicalEquations.

Definition at line 168 of file EshelbianMatCore.cpp.

168{ return true; }

◆ returnOpCalculateHelmholtzFreeEnergy()

VolUserDataOperator * EshelbianPlasticity::MatElasticPhysicalEquations::returnOpCalculateHelmholtzFreeEnergy ( boost::shared_ptr< DataAtIntegrationPts data_ptr,
boost::shared_ptr< double total_helmholtz_free_energy_ptr 
)
inlineoverridevirtual

Reimplemented from EshelbianPlasticity::PhysicalEquations.

Definition at line 171 of file EshelbianMatCore.cpp.

173 {
174 return new OpCalculateHelmholtzFreeEnergy(
175 data_ptr, matElasticPtr, total_helmholtz_free_energy_ptr);
176 }

Member Data Documentation

◆ matElasticPtr

boost::shared_ptr<MatOps::MatElastic> EshelbianPlasticity::MatElasticPhysicalEquations::matElasticPtr
private

Definition at line 179 of file EshelbianMatCore.cpp.


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