www.mooseframework.org
PeridynamicsMaterialBase.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 
11 
12 template <>
13 InputParameters
15 {
16  InputParameters params = validParams<Material>();
17  params.addClassDescription("Base class for peridynamics material models");
18 
19  return params;
20 }
21 
22 PeridynamicsMaterialBase::PeridynamicsMaterialBase(const InputParameters & parameters)
23  : Material(parameters),
24  _pdmesh(dynamic_cast<PeridynamicsMesh &>(_mesh)),
25  _dim(_pdmesh.dimension()),
26  _nnodes(2),
27  _horiz_rad(_nnodes),
28  _node_vol(_nnodes),
29  _horiz_vol(_nnodes)
30 {
31 }
32 
33 void
35 {
36  for (unsigned int i = 0; i < _nnodes; ++i)
37  {
38  _horiz_rad[i] = _pdmesh.getHorizon(_current_elem->node_id(i));
39  _node_vol[i] = _pdmesh.getPDNodeVolume(_current_elem->node_id(i));
40  _horiz_vol[i] = _pdmesh.getHorizVolume(_current_elem->node_id(i));
41  }
42 
43  _origin_vec = _pdmesh.getPDNodeCoord(_current_elem->node_id(1)) -
44  _pdmesh.getPDNodeCoord(_current_elem->node_id(0));
45  _origin_length = _origin_vec.norm();
46 }
PeridynamicsMaterialBase::_origin_length
Real _origin_length
Definition: PeridynamicsMaterialBase.h:43
PeridynamicsMaterialBase::_nnodes
const unsigned int _nnodes
Definition: PeridynamicsMaterialBase.h:37
PeridynamicsMesh::getPDNodeVolume
Real getPDNodeVolume(dof_id_type node_id)
Function to return nodal volume for node node_id.
Definition: PeridynamicsMesh.C:435
validParams< PeridynamicsMaterialBase >
InputParameters validParams< PeridynamicsMaterialBase >()
Definition: PeridynamicsMaterialBase.C:14
PeridynamicsMaterialBase::_origin_vec
RealGradient _origin_vec
Definition: PeridynamicsMaterialBase.h:42
PeridynamicsMaterialBase::PeridynamicsMaterialBase
PeridynamicsMaterialBase(const InputParameters &parameters)
Definition: PeridynamicsMaterialBase.C:22
PeridynamicsMaterialBase::setupMeshRelatedData
void setupMeshRelatedData()
Function to setup mesh related data to be used in this class.
Definition: PeridynamicsMaterialBase.C:34
PeridynamicsMesh
Peridynamics mesh class.
Definition: PeridynamicsMesh.h:25
PeridynamicsMaterialBase::_node_vol
std::vector< Real > _node_vol
Definition: PeridynamicsMaterialBase.h:39
PeridynamicsMesh::getPDNodeCoord
Point getPDNodeCoord(dof_id_type node_id)
Function to return coordinates for node node_id.
Definition: PeridynamicsMesh.C:420
PeridynamicsMesh::getHorizon
Real getHorizon(dof_id_type node_id)
Function to return horizon size.
Definition: PeridynamicsMesh.C:471
PeridynamicsMaterialBase::_pdmesh
PeridynamicsMesh & _pdmesh
Mesh related information for material points of current bond/element.
Definition: PeridynamicsMaterialBase.h:35
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
PeridynamicsMaterialBase::_horiz_rad
std::vector< Real > _horiz_rad
Definition: PeridynamicsMaterialBase.h:38
PeridynamicsMaterialBase::_horiz_vol
std::vector< Real > _horiz_vol
Definition: PeridynamicsMaterialBase.h:40
PeridynamicsMaterialBase.h