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

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

#include <material.h>

Inheritance diagram for material::RnpMaterial:
Collaboration diagram for material::RnpMaterial:

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 getBreakSc (const double &r) const override
 Returns bond strain beyond which the bond is marked broken.
 
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 getDilatationEnergyDensity (const double &thetax) const
 Returns the dilatational part of the strain energy density.
 

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

Detailed Description

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

Definition at line 293 of file material.h.

Constructor & Destructor Documentation

◆ RnpMaterial()

material::RnpMaterial::RnpMaterial ( 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 302 of file material.h.

303 : Material("RNPBond"), d_horizon(horizon), d_density(deck.d_density),
304 d_C(0.), d_beta(0.), d_rbar(0.), d_invFactor(0.),
307
308 // set global fields
309 if (dimension != dim)
310 dimension = dim;
311
312 if (is_plane_strain != deck.d_isPlaneStrain)
314
315 // create influence function
316 if (deck.d_influenceFnType == 0) {
317 if (influence_fn == nullptr)
318 influence_fn = std::make_shared<material::ConstInfluenceFn>(
319 deck.d_influenceFnParams, dim);
320 }
321 else if (deck.d_influenceFnType == 1) {
322 if (influence_fn == nullptr)
323 influence_fn = std::make_shared<material::LinearInfluenceFn>(
324 deck.d_influenceFnParams, dim);
325 }
326 else if (deck.d_influenceFnType == 2) {
327 if (influence_fn == nullptr)
328 influence_fn = std::make_shared<material::GaussianInfluenceFn>(
329 deck.d_influenceFnParams, dim);
330 }
331 else {
332 throw std::runtime_error(
334 << "Error: Influence function type = "
335 << deck.d_influenceFnType
336 << " is invalid.\n");
337 }
338
339 if (dim == 1)
340 d_invFactor = std::pow(horizon, 2) * 2.;
341 else if (dim == 2)
342 d_invFactor = std::pow(horizon, 3) * M_PI;
343 else if (dim == 3)
344 d_invFactor = std::pow(horizon, 4) * 4. * M_PI / 3.;
345
346 // check if we need to compute the material parameters
348 computeParameters(deck, dim);
349 else {
350 d_C = deck.d_bondPotentialParams[0];
352 d_rbar = std::sqrt(0.5 / d_beta);
353 }
354 };
Material(std::string name="")
Constructor.
Definition material.h:105
double d_invFactor
Inverse of factor = .
Definition material.h:713
void computeParameters(inp::MaterialDeck &deck, const size_t &dim)
Compute material model parameters.
Definition material.h:592
bool d_irrevBondBreak
Flag which indicates if the breaking of bond is irreversible.
Definition material.h:724
double d_rbar
Inflection point of nonlinear function = .
Definition material.h:710
double d_factorSc
Factor to multiply to critical strain to check if bond is fractured.
Definition material.h:721
double d_density
Density.
Definition material.h:694
double d_beta
Parameter .
Definition material.h:705
double d_C
Parameter C.
Definition material.h:702
double d_horizon
Horizon.
Definition material.h:691
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
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.
bool d_irreversibleBondBreak
Flag for irreversible breaking of bonds.
double d_checkScFactor
Factor to check if bond is broken.

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.

Here is the call graph for this function:

Member Function Documentation

◆ computeMaterialProperties()

inp::MatData material::RnpMaterial::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 512 of file material.h.

512 {
513
514 auto data = inp::MatData();
515
516 // set Poisson's ratio to 1/4
517 data.d_nu = 0.25;
518
519 // get moment of influence function
520 double M = getMoment(dim);
521
522 // inverse of computeParameters
523 if (dim == 2) {
524 data.d_Gc = 4. * M * d_C / M_PI;
525 data.d_lambda = d_C * M * d_beta / 2.;
526 } else if (dim == 3) {
527 data.d_Gc = 3. * M * d_C / 2.;
528 data.d_lambda = 2. * d_C * M * d_beta / 5.;
529 }
530 data.d_mu = data.d_lambda;
531 data.d_G = data.d_lambda;
532 data.d_E = data.toELambda(data.d_lambda,
533 data.d_nu);
534 data.d_K =
535 data.toK(data.d_E, data.d_nu);
536 data.d_KIc = data.toKIc(
537 data.d_Gc, data.d_nu, data.d_E);
538
539 return data;
540 };
double getMoment(const size_t &i) const override
Returns the moment of influence function.
Definition material.h:495
Definition contact.h:20
Structure for elastic properties and fracture properties.

