PeriDEM 0.2.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 | |
RnpMaterial (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. | |
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 () |
Returns dimension of the problem. | |
bool | isPlaneStrain () |
Returns plane-strain condition. | |
Private Member Functions | |
void | computeParameters (inp::MaterialDeck &deck, const size_t &dim) |
Compute material model parameters. | |
Private Attributes | |
double | d_horizon |
Horizon. | |
double | d_density |
Density. | |
double | d_rbar |
Inflection point of nonlinear function = \( 1/\sqrt{2\beta}\). | |
double | d_invFactor |
Inverse of factor = \( \epsilon |B_\epsilon(0)|\). | |
double | d_factorSc |
Factor to multiply to critical strain to check if bond is fractured. | |
bool | d_irrevBondBreak |
Flag which indicates if the breaking of bond is irreversible. | |
Material parameters | |
double | d_C |
Parameter C. | |
double | d_beta |
Parameter \( \beta \). | |
A class providing methods to compute energy density and force of peridynamic material.
Definition at line 251 of file material.h.
|
inline |
Constructor.
deck | Input deck which contains user-specified information |
dim | Dimension |
horizon | Horizon |
Definition at line 260 of file material.h.
References computeParameters(), d_beta, inp::MaterialDeck::d_bondPotentialParams, d_C, inp::MaterialDeck::d_computeParamsFromElastic, inp::MaterialDeck::d_influenceFnParams, inp::MaterialDeck::d_influenceFnType, d_invFactor, inp::MaterialDeck::d_isPlaneStrain, and d_rbar.
|
inlineoverridevirtual |
Computes elastic and fracture material properties and returns the data.
dim | Dimension of the problem |
Implements material::Material.
Definition at line 461 of file material.h.
References d_beta, d_C, and getMoment().
|
inlineprivate |
Compute material model parameters.
deck | MaterialDeck |
dim | Dimension of the domain |
Definition at line 541 of file material.h.
References d_beta, d_C, inp::MatData::d_E, inp::MatData::d_G, inp::MatData::d_Gc, inp::MatData::d_K, inp::MatData::d_KIc, inp::MatData::d_lambda, inp::MaterialDeck::d_matData, inp::MatData::d_mu, inp::MatData::d_nu, d_rbar, getMoment(), util::isGreater(), util::isLess(), inp::MatData::toE(), inp::MatData::toGc(), inp::MatData::toGE(), inp::MatData::toK(), inp::MatData::toKIc(), and inp::MatData::toLambdaE().
Referenced by RnpMaterial().
|
inlineoverridevirtual |
Returns energy and force between bond due to pairwise interaction.
Peridynamic energy at point \( x \) is
\[ e(x) = \frac{1}{|B_\epsilon(0)|} \int_{B_\epsilon(x)} \frac{J^\epsilon(|y-x|)}{\epsilon} \psi(|y-x|S^2) dy \]
and force at point x is
\[ f(x) = \frac{4}{|B_\epsilon(0)|} \int_{B_\epsilon(x)} \frac{J^\epsilon(|y-x|)}{\epsilon} \psi'(|y-x|S^2) S \frac{y-x}{|y-x|} dy, \]
where \( \psi(r) = C(1-\exp(-\beta r))\).
For given initial bond length \( r \) and bond strain \( s\), this function returns pair of
\[ \hat{e} = \frac{J^\epsilon(r)}{\epsilon |B_\epsilon(0)|} \psi(r s^2) \]
and
\[ \hat{f} = \frac{4 J^\epsilon(r) s}{\epsilon |B_\epsilon(0)|} \psi'(r s^2). \]
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 342 of file material.h.
References d_beta, d_C, d_factorSc, d_invFactor, d_irrevBondBreak, getInfFn(), getSc(), and util::isGreater().
Referenced by getBondEF().
|
inlineoverridevirtual |
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 |
Implements material::Material.
Definition at line 381 of file material.h.
References getBondEF().
|
inlineoverridevirtual |
Returns the unit vector along which bond-force acts.
dx | Reference bond vector |
du | Difference of displacement |
Implements material::Material.
Definition at line 394 of file material.h.
References util::Point::length().
|
inlineoverridevirtual |
Returns the density of the material.
Implements material::Material.
Definition at line 423 of file material.h.
References d_density.
|
inlineoverridevirtual |
Returns horizon.
Implements material::Material.
Definition at line 452 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 431 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 444 of file material.h.
Referenced by computeMaterialProperties(), and computeParameters().
|
inlineoverridevirtual |
Returns the bond strain.
dx | Reference bond vector |
du | Difference of displacement |
Implements material::Material.
Definition at line 405 of file material.h.
References util::Point::dot().
|
inlineoverridevirtual |
Returns critical bond strain.
r | Reference length of bond |
Implements material::Material.
Definition at line 415 of file material.h.
References d_rbar.
Referenced by getBondEF().
|
inlineoverridevirtual |
Returns true if state-based potential is active.
Implements material::Material.
Definition at line 314 of file material.h.
|
inlineoverridevirtual |
Prints the information about the object.
Reimplemented from material::Material.
Definition at line 532 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 527 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 498 of file material.h.
References d_beta, d_C, d_factorSc, d_horizon, d_invFactor, d_irrevBondBreak, d_rbar, and util::io::getTabS().
Referenced by print().
|
private |
Parameter \( \beta \).
Definition at line 639 of file material.h.
Referenced by computeMaterialProperties(), computeParameters(), getBondEF(), printStr(), and RnpMaterial().
|
private |
Parameter C.
Definition at line 636 of file material.h.
Referenced by computeMaterialProperties(), computeParameters(), getBondEF(), printStr(), and RnpMaterial().
|
private |
|
private |
Factor to multiply to critical strain to check if bond is fractured.
For nonlinear model, we consider bond is broken when it exceeds 10 times of critical strain. Typical value of factor is 10.
Definition at line 655 of file material.h.
Referenced by getBondEF(), and printStr().
|
private |
Horizon.
Definition at line 625 of file material.h.
Referenced by getHorizon(), getInfFn(), and printStr().
|
private |
Inverse of factor = \( \epsilon |B_\epsilon(0)|\).
Definition at line 647 of file material.h.
Referenced by getBondEF(), printStr(), and RnpMaterial().
|
private |
Flag which indicates if the breaking of bond is irreversible.
Definition at line 658 of file material.h.
Referenced by getBondEF(), and printStr().
|
private |
Inflection point of nonlinear function = \( 1/\sqrt{2\beta}\).
Definition at line 644 of file material.h.
Referenced by computeParameters(), getSc(), printStr(), and RnpMaterial().