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

Material class for bond based peridynamic solid mechanics model based on regular spatial discretization. More...

#include <ComputeSmallStrainConstantHorizonMaterialBPD.h>

Inheritance diagram for ComputeSmallStrainConstantHorizonMaterialBPD:
[legend]

Public Member Functions

 ComputeSmallStrainConstantHorizonMaterialBPD (const InputParameters &parameters)
 

Protected Member Functions

virtual void computePeridynamicsParams () override
 Function to compute the micro-moduli for bond-based and ordinary state-based models. More...
 
virtual void computeBondForce () override
 Function to compute force of a bond. More...
 
virtual void computeProperties () override
 
virtual void computeBondStretch () override
 Function to compute current bond stretch: one dimensional strain. More...
 
void computeMaterialConstants ()
 Function to compute material constants from elasticity tensor. More...
 
void computeBondCurrentLength ()
 Function to compute the current bond length. More...
 
void setupMeshRelatedData ()
 Function to setup mesh related data to be used in this class. More...
 

Protected Attributes

Real _Cij
 Micro-modulus. More...
 
const bool _plane_stress
 Plane stress problem or not. More...
 
std::vector< Real > _temp
 Temperature variable. More...
 
const Real _temp_ref
 Reference temperature. More...
 
Real _tec
 Thermal expension coefficient. More...
 
Real _alpha
 
const MaterialProperty< RankFourTensor > & _Cijkl
 Material properties to fetch. More...
 
Real _youngs_modulus
 
Real _poissons_ratio
 
Real _shear_modulus
 
Real _bulk_modulus
 
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 _scalar_out_of_plane_strain_coupled
 Scalar out-of-plane component of strain tensor for generalized plane strain. More...
 
const VariableValue & _scalar_out_of_plane_strain
 
MaterialProperty< Real > & _bond_force_ij
 Material properties to store. More...
 
MaterialProperty< Real > & _bond_dfdU_ij
 
MaterialProperty< Real > & _bond_dfdT_ij
 
MaterialProperty< Real > & _bond_dfdE_ij
 
MaterialProperty< Real > & _thermal_expansion_coeff
 
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

Material class for bond based peridynamic solid mechanics model based on regular spatial discretization.

Definition at line 23 of file ComputeSmallStrainConstantHorizonMaterialBPD.h.

Constructor & Destructor Documentation

◆ ComputeSmallStrainConstantHorizonMaterialBPD()

ComputeSmallStrainConstantHorizonMaterialBPD::ComputeSmallStrainConstantHorizonMaterialBPD ( const InputParameters &  parameters)

Definition at line 25 of file ComputeSmallStrainConstantHorizonMaterialBPD.C.

28 {
29 }

Member Function Documentation

◆ computeBondCurrentLength()

void MechanicsMaterialBasePD::computeBondCurrentLength ( )
protectedinherited

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().

◆ computeBondForce()

void ComputeSmallStrainMaterialBaseBPD::computeBondForce ( )
overrideprotectedvirtualinherited

Function to compute force of a bond.

Implements ParametricMaterialBasePD.

Definition at line 29 of file ComputeSmallStrainMaterialBaseBPD.C.

30 {
32  {
33  _bond_force_ij[_qp] = _Cij *
34  (_mechanical_stretch[_qp] +
36  _alpha * (0.5 * (_temp[0] + _temp[1]) - _temp_ref))) *
37  _node_vol[0] * _node_vol[1];
38  _bond_dfdT_ij[_qp] =
39  -_Cij * (1.0 + _poissons_ratio) * 0.5 * _alpha * _node_vol[0] * _node_vol[1];
40  }
41  else
42  {
44  _bond_dfdT_ij[_qp] = -_Cij * 0.5 * _alpha * _node_vol[0] * _node_vol[1];
45  }
46 
49 }

◆ computeBondStretch()

void ParametricMaterialBasePD::computeBondStretch ( )
overrideprotectedvirtualinherited

Function to compute current bond stretch: one dimensional strain.

Implements MechanicsMaterialBasePD.

Definition at line 96 of file ParametricMaterialBasePD.C.

97 {
99 
101  _mechanical_stretch[_qp] =
102  _total_stretch[_qp] - _alpha * (0.5 * (_temp[0] + _temp[1]) - _temp_ref);
103 }

