Go to the documentation of this file.
38 std::vector<RankTwoTensor> & df_dstress)
const override;
42 std::vector<Real> & df_dintnl)
const override;
46 std::vector<RankTwoTensor> & r)
const override;
50 std::vector<RankFourTensor> & dr_dstress)
const override;
54 std::vector<RankTwoTensor> & dr_dintnl)
const override;
60 std::vector<bool> & act,
63 virtual std::string
modelName()
const override;
72 Real ep_plastic_tolerance,
74 Real & returned_intnl,
75 std::vector<Real> & dpm,
77 std::vector<Real> & yf,
78 bool & trial_stress_inadmissible)
const override;
86 const std::vector<Real> & cumulative_pm)
const override;
111 Real
dot(
const std::vector<Real> & a,
const std::vector<Real> & b)
const;
114 Real
triple(
const std::vector<Real> & a,
115 const std::vector<Real> & b,
116 const std::vector<Real> & c)
const;
134 bool returnTip(
const std::vector<Real> & eigvals,
135 const std::vector<RealVectorValue> & n,
136 std::vector<Real> & dpm,
139 Real initial_guess)
const;
158 bool returnEdge(
const std::vector<Real> & eigvals,
159 const std::vector<RealVectorValue> & n,
160 std::vector<Real> & dpm,
163 Real initial_guess)
const;
182 bool returnPlane(
const std::vector<Real> & eigvals,
183 const std::vector<RealVectorValue> & n,
184 std::vector<Real> & dpm,
187 Real initial_guess)
const;
199 const std::vector<Real> & dpm,
201 Real ep_plastic_tolerance)
const;
211 Real ep_plastic_tolerance,
213 Real & returned_intnl,
214 std::vector<Real> & dpm,
216 std::vector<Real> & yf,
217 bool & trial_stress_inadmissible)
const;
virtual Real tensile_strength(const Real internal_param) const
tensile strength as a function of residual value, rate, and internal_param
const Real _shift
yield function is shifted by this amount to avoid problems with stress-derivatives at equal eigenvalu...
bool returnTip(const std::vector< Real > &eigvals, const std::vector< RealVectorValue > &n, std::vector< Real > &dpm, RankTwoTensor &returned_stress, Real intnl_old, Real initial_guess) const
Tries to return-map to the Tensile tip.
InputParameters validParams< TensorMechanicsPlasticTensileMulti >()
const TensorMechanicsHardeningModel & _strength
const bool _use_custom_returnMap
Whether to use the custom return-map algorithm.
bool KuhnTuckerOK(const RankTwoTensor &returned_diagonal_stress, const std::vector< Real > &dpm, Real str, Real ep_plastic_tolerance) const
Returns true if the Kuhn-Tucker conditions are satisfied.
Real triple(const std::vector< Real > &a, const std::vector< Real > &b, const std::vector< Real > &c) const
triple product of three 3-dimensional vectors
virtual void yieldFunctionV(const RankTwoTensor &stress, Real intnl, std::vector< Real > &f) const override
Calculates the yield functions.
virtual void flowPotentialV(const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &r) const override
The flow potentials.
const bool _use_custom_cto
Whether to use the custom consistent tangent operator calculation.
virtual RankFourTensor consistentTangentOperator(const RankTwoTensor &trial_stress, Real intnl_old, const RankTwoTensor &stress, Real intnl, const RankFourTensor &E_ijkl, const std::vector< Real > &cumulative_pm) const override
Calculates a custom consistent tangent operator.
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.
TensorMechanicsPlasticTensileMulti(const InputParameters ¶meters)
bool returnPlane(const std::vector< Real > &eigvals, const std::vector< RealVectorValue > &n, std::vector< Real > &dpm, RankTwoTensor &returned_stress, Real intnl_old, Real initial_guess) const
Tries to return-map to the Tensile plane The return value is true if the internal Newton-Raphson proc...
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 unsigned int numberSurfaces() const override
The number of yield surfaces for this plasticity model.
static InputParameters validParams()
const unsigned int _max_iters
maximum iterations allowed in the custom return-map algorithm
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.
FiniteStrainTensileMulti implements rate-independent associative tensile failure with hardening/softe...
Real dot(const std::vector< Real > &a, const std::vector< Real > &b) const
dot product of two 3-dimensional vectors
bool returnEdge(const std::vector< Real > &eigvals, const std::vector< RealVectorValue > &n, std::vector< Real > &dpm, RankTwoTensor &returned_stress, Real intnl_old, Real initial_guess) const
Tries to return-map to the Tensile edge.
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.
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.
virtual 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
Just like returnMap, but a protected interface that definitely uses the algorithm,...
Plastic Model base class The virtual functions written below must be over-ridden in derived classes t...
virtual std::string modelName() const override
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 dyieldFunction_dstressV(const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &df_dstress) const override
The derivative of yield functions with respect to stress.
virtual bool useCustomCTO() const override
Returns false. You will want to override this in your derived class if you write a custom consistent ...
Hardening Model base class.
virtual Real dtensile_strength(const Real internal_param) const
d(tensile strength)/d(internal_param) as a function of residual value, rate, and internal_param