PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
Loading...
Searching...
No Matches
material::PdState Class Reference

A class providing methods to compute energy density and force of peridynamic material. More...

#include <material.h>

Inheritance diagram for material::PdState:
Collaboration diagram for material::PdState:

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
 

Detailed Description

A class providing methods to compute energy density and force of peridynamic material.

Definition at line 1429 of file material.h.

Constructor & Destructor Documentation

◆ PdState()

material::PdState::PdState ( inp::MaterialDeck &  deck,
const size_t &  dim,
const double &  horizon 
)
inline

Constructor.

Parameters
deckInput deck which contains user-specified information
dimDimension
horizonHorizon

Definition at line 1438 of file material.h.

1439 : Material("PDState"), d_horizon(horizon), d_density(deck.d_density),
1440 d_K(0.), d_G(0.), d_kappa(0.), d_s0(0.), d_dim(double(dim)),
1441 d_alphaFactor(dim == 2 ? 8. : 15.) {
1442
1443 // set global fields
1444 if (dimension != dim)
1445 dimension = dim;
1446
1447 if (is_plane_strain != deck.d_isPlaneStrain)
1449
1450 // create influence function
1451 if (deck.d_influenceFnType == 0) {
1452 if (influence_fn == nullptr)
1453 influence_fn = std::make_shared<material::ConstInfluenceFn>(
1454 deck.d_influenceFnParams, dim);
1455 }
1456 else if (deck.d_influenceFnType == 1) {
1457 if (influence_fn == nullptr)
1458 influence_fn = std::make_shared<material::LinearInfluenceFn>(
1459 deck.d_influenceFnParams, dim);
1460 }
1461 else if (deck.d_influenceFnType == 2) {
1462 if (influence_fn == nullptr)
1463 influence_fn = std::make_shared<material::GaussianInfluenceFn>(
1464 deck.d_influenceFnParams, dim);
1465 }
1466 else {
1467 throw std::runtime_error(
1469 << "Error: Influence function type = "
1470 << deck.d_influenceFnType
1471 << " is invalid.\n");
1472 }
1473
1474 // check if we need to compute the material parameters
1476 computeParameters(deck, dim);
1477 else {
1478 d_K = deck.d_bondPotentialParams[0];
1479 d_G = deck.d_bondPotentialParams[1];
1480 d_s0 = deck.d_bondPotentialParams[2];
1481 d_kappa = getModelBulkModulus(dim, is_plane_strain, d_K, d_G);
1482 }
1483 };
Material(std::string name="")
Constructor.
Definition material.h:105
double d_G
Shear modulus.
Definition material.h:1870
double d_kappa
Bulk modulus used by the model (K in 3D, in-plane in 2D)
Definition material.h:1873
void computeParameters(inp::MaterialDeck &deck, const size_t &dim)
Compute material model parameters.
Definition material.h:1699
double d_horizon
Horizon.
Definition material.h:1856
double d_dim
Dimension, as a double.
Definition material.h:1879
double d_alphaFactor
d(d+2): 15 in 3D, 8 in 2D
Definition material.h:1882
double d_K
Bulk modulus.
Definition material.h:1867
double d_density
Density.
Definition material.h:1859
double d_s0
Critical stretch.
Definition material.h:1876
Collects a message with stream syntax for use in an exception.
Definition io.h:52
bool is_plane_strain
Is plane-stress condition active.
Definition material.h:31
size_t dimension
Dimension of the domain.
Definition material.h:28
std::shared_ptr< material::BaseInfluenceFn > influence_fn
Store pointer to influence function globally.
Definition material.h:34
double getModelBulkModulus(const size_t &dim, const bool &plane_strain, const double &K, const double &G)
Returns the bulk modulus the model works with, from table K and G.
Definition material.h:70
bool d_isPlaneStrain
Indicates if the 2-d simulation is of plane-strain type (thick material) or plane-stress type (thin m...
double d_density
Density of material.
size_t d_influenceFnType
Type of influence function.
std::vector< double > d_bondPotentialParams
List of parameters for pairwise potential.
bool d_computeParamsFromElastic
Compute Peridynamic material properties from elastic properties.
std::vector< double > d_influenceFnParams
List of parameters for influence function.

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.

Here is the call graph for this function:

Member Function Documentation

◆ computeMaterialProperties()

inp::MatData material::PdState::computeMaterialProperties ( const size_t &  dim) const
inlineoverridevirtual

Computes elastic and fracture material properties and returns the data.

Parameters
dimDimension of the problem
Returns
Data Material data

Implements material::Material.

Definition at line 1626 of file material.h.

1626 {
1627
1628 auto data = inp::MatData();
1629
1630 // we already have G and K
1631 data.d_G = d_G;
1632 data.d_K = d_K;
1633
1634 // get Poisson ratio and Young's modulus
1635 data.d_nu = (3. * d_K - 2. * d_G) / (2. * (3. * d_K + d_G));
1636 data.d_E = data.toE(d_K, data.d_nu);
1637
1638 // get lame parameters
1639 data.d_lambda = data.toLambdaE(data.d_E, data.d_nu);
1640 data.d_mu = d_G;
1641
1642 // get Gc from s0 (inverse of computeParameters)
1643 data.d_Gc = d_s0 * d_s0 * getCriticalStretchDensity(dim);
1644
1645 // KIc
1646 data.d_KIc = data.toKIc(
1647 data.d_Gc, data.d_nu, data.d_E);
1648
1649 return data;
1650 };
double getCriticalStretchDensity(const size_t &dim) const
Returns Gc / s0^2 for the state-based model.
Definition material.h:1845
Definition contact.h:20
Structure for elastic properties and fracture properties.

References d_G, d_K, d_s0, and getCriticalStretchDensity().

Here is the call graph for this function:

◆ computeParameters()

void material::PdState::computeParameters ( inp::MaterialDeck &  deck,
const size_t &  dim 
)
inlineprivate

Compute material model parameters.

Parameters
deckMaterialDeck
dimDimension of the domain

Definition at line 1699 of file material.h.

1699 {
1700 //
1701 // Need following elastic and fracture properties
1702 // 1. E or K
1703 // 2. Poisson ratio or shear modulus
1704 // 3. Gc or KIc
1705 //
1706 bool found_E = false;
1707 bool found_K = false;
1708 bool found_G = false;
1709 bool found_nu = false;
1710 size_t num_props = 0;
1711
1712 found_E = util::isGreater(deck.d_matData.d_E, 0.);
1713 if (found_E)
1714 num_props++;
1715
1716 found_K = util::isGreater(deck.d_matData.d_K, 0.);
1717 if (found_K)
1718 num_props++;
1719
1720 found_G = util::isGreater(deck.d_matData.d_G, 0.);
1721 if (found_G)
1722 num_props++;
1723
1724 found_nu = util::isGreater(deck.d_matData.d_nu, 0.);
1725 if (found_nu)
1726 num_props++;
1727
1728 if (num_props != 2) {
1729 std::ostringstream oss;
1730 oss << "Error: Require two different elastic properties for the "
1731 "PdState material. Pairs supported are (E, K), (E, G), "
1732 "(E, nu), (K, G).\n";
1733 oss << deck.printStr(0, 0) << "\n";
1734 throw std::runtime_error(
1736 << oss.str());
1737 }
1738
1739 if (util::isLess(deck.d_matData.d_Gc, 0.) &&
1740 util::isLess(deck.d_matData.d_KIc, 0.)) {
1741 throw std::runtime_error(
1743 << "Error: Require either critical energy release rate Gc or "
1744 "critical stress intensity factor KIc to compute the RNP "
1745 "bond-based peridynamic parameters.\n");
1746 } else if (util::isGreater(deck.d_matData.d_Gc, 0.) &&
1747 util::isGreater(deck.d_matData.d_KIc, 0.)) {
1748 std::cout << "Warning: Both critical energy release rate Gc and critical "
1749 "stress intensity factor KIc are provided.\n";
1750 std::cout << "Warning: To compute the RNP bond-based peridynamic "
1751 "parameters, we only require one of those.\n";
1752 std::cout << "Warning: Selecting critical energy release rate Gc to "
1753 "compute parameters.\n";
1754 }
1755
1756 // compute nu if not provided
1757 if (!found_nu) {
1758 if (found_E and found_G)
1759 deck.d_matData.d_nu =
1760 (0.5 * deck.d_matData.d_E / deck.d_matData.d_G) - 1.;
1761
1762 if (found_E and found_K)
1763 deck.d_matData.d_nu =
1764 (3. * deck.d_matData.d_K - deck.d_matData.d_E) /
1765 (6. * deck.d_matData.d_K);
1766
1767 if (found_G and found_K)
1768 deck.d_matData.d_nu =
1769 (3. * deck.d_matData.d_K - 2. * deck.d_matData.d_G) /
1770 (2. * (3. * deck.d_matData.d_K + deck.d_matData.d_G));
1771 }
1772 found_nu = true;
1773
1774 // compute E if not provided
1775 if (!found_E) {
1776 if (found_K)
1777 deck.d_matData.d_E =
1778 deck.d_matData.toE(deck.d_matData.d_K, deck.d_matData.d_nu);
1779
1780 if (found_G)
1781 deck.d_matData.d_E =
1782 2. * deck.d_matData.d_G * (1. + deck.d_matData.d_nu);
1783 }
1784 found_E = true;
1785
1786 // compute K if not provided
1787 if (!found_K)
1788 deck.d_matData.d_K =
1789 deck.d_matData.toK(deck.d_matData.d_E, deck.d_matData.d_nu);
1790
1791 found_K = true;
1792
1793
1794 // compute G if not provided
1795 if (!found_G)
1796 deck.d_matData.d_G =
1797 deck.d_matData.toGE(deck.d_matData.d_E, deck.d_matData.d_nu);
1798
1799 found_G = true;
1800
1801 // compute Gc (if not provided) and KIc (if not provided)
1802 if (deck.d_matData.d_Gc > 0.)
1803 deck.d_matData.d_KIc = deck.d_matData.toKIc(
1804 deck.d_matData.d_Gc, deck.d_matData.d_nu, deck.d_matData.d_E);
1805
1806 if (deck.d_matData.d_KIc > 0. && deck.d_matData.d_Gc < 0.)
1807 deck.d_matData.d_Gc = deck.d_matData.toGc(
1808 deck.d_matData.d_KIc, deck.d_matData.d_nu, deck.d_matData.d_E);
1809
1810 // compute lame parameter
1811 deck.d_matData.d_lambda =
1812 deck.d_matData.toLambdaE(deck.d_matData.d_E, deck.d_matData.d_nu);
1813 deck.d_matData.d_mu = deck.d_matData.d_G;
1814
1815 // compute peridynamic parameters
1816 d_K = deck.d_matData.d_K;
1817 d_G = deck.d_matData.d_G;
1818 d_kappa = getModelBulkModulus(dim, is_plane_strain, d_K, d_G);
1819
1820 // The closed form for s0 holds for a constant influence function.
1821 if (deck.d_influenceFnType != 0) {
1822 throw std::runtime_error(
1824 << "Error: PDState critical stretch from Gc needs a constant "
1825 "influence function. Set Influence_Function Type = 0.\n");
1826 }
1827 if (dim != 2 && dim != 3) {
1828 throw std::runtime_error(
1830 << "Error: PdState computeParameters: unsupported dim=" << dim
1831 << "\n");
1832 }
1833 d_s0 = std::sqrt(deck.d_matData.d_Gc / getCriticalStretchDensity(dim));
1834 };
std::string str() const
The message built so far.
Definition io.h:67
bool isGreater(const double &a, const double &b)
Returns true if a > b.
Definition function.cpp:17
bool isLess(const double &a, const double &b)
Returns true if a < b.
Definition function.cpp:22
double toGc(double KIc, double nu, double E)
Compute critical energy release rate Gc from critical stress-intensity factor KIc,...
double toLambdaE(double E, double nu)
Compute Lame first parameter lambda from Young's modulus E and Poisson's ratio nu.
double d_mu
Lame second parameter.
double toKIc(double Gc, double nu, double E)
Compute critical stress-intensity factor KIc from critical energy release rate Gc,...
double d_KIc
Critical stress intensity factor.
double toK(double E, double nu)
Compute Bulk modulus K from Young's modulus K and Poisson's ratio nu.
double d_K
Bulk modulus.
double d_lambda
Lame first parameter.
double toGE(double E, double nu)
Compute shear modulus from Young's modulus E and Poisson's ratio nu.
double d_nu
Poisson's ratio.
double d_G
Shear modulus or Lame second parameter.
double d_E
Young's elastic modulus.
double d_Gc
Critical energy release rate.
double toE(double K, double nu)
Compute Young's modulus E from Bulk modulus K and Poisson's ratio nu.
inp::MatData d_matData
List of elastic and fracture properties.
std::string printStr(int nt=0, int lvl=0) const
Returns the string containing printable information about the object.

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBondEF() [1/2]

std::pair< double, double > material::PdState::getBondEF ( const double &  r,
const double &  s,
bool &  fs,
const bool &  break_bonds 
) const
inlineoverridevirtual

Returns energy and force between bond due to pairwise interaction.

Parameters
rReference (initial) bond length
sBond strain
fsBond fracture state
break_bondsFlag to specify whether bonds are allowed to break or not
Returns
value Pair of energy and force

Implements material::Material.

Definition at line 1500 of file material.h.

1502 {
1503
1504 return {0., 0.};
1505 };

◆ getBondEF() [2/2]

std::pair< double, double > material::PdState::getBondEF ( const double &  r,
const double &  s,
bool &  fs,
const double &  mx,
const double &  thetax 
) const
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().

Parameters
rReference (initial) bond length
sBond strain
fsBond fracture state
mxWeighted volume at node
thetaxDilation
Returns
value Pair of energy and force

Implements material::Material.

Definition at line 1526 of file material.h.

1527 {
1528
1529 if (fs)
1530 return {0., 0.};
1531
1532 double J = getInfFn(r);
1533 double change_length = s * r;
1534
1535 double alpha = d_alphaFactor * d_G / mx;
1536 double factor = (d_dim * d_kappa / mx) - alpha / d_dim;
1537 double e_dev = change_length - thetax * r / d_dim;
1538
1539 return {0.5 * alpha * J * e_dev * e_dev,
1540 J * (r * thetax * factor + change_length * alpha)};
1541 };
double getInfFn(const double &r) const override
Returns the value of influence function.
Definition material.h:1595

References d_alphaFactor, d_dim, d_G, d_kappa, and getInfFn().

Here is the call graph for this function:

◆ getBondForceDirection()

util::Point material::PdState::getBondForceDirection ( const util::Point &  dx,
const util::Point &  du 
) const
inlineoverridevirtual

Returns the unit vector along which bond-force acts.

Parameters
dxReference bond vector
duDifference of displacement
Returns
vector Unit vector

Implements material::Material.

Definition at line 1560 of file material.h.

1561 {
1562 return (dx + du) / (dx + du).length();
1563 };

◆ getCriticalStretchDensity()

double material::PdState::getCriticalStretchDensity ( const size_t &  dim) const
inlineprivate

Returns Gc / s0^2 for the state-based model.

Madenci and Oterkus 2014 (constant influence function), with the model bulk modulus in 2D.

Parameters
dimDimension
Returns
value Gc / s0^2

Definition at line 1845 of file material.h.

1845 {
1846 if (dim == 2)
1847 return (6.0 * d_G / M_PI +
1848 16.0 * (d_kappa - 2.0 * d_G) / (9.0 * M_PI * M_PI)) *
1849 d_horizon;
1850 return (3. * d_G + std::pow(3. / 4., 4) * (d_K - 5. * d_G / 3.)) *
1851 d_horizon;
1852 };

References d_G, d_horizon, d_K, and d_kappa.

Referenced by computeMaterialProperties(), and computeParameters().

Here is the caller graph for this function:

◆ getDensity()

double material::PdState::getDensity ( ) const
inlineoverridevirtual

Returns the density of the material.

Returns
density Density of the material

Implements material::Material.

Definition at line 1587 of file material.h.

1587{ return d_density; };

References d_density.

◆ getDilatationEnergyDensity()

double material::PdState::getDilatationEnergyDensity ( const double &  thetax) const
inlineoverridevirtual

Returns the dilatational part of the strain energy density.

Parameters
thetaxDilatation at node
Returns
energy \( \frac{1}{2} \kappa \theta^2 \)

Reimplemented from material::Material.

Definition at line 1549 of file material.h.

1549 {
1550 return 0.5 * d_kappa * thetax * thetax;
1551 };

References d_kappa.

◆ getHorizon()

double material::PdState::getHorizon ( ) const
inlineoverridevirtual

Returns horizon.

Returns
horizon Horizon

Implements material::Material.

Definition at line 1617 of file material.h.

1617{ return d_horizon; };

References d_horizon.

◆ getInfFn()

double material::PdState::getInfFn ( const double &  r) const
inlineoverridevirtual

Returns the value of influence function.

Parameters
rReference (initial) bond length
Returns
value Influence function at r

Implements material::Material.

Definition at line 1595 of file material.h.

1595 {
1596 return getGlobalInfFn(r / d_horizon);
1597 };
double getGlobalInfFn(const double &r)
Returns the value of influence function.
Definition material.h:42

References d_horizon.

Referenced by getBondEF().

Here is the caller graph for this function:

◆ getMoment()

double material::PdState::getMoment ( const size_t &  i) const
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. \]

