![]() |
PeriDEM 0.3.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 () const |
| Returns dimension of the problem. | |
| bool | isPlaneStrain () const |
| 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 | getBreakSc (const double &r) const |
| Returns bond strain beyond which the bond is marked broken. | |
| virtual double | getDilatationEnergyDensity (const double &thetax) const |
| Returns the dilatational part of the strain energy density. | |
| 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 98 of file material.h.
|
inlineexplicit |
|
inlinevirtual |
Destructor.
Make it virtual so that a derived object deletes through a base pointer.
Definition at line 112 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.
|
inlinevirtual |
Returns bond strain beyond which the bond is marked broken.
| r | Reference length of bond |
Reimplemented in material::RnpMaterial.
Definition at line 197 of file material.h.
References getSc().
|
pure virtual |
Returns the density of the material.
Implemented in material::RnpMaterial, material::PmbMaterial, material::PdElastic, and material::PdState.
|
inlinevirtual |
Returns the dilatational part of the strain energy density.
Nonzero only for state-based models.
| thetax | Dilatation at node |
Reimplemented in material::PdState.
Definition at line 207 of file material.h.
|
inline |
Returns dimension of the problem.
Definition at line 124 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.
Referenced by getBreakSc().
|
inline |
Returns plane-strain condition.
Definition at line 130 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 118 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 282 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 279 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 259 of file material.h.
References util::io::getTabS().
Referenced by print().
|
private |