References d_beta, d_C, and getMoment().

Here is the call graph for this function:

◆ computeParameters()

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

Compute material model parameters.

Parameters
deckMaterialDeck
dimDimension of the domain

Definition at line 592 of file material.h.

592 {
593 //
594 // Need following elastic and fracture properties
595 // 1. E or K
596 // 2. Gc or KIc
597 // For bond-based, Poisson's ratio is fixed to 1/4, so 2D must be plane
598 // strain (Lipton 2016; Jha 2025, sec. 7.2).
599 //
600 if (dim == 2 && !is_plane_strain) {
601 throw std::runtime_error(
603 << "Error: RNP calibration needs nu = 1/4, which in 2D means plane "
604 "strain. Set Is_Plane_Strain = true.\n");
605 }
606 if (util::isLess(deck.d_matData.d_E, 0.) &&
607 util::isLess(deck.d_matData.d_K, 0.)) {
608 throw std::runtime_error(
610 << "Error: Require either Young's modulus E or Bulk modulus K"
611 " to compute the RNP bond-based peridynamic parameters.\n");
612 }
613 if (util::isGreater(deck.d_matData.d_E, 0.) &&
614 util::isGreater(deck.d_matData.d_K, 0.)) {
615 std::cout << "Warning: Both Young's modulus E and Bulk modulus K are "
616 "provided.\n";
617 std::cout << "Warning: To compute the RNP bond-based peridynamic "
618 "parameters, we only require one of those.\n";
619 std::cout
620 << "Warning: Selecting Young's modulus to compute parameters.\n";
621 }
622
623 if (util::isLess(deck.d_matData.d_Gc, 0.) &&
624 util::isLess(deck.d_matData.d_KIc, 0.)) {
625 throw std::runtime_error(
627 << "Error: Require either critical energy release rate Gc or "
628 "critical stress intensity factor KIc to compute the RNP "
629 "bond-based peridynamic parameters.\n");
630 } else if (util::isGreater(deck.d_matData.d_Gc, 0.) &&
631 util::isGreater(deck.d_matData.d_KIc, 0.)) {
632 std::cout << "Warning: Both critical energy release rate Gc and critical "
633 "stress intensity factor KIc are provided.\n";
634 std::cout << "Warning: To compute the RNP bond-based peridynamic "
635 "parameters, we only require one of those.\n";
636 std::cout << "Warning: Selecting critical energy release rate Gc to "
637 "compute parameters.\n";
638 }
639
640 // set Poisson's ratio to 1/4
641 if (util::isGreater(deck.d_matData.d_nu, 0.) &&
642 std::abs(deck.d_matData.d_nu - 0.25) > 1.0e-12)
643 std::cout << "Warning: RNP bond-based model fixes nu = 1/4; ignoring "
644 "nu = " << deck.d_matData.d_nu << ".\n";
645 deck.d_matData.d_nu = 0.25;
646
647 // compute E if not provided or K if not provided
648 if (deck.d_matData.d_E > 0.)
649 deck.d_matData.d_K =
650 deck.d_matData.toK(deck.d_matData.d_E, deck.d_matData.d_nu);
651
652 if (deck.d_matData.d_K > 0. && deck.d_matData.d_E < 0.)
653 deck.d_matData.d_E =
654 deck.d_matData.toE(deck.d_matData.d_K, deck.d_matData.d_nu);
655
656 if (deck.d_matData.d_Gc > 0.)
657 deck.d_matData.d_KIc = deck.d_matData.toKIc(
658 deck.d_matData.d_Gc, deck.d_matData.d_nu, deck.d_matData.d_E);
659
660 if (deck.d_matData.d_KIc > 0. && deck.d_matData.d_Gc < 0.)
661 deck.d_matData.d_Gc = deck.d_matData.toGc(
662 deck.d_matData.d_KIc, deck.d_matData.d_nu, deck.d_matData.d_E);
663
664 // compute lame parameter
665 deck.d_matData.d_lambda =
667 deck.d_matData.d_G =
668 deck.d_matData.toGE(deck.d_matData.d_E, deck.d_matData.d_nu);
669 deck.d_matData.d_mu = deck.d_matData.d_G;
670
671 // get moment of influence function
672 double M = getMoment(dim);
673
674 // Small strain gives lambda = mu = C beta M / 2 (2D) and 2 C beta M / 5
675 // (3D); Gc = 4 C M / pi (2D) and 3 C M / 2 (3D). Jha 2025 eq. 83 takes
676 // Lipton's lambda, which is half the physical one (Lipton 2014, eq. 3.10).
677 if (dim == 2) {
678 d_C = M_PI * deck.d_matData.d_Gc / (4. * M);
679 d_beta = 2. * deck.d_matData.d_lambda / (d_C * M);
680 } else if (dim == 3) {
681 d_C = 2. * deck.d_matData.d_Gc / (3. * M);
682 d_beta = 5. * deck.d_matData.d_lambda / (2. * d_C * M);
683 }
684
685 d_rbar = std::sqrt(0.5 / d_beta);
686 };
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.

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

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

