https://mooseframework.inl.gov
BondStatusBasePD.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #include "BondStatusBasePD.h"
11 #include "PeridynamicsMesh.h"
12 
15 {
17  params.addClassDescription("Base class for different failure criteria to update the bond status");
18 
19  params.addRequiredCoupledVar("critical_variable", "Name of critical AuxVariable");
20 
21  params.set<ExecFlagEnum>("execute_on", true) = EXEC_TIMESTEP_END;
22 
23  return params;
24 }
25 
27  : AuxKernelBasePD(parameters),
28  _bond_status_var(&_subproblem.getStandardVariable(_tid, "bond_status")),
29  _critical_val(coupledValue("critical_variable"))
30 {
31  if (isNodal())
32  paramError("variable", "This AuxKernel only supports Elemental fields");
33 }
34 
35 Real
37 {
38  Real val = 0.0;
39 
40  if (_bond_status_var->getElementalValue(_current_elem) > 0.5) // unbroken bond
41  {
42  Real failure_criterion_val = computeFailureCriterionValue();
43  if (failure_criterion_val < 0.0) // unmet failure criterion
44  val = 1.0; // bond is still unbroken
45  }
46 
47  return val;
48 }
virtual Real computeFailureCriterionValue()=0
Function to compute the value of a given failure criterion.
virtual Real computeValue() override
BondStatusBasePD(const InputParameters &parameters)
T & set(const std::string &name, bool quiet_mode=false)
Peridynamic Aux Kernel base class.
const ExecFlagType EXEC_TIMESTEP_END
static InputParameters validParams()
OutputData getElementalValue(const Elem *elem, unsigned int idx=0) const
void paramError(const std::string &param, Args... args) const
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
MooseVariable * _bond_status_var
Bond_status variable.
const Elem *const & _current_elem
void addClassDescription(const std::string &doc_string)