Referenced by ParametricMaterialBasePD::computeProperties().

◆ computeMaterialConstants()

void ParametricMaterialBasePD::computeMaterialConstants ( )
protectedinherited

Function to compute material constants from elasticity tensor.

get material constants from elasticity tensor

Definition at line 76 of file ParametricMaterialBasePD.C.

77 {
82  if (_dim == 3 || _scalar_out_of_plane_strain_coupled) // general 3D and generalized plane strain
83  _bulk_modulus = _youngs_modulus / 3.0 / (1.0 - 2.0 * _poissons_ratio);
84  else if (_plane_stress) // plane stress case
86  else // plane strain case
87  _bulk_modulus = _youngs_modulus / 2.0 / (1.0 + _poissons_ratio) / (1.0 - 2.0 * _poissons_ratio);
88 
89  if (_dim == 2 && !_plane_stress && !_scalar_out_of_plane_strain_coupled) // plane strain case
90  _alpha = _tec * (1.0 + _poissons_ratio);
91  else
92  _alpha = _tec;
93 }

Referenced by ParametricMaterialBasePD::computeProperties().

◆ computePeridynamicsParams()

void ComputeSmallStrainConstantHorizonMaterialBPD::computePeridynamicsParams ( )
overrideprotectedvirtual

Function to compute the micro-moduli for bond-based and ordinary state-based models.

Implements ParametricMaterialBasePD.

Definition at line 32 of file ComputeSmallStrainConstantHorizonMaterialBPD.C.

33 {
34  _Cij = 0.5 * (6.0 * _dim * _bulk_modulus / (M_PI * std::pow(_horiz_rad[0], _dim + 1)) +
35  6.0 * _dim * _bulk_modulus / (M_PI * std::pow(_horiz_rad[1], _dim + 1)));
36 }

◆ computeProperties()

void ParametricMaterialBasePD::computeProperties ( )
overrideprotectedvirtualinherited

Definition at line 57 of file ParametricMaterialBasePD.C.

58 {
59  setupMeshRelatedData(); // function from base class
60  computeBondCurrentLength(); // current length of a bond from base class
61 
62  _temp[0] = _has_temp ? _temp_var->getNodalValue(*_current_elem->node_ptr(0)) : 0.0;
63  _temp[1] = _has_temp ? _temp_var->getNodalValue(*_current_elem->node_ptr(1)) : 0.0;
64 
67 
68  for (_qp = 0; _qp < _nnodes; ++_qp)
69  {
72  }
73 }

◆ 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

◆ _alpha

Real ParametricMaterialBasePD::_alpha
protectedinherited

◆ _bond_dfdE_ij

MaterialProperty<Real>& ParametricMaterialBasePD::_bond_dfdE_ij
protectedinherited

◆ _bond_dfdT_ij

MaterialProperty<Real>& ParametricMaterialBasePD::_bond_dfdT_ij
protectedinherited

◆ _bond_dfdU_ij

MaterialProperty<Real>& ParametricMaterialBasePD::_bond_dfdU_ij
protectedinherited

◆ _bond_force_ij

MaterialProperty<Real>& ParametricMaterialBasePD::_bond_force_ij
protectedinherited

◆ _bond_status_var

MooseVariable* MechanicsMaterialBasePD::_bond_status_var
protectedinherited

Bond_status variable.

Definition at line 44 of file MechanicsMaterialBasePD.h.

◆ _bulk_modulus

Real ParametricMaterialBasePD::_bulk_modulus
protectedinherited

◆ _Cij

Real ComputeSmallStrainMaterialBaseBPD::_Cij
protectedinherited

◆ _Cijkl

const MaterialProperty<RankFourTensor>& ParametricMaterialBasePD::_Cijkl
protectedinherited

Material properties to fetch.

Definition at line 76 of file ParametricMaterialBasePD.h.

Referenced by ParametricMaterialBasePD::computeMaterialConstants().

◆ _current_length

Real MechanicsMaterialBasePD::_current_length
protectedinherited

◆ _dim

const unsigned int PeridynamicsMaterialBase::_dim
protectedinherited

◆ _disp_var

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

◆ _has_temp