Parameters
iith moment
Returns
value Moment

Implements material::Material.

Definition at line 1608 of file material.h.

1608 {
1609 return getGlobalMoment(i);
1610 };
double getGlobalMoment(const size_t &i)
Returns the moment of influence function.
Definition material.h:55

◆ getS()

double material::PdState::getS ( const util::Point &  dx,
const util::Point &  du 
) const
inlineoverridevirtual

Returns the bond strain.

Parameters
dxReference bond vector
duDifference of displacement
Returns
strain Bond strain \( S = \frac{du \cdot dx}{|dx|^2} \)

Implements material::Material.

Definition at line 1571 of file material.h.

1571 {
1572 return ((dx + du).length() - dx.length()) / dx.length();
1573 };
double length() const
Computes the Euclidean length of the vector.
Definition point.h:124

References util::Point::length().

Here is the call graph for this function:

◆ getSc()

double material::PdState::getSc ( const double &  r) const
inlineoverridevirtual

Returns critical bond strain.

Parameters
rReference length of bond
Returns
strain Critical strain

Implements material::Material.

Definition at line 1581 of file material.h.

1581{ return d_s0; };

References d_s0.

◆ isStateActive()

bool material::PdState::isStateActive ( ) const
inlineoverridevirtual

Returns true if state-based potential is active.

