20 "yield_function_tolerance>0",
21 "If the yield function is less than this amount, the "
22 "(stress, internal parameter) are deemed admissible.");
24 "internal_constraint_tolerance>0",
25 "The Newton-Raphson process is only deemed converged "
26 "if the internal constraint is less than this.");
28 "Plastic Model base class. Override the virtual functions in your class");
34 _f_tol(getParam<Real>(
"yield_function_tolerance")),
35 _ic_tol(getParam<Real>(
"internal_constraint_tolerance"))
69 std::vector<Real> &
f)
const
84 std::vector<RankTwoTensor> & df_dstress)
const
98 std::vector<Real> & df_dintnl)
const
111 std::vector<RankTwoTensor> & r)
const
125 std::vector<RankFourTensor> & dr_dstress)
const
139 std::vector<RankTwoTensor> & dr_dintnl)
const
152 std::vector<Real> & h)
const
166 std::vector<RankTwoTensor> & dh_dstress)
const
180 std::vector<Real> & dh_dintnl)
const
190 std::vector<bool> & act,
194 "f incorrectly sized at " <<
f.size() <<
" in activeConstraints");
197 act[surface] = (
f[surface] >
_f_tol);
225 std::vector<Real> & ,
227 std::vector<Real> & yf,
228 bool & trial_stress_inadmissible)
const
230 trial_stress_inadmissible =
false;
235 trial_stress_inadmissible =
true;
248 return (dpm == 0 && yf <=
_f_tol) || (dpm > -dpm_tol && yf <= _f_tol && yf >= -
_f_tol);
258 const std::vector<Real> & )
const
Real f(Real x)
Test function for Brents method.
static InputParameters validParams()
virtual RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const
The flow potential.
virtual void dhardPotential_dintnlV(const RankTwoTensor &stress, Real intnl, std::vector< Real > &dh_dintnl) const
The derivative of the hardening potential with respect to the internal parameter.
virtual Real dyieldFunction_dintnl(const RankTwoTensor &stress, Real intnl) const
The derivative of yield function with respect to the internal parameter.
virtual void dyieldFunction_dintnlV(const RankTwoTensor &stress, Real intnl, std::vector< Real > &df_dintnl) const
The derivative of yield functions with respect to the internal parameter.
virtual RankTwoTensor dhardPotential_dstress(const RankTwoTensor &stress, Real intnl) const
The derivative of the hardening potential with respect to stress.
virtual void dflowPotential_dstressV(const RankTwoTensor &stress, Real intnl, std::vector< RankFourTensor > &dr_dstress) const
The derivative of the flow potential with respect to stress.
virtual void flowPotentialV(const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &r) const
The flow potentials.
virtual bool useCustomCTO() const
Returns false. You will want to override this in your derived class if you write a custom consistent ...
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
Calculates a custom consistent tangent operator.
virtual void dhardPotential_dstressV(const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &dh_dstress) const
The derivative of the hardening potential with respect to stress.
virtual Real yieldFunction(const RankTwoTensor &stress, Real intnl) const
The following functions are what you should override when building single-plasticity models.
virtual std::string modelName() const =0
virtual void dyieldFunction_dstressV(const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &df_dstress) const
The derivative of yield functions with respect to stress.
virtual bool useCustomReturnMap() const
Returns false. You will want to override this in your derived class if you write a custom returnMap f...
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
Performs a custom return-map.
virtual RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const
The derivative of yield function with respect to stress.
virtual void dflowPotential_dintnlV(const RankTwoTensor &stress, Real intnl, std::vector< RankTwoTensor > &dr_dintnl) const
The derivative of the flow potential with respect to the internal parameter.
virtual void hardPotentialV(const RankTwoTensor &stress, Real intnl, std::vector< Real > &h) const
The hardening potential.
virtual Real hardPotential(const RankTwoTensor &stress, Real intnl) const
The hardening potential.
bool KuhnTuckerSingleSurface(Real yf, Real dpm, Real dpm_tol) const
Returns true if the Kuhn-Tucker conditions for the single surface are satisfied.
virtual RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const
The derivative of the flow potential with respect to stress.
SolidMechanicsPlasticModel(const InputParameters ¶meters)
virtual unsigned int numberSurfaces() const
The number of yield surfaces for this plasticity model.
virtual RankTwoTensor dflowPotential_dintnl(const RankTwoTensor &stress, Real intnl) const
The derivative of the flow potential with respect to the internal parameter.
virtual Real dhardPotential_dintnl(const RankTwoTensor &stress, Real intnl) const
The derivative of the hardening potential with respect to the internal parameter.
const Real _f_tol
Tolerance on yield function.
virtual void yieldFunctionV(const RankTwoTensor &stress, Real intnl, std::vector< Real > &f) const
Calculates the yield functions.
virtual void activeConstraints(const std::vector< Real > &f, const RankTwoTensor &stress, Real intnl, const RankFourTensor &Eijkl, std::vector< bool > &act, RankTwoTensor &returned_stress) const
The active yield surfaces, given a vector of yield functions.
static InputParameters validParams()