const bool MechanicsMaterialBasePD::_has_temp
protectedinherited

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
protectedinherited

◆ _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 MechanicsMaterialBasePD::computeBondCurrentLength(), and PeridynamicsMaterialBase::setupMeshRelatedData().

◆ _plane_stress

const bool ParametricMaterialBasePD::_plane_stress
protectedinherited

◆ _poissons_ratio

Real ParametricMaterialBasePD::_poissons_ratio
protectedinherited

◆ _scalar_out_of_plane_strain

const VariableValue& ParametricMaterialBasePD::_scalar_out_of_plane_strain
protectedinherited

◆ _scalar_out_of_plane_strain_coupled

const bool ParametricMaterialBasePD::_scalar_out_of_plane_strain_coupled
protectedinherited

◆ _shear_modulus

Real ParametricMaterialBasePD::_shear_modulus
protectedinherited

◆ _tec

Real ParametricMaterialBasePD::_tec
protectedinherited

Thermal expension coefficient.

Definition at line 63 of file ParametricMaterialBasePD.h.

Referenced by ParametricMaterialBasePD::computeMaterialConstants().

◆ _temp

std::vector<Real> ParametricMaterialBasePD::_temp
protectedinherited

◆ _temp_ref

const Real ParametricMaterialBasePD::_temp_ref
protectedinherited

◆ _temp_var

MooseVariable* MechanicsMaterialBasePD::_temp_var
protectedinherited

◆ _thermal_expansion_coeff

MaterialProperty<Real>& ParametricMaterialBasePD::_thermal_expansion_coeff
protectedinherited

◆ _total_stretch

MaterialProperty<Real>& MechanicsMaterialBasePD::_total_stretch
protectedinherited

Material properties to store.

Definition at line 47 of file MechanicsMaterialBasePD.h.

Referenced by ParametricMaterialBasePD::computeBondStretch().

◆ _youngs_modulus

