www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
RankTwoBasedFailureCriteriaNOSPD Class Reference

Rank two tensor based failure ctriteria to update the bond status for non-ordinary state-based model. More...

#include <RankTwoBasedFailureCriteriaNOSPD.h>

Inheritance diagram for RankTwoBasedFailureCriteriaNOSPD:
[legend]

Public Member Functions

 RankTwoBasedFailureCriteriaNOSPD (const InputParameters &parameters)
 

Protected Member Functions

virtual Real computeFailureCriterionValue () override
 Function to compute the value of a given failure criterion. More...
 
virtual Real computeValue () override
 

Protected Attributes

MooseEnum _failure_criterion
 MooseEnum used to control which failure criterion to use. More...
 
const MaterialProperty< RankTwoTensor > * _tensor
 Material property containing the rank two tensor. More...
 
MooseVariable * _bond_status_var
 Bond_status variable. More...
 
const VariableValue & _critical_val
 Critical AuxVariable. More...
 
PeridynamicsMesh_pdmesh
 Reference to peridynamic mesh object. More...
 
const unsigned int _dim
 Problem dimension. More...
 

Detailed Description

Rank two tensor based failure ctriteria to update the bond status for non-ordinary state-based model.

Definition at line 24 of file RankTwoBasedFailureCriteriaNOSPD.h.

Constructor & Destructor Documentation

◆ RankTwoBasedFailureCriteriaNOSPD()

RankTwoBasedFailureCriteriaNOSPD::RankTwoBasedFailureCriteriaNOSPD ( const InputParameters &  parameters)

Definition at line 34 of file RankTwoBasedFailureCriteriaNOSPD.C.

36  : BondStatusBasePD(parameters),
37  _failure_criterion(getParam<MooseEnum>("failure_criterion")),
38  _tensor(nullptr)
39 {
40  if (hasMaterialProperty<RankTwoTensor>("rank_two_tensor"))
41  _tensor = &getMaterialProperty<RankTwoTensor>("rank_two_tensor");
42  else
43  mooseError("Error in RankTwoBasedFailureCriteriaNOSPD! Required rank two tensor is not "
44  "available for current peridynamics model!");
45 }

Member Function Documentation

◆ computeFailureCriterionValue()

Real RankTwoBasedFailureCriteriaNOSPD::computeFailureCriterionValue ( )
overrideprotectedvirtual

Function to compute the value of a given failure criterion.

Positive value indicates the critical value is exceeded. Otherwise, the critical value is not reached yet

Returns
failure criterion value

Implements BondStatusBasePD.

Definition at line 48 of file RankTwoBasedFailureCriteriaNOSPD.C.

49 {
50  Real val = 0.0;
51  RankTwoTensor avg_tensor = 0.5 * ((*_tensor)[0] + (*_tensor)[1]);
52  Point dirc;
53 
54  switch (_failure_criterion)
55  {
56  case 0:
58  avg_tensor, *_current_elem->node_ptr(0), *_current_elem->node_ptr(1), dirc);
59  break;
60  case 1:
61  val = RankTwoScalarTools::maxPrincipal(avg_tensor, dirc);
62  break;
63  case 2:
64  val = 4.0 / 3.0 * RankTwoScalarTools::maxShear(avg_tensor);
65  break;
66  case 3:
67  val = 2.0 * RankTwoScalarTools::maxShear(avg_tensor);
68  break;
69  case 4:
70  val = RankTwoScalarTools::effectiveStrain(avg_tensor);
71  break;
72  case 5:
73  val = RankTwoScalarTools::vonMisesStress(avg_tensor);
74  break;
75  default:
76  mooseError("Unsupported rank two tensor-based failure criterion. Choose from: Axial "
77  "MaxPrincipal TrescaStrain TrescaStress VonMisesStrain VonMisesStress");
78  }
79 
80  return val - _critical_val[0];
81 }

◆ computeValue()

Real BondStatusBasePD::computeValue ( )
overrideprotectedvirtualinherited

Definition at line 35 of file BondStatusBasePD.C.

