www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MechanicsMaterialBasePD Class Referenceabstract

Base material class for peridynamic solid mechanics models. More...

#include <MechanicsMaterialBasePD.h>

Inheritance diagram for MechanicsMaterialBasePD:
[legend]

Public Member Functions

 MechanicsMaterialBasePD (const InputParameters &parameters)
 

Protected Member Functions

void computeBondCurrentLength ()
 Function to compute the current bond length. More...
 
virtual void computeBondStretch ()=0
 Function to compute current bond stretch: one dimensional strain. More...
 
void setupMeshRelatedData ()
 Function to setup mesh related data to be used in this class. More...
 

Protected Attributes

MooseVariable * _bond_status_var
 Bond_status variable. More...
 
std::vector< MooseVariable * > _disp_var
 Displacement variables. More...
 
Real _current_length
 Length of current bond. More...
 
const bool _has_temp
 Temperature variables. More...
 
MooseVariable * _temp_var
 
MaterialProperty< Real > & _total_stretch
 Material properties to store. More...
 
MaterialProperty< Real > & _mechanical_stretch
 
PeridynamicsMesh_pdmesh
 Mesh related information for material points of current bond/element. More...
 
const unsigned int _dim
 
const unsigned int _nnodes
 
std::vector< Real > _horiz_rad
 
std::vector< Real > _node_vol
 
std::vector< Real > _horiz_vol
 
RealGradient _origin_vec
 
Real _origin_length
 

Detailed Description

Base material class for peridynamic solid mechanics models.

Definition at line 22 of file MechanicsMaterialBasePD.h.

Constructor & Destructor Documentation

◆ MechanicsMaterialBasePD()

MechanicsMaterialBasePD::MechanicsMaterialBasePD ( const InputParameters &  parameters)

Definition at line 26 of file MechanicsMaterialBasePD.C.

27  : PeridynamicsMaterialBase(parameters),
28  _has_temp(isCoupled("temperature")),
29  _temp_var(_has_temp ? getVar("temperature", 0) : nullptr),
30  _bond_status_var(&_subproblem.getStandardVariable(_tid, "bond_status")),
31  _total_stretch(declareProperty<Real>("total_stretch")),
32  _mechanical_stretch(declareProperty<Real>("mechanical_stretch"))
33 {
34  if (_dim != coupledComponents("displacements"))
35  mooseError("Size of displacements vector is different from the mesh dimension!");
36 
37  for (unsigned int i = 0; i < coupledComponents("displacements"); ++i)
38  _disp_var.push_back(getVar("displacements", i));
39 }

Member Function Documentation

◆ computeBondCurrentLength()

void MechanicsMaterialBasePD::computeBondCurrentLength ( )
protected

Function to compute the current bond length.

Definition at line 42 of file MechanicsMaterialBasePD.C.

43 {
44  RealGradient dxyz;
45  dxyz.zero();
46 
47  for (unsigned int i = 0; i < _dim; ++i)
48  {
49  dxyz(i) = (_pdmesh.getPDNodeCoord(_current_elem->node_id(1)))(i) +
50  _disp_var[i]->getNodalValue(*_current_elem->node_ptr(1));
51  dxyz(i) -= (_pdmesh.getPDNodeCoord(_current_elem->node_id(0)))(i) +
52  _disp_var[i]->getNodalValue(*_current_elem->node_ptr(0));
53  }
54 
55  _current_length = dxyz.norm();
56 }

Referenced by ParametricMaterialBasePD::computeProperties().

◆ computeBondStretch()

virtual void MechanicsMaterialBasePD::computeBondStretch ( )
protectedpure virtual

Function to compute current bond stretch: one dimensional strain.

Implemented in ParametricMaterialBasePD.

◆ setupMeshRelatedData()

void PeridynamicsMaterialBase::setupMeshRelatedData ( )
protectedinherited

Function to setup mesh related data to be used in this class.

Definition at line 34 of file PeridynamicsMaterialBase.C.

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 }

Referenced by ThermalMaterialBaseBPD::computeProperties(), and ParametricMaterialBasePD::computeProperties().

Member Data Documentation

◆ _bond_status_var

MooseVariable* MechanicsMaterialBasePD::_bond_status_var
protected

Bond_status variable.

Definition at line 44 of file MechanicsMaterialBasePD.h.

◆ _current_length

Real MechanicsMaterialBasePD::_current_length
protected

Length of current bond.

Definition at line 55 of file MechanicsMaterialBasePD.h.

