20 "Class for rank two tensor based failure criteria in non-ordinary state-based model");
23 "The rank two material tensor name");
25 "Axial MaxPrincipal TrescaStrain TrescaStress VonMisesStrain VonMisesStress");
27 FailureCriterionTypes,
28 "Which stress based failure criterion to be used");
36 _failure_criterion(getParam<
MooseEnum>(
"failure_criterion")),
39 if (hasMaterialProperty<RankTwoTensor>(
"rank_two_tensor"))
40 _tensor = &getMaterialProperty<RankTwoTensor>(
"rank_two_tensor");
42 mooseError(
"Error in RankTwoBasedFailureCriteriaNOSPD! Required rank two tensor is not " 43 "available for current peridynamics model!");
46 paramError(
"variable",
"This AuxKernel only supports Elemental fields");
53 RankTwoTensor avg_tensor = 0.5 * ((*_tensor)[0] + (*_tensor)[1]);
78 mooseError(
"Unsupported rank two tensor-based failure criterion. Choose from: Axial " 79 "MaxPrincipal TrescaStrain TrescaStress VonMisesStrain VonMisesStress");
virtual Real computeFailureCriterionValue() override
Function to compute the value of a given failure criterion.
registerMooseObject("PeridynamicsApp", RankTwoBasedFailureCriteriaNOSPD)
static InputParameters validParams()
static InputParameters validParams()
MooseEnum _failure_criterion
MooseEnum used to control which failure criterion to use.
RankTwoBasedFailureCriteriaNOSPD(const InputParameters ¶meters)
void paramError(const std::string ¶m, Args... args) const
const VariableValue & _critical_val
Critical AuxVariable.
Base AuxKernel class for different failure criteria to update the bond status A bond is broken and th...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
const Elem *const & _current_elem
const MaterialProperty< RankTwoTensor > * _tensor
Material property containing the rank two tensor.
Rank two tensor based failure ctriteria to update the bond status for non-ordinary state-based model...