OGS
|
Classes | |
class | Damage |
struct | DamageProperties |
struct | DamagePropertiesParameters |
struct | MaterialProperties |
struct | MaterialPropertiesParameters |
struct | OnePlusGamma_pTheta |
Holds powers of 1 + gamma_p*theta to base 0, m_p, and m_p-1. More... | |
struct | PhysicalStressWithInvariants |
struct | PlasticStrain |
class | SolidEhlers |
struct | StateVariables |
Enumerations | |
enum class | TangentType { Elastic , PlasticDamageSecant , Plastic } |
Functions | |
std::unique_ptr< DamagePropertiesParameters > | createDamageProperties (std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, BaseLib::ConfigTree const &config) |
template<int DisplacementDim> | |
std::unique_ptr< SolidEhlers< DisplacementDim > > | createEhlers (std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, BaseLib::ConfigTree const &config) |
template<int DisplacementDim> | |
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > | sOdotS (MathLib::KelvinVector::KelvinVectorType< DisplacementDim > const &v) |
template<int DisplacementDim> | |
double | plasticFlowVolumetricPart (PhysicalStressWithInvariants< DisplacementDim > const &s, double const sqrtPhi, double const alpha_p, double const beta_p, double const delta_p, double const epsilon_p) |
template<int DisplacementDim> | |
SolidEhlers< DisplacementDim >::KelvinVector | plasticFlowDeviatoricPart (PhysicalStressWithInvariants< DisplacementDim > const &s, OnePlusGamma_pTheta const &one_gt, double const sqrtPhi, typename SolidEhlers< DisplacementDim >::KelvinVector const &dtheta_dsigma, double const gamma_p, double const m_p) |
template<int DisplacementDim> | |
double | yieldFunction (MaterialProperties const &mp, PhysicalStressWithInvariants< DisplacementDim > const &s, double const k) |
template<int DisplacementDim> | |
std::pair< MathLib::KelvinVector::KelvinVectorType< DisplacementDim >, MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > > | thetaSigmaDerivatives (double theta, PhysicalStressWithInvariants< DisplacementDim > const &s) |
template<int DisplacementDim> | |
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) |
template<int DisplacementDim> | |
SolidEhlers< DisplacementDim >::JacobianMatrix | calculatePlasticJacobian (double const dt, PhysicalStressWithInvariants< DisplacementDim > const &s, double const lambda, MaterialProperties const &mp) |
template<int DisplacementDim> | |
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > | calculateDResidualDEps (double const K, double const G) |
double | calculateIsotropicHardening (double const kappa, double const hardening_coefficient, double const eps_p_eff) |
template<int DisplacementDim> | |
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) |
template<typename ResidualVector , typename KelvinVector > | |
std::tuple< KelvinVector, PlasticStrain< KelvinVector >, double > | splitSolutionVector (ResidualVector const &solution) |
template<> | |
MathLib::KelvinVector::KelvinMatrixType< 3 > | sOdotS< 3 > (MathLib::KelvinVector::KelvinVectorType< 3 > const &v) |
template<> | |
MathLib::KelvinVector::KelvinMatrixType< 2 > | sOdotS< 2 > (MathLib::KelvinVector::KelvinVectorType< 2 > const &v) |
TangentType | makeTangentType (std::string const &s) |
|
strong |
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > MaterialLib::Solids::Ehlers::calculateDResidualDEps | ( | double const | K, |
double const | G ) |
Calculates the derivative of the residuals with respect to total strain. Implementation fully implicit only.
Definition at line 438 of file Ehlers.cpp.
References MathLib::KelvinVector::kelvin_vector_dimensions().
Referenced by MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >::integrateStress().
|
inline |
Definition at line 453 of file Ehlers.cpp.
Referenced by MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >::integrateStress().
SolidEhlers< DisplacementDim >::JacobianMatrix MaterialLib::Solids::Ehlers::calculatePlasticJacobian | ( | double const | dt, |
PhysicalStressWithInvariants< DisplacementDim > const & | s, | ||
double const | lambda, | ||
MaterialProperties const & | mp ) |
Definition at line 257 of file Ehlers.cpp.
References MaterialLib::Solids::Ehlers::MaterialProperties::alpha, MaterialLib::Solids::Ehlers::MaterialProperties::alpha_p, MaterialLib::Solids::Ehlers::MaterialProperties::beta, MaterialLib::Solids::Ehlers::MaterialProperties::beta_p, MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::D, MaterialLib::Solids::Ehlers::MaterialProperties::delta, MaterialLib::Solids::Ehlers::MaterialProperties::delta_p, MaterialLib::Solids::Ehlers::MaterialProperties::epsilon_p, MaterialLib::Solids::Ehlers::MaterialProperties::G, MaterialLib::Solids::Ehlers::MaterialProperties::gamma, MaterialLib::Solids::Ehlers::MaterialProperties::gamma_p, MaterialLib::Solids::Ehlers::MaterialProperties::hardening_coefficient, MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::I_1, MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::J_2, MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::J_3, MaterialLib::Solids::Ehlers::MaterialProperties::K, MaterialLib::Solids::Ehlers::MaterialProperties::kappa, MathLib::KelvinVector::kelvin_vector_dimensions(), MaterialLib::Solids::Ehlers::MaterialProperties::m, MaterialLib::Solids::Ehlers::MaterialProperties::m_p, plasticFlowDeviatoricPart(), plasticFlowVolumetricPart(), and thetaSigmaDerivatives().
Referenced by MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >::integrateStress().
SolidEhlers< DisplacementDim >::ResidualVectorType MaterialLib::Solids::Ehlers::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 ) |
Definition at line 196 of file Ehlers.cpp.
References MaterialLib::Solids::Ehlers::MaterialProperties::alpha_p, MaterialLib::Solids::Ehlers::MaterialProperties::beta_p, MaterialLib::Solids::Ehlers::MaterialProperties::delta_p, MaterialLib::Solids::Ehlers::MaterialProperties::epsilon_p, MaterialLib::Solids::Ehlers::MaterialProperties::G, MaterialLib::Solids::Ehlers::MaterialProperties::gamma_p, MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::I_1, MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::J_2, MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::J_3, MaterialLib::Solids::Ehlers::MaterialProperties::K, MathLib::KelvinVector::kelvin_vector_dimensions(), MaterialLib::Solids::Ehlers::MaterialProperties::m_p, plasticFlowDeviatoricPart(), plasticFlowVolumetricPart(), thetaSigmaDerivatives(), MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::value, and yieldFunction().
Referenced by MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >::integrateStress().
|
inline |
Definition at line 23 of file CreateEhlers.h.
References DBUG(), and ParameterLib::findParameter().
Referenced by createEhlers().
std::unique_ptr< SolidEhlers< DisplacementDim > > MaterialLib::Solids::Ehlers::createEhlers | ( | std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const & | parameters, |
BaseLib::ConfigTree const & | config ) |
Definition at line 50 of file CreateEhlers.h.
References BaseLib::ConfigTree::checkConfigParameter(), createDamageProperties(), NumLib::createNewtonRaphsonSolverParameters(), DBUG(), ParameterLib::findParameter(), BaseLib::ConfigTree::getConfigParameter(), BaseLib::ConfigTree::getConfigSubtree(), BaseLib::ConfigTree::getConfigSubtreeOptional(), and makeTangentType().
Referenced by MaterialLib::Solids::createConstitutiveRelation().
|
inline |
Definition at line 43 of file Ehlers.h.
References Elastic, OGS_FATAL, Plastic, and PlasticDamageSecant.
Referenced by createEhlers().
SolidEhlers< DisplacementDim >::KelvinVector MaterialLib::Solids::Ehlers::plasticFlowDeviatoricPart | ( | PhysicalStressWithInvariants< DisplacementDim > const & | s, |
OnePlusGamma_pTheta const & | one_gt, | ||
double const | sqrtPhi, | ||
typename SolidEhlers< DisplacementDim >::KelvinVector const & | dtheta_dsigma, | ||
double const | gamma_p, | ||
double const | m_p ) |
Definition at line 124 of file Ehlers.cpp.
References MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::D, MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::J_2, MaterialLib::Solids::Ehlers::OnePlusGamma_pTheta::pow_m_p, and MaterialLib::Solids::Ehlers::OnePlusGamma_pTheta::value.
Referenced by calculatePlasticJacobian(), and calculatePlasticResidual().
double MaterialLib::Solids::Ehlers::plasticFlowVolumetricPart | ( | PhysicalStressWithInvariants< DisplacementDim > const & | s, |
double const | sqrtPhi, | ||
double const | alpha_p, | ||
double const | beta_p, | ||
double const | delta_p, | ||
double const | epsilon_p ) |
Definition at line 111 of file Ehlers.cpp.
References MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::I_1.
Referenced by calculatePlasticJacobian(), and calculatePlasticResidual().
SolidEhlers< DisplacementDim >::KelvinVector MaterialLib::Solids::Ehlers::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 ) |
Definition at line 461 of file Ehlers.cpp.
References MathLib::KelvinVector::kelvin_vector_dimensions().
Referenced by MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >::integrateStress().
MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > MaterialLib::Solids::Ehlers::sOdotS | ( | MathLib::KelvinVector::KelvinVectorType< DisplacementDim > const & | v | ) |
Special product of v
with itself: \(v \odot v\). The tensor v
is given in Kelvin mapping.
Referenced by thetaSigmaDerivatives().
MathLib::KelvinVector::KelvinMatrixType< 2 > MaterialLib::Solids::Ehlers::sOdotS< 2 > | ( | MathLib::KelvinVector::KelvinVectorType< 2 > const & | v | ) |
Definition at line 866 of file Ehlers.cpp.
MathLib::KelvinVector::KelvinMatrixType< 3 > MaterialLib::Solids::Ehlers::sOdotS< 3 > | ( | MathLib::KelvinVector::KelvinVectorType< 3 > const & | v | ) |
Definition at line 866 of file Ehlers.cpp.
std::tuple< KelvinVector, PlasticStrain< KelvinVector >, double > MaterialLib::Solids::Ehlers::splitSolutionVector | ( | ResidualVector const & | solution | ) |
Split the agglomerated solution vector in separate items. The arrangement must be the same as in the newton() function.
Definition at line 492 of file Ehlers.cpp.
Referenced by MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >::integrateStress().
std::pair< MathLib::KelvinVector::KelvinVectorType< DisplacementDim >, MathLib::KelvinVector::KelvinMatrixType< DisplacementDim > > MaterialLib::Solids::Ehlers::thetaSigmaDerivatives | ( | double | theta, |
PhysicalStressWithInvariants< DisplacementDim > const & | s ) |
Definition at line 155 of file Ehlers.cpp.
References MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::D, MathLib::KelvinVector::inverse(), MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::J_2, MathLib::KelvinVector::kelvin_vector_dimensions(), OGS_FATAL, and sOdotS().
Referenced by calculatePlasticJacobian(), and calculatePlasticResidual().
double MaterialLib::Solids::Ehlers::yieldFunction | ( | MaterialProperties const & | mp, |
PhysicalStressWithInvariants< DisplacementDim > const & | s, | ||
double const | k ) |
Definition at line 136 of file Ehlers.cpp.
References MaterialLib::Solids::Ehlers::MaterialProperties::alpha, MaterialLib::Solids::Ehlers::MaterialProperties::beta, MaterialLib::Solids::Ehlers::MaterialProperties::delta, MaterialLib::Solids::Ehlers::MaterialProperties::epsilon, MaterialLib::Solids::Ehlers::MaterialProperties::gamma, MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::I_1, MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::J_2, MaterialLib::Solids::Ehlers::PhysicalStressWithInvariants< DisplacementDim >::J_3, and MaterialLib::Solids::Ehlers::MaterialProperties::m.
Referenced by calculatePlasticResidual(), and MaterialLib::Solids::Ehlers::SolidEhlers< DisplacementDim >::integrateStress().