Go to the documentation of this file.
122 const std::vector<Real> & intnl,
123 std::vector<Real> & yf)
const override;
127 const std::vector<Real> & intnl,
128 std::vector<yieldAndFlow> & all_q)
const override;
133 const std::vector<Real> & intnl_old,
134 const std::vector<Real> & yf,
139 const std::vector<Real> & intnl_old,
143 std::vector<Real> & intnl)
const override;
149 const std::vector<Real> & intnl_old,
150 std::vector<Real> & intnl)
const override;
156 const std::vector<Real> & intnl,
157 std::vector<std::vector<Real>> & dintnl)
const override;
171 const std::vector<Real> & intnl,
185 bool compute_full_tangent_operator,
virtual void consistentTangentOperator(const RankTwoTensor &stress_trial, Real p_trial, Real q_trial, const RankTwoTensor &stress, Real p, Real q, Real gaE, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, bool compute_full_tangent_operator, RankFourTensor &cto) const override
Calculates the consistent tangent operator.
const TensorMechanicsHardeningModel & _cstrength
Hardening model for compressive strength.
virtual void preReturnMap(Real p_trial, Real q_trial, 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...
virtual void setStressAfterReturn(const RankTwoTensor &stress_trial, Real p_ok, Real q_ok, Real gaE, const std::vector< Real > &intnl, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, RankTwoTensor &stress) const override
Sets stress from the admissible parameters.
virtual void finalizeReturnProcess(const RankTwoTensor &rotation_increment) override
Derived classes may use this to perform calculations after the return-map process has completed succe...
static InputParameters validParams()
StressReturnType
This allows some simplification in the return-map process.
Struct designed to hold info about a single yield function and its derivatives, as well as the flow d...
virtual RankFourTensor d2qdstress2(const RankTwoTensor &stress) const override
d2(q)/d(stress)/d(stress) Derived classes must override this
Rate-independent non-associative Drucker Prager with hardening/softening.
virtual RankFourTensor d2pdstress2(const RankTwoTensor &stress) const override
d2(p)/d(stress)/d(stress) Derived classes must override this
CappedDruckerPragerStressUpdate performs the return-map algorithm and associated stress updates for p...
virtual void initializeReturnProcess() override
Derived classes may use this to perform calculations before any return-map process is performed,...
const bool _small_dilation
If true, and if the trial stress exceeds the tensile strength, then the user gaurantees that the retu...
TwoParameterPlasticityStressUpdate performs the return-map algorithm and associated stress updates fo...
virtual void computeAllQ(Real p, Real q, const std::vector< Real > &intnl, std::vector< yieldAndFlow > &all_q) const override
Completely fills all_q with correct values.
enum CappedDruckerPragerStressUpdate::StressReturnType _stress_return_type
virtual void setEppEqq(const RankFourTensor &Eijkl, Real &Epp, Real &Eqq) const override
Set Epp and Eqq based on the elasticity tensor Derived classes must override this.
const TensorMechanicsPlasticDruckerPrager & _dp
Hardening model for cohesion, friction and dilation angles.
bool requiresIsotropicTensor() override
Does the model require the elasticity tensor to be isotropic?
virtual void initializeVars(Real p_trial, Real q_trial, const std::vector< Real > &intnl_old, Real &p, Real &q, Real &gaE, std::vector< Real > &intnl) const override
Sets (p, q, gaE, intnl) at "good guesses" of the solution to the Return-Map algorithm.
InputParameters validParams< CappedDruckerPragerStressUpdate >()
virtual RankTwoTensor dqdstress(const RankTwoTensor &stress) const override
d(q)/d(stress) Derived classes must override this
virtual void setIntnlValues(Real p_trial, Real q_trial, Real p, Real q, const std::vector< Real > &intnl_old, std::vector< Real > &intnl) const override
Sets the internal parameters based on the trial values of p and q, their current values,...
virtual void yieldFunctionValues(Real p, Real q, const std::vector< Real > &intnl, std::vector< Real > &yf) const override
Computes the values of the yield functions, given p, q and intnl parameters.
Real _in_q_trial
trial value of q
virtual void computePQ(const RankTwoTensor &stress, Real &p, Real &q) const override
Computes p and q, given stress.
virtual RankTwoTensor dpdstress(const RankTwoTensor &stress) const override
d(p)/d(stress) Derived classes must override this
virtual void setIntnlDerivatives(Real p_trial, Real q_trial, Real p, Real q, 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 p and q,...
const Real _small_smoother2
The cone vertex is smoothed by this amount.
const bool _perfect_guess
Initialize the NR proceedure from a guess coming from perfect plasticity.
const TensorMechanicsHardeningModel & _tstrength
Hardening model for tensile strength.
bool isIsotropic() override
Is the implmented model isotropic? The safe default is 'false'.
CappedDruckerPragerStressUpdate(const InputParameters ¶meters)
Hardening Model base class.