Returns
bool True/false

Implements material::Material.

Definition at line 1489 of file material.h.

1489{ return true; };

◆ print() [1/2]

void material::PdState::print ( ) const
inlineoverridevirtual

Prints the information about the object.

Reimplemented from material::Material.

Definition at line 1690 of file material.h.

1690{ print(0, 0); };
void print() const override
Prints the information about the object.
Definition material.h:1690

References print().

Referenced by print().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ print() [2/2]

void material::PdState::print ( int  nt,
int  lvl 
) const
inlineoverridevirtual

Prints the information about the object.

Parameters
ntNumber of tabs to append before printing
lvlInformation level (higher means more information)

Reimplemented from material::Material.

Definition at line 1685 of file material.h.

1685 {
1686 std::cout << printStr(nt, lvl);
1687 };
std::string printStr(int nt, int lvl) const override
Returns the string containing printable information about the object.
Definition material.h:1659

References printStr().

Here is the call graph for this function:

◆ printStr()

std::string material::PdState::printStr ( int  nt,
int  lvl 
) const
inlineoverridevirtual

Returns the string containing printable information about the object.

Parameters
ntNumber of tabs to append before printing
lvlInformation level (higher means more information)
Returns
string String containing printable information about the object

Reimplemented from material::Material.

Definition at line 1659 of file material.h.

