PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
Loading...
Searching...
No Matches
inp::MatData Struct Reference

Structure for elastic properties and fracture properties. More...

#include <materialDeck.h>

Collaboration diagram for inp::MatData:

Public Member Functions

 MatData ()
 Constructor.
 
 MatData (const MatData &md)
 Copy constructor.
 
void readFromJson (const json &j)
 
std::string printStr (int nt=0, int lvl=0) const
 Returns the string containing printable information about the object.
 
void print (int nt=0, int lvl=0) const
 Prints the information about the object.
 
Conversion methods
double toNu (double lambda, double mu)
 Compute Poisson's ratio from Lame parameters.
 
double toNuEG (double E, double G)
 Compute Poisson's ratio from Young's and Shear modulus.
 
double toE (double K, double nu)
 Compute Young's modulus E from Bulk modulus K and Poisson's ratio nu.
 
double toK (double E, double nu)
 Compute Bulk modulus K from Young's modulus K and Poisson's ratio nu.
 
double toLambdaE (double E, double nu)
 Compute Lame first parameter lambda from Young's modulus E and Poisson's ratio nu.
 
double toLambdaK (double K, double nu)
 Compute Lame first parameter lambda from Bulk modulus K and Poisson's ratio nu.
 
double toGE (double E, double nu)
 Compute shear modulus from Young's modulus E and Poisson's ratio nu.
 
double toGK (double K, double nu)
 Compute shear modulus from Bulk modulus K and Poisson's ratio nu.
 
double toELambda (double lambda, double nu)
 Compute Young's modulus E from Lame first parameter lambda and Poisson's ratio nu.
 
double toGc (double KIc, double nu, double E)
 Compute critical energy release rate Gc from critical stress-intensity factor KIc, Poisson's ratio nu, and Young's modulus E.
 
double toKIc (double Gc, double nu, double E)
 Compute critical stress-intensity factor KIc from critical energy release rate Gc, Poisson's ratio \( nu\), and Young's modulus E.
 

Static Public Member Functions

static const std::vector< Field< MatData > > & fields ()
 Reads from json object.
 

Data Fields

Elastic material properties
double d_E
 Young's elastic modulus.
 
double d_G
 Shear modulus or Lame second parameter.
 
double d_K
 Bulk modulus.
 
double d_nu
 Poisson's ratio.
 
double d_lambda
 Lame first parameter.
 
double d_mu
 Lame second parameter.
 
Fracture properties
double d_KIc
 Critical stress intensity factor.
 
double d_Gc
 Critical energy release rate.
 

Detailed Description

Structure for elastic properties and fracture properties.

Definition at line 24 of file materialDeck.h.

Constructor & Destructor Documentation

◆ MatData() [1/2]

inp::MatData::MatData ( )
inline

Constructor.

Definition at line 67 of file materialDeck.h.

68 : d_E(-1.), d_G(-1.), d_K(-1.), d_nu(-1.), d_lambda(-1.), d_mu(-1.),
69 d_KIc(-1.), d_Gc(-1.){};
double d_mu
Lame second parameter.
double d_KIc
Critical stress intensity factor.
double d_K
Bulk modulus.
double d_lambda
Lame first parameter.
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.

◆ MatData() [2/2]

inp::MatData::MatData ( const MatData &  md)
inline

Copy constructor.

Parameters
mdAnother MatData object

Definition at line 76 of file materialDeck.h.

77 : d_E(md.d_E), d_G(md.d_G), d_K(md.d_K), d_nu(md.d_nu),
78 d_lambda(md.d_lambda), d_mu(md.d_mu), d_KIc(md.d_KIc), d_Gc(md.d_Gc){};

Member Function Documentation

◆ fields()

static const std::vector< Field< MatData > > & inp::MatData::fields ( )
inlinestatic

Reads from json object.

The elastic constants, declared once

Each is read from the material block itself rather than a sub-block. A constant that is not given keeps -1, which the material classes read as absent and derive from the others.

Returns
fields The field table

Definition at line 92 of file materialDeck.h.

92 {
93 static const std::vector<Field<MatData>> f = {
94 field(&MatData::d_E, "E", -1., "Young's modulus"),
95 field(&MatData::d_G, "G", -1., "Shear modulus"),
96 field(&MatData::d_K, "K", -1., "Bulk modulus"),
97 field(&MatData::d_lambda, "Lambda", -1., "First Lame parameter"),
98 field(&MatData::d_mu, "Mu", -1., "Second Lame parameter"),
99 field(&MatData::d_nu, "Poisson_Ratio", -1., "Poisson ratio"),
100 field(&MatData::d_Gc, "Gc", -1., "Critical energy release rate"),
101 field(&MatData::d_KIc, "KIc", -1., "Critical stress intensity factor"),
102 };
103 return f;
104 }
Field< Deck > field(T Deck::*m, std::string key, T def, std::string doc, Accepts< T > accepts={}, std::function< bool(const T &)> emitIf=[](const T &) { return true;})
Declares a field that maps one key to one member.
Definition deckField.h:144