Real ParametricMaterialBasePD::_youngs_modulus
protectedinherited

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
ParametricMaterialBasePD::computePeridynamicsParams
virtual void computePeridynamicsParams()=0
Function to compute the micro-moduli for bond-based and ordinary state-based models.
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
ParametricMaterialBasePD::_tec
Real _tec
Thermal expension coefficient.
Definition: ParametricMaterialBasePD.h:63
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
ParametricMaterialBasePD::_bond_dfdE_ij
MaterialProperty< Real > & _bond_dfdE_ij
Definition: ParametricMaterialBasePD.h:70
libMesh::RealGradient
VectorValue< Real > RealGradient
Definition: GrainForceAndTorqueInterface.h:17
PeridynamicsMaterialBase::_origin_vec
RealGradient _origin_vec
Definition: PeridynamicsMaterialBase.h:42
PeridynamicsMaterialBase::setupMeshRelatedData
void setupMeshRelatedData()
Function to setup mesh related data to be used in this class.
Definition: PeridynamicsMaterialBase.C:34
MechanicsMaterialBasePD::_temp_var
MooseVariable * _temp_var
Definition: MechanicsMaterialBasePD.h:40
ParametricMaterialBasePD::_scalar_out_of_plane_strain
const VariableValue & _scalar_out_of_plane_strain
Definition: ParametricMaterialBasePD.h:53
ParametricMaterialBasePD::_temp_ref
const Real _temp_ref
Reference temperature.
Definition: ParametricMaterialBasePD.h:60
ParametricMaterialBasePD::_plane_stress
const bool _plane_stress
Plane stress problem or not.
Definition: ParametricMaterialBasePD.h:49
ParametricMaterialBasePD::_Cijkl
const MaterialProperty< RankFourTensor > & _Cijkl
Material properties to fetch.
Definition: ParametricMaterialBasePD.h:76
ParametricMaterialBasePD::_poissons_ratio
Real _poissons_ratio
Definition: ParametricMaterialBasePD.h:79
ElasticityTensorTools::getIsotropicPoissonsRatio
T getIsotropicPoissonsRatio(const RankFourTensorTempl< T > &elasticity_tensor)
Get the Poisson's modulus for an isotropic elasticity tensor param elasticity_tensor the tensor (must...
Definition: ElasticityTensorTools.h:115
ParametricMaterialBasePD::_bond_dfdT_ij
MaterialProperty< Real > & _bond_dfdT_ij
Definition: ParametricMaterialBasePD.h:69
PeridynamicsMaterialBase::_dim
const unsigned int _dim
Definition: PeridynamicsMaterialBase.h:36
ParametricMaterialBasePD::_scalar_out_of_plane_strain_coupled
const bool _scalar_out_of_plane_strain_coupled
Scalar out-of-plane component of strain tensor for generalized plane strain.
Definition: ParametricMaterialBasePD.h:52
MechanicsMaterialBasePD::_total_stretch
MaterialProperty< Real > & _total_stretch
Material properties to store.
Definition: MechanicsMaterialBasePD.h:47
ParametricMaterialBasePD::_youngs_modulus
Real _youngs_modulus
Definition: ParametricMaterialBasePD.h:78
MechanicsMaterialBasePD::_current_length
Real _current_length
Length of current bond.
Definition: MechanicsMaterialBasePD.h:55
ElasticityTensorTools::getIsotropicYoungsModulus
T getIsotropicYoungsModulus(const RankFourTensorTempl< T > &elasticity_tensor)
Get the Young's modulus for an isotropic elasticity tensor param elasticity_tensor the tensor (must b...
Definition: ElasticityTensorTools.h:98
ParametricMaterialBasePD::_bulk_modulus
Real _bulk_modulus
Definition: ParametricMaterialBasePD.h:81
PeridynamicsMaterialBase::_node_vol
std::vector< Real > _node_vol
Definition: PeridynamicsMaterialBase.h:39
ParametricMaterialBasePD::_bond_force_ij
MaterialProperty< Real > & _bond_force_ij
Material properties to store.
Definition: ParametricMaterialBasePD.h:67
ComputeSmallStrainMaterialBaseBPD::ComputeSmallStrainMaterialBaseBPD
ComputeSmallStrainMaterialBaseBPD(const InputParameters &parameters)
Definition: ComputeSmallStrainMaterialBaseBPD.C:22
PeridynamicsMesh::getPDNodeCoord
Point getPDNodeCoord(dof_id_type node_id)
Function to return coordinates for node node_id.
Definition: PeridynamicsMesh.C:420
ComputeSmallStrainMaterialBaseBPD::_Cij
Real _Cij
Micro-modulus.
Definition: ComputeSmallStrainMaterialBaseBPD.h:31
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
MechanicsMaterialBasePD::computeBondCurrentLength
void computeBondCurrentLength()
Function to compute the current bond length.
Definition: MechanicsMaterialBasePD.C:42
PeridynamicsMaterialBase::_horiz_rad
std::vector< Real > _horiz_rad
Definition: PeridynamicsMaterialBase.h:38
PeridynamicsMaterialBase::_horiz_vol
std::vector< Real > _horiz_vol
Definition: PeridynamicsMaterialBase.h:40
ParametricMaterialBasePD::_bond_dfdU_ij
MaterialProperty< Real > & _bond_dfdU_ij
Definition: ParametricMaterialBasePD.h:68
ParametricMaterialBasePD::computeBondStretch
virtual void computeBondStretch() override
Function to compute current bond stretch: one dimensional strain.
Definition: ParametricMaterialBasePD.C:96
MechanicsMaterialBasePD::_has_temp
const bool _has_temp
Temperature variables.
Definition: MechanicsMaterialBasePD.h:39
ParametricMaterialBasePD::computeMaterialConstants
void computeMaterialConstants()
Function to compute material constants from elasticity tensor.
Definition: ParametricMaterialBasePD.C:76
ParametricMaterialBasePD::_thermal_expansion_coeff
MaterialProperty< Real > & _thermal_expansion_coeff
Definition: ParametricMaterialBasePD.h:72
ParametricMaterialBasePD::_alpha
Real _alpha
Definition: ParametricMaterialBasePD.h:64
ParametricMaterialBasePD::_shear_modulus
Real _shear_modulus
Definition: ParametricMaterialBasePD.h:80
ParametricMaterialBasePD::_temp
std::vector< Real > _temp
Temperature variable.
Definition: ParametricMaterialBasePD.h:57
ParametricMaterialBasePD::computeBondForce
virtual void computeBondForce()=0
Function to compute force of a bond.