template<int DisplacementDim>
class MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >
Definition at line 272 of file Ehlers.h.
|
std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables > | createMaterialStateVariables () const override |
| SolidEhlers (NumLib::NewtonRaphsonSolverParameters nonlinear_solver_parameters, MaterialPropertiesParameters material_properties, std::unique_ptr< DamagePropertiesParameters > &&damage_properties, TangentType tangent_type) |
double | computeFreeEnergyDensity (double const, ParameterLib::SpatialPosition const &, double const, KelvinVector const &eps, KelvinVector const &sigma, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const override |
std::optional< std::tuple< KelvinVector, std::unique_ptr< typename MechanicsBase< DisplacementDim >::MaterialStateVariables >, KelvinMatrix > > | integrateStress (MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const dt, typename MechanicsBase< DisplacementDim >::MaterialStateVariables const &material_state_variables) const override |
std::vector< typename MechanicsBase< DisplacementDim >::InternalVariable > | getInternalVariables () const override |
MaterialProperties | evaluatedMaterialProperties (double const t, ParameterLib::SpatialPosition const &x) const |
double | getBulkModulus (double const t, ParameterLib::SpatialPosition const &x, KelvinMatrix const *const) const override |
DamageProperties | evaluatedDamageProperties (double const t, ParameterLib::SpatialPosition const &x) const |
virtual void | initializeInternalStateVariables (double const, ParameterLib::SpatialPosition const &, typename MechanicsBase< DisplacementDim >::MaterialStateVariables &) const |
virtual std::optional< std::tuple< KelvinVector, std::unique_ptr< MaterialStateVariables >, KelvinMatrix > > | integrateStress (MaterialPropertyLib::VariableArray const &variable_array_prev, MaterialPropertyLib::VariableArray const &variable_array, double const t, ParameterLib::SpatialPosition const &x, double const dt, MaterialStateVariables const &material_state_variables) const =0 |
virtual ConstitutiveModel | getConstitutiveModel () const |
| Gets the type of constitutive model.
|
virtual double | getTemperatureRelatedCoefficient (double const, double const, ParameterLib::SpatialPosition const &, double const, double const) const |
virtual double | computeFreeEnergyDensity (double const t, ParameterLib::SpatialPosition const &x, double const dt, KelvinVector const &eps, KelvinVector const &sigma, MaterialStateVariables const &material_state_variables) const =0 |
virtual | ~MechanicsBase ()=default |
template<int DisplacementDim>
Definition at line 541 of file Ehlers.cpp.
547{
554
557
561 state.setInitialConditions();
562
564
565
567
569
571
572
574
577
579
581
582
583
584
585
586 if ((
sigma.squaredNorm() == 0. ||
dt == 0. ||
590 state.eps_p.eff)) < 0.))
591 {
593 mp.K - 2. / 3 *
mp.G,
mp.G);
594 }
595 else
596 {
597
598
602
603 {
611
613
614
615
618
620 {
626
629
633
635 mp.kappa,
mp.hardening_coefficient,
644 };
645
647 {
650 };
651
654 {
658 };
659
663
665
667 {
668 return {};
669 }
670
671
672
673
674
676 {
678 }
679
682 }
683
684
692
694 {
697 }
700 {
706 {
708 }
709 }
710 else
711 {
713 "Unimplemented tangent type behaviour for the tangent type "
714 "'{}'.",
716 }
717 }
718
720
728}
static int const KelvinVectorSize
Eigen::Matrix< double, JacobianResidualSize, JacobianResidualSize, Eigen::RowMajor > JacobianMatrix
MathLib::KelvinVector::KelvinVectorType< DisplacementDim > KelvinVector
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > KelvinMatrix
Eigen::Matrix< double, JacobianResidualSize, 1 > ResidualVectorType
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > calculateDResidualDEps(double const K, double const G)
SolidEhlers< DisplacementDim >::JacobianMatrix calculatePlasticJacobian(double const dt, PhysicalStressWithInvariants< DisplacementDim > const &s, double const lambda, MaterialProperties const &mp)
double calculateIsotropicHardening(double const kappa, double const hardening_coefficient, double const eps_p_eff)
std::tuple< KelvinVector, PlasticStrain< KelvinVector >, double > splitSolutionVector(ResidualVector const &solution)
SolidEhlers< DisplacementDim >::KelvinVector predict_sigma(double const G, double const K, typename SolidEhlers< DisplacementDim >::KelvinVector const &sigma_prev, typename SolidEhlers< DisplacementDim >::KelvinVector const &eps, typename SolidEhlers< DisplacementDim >::KelvinVector const &eps_prev, double const eps_V)
SolidEhlers< DisplacementDim >::ResidualVectorType calculatePlasticResidual(MathLib::KelvinVector::KelvinVectorType< DisplacementDim > const &eps_D, double const eps_V, PhysicalStressWithInvariants< DisplacementDim > const &s, MathLib::KelvinVector::KelvinVectorType< DisplacementDim > const &eps_p_D, MathLib::KelvinVector::KelvinVectorType< DisplacementDim > const &eps_p_D_dot, double const eps_p_V, double const eps_p_V_dot, double const eps_p_eff_dot, double const lambda, double const k, MaterialProperties const &mp)
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > elasticTangentStiffness(double const first_lame_parameter, double const shear_modulus)
References _mp, _nonlinear_solver_parameters, _tangent_type, MaterialLib::Solids::Ehlers::calculateDResidualDEps(), MaterialLib::Solids::Ehlers::calculateIsotropicHardening(), MaterialLib::Solids::Ehlers::calculatePlasticJacobian(), MaterialLib::Solids::Ehlers::calculatePlasticResidual(), MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::damage, MaterialLib::Solids::Ehlers::Elastic, MaterialLib::Solids::elasticTangentStiffness(), MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::eps_p, MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::eps_p_prev, MaterialLib::Solids::Ehlers::MaterialProperties::G, MaterialLib::Solids::Ehlers::MaterialProperties::hardening_coefficient, JacobianResidualSize, MaterialLib::Solids::Ehlers::MaterialProperties::K, MaterialLib::Solids::Ehlers::MaterialProperties::kappa, KelvinVectorSize, MaterialPropertyLib::VariableArray::mechanical_strain, OGS_FATAL, MaterialLib::Solids::Ehlers::Plastic, MaterialLib::Solids::Ehlers::PlasticDamageSecant, MaterialLib::Solids::Ehlers::predict_sigma(), MaterialLib::Solids::Ehlers::StateVariables< DisplacementDim >::setInitialConditions(), MaterialLib::Solids::Ehlers::splitSolutionVector(), MaterialPropertyLib::VariableArray::stress, BaseLib::to_underlying(), MaterialLib::Solids::Ehlers::Damage::value(), and MaterialLib::Solids::Ehlers::yieldFunction().