◆ getBondEF() [1/2]

std::pair< double, double > material::RnpMaterial::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.

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))\) (Lipton 2016; Jha 2025, eqs. 8-9). The total energy is \( \int e(x) dx \), so the pair force is twice the derivative of the bond energy.

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). \]

Parameters
rReference (initial) bond length
sBond strain
fsBond fracture state
break_bondsIf true, also update the fracture state of the bond
Returns
value Pair of energy and force

Implements material::Material.

Definition at line 387 of file material.h.

389 {
390
391 if (break_bonds && !fs && util::isGreater(std::abs(s), getBreakSc(r)))
392 fs = true;
393
394 // intact bonds follow the nonlinear potential; broken bonds keep the
395 // saturated energy and carry no force
396 if (!fs)
397 return std::make_pair(
398 getInfFn(r) * d_C *
399 (1. - std::exp(-d_beta * r * s * s)) / d_invFactor,
400 getInfFn(r) * 4. * s * d_C * d_beta *
401 std::exp(-d_beta * r * s * s) / d_invFactor);
402 else
403 return std::make_pair(getInfFn(r) * d_C / d_invFactor, 0.);
404 };
double getInfFn(const double &r) const override
Returns the value of influence function.
Definition material.h:482
double getBreakSc(const double &r) const override
Returns bond strain beyond which the bond is marked broken.
Definition material.h:464

References d_beta, d_C, d_invFactor, getBreakSc(), getInfFn(), and util::isGreater().

Referenced by getBondEF().

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

◆ getBondEF() [2/2]

std::pair< double, double > material::RnpMaterial::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.

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 417 of file material.h.

418 {
419
420 return this->getBondEF(r, s, fs, true);
421 };
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.
Definition material.h:387

References getBondEF().

Here is the call graph for this function:

◆ getBondForceDirection()

util::Point material::RnpMaterial::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 430 of file material.h.

431 {
432 return dx / dx.length();
433 };
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:

◆ getBreakSc()

double material::RnpMaterial::getBreakSc ( const double &  r) const
inlineoverridevirtual

Returns bond strain beyond which the bond is marked broken.

The force softens past the critical strain; the bond is marked broken only past factor_Sc times it, and never if breaking is reversible.

Parameters
rReference length of bond
Returns
strain Breaking strain

Reimplemented from material::Material.

Definition at line 464 of file material.h.

464 {
465 if (!d_irrevBondBreak)
466 return std::numeric_limits<double>::max();
467 return d_factorSc * getSc(r);
468 };
double getSc(const double &r) const override
Returns critical bond strain.
Definition material.h:451

References d_factorSc, d_irrevBondBreak, and getSc().

Referenced by getBondEF().

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

◆ getDensity()

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

Returns the density of the material.

Returns
density Density of the material

Implements material::Material.

Definition at line 474 of file material.h.

474{ return d_density; };

References d_density.

◆ getHorizon()

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

Returns horizon.

Returns
horizon Horizon

Implements material::Material.

Definition at line 503 of file material.h.

503{ return d_horizon; };

References d_horizon.

◆ getInfFn()

double material::RnpMaterial::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 482 of file material.h.

482 {
483 return getGlobalInfFn(r / d_horizon);
484 };
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::RnpMaterial::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 495 of file material.h.

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

