www.mooseframework.org
NodalDamageIndexPD.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 "NodalDamageIndexPD.h"
11 #include "PeridynamicsMesh.h"
12 #include "AuxiliarySystem.h"
13 
14 registerMooseObject("PeridynamicsApp", NodalDamageIndexPD);
15 
16 template <>
17 InputParameters
19 {
20  InputParameters params = validParams<NodalAuxVariableUserObjectBasePD>();
21  params.addClassDescription("Class for computing damage index for each material point in "
22  "peridynamic fracture modeling and simulation");
23 
24  params.set<ExecFlagEnum>("execute_on") = {EXEC_INITIAL, EXEC_TIMESTEP_END};
25 
26  return params;
27 }
28 
29 NodalDamageIndexPD::NodalDamageIndexPD(const InputParameters & parameters)
31 {
32 }
33 
34 void
35 NodalDamageIndexPD::computeValue(unsigned int id, dof_id_type dof)
36 {
37  Real neighbor_vol = _pdmesh.getPDNodeVolume(_current_elem->node_id(1 - id));
38  Real node_vol_sum = _pdmesh.getHorizVolume(_current_elem->node_id(id));
39 
40  if (_bond_status_var->getElementalValue(_current_elem) < 0.5)
41  _aux_sln.add(dof, neighbor_vol / node_vol_sum);
42 }
NodalDamageIndexPD
UserObject class to compute damage index for each material point in PD fracture modeling and simulati...
Definition: NodalDamageIndexPD.h:23
PeridynamicsMesh::getPDNodeVolume
Real getPDNodeVolume(dof_id_type node_id)
Function to return nodal volume for node node_id.
Definition: PeridynamicsMesh.C:435
NodalDamageIndexPD::NodalDamageIndexPD
NodalDamageIndexPD(const InputParameters &parameters)
Definition: NodalDamageIndexPD.C:29
registerMooseObject
registerMooseObject("PeridynamicsApp", NodalDamageIndexPD)
NodalAuxVariableUserObjectBasePD
UserObject base class to compute nodal quantities stored as AuxVariable at a material point based on ...
Definition: NodalAuxVariableUserObjectBasePD.h:23
NodalDamageIndexPD.h
PeridynamicsMesh.h
NodalDamageIndexPD::computeValue
virtual void computeValue(unsigned int id, dof_id_type dof) override
Function to assemble elemental quantities to nodal AuxVariable at a material point.
Definition: NodalDamageIndexPD.C:35
validParams< NodalAuxVariableUserObjectBasePD >
InputParameters validParams< NodalAuxVariableUserObjectBasePD >()
Definition: NodalAuxVariableUserObjectBasePD.C:17
PeridynamicsMesh::getHorizVolume
Real getHorizVolume(dof_id_type node_id)
Function to return summation of neighbor nodal volumes for node node_id.
Definition: PeridynamicsMesh.C:444
ElementUserObjectBasePD::_bond_status_var
MooseVariable * _bond_status_var
Bond status aux variable.
Definition: ElementUserObjectBasePD.h:30
validParams< NodalDamageIndexPD >
InputParameters validParams< NodalDamageIndexPD >()
Definition: NodalDamageIndexPD.C:18
ElementUserObjectBasePD::_aux_sln
NumericVector< Number > & _aux_sln
Solution vector for aux variables.
Definition: ElementUserObjectBasePD.h:36
ElementUserObjectBasePD::_pdmesh
PeridynamicsMesh & _pdmesh
Reference to Peridynamic mesh.
Definition: ElementUserObjectBasePD.h:39