References d_E, d_G, d_Gc, d_K, d_KIc, d_lambda, d_mu, d_nu, and inp::field().

Referenced by readFromJson().

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

◆ print()

void inp::MatData::print ( int  nt = 0,
int  lvl = 0 
) const
inline

Prints the information about the object.

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

Definition at line 143 of file materialDeck.h.

143{ std::cout << printStr(nt, lvl); }
std::string printStr(int nt=0, int lvl=0) const
Returns the string containing printable information about the object.

References printStr().

Here is the call graph for this function:

◆ printStr()

std::string inp::MatData::printStr ( int  nt = 0,
int  lvl = 0 
) const
inline

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

Definition at line 119 of file materialDeck.h.

119 {
120
121 auto tabS = util::io::getTabS(nt);
122 std::ostringstream oss;
123 oss << tabS << "------- MatData --------" << std::endl << std::endl;
124 oss << tabS << "Young's modulus = " << d_E << std::endl;
125 oss << tabS << "Shear modulus = " << d_G << std::endl;
126 oss << tabS << "Bulk modulus = " << d_K << std::endl;
127 oss << tabS << "Poisson ratio = " << d_nu << std::endl;
128 oss << tabS << "Lame parameter Lambda = " << d_lambda << std::endl;
129 oss << tabS << "Lame parameter Mu = " << d_mu << std::endl;
130 oss << tabS << "Critical stress intensity factor = " << d_KIc << std::endl;
131 oss << tabS << "Critical energy release rate = " << d_Gc << std::endl;
132 oss << tabS << std::endl;
133
134 return oss.str();
135 }
std::string getTabS(int nt)
Returns tab spaces of a given size.
Definition io.h:82

References d_E, d_G, d_Gc, d_K, d_KIc, d_lambda, d_mu, d_nu, and util::io::getTabS().

Referenced by print(), and inp::MaterialDeck::printStr().

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

◆ readFromJson()

void inp::MatData::readFromJson ( const json &  j)
inline

Definition at line 106 of file materialDeck.h.

106 {
107 if (j.empty())
108 return;
109 readFields(*this, j, fields());
110 }
void readFields(Deck &d, const json &j, const std::vector< Field< Deck > > &fs)
Reads every field of the table from the block.
Definition deckField.h:230
static const std::vector< Field< MatData > > & fields()
Reads from json object.

References fields(), and inp::readFields().

Referenced by inp::MaterialDeck::readFromJson().

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

◆ toE()

double inp::MatData::toE ( double  K,
double  nu 
)
inline

Compute Young's modulus E from Bulk modulus K and Poisson's ratio nu.

Parameters
KBulk modulus
nuPoisson's ratio
Returns
E Young's modulus

Definition at line 172 of file materialDeck.h.

172{ return K * (3. * (1. - 2. * nu)); }
float K
Definition problem.py:43

Referenced by material::RnpMaterial::computeParameters(), material::PmbMaterial::computeParameters(), material::PdElastic::computeParameters(), and material::PdState::computeParameters().

Here is the caller graph for this function:

◆ toELambda()

double inp::MatData::toELambda ( double  lambda,
double  nu 
)
inline

Compute Young's modulus E from Lame first parameter lambda and Poisson's ratio nu.

Parameters
lambdaLame first parameter
nuPoisson's ratio
Returns
E Young's modulus

Definition at line 227 of file materialDeck.h.

227 {
228 return lambda * (1. + nu) * (1. - 2. * nu) / nu;
229 }

◆ toGc()

double inp::MatData::toGc ( double  KIc,
double  nu,
double  E 
)
inline

Compute critical energy release rate Gc from critical stress-intensity factor KIc, Poisson's ratio nu, and Young's modulus E.

Below conversion from KIc to Gc assumes plane-stress condition. For plane-stress condition, we need to modify the Young's modulus \( E\) to \( \frac{E}{1 - \nu^2} \) where \( \nu\) is the Poisson's ratio.

Parameters
KIcCritical stress-intensity factor
nuPoisson's ratio
EYoung's modulus
Returns
Gc Critical energy release rate

Definition at line 244 of file materialDeck.h.

244{ return KIc * KIc / E; }
float E
Definition problem.py:64

Referenced by material::RnpMaterial::computeParameters(), material::PmbMaterial::computeParameters(), and material::PdState::computeParameters().

Here is the caller graph for this function:

◆ toGE()

double inp::MatData::toGE ( double  E,
double  nu 
)
inline

Compute shear modulus from Young's modulus E and Poisson's ratio nu.

Parameters
EYoung's modulus
nuPoisson's ratio
Returns
G Shear modulus

Definition at line 208 of file materialDeck.h.

208{ return E / (2. * (1. + nu)); }

Referenced by material::RnpMaterial::computeParameters(), material::PmbMaterial::computeParameters(), material::PdElastic::computeParameters(), and material::PdState::computeParameters().

Here is the caller graph for this function:

◆ toGK()

double inp::MatData::toGK ( double  K,
double  nu 
)
inline

Compute shear modulus from Bulk modulus K and Poisson's ratio nu.

Parameters
KBulk modulus
nuPoisson's ratio
Returns
G Shear modulus

Definition at line 216 of file materialDeck.h.

216 {
217 return 3. * K * (1. - 2. * nu) / (2. * (1. + nu));
218 }

◆ toK()

double inp::MatData::toK ( double  E,
double  nu 
)
inline

Compute Bulk modulus K from Young's modulus K and Poisson's ratio nu.

Parameters
EYoung's modulus
nuPoisson's ratio
Returns
K Bulk modulus

Definition at line 180 of file materialDeck.h.

180{ return E / (3. * (1. - 2. * nu)); }

Referenced by material::RnpMaterial::computeParameters(), material::PmbMaterial::computeParameters(), material::PdElastic::computeParameters(), and material::PdState::computeParameters().

Here is the caller graph for this function:

◆ toKIc()

double inp::MatData::toKIc ( double  Gc,
double  nu,
double  E 
)
inline

Compute critical stress-intensity factor KIc from critical energy release rate Gc, Poisson's ratio \( nu\), and Young's modulus E.

Below conversion from Gc to KIc assumes plane-stress condition. For plane-stress condition, we need to modify the Young's modulus \( E\) to \( \frac{E}{1 - \nu^2} \) where \( \nu\) is the Poisson's ratio.

Parameters
GcCritical energy release rate
nuPoisson's ratio
EYoung's modulus
Returns
KIc Critical stress-intensity factor

Definition at line 259 of file materialDeck.h.

259{ return std::sqrt(Gc * E); }

Referenced by material::RnpMaterial::computeParameters(), material::PmbMaterial::computeParameters(), and material::PdState::computeParameters().

Here is the caller graph for this function:

◆ toLambdaE()

double inp::MatData::toLambdaE ( double  E,
double  nu 
)
inline

Compute Lame first parameter lambda from Young's modulus E and Poisson's ratio nu.

Parameters
EYoung's modulus
nuPoisson's ratio
Returns
lambda Lame first parameter

Definition at line 189 of file materialDeck.h.

189 {
190 return E * nu / ((1. + nu) * (1. - 2. * nu));
191 }

Referenced by material::RnpMaterial::computeParameters(), material::PmbMaterial::computeParameters(), material::PdElastic::computeParameters(), and material::PdState::computeParameters().

Here is the caller graph for this function:

◆ toLambdaK()

double inp::MatData::toLambdaK ( double  K,
double  nu 
)
inline

Compute Lame first parameter lambda from Bulk modulus K and Poisson's ratio nu.

Parameters
KBulk modulus
nuPoisson's ratio
Returns
lambda Lame first parameter

Definition at line 200 of file materialDeck.h.

200{ return 3. * K * nu / (1. + nu); }

◆ toNu()

double inp::MatData::toNu ( double  lambda,
double  mu 
)
inline

Compute Poisson's ratio from Lame parameters.

Parameters
lambdaLame first parameter
muLame second parameter
Returns
nu Poisson's ratio

Definition at line 156 of file materialDeck.h.

156{ return lambda * 0.5 / (lambda + mu); }

◆ toNuEG()

double inp::MatData::toNuEG ( double  E,
double  G 
)
inline

Compute Poisson's ratio from Young's and Shear modulus.

Parameters
EYoungs modulus
GShear modulus
Returns
nu Poisson's ratio

Definition at line 164 of file materialDeck.h.

164{ return E * 0.5 / G - 1.; }

Field Documentation

◆ d_E

◆ d_G

◆ d_Gc

◆ d_K

◆ d_KIc

double inp::MatData::d_KIc

◆ d_lambda

◆ d_mu

◆ d_nu


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