|
Alamo
|
Go to the documentation of this file. 1 #ifndef MODEL_SOLID_PLASTIC_J2_H_
2 #define MODEL_SOLID_PLASTIC_J2_H_
5 #include <AMReX_REAL.H>
6 #include <eigen3/Eigen/Core>
25 Define(a_mu, a_lambda, a_yield, a_hardening, a_theta);
35 curr = PlasticState::Zero();
36 prev = PlasticState::Zero();
53 Set::Scalar SQ2O3 = sqrt(1.0 - 1.0/((
double)AMREX_SPACEDIM));
54 Set::Matrix sigdev = sigma - (1.0/((double)AMREX_SPACEDIM))*sigma.trace()*Set::Matrix::Identity();
55 Set::Matrix epsdev = strain - strain.trace()*Set::Matrix::Identity();
69 curr.alpha =
prev.alpha + SQ2O3*dGamma;
70 curr.beta =
prev.beta + SQ2O3*dH*n_new;
71 curr.epsp =
prev.epsp + dGamma*n_new;
77 prev = Affine::PlasticState::Zero();
78 curr = Affine::PlasticState::Zero();
106 pp.query(
"lambda",lambda);
114 lambda = E * nu / (1.0 + nu) / (1.0 - 2.0*nu);
115 mu = E / 2.0 / (1.0 + nu);
117 Set::Scalar yield = 1.0, hardening = 1.0, theta_tmp = 1.0;
119 pp.query(
"yield", yield);
120 pp.query(
"hardening", hardening);
121 pp.query(
"theta", theta_tmp);
123 value.
Define(mu, lambda, yield, hardening, theta_tmp);
void SetF0(Set::Matrix a_F0)
Set::Scalar YieldSurface()
friend J2Plastic operator-(const J2Plastic a, const J2Plastic b)
void Define(Set::Scalar a_mu, Set::Scalar a_lambda, Set::Scalar a_yield, Set::Scalar a_hardening, Set::Scalar a_theta)
void Define(Set::Scalar a_mu, Set::Scalar a_lambda, Set::Matrix a_F0)
friend J2Plastic operator+(const J2Plastic a, const J2Plastic b)
void EvolvePlasticStrain(Set::Matrix sigma, Set::Matrix strain, Set::Scalar)
void SetPlasticStrains(PlasticState &a_state)
J2Plastic(Set::Scalar a_mu, Set::Scalar a_lambda, Set::Scalar a_yield, Set::Scalar a_hardening, Set::Scalar a_theta=1.0)
AMREX_FORCE_INLINE J2Plastic operator-(const J2Plastic a, const J2Plastic b)
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, AMREX_SPACEDIM > Matrix
Set::Scalar hardening_modulus
J2Plastic(Solid< Set::Sym::Isotropic > base)
bool contains(std::string name)
AMREX_FORCE_INLINE J2Plastic operator+(const J2Plastic a, const J2Plastic b)
AMREX_FORCE_INLINE void operator+=(const J2Plastic &rhs)
Set::Matrix4< AMREX_SPACEDIM, SYM > ddw
AMREX_FORCE_INLINE J2Plastic operator*(const Set::Scalar alpha) const
PlasticState GetPlasticState()
AMREX_FORCE_INLINE J2Plastic operator*(const Set::Scalar alpha, const J2Plastic b)
Set::Scalar PlasticEnergy()
static void Parse(J2Plastic &value, IO::ParmParse &pp)
Set::Scalar yield_strength