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,
CappedMohrCoulombStressUpdate implements rate-independent nonassociative Mohr-Coulomb plus tensile pl...
const SolidMechanicsHardeningModel & _compressive_strength
Hardening model for compressive strength.
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,...
std::vector< Real > _dga_shear_scratch
derivative of ga_shear w.r.t.
Real _poissons_ratio
Poisson's ratio.
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...
const SolidMechanicsHardeningModel & _psi
Hardening model for dilation angle.
void setEffectiveElasticity(const RankFourTensor &Eijkl) override
Sets _Eij and _En and _Cij.
std::vector< Real > _dshear_correction_scratch
scratch vector used in setIntnlDerivativesV.
std::vector< RankTwoTensor > _dsp_trial_scratch
this is d(stress_param[:])/d(stress) which is calculated by dstressparam_dstress.
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,...
RankTwoTensor _eigvecs
Eigenvectors of the trial stress as a RankTwoTensor, in order to rotate the returned stress back to s...
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.
void dstressparam_dstress(const RankTwoTensor &stress, std::vector< RankTwoTensor > &dsp) const override
d(stress_param[i])/d(stress) at given stress.
const bool _perfect_guess
Whether to provide an estimate of the returned stress, based on perfect plasticity.
std::vector< Real > _eigvals_scratch
eigenvalues of the stress, used in dstressparam_dstress and preReturnMapV.
const SolidMechanicsHardeningModel & _tensile_strength
Hardening model for tensile strength.
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.
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.
const Real _shifter
When equal-eigenvalues are predicted from the stress initialization routine, shift them by this amoun...
static InputParameters validParams()
bool isIsotropic() override
Is the implmented model isotropic? The safe default is 'false'.
void d2stressparam_dstress(const RankTwoTensor &stress, std::vector< RankFourTensor > &d2sp) const override
d2(stress_param[i])/d(stress)/d(stress) at given stress.
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.
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.
const SolidMechanicsHardeningModel & _cohesion
Hardening model for cohesion.
const SolidMechanicsHardeningModel & _phi
Hardening model for friction angle.
bool requiresIsotropicTensor() override
Does the model require the elasticity tensor to be isotropic?
void computeStressParams(const RankTwoTensor &stress, std::vector< Real > &stress_params) const override
Computes stress_params, given stress.
const InputParameters & parameters() const
MultiParameterPlasticityStressUpdate performs the return-map algorithm and associated stress updates ...
Hardening Model base class.
Struct designed to hold info about a single yield function and its derivatives, as well as the flow d...