36 {
37  Real val = 0.0;
38 
39  if (_bond_status_var->getElementalValue(_current_elem) > 0.5) // unbroken bond
40  {
41  Real failure_criterion_val = computeFailureCriterionValue();
42  if (failure_criterion_val < 0.0) // unmet failure criterion
43  val = 1.0; // bond is still unbroken
44  }
45 
46  return val;
47 }

Member Data Documentation

◆ _bond_status_var

MooseVariable* BondStatusBasePD::_bond_status_var
protectedinherited

Bond_status variable.

Definition at line 42 of file BondStatusBasePD.h.

Referenced by BondStatusBasePD::computeValue().

◆ _critical_val

const VariableValue& BondStatusBasePD::_critical_val
protectedinherited

Critical AuxVariable.

Definition at line 45 of file BondStatusBasePD.h.

Referenced by StretchBasedFailureCriterionPD::computeFailureCriterionValue(), and computeFailureCriterionValue().

◆ _dim

const unsigned int AuxKernelBasePD::_dim
protectedinherited

Problem dimension.

Definition at line 33 of file AuxKernelBasePD.h.

Referenced by NodalRankTwoPD::computeNodalTotalStrain(), and NodalRankTwoPD::NodalRankTwoPD().

◆ _failure_criterion

MooseEnum RankTwoBasedFailureCriteriaNOSPD::_failure_criterion
protected

MooseEnum used to control which failure criterion to use.

Definition at line 33 of file RankTwoBasedFailureCriteriaNOSPD.h.

Referenced by computeFailureCriterionValue().

◆ _pdmesh

PeridynamicsMesh& AuxKernelBasePD::_pdmesh
protectedinherited

Reference to peridynamic mesh object.

Definition at line 30 of file AuxKernelBasePD.h.

Referenced by NodalRankTwoPD::computeNodalTotalStrain(), BoundaryOffsetPD::computeValue(), and NodalVolumePD::computeValue().

◆ _tensor

const MaterialProperty<RankTwoTensor>* RankTwoBasedFailureCriteriaNOSPD::_tensor
protected

Material property containing the rank two tensor.

Definition at line 36 of file RankTwoBasedFailureCriteriaNOSPD.h.

Referenced by RankTwoBasedFailureCriteriaNOSPD().


The documentation for this class was generated from the following files:
RankTwoScalarTools::effectiveStrain
T effectiveStrain(const RankTwoTensorTempl< T > &strain)
Definition: RankTwoScalarTools.h:77
RankTwoScalarTools::maxShear
T maxShear(const RankTwoTensorTempl< T > &stress)
Definition: RankTwoScalarTools.h:392
RankTwoScalarTools::axialStress
T axialStress(const RankTwoTensorTempl< T > &stress, const Point &point1, const Point &point2, Point &direction)
Definition: RankTwoScalarTools.h:258
BondStatusBasePD::BondStatusBasePD
BondStatusBasePD(const InputParameters &parameters)
Definition: BondStatusBasePD.C:27
BondStatusBasePD::computeFailureCriterionValue
virtual Real computeFailureCriterionValue()=0
Function to compute the value of a given failure criterion.
BondStatusBasePD::_bond_status_var
MooseVariable * _bond_status_var
Bond_status variable.
Definition: BondStatusBasePD.h:42
RankTwoScalarTools::maxPrincipal
T maxPrincipal(const RankTwoTensorTempl< T > &r2tensor, Point &direction)
Definition: RankTwoScalarTools.h:217
RankTwoBasedFailureCriteriaNOSPD::_tensor
const MaterialProperty< RankTwoTensor > * _tensor
Material property containing the rank two tensor.
Definition: RankTwoBasedFailureCriteriaNOSPD.h:36
RankTwoBasedFailureCriteriaNOSPD::_failure_criterion
MooseEnum _failure_criterion
MooseEnum used to control which failure criterion to use.
Definition: RankTwoBasedFailureCriteriaNOSPD.h:33
RankTwoScalarTools::vonMisesStress
T vonMisesStress(const RankTwoTensorTempl< T > &stress)
Definition: RankTwoScalarTools.h:64
RankTwoTensorTempl< Real >
BondStatusBasePD::_critical_val
const VariableValue & _critical_val
Critical AuxVariable.
Definition: BondStatusBasePD.h:45