Referenced by computeBondCurrentLength(), and ParametricMaterialBasePD::computeBondStretch().

◆ _dim

const unsigned int PeridynamicsMaterialBase::_dim
protectedinherited

◆ _disp_var

std::vector<MooseVariable *> MechanicsMaterialBasePD::_disp_var
protected

Displacement variables.

Definition at line 52 of file MechanicsMaterialBasePD.h.

Referenced by computeBondCurrentLength(), and MechanicsMaterialBasePD().

◆ _has_temp

const bool MechanicsMaterialBasePD::_has_temp
protected

Temperature variables.

Definition at line 39 of file MechanicsMaterialBasePD.h.

Referenced by ParametricMaterialBasePD::computeProperties().

◆ _horiz_rad

std::vector<Real> PeridynamicsMaterialBase::_horiz_rad
protectedinherited

◆ _horiz_vol

std::vector<Real> PeridynamicsMaterialBase::_horiz_vol
protectedinherited

◆ _mechanical_stretch

MaterialProperty<Real>& MechanicsMaterialBasePD::_mechanical_stretch
protected

◆ _nnodes

const unsigned int PeridynamicsMaterialBase::_nnodes
protectedinherited

◆ _node_vol

std::vector<Real> PeridynamicsMaterialBase::_node_vol
protectedinherited

◆ _origin_length

Real PeridynamicsMaterialBase::_origin_length
protectedinherited

◆ _origin_vec

RealGradient PeridynamicsMaterialBase::_origin_vec
protectedinherited

◆ _pdmesh

PeridynamicsMesh& PeridynamicsMaterialBase::_pdmesh
protectedinherited

Mesh related information for material points of current bond/element.

Definition at line 35 of file PeridynamicsMaterialBase.h.

Referenced by computeBondCurrentLength(), and PeridynamicsMaterialBase::setupMeshRelatedData().

◆ _temp_var

MooseVariable* MechanicsMaterialBasePD::_temp_var
protected

◆ _total_stretch

MaterialProperty<Real>& MechanicsMaterialBasePD::_total_stretch
protected

Material properties to store.

Definition at line 47 of file MechanicsMaterialBasePD.h.

Referenced by ParametricMaterialBasePD::computeBondStretch().


The documentation for this class was generated from the following files:
PeridynamicsMaterialBase::_origin_length
Real _origin_length
Definition: PeridynamicsMaterialBase.h:43
PeridynamicsMaterialBase::_nnodes
const unsigned int _nnodes
Definition: PeridynamicsMaterialBase.h:37
MechanicsMaterialBasePD::_disp_var
std::vector< MooseVariable * > _disp_var
Displacement variables.
Definition: MechanicsMaterialBasePD.h:52
PeridynamicsMesh::getPDNodeVolume
Real getPDNodeVolume(dof_id_type node_id)
Function to return nodal volume for node node_id.
Definition: PeridynamicsMesh.C:435
MechanicsMaterialBasePD::_mechanical_stretch
MaterialProperty< Real > & _mechanical_stretch
Definition: MechanicsMaterialBasePD.h:48
libMesh::RealGradient
VectorValue< Real > RealGradient
Definition: GrainForceAndTorqueInterface.h:17
PeridynamicsMaterialBase::_origin_vec
RealGradient _origin_vec
Definition: PeridynamicsMaterialBase.h:42
PeridynamicsMaterialBase::PeridynamicsMaterialBase
PeridynamicsMaterialBase(const InputParameters &parameters)
Definition: PeridynamicsMaterialBase.C:22
MechanicsMaterialBasePD::_temp_var
MooseVariable * _temp_var
Definition: MechanicsMaterialBasePD.h:40
PeridynamicsMaterialBase::_dim
const unsigned int _dim
Definition: PeridynamicsMaterialBase.h:36
MechanicsMaterialBasePD::_total_stretch
MaterialProperty< Real > & _total_stretch
Material properties to store.
Definition: MechanicsMaterialBasePD.h:47
MechanicsMaterialBasePD::_current_length
Real _current_length
Length of current bond.
Definition: MechanicsMaterialBasePD.h:55
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
MechanicsMaterialBasePD::_bond_status_var
MooseVariable * _bond_status_var
Bond_status variable.
Definition: MechanicsMaterialBasePD.h:44
MechanicsMaterialBasePD::_has_temp
const bool _has_temp
Temperature variables.
Definition: MechanicsMaterialBasePD.h:39