66 std::vector<Real> & stress_params)
const override;
69 std::vector<RankTwoTensor> & dsp)
const override;
72 std::vector<RankFourTensor> & d2sp)
const override;
75 const std::vector<Real> & stress_params,
77 const std::vector<Real> & intnl,
82 virtual void preReturnMapV(
const std::vector<Real> & trial_stress_params,
84 const std::vector<Real> & intnl_old,
85 const std::vector<Real> & yf,
91 const std::vector<Real> & intnl,
92 std::vector<Real> & yf)
const override;
94 void computeAllQV(
const std::vector<Real> & stress_params,
95 const std::vector<Real> & intnl,
96 std::vector<yieldAndFlow> & all_q)
const override;
99 const std::vector<Real> & intnl_old,
100 std::vector<Real> & stress_params,
102 std::vector<Real> & intnl)
const override;
105 const std::vector<Real> & current_stress_params,
106 const std::vector<Real> & intnl_old,
107 std::vector<Real> & intnl)
const override;
110 const std::vector<Real> & current_stress_params,
111 const std::vector<Real> & intnl,
112 std::vector<std::vector<Real>> & dintnl)
const override;
115 const std::vector<Real> & trial_stress_params,
117 const std::vector<Real> & stress_params,
121 bool compute_full_tangent_operator,
122 const std::vector<std::vector<Real>> & dvar_dtrial,
const SolidMechanicsHardeningModel & _phi
Hardening model for friction angle.
void d2stressparam_dstress(const RankTwoTensor &stress, std::vector< RankFourTensor > &d2sp) const override
d2(stress_param[i])/d(stress)/d(stress) at given stress.
CappedMohrCoulombStressUpdate implements rate-independent nonassociative Mohr-Coulomb plus tensile pl...
void computeStressParams(const RankTwoTensor &stress, std::vector< Real > &stress_params) const override
Computes stress_params, given stress.
bool isIsotropic() override
Is the implmented model isotropic? The safe default is 'false'.
void computeAllQV(const std::vector< Real > &stress_params, const std::vector< Real > &intnl, std::vector< yieldAndFlow > &all_q) const override
Completely fills all_q with correct values.
const InputParameters & parameters() const
const bool _perfect_guess
Whether to provide an estimate of the returned stress, based on perfect plasticity.
virtual void consistentTangentOperatorV(const RankTwoTensor &stress_trial, const std::vector< Real > &trial_stress_params, const RankTwoTensor &stress, const std::vector< Real > &stress_params, Real gaE, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, bool compute_full_tangent_operator, const std::vector< std::vector< Real >> &dvar_dtrial, RankFourTensor &cto) override
Calculates the consistent tangent operator.
Struct designed to hold info about a single yield function and its derivatives, as well as the flow d...
const SolidMechanicsHardeningModel & _tensile_strength
Hardening model for tensile strength.
std::vector< Real > _eigvals_scratch
eigenvalues of the stress, used in dstressparam_dstress and preReturnMapV.
std::vector< Real > _dshear_correction_scratch
scratch vector used in setIntnlDerivativesV.
void dstressparam_dstress(const RankTwoTensor &stress, std::vector< RankTwoTensor > &dsp) const override
d(stress_param[i])/d(stress) at given stress.
void setEffectiveElasticity(const RankFourTensor &Eijkl) override
Sets _Eij and _En and _Cij.
std::vector< Real > _dga_shear_scratch
derivative of ga_shear w.r.t.
CappedMohrCoulombStressUpdate(const InputParameters ¶meters)
void setIntnlValuesV(const std::vector< Real > &trial_stress_params, const std::vector< Real > ¤t_stress_params, const std::vector< Real > &intnl_old, std::vector< Real > &intnl) const override
Sets the internal parameters based on the trial values of stress_params, their current values...
const Real _shifter
When equal-eigenvalues are predicted from the stress initialization routine, shift them by this amoun...
virtual void preReturnMapV(const std::vector< Real > &trial_stress_params, const RankTwoTensor &stress_trial, const std::vector< Real > &intnl_old, const std::vector< Real > &yf, const RankFourTensor &Eijkl) override
Derived classes may employ this function to record stuff or do other computations prior to the return...
bool requiresIsotropicTensor() override
Does the model require the elasticity tensor to be isotropic?
void yieldFunctionValuesV(const std::vector< Real > &stress_params, const std::vector< Real > &intnl, std::vector< Real > &yf) const override
Computes the values of the yield functions, given stress_params and intnl parameters.
void setIntnlDerivativesV(const std::vector< Real > &trial_stress_params, const std::vector< Real > ¤t_stress_params, const std::vector< Real > &intnl, std::vector< std::vector< Real >> &dintnl) const override
Sets the derivatives of internal parameters, based on the trial values of stress_params, their current values, and the current values of the internal parameters.
const SolidMechanicsHardeningModel & _compressive_strength
Hardening model for compressive strength.
Hardening Model base class.
const SolidMechanicsHardeningModel & _cohesion
Hardening model for cohesion.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
void initializeVarsV(const std::vector< Real > &trial_stress_params, const std::vector< Real > &intnl_old, std::vector< Real > &stress_params, Real &gaE, std::vector< Real > &intnl) const override
Sets (stress_params, intnl) at "good guesses" of the solution to the Return-Map algorithm.
std::vector< RankTwoTensor > _dsp_trial_scratch
this is d(stress_param[:])/d(stress) which is calculated by dstressparam_dstress. ...
MultiParameterPlasticityStressUpdate performs the return-map algorithm and associated stress updates ...
const SolidMechanicsHardeningModel & _psi
Hardening model for dilation angle.
RankTwoTensor _eigvecs
Eigenvectors of the trial stress as a RankTwoTensor, in order to rotate the returned stress back to s...
virtual void setStressAfterReturnV(const RankTwoTensor &stress_trial, const std::vector< Real > &stress_params, Real gaE, const std::vector< Real > &intnl, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, RankTwoTensor &stress) const override
Sets stress from the admissible parameters.
Real _poissons_ratio
Poisson's ratio.