1659 {
1660
1661 auto tabS = util::io::getTabS(nt);
1662 std::ostringstream oss;
1663 oss << tabS << "------- particle::PdState --------" << std::endl
1664 << std::endl;
1665 oss << tabS << "State active = " << 1 << std::endl;
1666 oss << tabS << "Horizon = " << d_horizon << std::endl;
1667 oss << tabS << "Influence fn address = " << influence_fn.get() << std::endl;
1668 oss << tabS << "Influence fn info: " << std::endl;
1669 oss << influence_fn->printStr(nt + 1, lvl);
1670 oss << tabS << "Peridynamic parameters: " << std::endl;
1671 oss << tabS << " K = " << d_K << std::endl;
1672 oss << tabS << " G = " << d_G << std::endl;
1673 oss << tabS << " s0 = " << d_s0 << std::endl;
1674 oss << tabS << std::endl;
1675
1676 return oss.str();
1677 };
std::string getTabS(int nt)
Returns tab spaces of a given size.
Definition io.h:82

References d_G, d_horizon, d_K, d_s0, and util::io::getTabS().

Referenced by print().

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ d_alphaFactor

double material::PdState::d_alphaFactor
private

d(d+2): 15 in 3D, 8 in 2D

Definition at line 1882 of file material.h.

Referenced by getBondEF().

◆ d_density

double material::PdState::d_density
private

Density.

Definition at line 1859 of file material.h.

Referenced by getDensity().

◆ d_dim

double material::PdState::d_dim
private

Dimension, as a double.

Definition at line 1879 of file material.h.

Referenced by getBondEF().

◆ d_G

double material::PdState::d_G
private

◆ d_horizon

double material::PdState::d_horizon
private

Horizon.

Definition at line 1856 of file material.h.

Referenced by getCriticalStretchDensity(), getHorizon(), getInfFn(), and printStr().

◆ d_K

double material::PdState::d_K
private

Bulk modulus.

Definition at line 1867 of file material.h.

Referenced by computeMaterialProperties(), computeParameters(), getCriticalStretchDensity(), PdState(), and printStr().

◆ d_kappa

double material::PdState::d_kappa
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().

◆ d_s0

double material::PdState::d_s0
private

Critical stretch.

Definition at line 1876 of file material.h.

Referenced by computeMaterialProperties(), computeParameters(), getSc(), PdState(), and printStr().


The documentation for this class was generated from the following file: