Go to the documentation of this file.
39 std::vector<RankTwoTensor> & df_dstress)
const override;
43 std::vector<Real> & df_dintnl)
const override;
47 std::vector<RankTwoTensor> & r)
const override;
51 std::vector<RankFourTensor> & dr_dstress)
const override;
55 std::vector<RankTwoTensor> & dr_dintnl)
const override;
61 std::vector<bool> & act,
64 virtual std::string
modelName()
const override;
71 Real ep_plastic_tolerance,
73 Real & returned_intnl,
74 std::vector<Real> & dpm,
76 std::vector<Real> & yf,
77 bool & trial_stress_inadmissible)
const override;
81 virtual Real
cohesion(
const Real internal_param)
const;
84 virtual Real
dcohesion(
const Real internal_param)
const;
87 virtual Real
phi(
const Real internal_param)
const;
90 virtual Real
dphi(
const Real internal_param)
const;
93 virtual Real
psi(
const Real internal_param)
const;
96 virtual Real
dpsi(
const Real internal_param)
const;
127 Real e0, Real e1, Real e2, Real sinphi, Real cohcos, std::vector<Real> & f)
const;
134 void df_dsig(
const RankTwoTensor & stress, Real sin_angle, std::vector<RankTwoTensor> & df)
const;
144 std::vector<Real> & eigvals,
145 std::vector<RankTwoTensor> & deigvals)
const;
155 const std::vector<Real> & dpm,
156 Real ep_plastic_tolerance)
const;
166 Real ep_plastic_tolerance,
168 Real & returned_intnl,
169 std::vector<Real> & dpm,
171 std::vector<Real> & yf,
172 bool & trial_stress_inadmissible)
const;
200 bool returnTip(
const std::vector<Real> & eigvals,
201 const std::vector<RealVectorValue> & n,
202 std::vector<Real> & dpm,
209 Real ep_plastic_tolerance,
210 std::vector<Real> & yf)
const;
234 bool returnPlane(
const std::vector<Real> & eigvals,
235 const std::vector<RealVectorValue> & n,
236 std::vector<Real> & dpm,
243 Real ep_plastic_tolerance,
244 std::vector<Real> & yf)
const;
271 const std::vector<RealVectorValue> & n,
272 std::vector<Real> & dpm,
280 Real ep_plastic_tolerance,
281 std::vector<Real> & yf)
const;
308 const std::vector<RealVectorValue> & n,
309 std::vector<Real> & dpm,
317 Real ep_plastic_tolerance,
318 std::vector<Real> & yf)
const;
const unsigned int _max_iters
Maximum Newton-Raphison iterations in the custom returnMap algorithm.
FiniteStrainMohrCoulombMulti implements rate-independent non-associative mohr-coulomb with hardening/...
void df_dsig(const RankTwoTensor &stress, Real sin_angle, std::vector< RankTwoTensor > &df) const
this is exactly dyieldFunction_dstress, or flowPotential, depending on whether sin_angle = sin(phi),...
virtual Real dpsi(const Real internal_param) const
d(psi)/d(internal_param) as a function of residual value, rate, and internal_param
virtual std::string modelName() const override
virtual void flowPotentialV(const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &r) const override
The flow potentials.
bool returnEdge000101(const std::vector< Real > &eigvals, const std::vector< RealVectorValue > &n, std::vector< Real > &dpm, RankTwoTensor &returned_stress, Real intnl_old, Real &sinphi, Real &cohcos, Real initial_guess, Real mag_E, bool &nr_converged, Real ep_plastic_tolerance, std::vector< Real > &yf) const
Tries to return-map to the MC edge using the n[4] and n[6] directions The return value is true if the...
bool returnPlane(const std::vector< Real > &eigvals, const std::vector< RealVectorValue > &n, std::vector< Real > &dpm, RankTwoTensor &returned_stress, Real intnl_old, Real &sinphi, Real &cohcos, Real initial_guess, bool &nr_converged, Real ep_plastic_tolerance, std::vector< Real > &yf) const
Tries to return-map to the MC plane using the n[3] direction The return value is true if the internal...
bool KuhnTuckerOK(const std::vector< Real > &yf, const std::vector< Real > &dpm, Real ep_plastic_tolerance) const
Returns true if the Kuhn-Tucker conditions are satisfied.
virtual void dflowPotential_dintnlV(const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &dr_dintnl) const override
The derivative of the flow potential with respect to the internal parameter.
bool returnEdge010100(const std::vector< Real > &eigvals, const std::vector< RealVectorValue > &n, std::vector< Real > &dpm, RankTwoTensor &returned_stress, Real intnl_old, Real &sinphi, Real &cohcos, Real initial_guess, Real mag_E, bool &nr_converged, Real ep_plastic_tolerance, std::vector< Real > &yf) const
Tries to return-map to the MC edge using the n[1] and n[3] directions The return value is true if the...
virtual Real dphi(const Real internal_param) const
d(phi)/d(internal_param) as a function of residual value, rate, and internal_param
static InputParameters validParams()
InputParameters validParams< TensorMechanicsPlasticMohrCoulombMulti >()
virtual Real cohesion(const Real internal_param) const
cohesion as a function of residual value, rate, and internal_param
const TensorMechanicsHardeningModel & _cohesion
Hardening model for cohesion.
const TensorMechanicsHardeningModel & _phi
Hardening model for phi.
const Real _shift
yield function is shifted by this amount to avoid problems with stress-derivatives at equal eigenvalu...
bool doReturnMap(const RankTwoTensor &trial_stress, Real intnl_old, const RankFourTensor &E_ijkl, Real ep_plastic_tolerance, RankTwoTensor &returned_stress, Real &returned_intnl, std::vector< Real > &dpm, RankTwoTensor &delta_dp, std::vector< Real > &yf, bool &trial_stress_inadmissible) const
See doco for returnMap function.
virtual void dyieldFunction_dstressV(const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &df_dstress) const override
The derivative of yield functions with respect to stress.
const TensorMechanicsHardeningModel & _psi
Hardening model for psi.
virtual void activeConstraints(const std::vector< Real > &f, const RankTwoTensor &stress, Real intnl, const RankFourTensor &Eijkl, std::vector< bool > &act, RankTwoTensor &returned_stress) const override
The active yield surfaces, given a vector of yield functions.
virtual Real dcohesion(const Real internal_param) const
d(cohesion)/d(internal_param) as a function of residual value, rate, and internal_param
virtual void dflowPotential_dstressV(const RankTwoTensor &stress, Real intnl, std::vector< RankFourTensor > &dr_dstress) const override
The derivative of the flow potential with respect to stress.
virtual bool returnMap(const RankTwoTensor &trial_stress, Real intnl_old, const RankFourTensor &E_ijkl, Real ep_plastic_tolerance, RankTwoTensor &returned_stress, Real &returned_intnl, std::vector< Real > &dpm, RankTwoTensor &delta_dp, std::vector< Real > &yf, bool &trial_stress_inadmissible) const override
Performs a custom return-map.
bool returnTip(const std::vector< Real > &eigvals, const std::vector< RealVectorValue > &n, std::vector< Real > &dpm, RankTwoTensor &returned_stress, Real intnl_old, Real &sinphi, Real &cohcos, Real initial_guess, bool &nr_converged, Real ep_plastic_tolerance, std::vector< Real > &yf) const
Tries to return-map to the MC tip using the THREE directions given in n, and THREE dpm values are ret...
TensorMechanicsPlasticMohrCoulombMulti(const InputParameters ¶meters)
Plastic Model base class The virtual functions written below must be over-ridden in derived classes t...
virtual Real psi(const Real internal_param) const
psi as a function of residual value, rate, and internal_param
virtual void dyieldFunction_dintnlV(const RankTwoTensor &stress, Real intnl, std::vector< Real > &df_dintnl) const override
The derivative of yield functions with respect to the internal parameter.
void perturbStress(const RankTwoTensor &stress, std::vector< Real > &eigvals, std::vector< RankTwoTensor > &deigvals) const
perturbs the stress tensor in the case of almost-equal eigenvalues.
virtual unsigned int numberSurfaces() const override
The number of yield surfaces for this plasticity model.
virtual bool useCustomReturnMap() const override
Returns false. You will want to override this in your derived class if you write a custom returnMap f...
virtual void yieldFunctionV(const RankTwoTensor &stress, Real intnl, std::vector< Real > &f) const override
Calculates the yield functions.
void yieldFunctionEigvals(Real e0, Real e1, Real e2, Real sinphi, Real cohcos, std::vector< Real > &f) const
Calculates the yield functions given the eigenvalues of stress.
const bool _use_custom_returnMap
Whether to use the custom return-map algorithm.
virtual Real phi(const Real internal_param) const
phi as a function of residual value, rate, and internal_param
Hardening Model base class.