![]() |
v0.16.3 |
#include "users_modules/eshelbian_plasticity/src/EshelbianPlasticity.hpp"
Classes | |
| struct | FieldDefinition |
Public Types | |
| 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 > |
Public Member Functions | |
| 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 Features & | getFeatures () const |
| std::vector< FieldDefinition > | getMaterialFieldDefinitions (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 UserDataOperator * | returnOpJacobian (const bool eval_rhs, const bool eval_lhs, boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr) |
| virtual VolUserDataOperator * | returnOpSpatialPhysical (const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha_u) |
| virtual VolUserDataOperator * | returnOpSpatialPhysicalExternalStrain (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) |
| virtual VolUserDataOperator * | returnOpSpatialPhysical_du_du (std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha) |
| virtual VolUserDataOperator * | returnOpTopoSpatialPhysical (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 VolUserDataOperator * | returnOpCalculateHelmholtzFreeEnergy (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< double > total_helmholtz_free_energy_ptr) |
| virtual bool | providesHelmholtzFreeEnergy () const |
| virtual VolUserDataOperator * | returnOpCalculateStretchFromStress (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr, boost::shared_ptr< MatrixDouble > strain_ptr=nullptr) |
| virtual VolUserDataOperator * | returnOpCalculateStretchFromStress (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr, boost::shared_ptr< MatrixDouble > strain_ptr, VectorPtr external_pressure_ptr) |
| virtual VolUserDataOperator * | returnOpCalculateStretchFromStress (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 VolUserDataOperator * | returnOpCalculateExternalPressure (VectorPtr external_pressure_ptr, boost::shared_ptr< ExternalStrainVec > external_strain_vec_ptr, std::map< std::string, boost::shared_ptr< ScalingMethod > > smv) |
| virtual VolUserDataOperator * | returnOpCalculateVarStretchFromStress (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr) |
Static Public Member Functions | |
| static MoFEMErrorCode | create (EshelbianCore &ep) |
| Select and configure the material before registering fields and DMs. | |
Static Public Attributes | |
| static const Features | noStretchMask |
Protected Attributes | |
| Features | materialFeatures |
Private Member Functions | |
| bool | usesStressBasedStrain () const |
Static Private Member Functions | |
| static MoFEMErrorCode | checkOptions (const EshelbianCore &ep, MaterialModel material_model, Features features) |
Private Attributes | |
| MaterialModel | materialModel |
Definition at line 710 of file EshelbianPlasticity.hpp.
| using EshelbianPlasticity::PhysicalEquations::Features = std::bitset<LAST_FEATURE> |
Definition at line 731 of file EshelbianPlasticity.hpp.
Definition at line 722 of file EshelbianPlasticity.hpp.
| Enumerator | |
|---|---|
| CURRENT | Current state of the field. |
| PREVIOUS | Previous state of the field. |
Definition at line 735 of file EshelbianPlasticity.hpp.
| Enumerator | |
|---|---|
| StVenantKirchhoff | |
| MooneyRivlin | |
| Hencky | |
| Neohookean | |
| Meta | |
| LastMaterial | |
Definition at line 712 of file EshelbianPlasticity.hpp.
|
inline |
Definition at line 740 of file EshelbianPlasticity.hpp.
|
virtualdefault |
|
staticprivate |
Definition at line 101 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::checkSetup | ( | const EshelbianCore & | ep | ) | const |
Check material capabilities after geometry and boundary setup.
Definition at line 154 of file EshelbianMat.cpp.
|
static |
Select and configure the material before registering fields and DMs.
Definition at line 664 of file EshelbianMat.cpp.
|
inline |
Test individual bits or compare (getFeatures() & mask) with a feature mask.
Definition at line 753 of file EshelbianPlasticity.hpp.
| std::vector< std::pair< std::string, std::string > > EshelbianPlasticity::PhysicalEquations::getMaterialCouplings | ( | const EshelbianCore & | ep | ) | const |
Material-dependent blocks; each pair also represents its transpose.
Definition at line 60 of file EshelbianMat.cpp.
| std::vector< std::pair< std::string, std::string > > EshelbianPlasticity::PhysicalEquations::getMaterialEmptyBlocks | ( | const EshelbianCore & | ep | ) | const |
Definition at line 84 of file EshelbianMat.cpp.
| std::vector< PhysicalEquations::FieldDefinition > EshelbianPlasticity::PhysicalEquations::getMaterialFieldDefinitions | ( | const EshelbianCore & | ep | ) | const |
USER_BASE L2 fields; negative order retains an inactive field registration.
Definition at line 26 of file EshelbianMat.cpp.
| std::vector< std::string > EshelbianPlasticity::PhysicalEquations::getMaterialFields | ( | const EshelbianCore & | ep | ) | const |
Active material unknowns used by the element, DMs and field split.
Definition at line 51 of file EshelbianMat.cpp.
|
inline |
Definition at line 750 of file EshelbianPlasticity.hpp.
|
virtual |
True when the material supplies its Helmholtz free energy.
Reimplemented in EshelbianPlasticity::MatElasticPhysicalEquations, EshelbianPlasticity::HMHHencky, and EshelbianPlasticity::HMHNeohookean.
Definition at line 490 of file EshelbianMat.cpp.
|
virtual |
Evaluate the auxiliary material copy and energies without assembly.
Reimplemented in EshelbianPlasticity::HMHNeohookean.
Definition at line 327 of file EshelbianMat.cpp.
|
virtual |
Assemble the selected material field group after kinematic reconstruction.
Reimplemented in EshelbianPlasticity::HMHNeohookean.
Definition at line 318 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::pushEnergyEvaluation | ( | const EshelbianCore & | ep, |
| boost::ptr_deque< UserDataOperator > & | pipeline, | ||
| boost::shared_ptr< DataAtIntegrationPts > | data_ptr, | ||
| boost::shared_ptr< double > | total_energy_ptr | ||
| ) |
Definition at line 418 of file EshelbianMat.cpp.
|
virtual |
Assemble the physical Helmholtz state derivative at equilibrium.
Reimplemented in EshelbianPlasticity::HMHNeohookean.
Definition at line 304 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::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.
Definition at line 245 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::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.
Definition at line 188 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::pushMaterialForceFields | ( | const EshelbianCore & | ep, |
| boost::ptr_deque< UserDataOperator > & | pipeline, | ||
| boost::shared_ptr< DataAtIntegrationPts > | data_ptr | ||
| ) |
Definition at line 434 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::pushMaterialRates | ( | const EshelbianCore & | ep, |
| boost::ptr_deque< UserDataOperator > & | pipeline, | ||
| boost::shared_ptr< DataAtIntegrationPts > | data_ptr | ||
| ) |
Definition at line 215 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::pushMaterialResidual | ( | const EshelbianCore & | ep, |
| boost::ptr_deque< UserDataOperator > & | pipeline, | ||
| boost::shared_ptr< DataAtIntegrationPts > | data_ptr | ||
| ) |
Definition at line 336 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::pushMaterialTangent | ( | const EshelbianCore & | ep, |
| boost::ptr_deque< UserDataOperator > & | pipeline, | ||
| boost::shared_ptr< DataAtIntegrationPts > | data_ptr | ||
| ) |
Definition at line 387 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::pushMaterialVariation | ( | const EshelbianCore & | ep, |
| boost::ptr_deque< UserDataOperator > & | pipeline, | ||
| boost::shared_ptr< DataAtIntegrationPts > | data_ptr, | ||
| SmartPetscObj< Vec > | variation, | ||
| MaterialPostProcData * | output = nullptr |
||
| ) |
Definition at line 557 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::pushPostProc | ( | const EshelbianCore & | ep, |
| boost::ptr_deque< UserDataOperator > & | pipeline, | ||
| boost::shared_ptr< DataAtIntegrationPts > | data_ptr, | ||
| MaterialPostProcData & | output | ||
| ) |
Definition at line 532 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::pushPostProcResidual | ( | const EshelbianCore & | ep, |
| boost::ptr_deque< UserDataOperator > & | pipeline, | ||
| boost::shared_ptr< DataAtIntegrationPts > | data_ptr, | ||
| SmartPetscObj< Vec > | residual, | ||
| MaterialPostProcData & | output | ||
| ) |
Definition at line 582 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::pushSkeletonEvaluation | ( | const EshelbianCore & | ep, |
| VolumeElementForcesAndSourcesCoreOnSide & | fe, | ||
| boost::shared_ptr< DataAtIntegrationPts > | data_ptr, | ||
| SmartPetscObj< Vec > | residual, | ||
| MaterialPostProcData & | output | ||
| ) |
Definition at line 603 of file EshelbianMat.cpp.
| MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::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 |
||
| ) |
Definition at line 228 of file EshelbianMat.cpp.
|
virtual |
Reimplemented in EshelbianPlasticity::HMHNeohookean.
Definition at line 519 of file EshelbianMat.cpp.
|
virtual |
Reimplemented in EshelbianPlasticity::HMHNeohookean, EshelbianPlasticity::MatElasticPhysicalEquations, and EshelbianPlasticity::HMHHencky.
Definition at line 484 of file EshelbianMat.cpp.
|
virtual |
Reimplemented in EshelbianPlasticity::HMHHencky, and EshelbianPlasticity::HMHNeohookean.
Definition at line 508 of file EshelbianMat.cpp.
|
virtual |
Reimplemented in EshelbianPlasticity::HMHNeohookean.
Definition at line 499 of file EshelbianMat.cpp.
|
virtual |
Reimplemented in EshelbianPlasticity::HMHHencky, and EshelbianPlasticity::HMHNeohookean.
Definition at line 492 of file EshelbianMat.cpp.
|
virtual |
Reimplemented in EshelbianPlasticity::HMHHencky, and EshelbianPlasticity::HMHNeohookean.
Definition at line 526 of file EshelbianMat.cpp.
|
virtual |
Reimplemented in EshelbianPlasticity::MatPhysicalEquations, EshelbianPlasticity::HMHHencky, and EshelbianPlasticity::HMHNeohookean.
Definition at line 448 of file EshelbianMat.cpp.
|
virtual |
Reimplemented in EshelbianPlasticity::HMHNeohookean, EshelbianPlasticity::MatPhysicalEquations, and EshelbianPlasticity::HMHHencky.
Definition at line 455 of file EshelbianMat.cpp.
|
virtual |
Reimplemented in EshelbianPlasticity::MatPhysicalEquations, EshelbianPlasticity::HMHHencky, and EshelbianPlasticity::HMHNeohookean.
Definition at line 469 of file EshelbianMat.cpp.
|
virtual |
Reimplemented in EshelbianPlasticity::HMHNeohookean, EshelbianPlasticity::MatPhysicalEquations, and EshelbianPlasticity::HMHHencky.
Definition at line 461 of file EshelbianMat.cpp.
|
virtual |
Reimplemented in EshelbianPlasticity::HMHHencky.
Definition at line 475 of file EshelbianMat.cpp.
|
inlineprivate |
Definition at line 919 of file EshelbianPlasticity.hpp.
|
protected |
Definition at line 929 of file EshelbianPlasticity.hpp.
|
private |
Definition at line 926 of file EshelbianPlasticity.hpp.
|
inlinestatic |