![]() |
PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
|
A class providing methods to compute energy density and force of peridynamic material. More...
#include <material.h>
Public Member Functions | |
| PdState (inp::MaterialDeck &deck, const size_t &dim, const double &horizon) | |
| Constructor. | |
| bool | isStateActive () const override |
| Returns true if state-based potential is active. | |
| std::pair< double, double > | getBondEF (const double &r, const double &s, bool &fs, const bool &break_bonds) const override |
| Returns energy and force between bond due to pairwise interaction. | |
| std::pair< double, double > | getBondEF (const double &r, const double &s, bool &fs, const double &mx, const double &thetax) const override |
| Returns energy and force between bond due to state-based model. | |
| double | getDilatationEnergyDensity (const double &thetax) const override |
| Returns the dilatational part of the strain energy density. | |
| util::Point | getBondForceDirection (const util::Point &dx, const util::Point &du) const override |
| Returns the unit vector along which bond-force acts. | |
| double | getS (const util::Point &dx, const util::Point &du) const override |
| Returns the bond strain. | |
| double | getSc (const double &r) const override |
| Returns critical bond strain. | |
| double | getDensity () const override |
| Returns the density of the material. | |
| double | getInfFn (const double &r) const override |
| Returns the value of influence function. | |
| double | getMoment (const size_t &i) const override |
| Returns the moment of influence function. | |
| double | getHorizon () const override |
| Returns horizon. | |
| inp::MatData | computeMaterialProperties (const size_t &dim) const override |
| Computes elastic and fracture material properties and returns the data. | |
| std::string | printStr (int nt, int lvl) const override |
| Returns the string containing printable information about the object. | |
| void | print (int nt, int lvl) const override |
| Prints the information about the object. | |
| void | print () const override |
| Prints the information about the object. | |
Public Member Functions inherited from material::Material | |
| 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 double | getBreakSc (const double &r) const |
| Returns bond strain beyond which the bond is marked broken. | |
Private Member Functions | |
| void | computeParameters (inp::MaterialDeck &deck, const size_t &dim) |
| Compute material model parameters. | |
| double | getCriticalStretchDensity (const size_t &dim) const |
| Returns Gc / s0^2 for the state-based model. | |
Private Attributes | |
| double | d_horizon |
| Horizon. | |
| double | d_density |
| Density. | |
Material parameters | |
| double | d_K |
| Bulk modulus. | |
| double | d_G |
| Shear modulus. | |
| double | d_kappa |
| Bulk modulus used by the model (K in 3D, in-plane in 2D) | |
| double | d_s0 |
| Critical stretch. | |
| double | d_dim |
| Dimension, as a double. | |
| double | d_alphaFactor |
| d(d+2): 15 in 3D, 8 in 2D | |
A class providing methods to compute energy density and force of peridynamic material.
Definition at line 1429 of file material.h.
|
inline |
Constructor.
| deck | Input deck which contains user-specified information |
| dim | Dimension |
| horizon | Horizon |
Definition at line 1438 of file material.h.
References computeParameters(), inp::MaterialDeck::d_bondPotentialParams, inp::MaterialDeck::d_computeParamsFromElastic, d_G, inp::MaterialDeck::d_influenceFnParams, inp::MaterialDeck::d_influenceFnType, inp::MaterialDeck::d_isPlaneStrain, d_K, d_kappa, and d_s0.
|
inlineoverridevirtual |
Computes elastic and fracture material properties and returns the data.
| dim | Dimension of the problem |
Implements material::Material.
Definition at line 1626 of file material.h.
References d_G, d_K, d_s0, and getCriticalStretchDensity().
|
inlineprivate |
Compute material model parameters.
| deck | MaterialDeck |
| dim | Dimension of the domain |
Definition at line 1699 of file material.h.
References inp::MatData::d_E, inp::MatData::d_G, d_G, inp::MatData::d_Gc, inp::MaterialDeck::d_influenceFnType, inp::MatData::d_K, d_K, d_kappa, inp::MatData::d_KIc, inp::MatData::d_lambda, inp::MaterialDeck::d_matData, inp::MatData::d_mu, inp::MatData::d_nu, d_s0, getCriticalStretchDensity(), util::isGreater(), util::isLess(), inp::MaterialDeck::printStr(), util::io::Msg::str(), inp::MatData::toE(), inp::MatData::toGc(), inp::MatData::toGE(), inp::MatData::toK(), inp::MatData::toKIc(), and inp::MatData::toLambdaE().
Referenced by PdState().
|
inlineoverridevirtual |
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 |
Implements material::Material.
Definition at line 1500 of file material.h.
|
inlineoverridevirtual |
Returns energy and force between bond due to state-based model.
Linear peridynamic solid in dimension d (Silling 2010 for 3D; Yang et al. 2024, JMPS 191, eqs. 5-11 for 2D): \( t = J [ r \theta (d \kappa / m - \alpha / d) + \alpha e ] \) with \( \alpha = d(d+2) G / m \) and \( e^d = e - \theta r / d \). The returned energy is the deviatoric part at x, \( \frac{\alpha}{2} J (e^d)^2 \); the dilatational part is getDilatationEnergyDensity().
| r | Reference (initial) bond length |
| s | Bond strain |
| fs | Bond fracture state |
| mx | Weighted volume at node |
| thetax | Dilation |
Implements material::Material.
Definition at line 1526 of file material.h.
References d_alphaFactor, d_dim, d_G, d_kappa, and getInfFn().
|
inlineoverridevirtual |
Returns the unit vector along which bond-force acts.
| dx | Reference bond vector |
| du | Difference of displacement |
Implements material::Material.
Definition at line 1560 of file material.h.
|
inlineprivate |
Returns Gc / s0^2 for the state-based model.
Madenci and Oterkus 2014 (constant influence function), with the model bulk modulus in 2D.
| dim | Dimension |
Definition at line 1845 of file material.h.
References d_G, d_horizon, d_K, and d_kappa.
Referenced by computeMaterialProperties(), and computeParameters().
|
inlineoverridevirtual |
Returns the density of the material.
Implements material::Material.
Definition at line 1587 of file material.h.
References d_density.
|
inlineoverridevirtual |
Returns the dilatational part of the strain energy density.
| thetax | Dilatation at node |
Reimplemented from material::Material.
Definition at line 1549 of file material.h.
References d_kappa.
|
inlineoverridevirtual |
Returns horizon.
Implements material::Material.
Definition at line 1617 of file material.h.
References d_horizon.
|
inlineoverridevirtual |
Returns the value of influence function.
| r | Reference (initial) bond length |
Implements material::Material.
Definition at line 1595 of file material.h.
References d_horizon.
Referenced by getBondEF().
|
inlineoverridevirtual |
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 |
Implements material::Material.
Definition at line 1608 of file material.h.
|
inlineoverridevirtual |
Returns the bond strain.
| dx | Reference bond vector |
| du | Difference of displacement |
Implements material::Material.
Definition at line 1571 of file material.h.
References util::Point::length().
|
inlineoverridevirtual |
Returns critical bond strain.
| r | Reference length of bond |
Implements material::Material.
Definition at line 1581 of file material.h.
References d_s0.
|
inlineoverridevirtual |
Returns true if state-based potential is active.
Implements material::Material.
Definition at line 1489 of file material.h.
|
inlineoverridevirtual |
Prints the information about the object.
Reimplemented from material::Material.
Definition at line 1690 of file material.h.
References print().
Referenced by print().
|
inlineoverridevirtual |
Prints the information about the object.
| nt | Number of tabs to append before printing |
| lvl | Information level (higher means more information) |
Reimplemented from material::Material.
Definition at line 1685 of file material.h.
References printStr().
|
inlineoverridevirtual |
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 from material::Material.
Definition at line 1659 of file material.h.
References d_G, d_horizon, d_K, d_s0, and util::io::getTabS().
Referenced by print().
|
private |
|
private |
|
private |
|
private |
Shear modulus.
Definition at line 1870 of file material.h.
Referenced by computeMaterialProperties(), computeParameters(), getBondEF(), getCriticalStretchDensity(), PdState(), and printStr().
|
private |
Horizon.
Definition at line 1856 of file material.h.
Referenced by getCriticalStretchDensity(), getHorizon(), getInfFn(), and printStr().
|
private |
Bulk modulus.
Definition at line 1867 of file material.h.
Referenced by computeMaterialProperties(), computeParameters(), getCriticalStretchDensity(), PdState(), and printStr().
|
private |
Bulk modulus used by the model (K in 3D, in-plane in 2D)
Definition at line 1873 of file material.h.
Referenced by computeParameters(), getBondEF(), getCriticalStretchDensity(), getDilatationEnergyDensity(), and PdState().
|
private |
Critical stretch.
Definition at line 1876 of file material.h.
Referenced by computeMaterialProperties(), computeParameters(), getSc(), PdState(), and printStr().