PeriDEM 0.2.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
|
Collection of methods and database related to peridynamic material. More...
#include <material.h>
Public Member Functions | |
Material (std::string name="") | |
Constructor. | |
virtual | ~Material () |
Destructor. | |
std::string | name () |
Returns name of the material. | |
size_t | getDimension () |
Returns dimension of the problem. | |
bool | isPlaneStrain () |
Returns plane-strain condition. | |
virtual bool | isStateActive () const =0 |
Returns true if state-based potential is active. | |
virtual std::pair< double, double > | getBondEF (const double &r, const double &s, bool &fs, const bool &break_bonds) const =0 |
Returns energy and force between bond due to pairwise interaction. | |
virtual std::pair< double, double > | getBondEF (const double &r, const double &s, bool &fs, const double &mx, const double &thetax) const =0 |
Returns energy and force between bond due to state-based model. | |
virtual util::Point | getBondForceDirection (const util::Point &dx, const util::Point &du) const =0 |
Returns the unit vector along which bond-force acts. | |
virtual double | getS (const util::Point &dx, const util::Point &du) const =0 |
Returns the bond strain. | |
virtual double | getSc (const double &r) const =0 |
Returns critical bond strain. | |
virtual double | getDensity () const =0 |
Returns the density of the material. | |
virtual double | getInfFn (const double &r) const =0 |
Returns the value of influence function. | |
virtual double | getMoment (const size_t &i) const =0 |
Returns the moment of influence function. | |
virtual double | getHorizon () const =0 |
Returns horizon. | |
virtual inp::MatData | computeMaterialProperties (const size_t &dim) const =0 |
Computes elastic and fracture material properties and returns the data. | |
virtual std::string | printStr (int nt, int lvl) const |
Returns the string containing printable information about the object. | |
virtual void | print (int nt, int lvl) const |
Prints the information about the object. | |
virtual void | print () const |
Prints the information about the object. | |
Private Attributes | |
std::string | d_name |
Name of the material. | |
Collection of methods and database related to peridynamic material.
At present we have implemented both bond-based and state-based model. We consider RNP regularized potential proposed and studied in Lipton 2016, Jha and Lipton 2018, Diehl et al 2018, Jha and Lipton 2019. We have also implemented PMB material model (Prototypical micro-elastic brittle material), see Silling 2000.
A class providing methods to compute energy density and force of peridynamic material
Definition at line 76 of file material.h.
|
inlineexplicit |
|
inlinevirtual |
Destructor.
Make it virtual so that class inheriting from it are destroyed properly.
Definition at line 90 of file material.h.
|
pure virtual |
Computes elastic and fracture material properties and returns the data.
dim | Dimension of the problem |
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
pure virtual |
Returns energy and force between bond due to pairwise interaction.
r | Reference (initial) bond length |
s | Bond strain |
fs | Bond fracture state |
break_bonds | Flag to specify whether bonds are allowed to break or not |
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
pure virtual |
Returns energy and force between bond due to state-based model.
r | Reference (initial) bond length |
s | Bond strain |
fs | Bond fracture state |
mx | Weighted volume at node |
thetax | Dilation |
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
pure virtual |
Returns the unit vector along which bond-force acts.
dx | Reference bond vector |
du | Difference of displacement |
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
pure virtual |
Returns the density of the material.
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
inline |
Returns dimension of the problem.
Definition at line 102 of file material.h.
|
pure virtual |
Returns horizon.
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
pure virtual |
Returns the value of influence function.
r | Reference (initial) bond length |
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
pure virtual |
Returns the moment of influence function.
If \( J(r) \) is the influence function for \( r\in [0,1)\) then \( i^{th}\) moment is given by
\[ M_i = \int_0^1 J(r) r^i dr. \]
i | ith moment |
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
pure virtual |
Returns the bond strain.
dx | Reference bond vector |
du | Difference of displacement |
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
pure virtual |
Returns critical bond strain.
r | Reference length of bond |
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
inline |
Returns plane-strain condition.
Definition at line 108 of file material.h.
|
pure virtual |
Returns true if state-based potential is active.
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
inline |
Returns name of the material.
Definition at line 96 of file material.h.
References d_name.
|
inlinevirtual |
Prints the information about the object.
Reimplemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
Definition at line 240 of file material.h.
References print().
Referenced by print().
|
inlinevirtual |
Prints the information about the object.
nt | Number of tabs to append before printing |
lvl | Information level (higher means more information) |
Reimplemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
Definition at line 237 of file material.h.
References printStr().
|
inlinevirtual |
Returns the string containing printable information about the object.
nt | Number of tabs to append before printing |
lvl | Information level (higher means more information) |
Reimplemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
Definition at line 217 of file material.h.
References util::io::getTabS().
Referenced by print().
|
private |