Go to the documentation of this file.
11 #include "RotationMatrix.h"
12 #include "RankFourTensor.h"
22 params.addRequiredParam<RealVectorValue>(
"normal_vector",
"The normal vector to the weak plane");
23 params.addClassDescription(
"Associative weak-plane tensile plasticity with hardening/softening, "
24 "with specified, fixed normal vector. (WeakPlaneTensile combined "
25 "with specifying N in the Material might be preferable to you.)");
31 const InputParameters & parameters)
33 _input_n(getParam<RealVectorValue>(
"normal_vector")),
38 mooseError(
"Weak plane tensile strength must not be negative");
40 mooseError(
"Weak-plane normal vector must not have zero length");
45 for (
unsigned i = 0; i < 3; ++i)
46 for (
unsigned j = 0; j < 3; ++j)
55 for (
unsigned i = 0; i < 3; ++i)
56 for (
unsigned j = 0; j < 3; ++j)
57 s22 +=
_rot(2, i) *
_rot(2, j) * stress(i, j);
99 return "WeakPlaneTensileN";
virtual Real tensile_strength(const Real internal_param) const
tensile strength as a function of residual value, rate, and internal_param
TensorMechanicsPlasticWeakPlaneTensileN(const InputParameters ¶meters)
Rate-independent associative weak-plane tensile failure with hardening/softening, and normal directio...
RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const override
The flow potential.
Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
The following functions are what you should override when building single-plasticity models.
RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to stress.
const TensorMechanicsHardeningModel & _strength
Yield function = _a * stress_zz - _strength;.
static InputParameters validParams()
RankTwoTensor dflowPotential_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to the internal parameter.
registerMooseObject("TensorMechanicsApp", TensorMechanicsPlasticWeakPlaneTensileN)
defineLegacyParams(TensorMechanicsPlasticWeakPlaneTensileN)
virtual Real value(Real intnl) const
Real dyieldFunction_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to the internal parameter.
RankTwoTensorTempl< Real > RankTwoTensor
RankTwoTensor _df_dsig
Flow direction, which is constant in this case.
virtual std::string modelName() const override
static InputParameters validParams()
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
RealTensorValue _rot
This rotation matrix rotates _input_n to (0, 0, 1)
RealVectorValue _input_n
Unit normal inputted by user.
RankFourTensorTempl< Real > RankFourTensor
RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
Rate-independent associative weak-plane tensile failure with hardening/softening of the tensile stren...