Referenced by computeMaterialProperties(), and computeParameters().

Here is the caller graph for this function:

◆ getS()

double material::RnpMaterial::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 441 of file material.h.

441 {
442 return dx.dot(du) / dx.dot(dx);
443 };
double dot(const Point &b) const
Computes the dot product of this vector with another point.
Definition point.h:138

References util::Point::dot().

Here is the call graph for this function:

◆ getSc()

double material::RnpMaterial::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 451 of file material.h.

451 {
452 return d_rbar / std::sqrt(r);
453 };

References d_rbar.

Referenced by getBreakSc().

Here is the caller graph for this function:

◆ isStateActive()

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

Returns true if state-based potential is active.

Returns
bool True/false

Implements material::Material.

Definition at line 357 of file material.h.

357{ return false; };

◆ print() [1/2]

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

Prints the information about the object.

Reimplemented from material::Material.

Definition at line 583 of file material.h.

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

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::RnpMaterial::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 578 of file material.h.

578 {
579 std::cout << printStr(nt, lvl);
580 }
std::string printStr(int nt, int lvl) const override
Returns the string containing printable information about the object.
Definition material.h:549

References printStr().

Here is the call graph for this function:

◆ printStr()

std::string material::RnpMaterial::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 549 of file material.h.

549 {
550
551 auto tabS = util::io::getTabS(nt);
552 std::ostringstream oss;
553 oss << tabS << "------- particle::RnpMaterial --------" << std::endl
554 << std::endl;
555 oss << tabS << "State active = " << 0 << std::endl;
556 oss << tabS << "Horizon = " << d_horizon << std::endl;
557 oss << tabS << "Influence fn address = " << influence_fn.get() << std::endl;
558 oss << tabS << "Influence fn info: " << std::endl;
559 oss << influence_fn->printStr(nt + 1, lvl);
560 oss << tabS << "Peridynamic parameters: " << std::endl;
561 oss << tabS << " C = " << d_C << std::endl;
562 oss << tabS << " beta = " << d_beta << std::endl;
563 oss << tabS << " r_bar = " << d_rbar << std::endl;
564 oss << tabS << " inv_factor = " << d_invFactor << std::endl;
565 oss << tabS << " factor_Sc = " << d_factorSc << std::endl;
566 oss << tabS << " irrev_bond_breaking = " << d_irrevBondBreak << std::endl;
567 oss << tabS << std::endl;
568
569 return oss.str();
570 }
std::string getTabS(int nt)
Returns tab spaces of a given size.
Definition io.h:82

References d_beta, d_C, d_factorSc, d_horizon, d_invFactor, d_irrevBondBreak, d_rbar, 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_beta

double material::RnpMaterial::d_beta
private

Parameter \( \beta \).

Definition at line 705 of file material.h.

Referenced by computeMaterialProperties(), computeParameters(), getBondEF(), printStr(), and RnpMaterial().

◆ d_C

double material::RnpMaterial::d_C
private

Parameter C.

Definition at line 702 of file material.h.

Referenced by computeMaterialProperties(), computeParameters(), getBondEF(), printStr(), and RnpMaterial().

◆ d_density

double material::RnpMaterial::d_density
private

Density.

Definition at line 694 of file material.h.

Referenced by getDensity().

◆ d_factorSc

double material::RnpMaterial::d_factorSc
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 721 of file material.h.

Referenced by getBreakSc(), and printStr().

◆ d_horizon

double material::RnpMaterial::d_horizon
private

Horizon.

Definition at line 691 of file material.h.

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

◆ d_invFactor

double material::RnpMaterial::d_invFactor
private

Inverse of factor = \( \epsilon |B_\epsilon(0)|\).

Definition at line 713 of file material.h.

Referenced by getBondEF(), printStr(), and RnpMaterial().

◆ d_irrevBondBreak

bool material::RnpMaterial::d_irrevBondBreak
private

Flag which indicates if the breaking of bond is irreversible.

Definition at line 724 of file material.h.

Referenced by getBreakSc(), and printStr().

◆ d_rbar

double material::RnpMaterial::d_rbar
private

Inflection point of nonlinear function = \( 1/\sqrt{2\beta}\).

Definition at line 710 of file material.h.

Referenced by computeParameters(), getSc(), printStr(), and RnpMaterial().


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