Go to the documentation of this file.
71 std::vector<Real> & stress_params)
const override;
78 const std::vector<Real> & stress_params,
80 const std::vector<Real> & intnl,
85 virtual void preReturnMapV(
const std::vector<Real> & trial_stress_params,
87 const std::vector<Real> & intnl_old,
88 const std::vector<Real> & yf,
94 const std::vector<Real> & intnl,
95 std::vector<Real> & yf)
const override;
97 void computeAllQV(
const std::vector<Real> & stress_params,
98 const std::vector<Real> & intnl,
99 std::vector<yieldAndFlow> & all_q)
const override;
102 const std::vector<Real> & intnl_old,
103 std::vector<Real> & stress_params,
105 std::vector<Real> & intnl)
const override;
108 const std::vector<Real> & current_stress_params,
109 const std::vector<Real> & intnl_old,
110 std::vector<Real> & intnl)
const override;
113 const std::vector<Real> & current_stress_params,
114 const std::vector<Real> & intnl,
115 std::vector<std::vector<Real>> & dintnl)
const override;
118 const std::vector<Real> & trial_stress_params,
120 const std::vector<Real> & stress_params,
124 bool compute_full_tangent_operator,
125 const std::vector<std::vector<Real>> & dvar_dtrial,
static InputParameters validParams()
RankTwoTensor _eigvecs
Eigenvectors of the trial stress as a RankTwoTensor, in order to rotate the returned stress back to s...
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.
InputParameters validParams< CappedMohrCoulombStressUpdate >()
Struct designed to hold info about a single yield function and its derivatives, as well as the flow d...
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.
const TensorMechanicsHardeningModel & _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.
bool requiresIsotropicTensor() override
Does the model require the elasticity tensor to be isotropic?
Real _poissons_ratio
Poisson's ratio.
const TensorMechanicsHardeningModel & _compressive_strength
Hardening model for compressive strength.
CappedMohrCoulombStressUpdate implements rate-independent nonassociative Mohr-Coulomb plus tensile pl...
bool isIsotropic() override
Is the implmented model isotropic? The safe default is 'false'.
void setEffectiveElasticity(const RankFourTensor &Eijkl) override
Sets _Eij and _En and _Cij.
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,...
std::vector< RankFourTensor > d2stress_param_dstress(const RankTwoTensor &stress) const override
d2(stress_param[i])/d(stress)/d(stress) at given stress
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.
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 TensorMechanicsHardeningModel & _phi
Hardening model for friction angle.
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,...
void computeStressParams(const RankTwoTensor &stress, std::vector< Real > &stress_params) const override
Computes stress_params, given stress.
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.
MultiParameterPlasticityStressUpdate performs the return-map algorithm and associated stress updates ...
const bool _perfect_guess
Whether to provide an estimate of the returned stress, based on perfect plasticity.
std::vector< RankTwoTensor > dstress_param_dstress(const RankTwoTensor &stress) const override
d(stress_param[i])/d(stress) at given stress
CappedMohrCoulombStressUpdate(const InputParameters ¶meters)
const Real _shifter
When equal-eigenvalues are predicted from the stress initialization routine, shift them by this amoun...
const TensorMechanicsHardeningModel & _psi
Hardening model for dilation angle.
const TensorMechanicsHardeningModel & _cohesion
Hardening model for cohesion.
Hardening Model base class.