micromechanical (C++)
Loading...
Searching...
No Matches
micromechanical::core::Material< T > Struct Template Reference

Material properties for contact laws. More...

#include <material.hpp>

Public Member Functions

 Material (const std::map< std::string, T > &props={})
 Constructor.
 
virtual ~Material ()=default
 
void initialize (StateVariable< T > &sv)
 Initialize the material.
 
T & operator[] (const std::string &key)
 Access material properties.
 
operator[] (const std::string &key) const
 Access material properties.
 
at (const std::string &key) const
 Access material properties.
 
sin_phi_mises (T ba=0.0, T Ra=1.0) const
 Friction angle sine of Von Mises failure criteria.
 
sin_phi_tresca (T ba=0.0, T Ra=1.0) const
 Friction angle sine of Tresca failure criteria.
 
sin_phi_smp (T ba=0.0, T Ra=1.0) const
 Friction angle sine of SMP failure criteria.
 
phi_combined (T ba=0.0, T Ra=1.0, T weight_mises=0.0, T weight_tresca=0.0, T weight_mohr_coulomb=1.0, T weight_smp=0.0) const
 Combined friction angle.
 
get (const std::string &key, T default_=0.0) const
 Access material properties.
 
get_ (const std::string &key, const int idx, T default_=0.0)
 Get a parameter value with anisotropic factor.
 
void set (const std::string &key, T value)
 Set material properties.
 
bool __contains__ (const std::string &key) const
 Determine if the material has a property, to be used in Python.
 
void __setitem__ (const std::string &key, T value)
 Set item.
 
void setAnisotropicParameters (const std::string &key, const std::string &type="chang1990-ext", std::string evolution="zhao2020", const std::map< std::string, T > &coefs={})
 Set anisotropic parameters.
 
anisotropicFactor (const std::string &key, int idx)
 Return the anisotropic factor.
 
kn0_ (const int idx)
 reference normal stiffness
 
kt0_ (const int idx)
 reference tangential stiffness
 
fref_ (const int idx)
 reference force
 
krr_ (const int idx)
 ratio of tangential to normal stiffness
 
R_ (const int idx)
 ratio of normal to tangential stiffness
 
ne_ (const int idx)
 exponent in the equation of normal stiffness
 
ng_ (const int idx)
 exponent in the equation of tangential stiffness
 
cohesion_ (const int idx)
 cohesion
 
e0_ (const int idx)
 initial void ratio
 
ec0_ (const int idx)
 critical void ratio
 
emin_ (const int idx)
 minimum void ratio
 
emax_ (const int idx)
 maximum void ratio
 
Lambda_ (const int idx)
 slope of critical state line
 
kappa_ (const int idx)
 slope of swelling line
 
xi_ (const int idx)
 a parameter controlling the shape of critical state line
 
eref_ (const int idx)
 reference void ratio
 
eref0_ (const int idx)
 initial reference void ratio
 
pref_ (const int idx)
 reference pressure
 
np_ (const int idx)
 a parameter controlling the dilation
 
nd_ (const int idx)
 a parameter controlling the dilation
 
Ad_ (const int idx)
 a parameter controlling the dilation
 
erefu_ (const int idx)
 ultimate reference void ratio
 
b_ (const int idx)
 a parameter controlling the particle breakage
 
rho_ (const int idx)
 a parameter controlling the rate of particle breakage
 
nw_ (const int idx)
 a parameter controlling the particle breakage
 
vi_ (const int idx)
 initial slope of normal displacement versus tangential displacement curve
 
vf_ (const int idx)
 final slope of normal displacement versus tangential displacement curve
 
m_ (const int idx)
 a parameter controlling the shape of yield surface
 
n_ (const int idx)
 a parameter controlling the shape of yield surface
 
fb0_ (const int idx)
 initial adhesive force
 
fc0_ (const int idx)
 initial size of the yield surface
 
xib_ (const int idx)
 a parameter controlling the hardening of the adhesive force
 
xic_ (const int idx)
 a parameter controlling the hardening of the size of the yield surface
 
chi0_ (const int idx)
 initial bounding ratio
 
hp_ (const int idx)
 a parameter relating to plastic modulus of bounding surface effect
 
kp_ (const int idx)
 a parameter controlling the yield surface of SIMSAND model
 
kpr_ (const int idx)
 a parameter controlling the yield surface of SIMSAND model
 
h0_ (const int idx)
 a parameter controlling the hardening of the back stress ratio
 
ch_ (const int idx)
 a parameter controlling the hardening of the back stress ratio
 
c_ (const int idx)
 a parameter controlling the hardening of the back stress ratio
 
fnr_ (const int idx)
 mean effective stress when log(e) = 1 in the LCC line (log(e)-log(p) space)
 
rhoc_ (const int idx)
 slope of the LCC line in the log(e) - log(p) space
 
theta_ (const int idx)
 a constant exponent in the hardening behavior of p0
 
X_ (const int idx)
 a positive model parameter
 
V_ (const int idx)
 a large model parameter
 
kn0 () const
 reference normal stiffness
 
kt0 () const
 reference tangential stiffness
 
fref () const
 reference force
 
krr () const
 ratio of tangential to normal stiffness
 
R () const
 ratio of normal to tangential stiffness
 
ne () const
 exponent in the equation of normal stiffness
 
ng () const
 exponent in the equation of tangential stiffness
 
phi () const
 friction angle
 
cohesion () const
 cohesion
 
e0 () const
 initial void ratio
 
ec0 () const
 critical void ratio
 
emin () const
 minimum void ratio
 
emax () const
 maximum void ratio
 
Lambda () const
 slope of critical state line
 
kappa () const
 slope of swelling line
 
xi () const
 a parameter controlling the shape of critical state line
 
eref () const
 reference void ratio
 
eref0 () const
 initial reference void ratio
 
pref () const
 reference pressure
 
np () const
 a parameter controlling the dilation
 
nd () const
 a parameter controlling the dilation
 
Ad () const
 a parameter controlling the dilation
 
erefu () const
 ultimate reference void ratio
 
b () const
 a parameter controlling the particle breakage
 
rho () const
 a parameter controlling the rate of particle breakage
 
nw () const
 a parameter controlling the particle breakage
 
vi () const
 initial slope of normal displacement versus tangential displacement curve
 
vf () const
 final slope of normal displacement versus tangential displacement curve
 
m () const
 a parameter controlling the shape of yield surface
 
n () const
 a parameter controlling the shape of yield surface
 
fb0 () const
 initial adhesive force
 
fc0 () const
 initial size of the yield surface
 
xib () const
 a parameter controlling the hardening of the adhesive force
 
xic () const
 a parameter controlling the hardening of the size of the yield surface
 
chi0 () const
 initial bounding ratio
 
hp () const
 a parameter relating to plastic modulus of bounding surface effect
 
kp () const
 a parameter controlling the yield surface of SIMSAND model
 
kpr () const
 a parameter controlling the yield surface of SIMSAND model
 
h0 () const
 a parameter controlling the hardening of the back stress ratio
 
ch () const
 a parameter controlling the hardening of the back stress ratio
 
c () const
 a parameter controlling the hardening of the back stress ratio
 
pr () const
 mean effective stress when log(e) = 1 in the LCC line (log(e)-log(p) space)
 
rhoc () const
 slope of the LCC line in the log(e) - log(p) space
 
theta () const
 a constant exponent in the hardening behavior of p0
 
X () const
 a positive model parameter
 
V () const
 a large model parameter
 
phi_ (const int idx, T ba=0.0, T Ra=1.0, T weight_mises=0.0, T weight_tresca=0.0, T weight_mohr_coulomb=1.0, T weight_smp=0.0)
 friction angle
 
mu (T ba=0.0, T Ra=1.0, T weight_mises=0.0, T weight_tresca=0.0, T weight_mohr_coulomb=1.0, T weight_smp=0.0) const
 friction coefficient
 
mu_ (const int idx, T ba=0.0, T Ra=1.0, T weight_mises=0.0, T weight_tresca=0.0, T weight_mohr_coulomb=1.0, T weight_smp=0.0)
 
Mc (T ba=0.0, T Ra=1.0, T weight_mises=0.0, T weight_tresca=0.0, T weight_mohr_coulomb=1.0, T weight_smp=0.0) const
 Get the critical state slope for compression.
 
Mc_ (const int idx, T ba=0.0, T Ra=1.0, T weight_mises=0.0, T weight_tresca=0.0, T weight_mohr_coulomb=1.0, T weight_smp=0.0)
 Get the critical state slope for compression.
 
Me (T ba=0.0, T Ra=1.0, T weight_mises=0.0, T weight_tresca=0.0, T weight_mohr_coulomb=1.0, T weight_smp=0.0) const
 Get the critical state slope for extension.
 
Me_ (const int idx, T ba=0.0, T Ra=1.0, T weight_mises=0.0, T weight_tresca=0.0, T weight_mohr_coulomb=1.0, T weight_smp=0.0)
 Get the critical state slope for extension.
 

Static Public Member Functions

static std::map< std::string, T > create (const std::vector< std::string > &keys, const std::vector< T > &values)
 Create a material.
 
static std::map< std::string, T > elastic (const std::vector< T > &props)
 Create an elastic material.
 
static std::map< std::string, T > elastic (T *props)
 Create an elastic material.
 
static std::map< std::string, T > coulomb (const std::vector< T > &props)
 Create a coulomb material.
 
static std::map< std::string, T > coulomb (T *props)
 Create a coulomb material.
 
static std::map< std::string, T > exponential (const std::vector< T > &props)
 Create an exponential material.
 
static std::map< std::string, T > exponential (T *props)
 Create an exponential material.
 
static std::map< std::string, T > hyperbolic (const std::vector< T > &props)
 Create a hyperbolic material.
 
static std::map< std::string, T > hyperbolic (T *props)
 Create a hyperbolic material.
 
static std::map< std::string, T > hypoplastic (const std::vector< T > &props)
 Create a hypoplastic material.
 
static std::map< std::string, T > hypoplastic (T *props)
 Create a hypoplastic material.
 
static std::map< std::string, T > mcc (const std::vector< T > &props)
 Create a mcc material.
 
static std::map< std::string, T > mcc (T *props)
 Create a mcc material.
 
static std::map< std::string, T > sanisand (const std::vector< T > &props)
 Create a sanisand material.
 
static std::map< std::string, T > sanisand (T *props)
 Create a sanisand material.
 
static std::map< std::string, T > simsand (const std::vector< T > &props)
 Create a simsand material.
 
static std::map< std::string, T > simsand (T *props)
 Create a simsand material.
 
static std::map< std::string, T > osimsand (const std::vector< T > &props)
 Create a osimsand material.
 
static std::map< std::string, T > osimsand (T *props)
 Create a osimsand material.
 

Public Attributes

std::map< std::string, T > props = {}
 Material properties.
 
std::shared_ptr< Integration< T > > integration = std::shared_ptr<Integration<T>>(nullptr)
 Integration.
 
std::map< std::string, std::shared_ptr< FabricTensor< T > > > fabrics = {}
 Fabric tensors.
 

Detailed Description

template<typename T>
struct micromechanical::core::Material< T >

Material properties for contact laws.

Constructor & Destructor Documentation

◆ Material()

template<typename T>
micromechanical::core::Material< T >::Material ( const std::map< std::string, T > & props = {})
inlineexplicit

Constructor.

Parameters
propsMaterial properties

References props.

◆ ~Material()

template<typename T>
virtual micromechanical::core::Material< T >::~Material ( )
virtualdefault

Member Function Documentation

◆ __contains__()

template<typename T>
bool micromechanical::core::Material< T >::__contains__ ( const std::string & key) const
inline

Determine if the material has a property, to be used in Python.

Parameters
keyProperty name
Returns
True if the property exists

◆ __setitem__()

template<typename T>
void micromechanical::core::Material< T >::__setitem__ ( const std::string & key,
T value )
inline

Set item.

Parameters
keyProperty name
valueProperty value

References set().

Here is the call graph for this function:

◆ Ad()

template<typename T>
T micromechanical::core::Material< T >::Ad ( ) const
inline

a parameter controlling the dilation

References at().

Here is the call graph for this function:

◆ Ad_()

template<typename T>
T micromechanical::core::Material< T >::Ad_ ( const int idx)
inline

a parameter controlling the dilation

References get_().

Here is the call graph for this function:

◆ anisotropicFactor()

template<typename T>
T micromechanical::core::Material< T >::anisotropicFactor ( const std::string & key,
int idx )
inline

Return the anisotropic factor.

Parameters
keyThe key of the anisotropic parameter
idxThe index of the integration point
Returns
The anisotropic factor

Referenced by get_(), and phi_().

Here is the caller graph for this function:

◆ at()

template<typename T>
T micromechanical::core::Material< T >::at ( const std::string & key) const
inline

Access material properties.

Parameters
keyProperty name
Returns
Property value

Referenced by Ad(), b(), c(), ch(), chi0(), cohesion(), e0(), ec0(), emax(), emin(), eref(), eref0(), erefu(), fb0(), fc0(), fref(), h0(), hp(), kappa(), kn0(), kp(), kpr(), krr(), kt0(), Lambda(), m(), n(), nd(), ne(), ng(), np(), nw(), phi(), pr(), pref(), R(), rho(), rhoc(), theta(), V(), vf(), vi(), X(), xi(), xib(), and xic().

Here is the caller graph for this function:

◆ b()

template<typename T>
T micromechanical::core::Material< T >::b ( ) const
inline

a parameter controlling the particle breakage

References at().

Here is the call graph for this function:

◆ b_()

template<typename T>
T micromechanical::core::Material< T >::b_ ( const int idx)
inline

a parameter controlling the particle breakage

References get_().

Here is the call graph for this function:

◆ c()

template<typename T>
T micromechanical::core::Material< T >::c ( ) const
inline

a parameter controlling the hardening of the back stress ratio

References at().

Here is the call graph for this function:

◆ c_()

template<typename T>
T micromechanical::core::Material< T >::c_ ( const int idx)
inline

a parameter controlling the hardening of the back stress ratio

References get_().

Here is the call graph for this function:

◆ ch()

template<typename T>
T micromechanical::core::Material< T >::ch ( ) const
inline

a parameter controlling the hardening of the back stress ratio

References at().

Here is the call graph for this function:

◆ ch_()

template<typename T>
T micromechanical::core::Material< T >::ch_ ( const int idx)
inline

a parameter controlling the hardening of the back stress ratio

References get_().

Here is the call graph for this function:

◆ chi0()

template<typename T>
T micromechanical::core::Material< T >::chi0 ( ) const
inline

initial bounding ratio

References at().

Here is the call graph for this function:

◆ chi0_()

template<typename T>
T micromechanical::core::Material< T >::chi0_ ( const int idx)
inline

initial bounding ratio

References get_().

Here is the call graph for this function:

◆ cohesion()

template<typename T>
T micromechanical::core::Material< T >::cohesion ( ) const
inline

cohesion

References at().

Here is the call graph for this function:

◆ cohesion_()

template<typename T>
T micromechanical::core::Material< T >::cohesion_ ( const int idx)
inline

cohesion

References get_().

Here is the call graph for this function:

◆ coulomb() [1/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::coulomb ( const std::vector< T > & props)
inlinestatic

Create a coulomb material.

Parameters
propsMaterial properties: kt0, R, phi
Returns
Coulomb material

References create(), and props.

Referenced by coulomb().

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

◆ coulomb() [2/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::coulomb ( T * props)
inlinestatic

Create a coulomb material.

Parameters
propsMaterial properties: kt0, R, phi
Returns
Coulomb material

References coulomb(), and props.

Here is the call graph for this function:

◆ create()

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::create ( const std::vector< std::string > & keys,
const std::vector< T > & values )
inlinestatic

Create a material.

Parameters
keysThe keys of the material properties
valuesThe values of the material properties

References props.

Referenced by coulomb(), elastic(), exponential(), hyperbolic(), hypoplastic(), mcc(), osimsand(), sanisand(), and simsand().

Here is the caller graph for this function:

◆ e0()

template<typename T>
T micromechanical::core::Material< T >::e0 ( ) const
inline

initial void ratio

References at().

Here is the call graph for this function:

◆ e0_()

template<typename T>
T micromechanical::core::Material< T >::e0_ ( const int idx)
inline

initial void ratio

References get_().

Here is the call graph for this function:

◆ ec0()

template<typename T>
T micromechanical::core::Material< T >::ec0 ( ) const
inline

critical void ratio

References at().

Here is the call graph for this function:

◆ ec0_()

template<typename T>
T micromechanical::core::Material< T >::ec0_ ( const int idx)
inline

critical void ratio

References get_().

Here is the call graph for this function:

◆ elastic() [1/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::elastic ( const std::vector< T > & props)
inlinestatic

Create an elastic material.

Parameters
propsMaterial properties: kt0, R
Returns
Elastic material

References create(), and props.

Referenced by elastic().

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

◆ elastic() [2/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::elastic ( T * props)
inlinestatic

Create an elastic material.

Parameters
propsMaterial properties: kt0, R
Returns
Elastic material

References elastic(), and props.

Here is the call graph for this function:

◆ emax()

template<typename T>
T micromechanical::core::Material< T >::emax ( ) const
inline

maximum void ratio

References at().

Here is the call graph for this function:

◆ emax_()

template<typename T>
T micromechanical::core::Material< T >::emax_ ( const int idx)
inline

maximum void ratio

References get_().

Here is the call graph for this function:

◆ emin()

template<typename T>
T micromechanical::core::Material< T >::emin ( ) const
inline

minimum void ratio

References at().

Here is the call graph for this function:

◆ emin_()

template<typename T>
T micromechanical::core::Material< T >::emin_ ( const int idx)
inline

minimum void ratio

References get_().

Here is the call graph for this function:

◆ eref()

template<typename T>
T micromechanical::core::Material< T >::eref ( ) const
inline

reference void ratio

References at().

Here is the call graph for this function:

◆ eref0()

template<typename T>
T micromechanical::core::Material< T >::eref0 ( ) const
inline

initial reference void ratio

References at().

Here is the call graph for this function:

◆ eref0_()

template<typename T>
T micromechanical::core::Material< T >::eref0_ ( const int idx)
inline

initial reference void ratio

References get_().

Here is the call graph for this function:

◆ eref_()

template<typename T>
T micromechanical::core::Material< T >::eref_ ( const int idx)
inline

reference void ratio

References get_().

Here is the call graph for this function:

◆ erefu()

template<typename T>
T micromechanical::core::Material< T >::erefu ( ) const
inline

ultimate reference void ratio

References at().

Here is the call graph for this function:

◆ erefu_()

template<typename T>
T micromechanical::core::Material< T >::erefu_ ( const int idx)
inline

ultimate reference void ratio

References get_().

Here is the call graph for this function:

◆ exponential() [1/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::exponential ( const std::vector< T > & props)
inlinestatic

Create an exponential material.

Parameters
propsMaterial properties: kt0, R, phi, e0, Lambda, xi, np, nd, eref0, erefu, b, rho, nw, Ad
Returns
Exponential material

References create(), and props.

Referenced by exponential().

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

◆ exponential() [2/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::exponential ( T * props)
inlinestatic

Create an exponential material.

Parameters
propsMaterial properties: kt0, R, phi, e0, Lambda, xi, np, nd, eref0, erefu, b, rho, nw, Ad
Returns
Exponential material

References exponential(), and props.

Here is the call graph for this function:

◆ fb0()

template<typename T>
T micromechanical::core::Material< T >::fb0 ( ) const
inline

initial adhesive force

References at().

Here is the call graph for this function:

◆ fb0_()

template<typename T>
T micromechanical::core::Material< T >::fb0_ ( const int idx)
inline

initial adhesive force

References get_().

Here is the call graph for this function:

◆ fc0()

template<typename T>
T micromechanical::core::Material< T >::fc0 ( ) const
inline

initial size of the yield surface

References at().

Here is the call graph for this function:

◆ fc0_()

template<typename T>
T micromechanical::core::Material< T >::fc0_ ( const int idx)
inline

initial size of the yield surface

References get_().

Here is the call graph for this function:

◆ fnr_()

template<typename T>
T micromechanical::core::Material< T >::fnr_ ( const int idx)
inline

mean effective stress when log(e) = 1 in the LCC line (log(e)-log(p) space)

References get_().

Here is the call graph for this function:

◆ fref()

template<typename T>
T micromechanical::core::Material< T >::fref ( ) const
inline

reference force

References at().

Here is the call graph for this function:

◆ fref_()

template<typename T>
T micromechanical::core::Material< T >::fref_ ( const int idx)
inline

reference force

References get_().

Here is the call graph for this function:

◆ get()

template<typename T>
T micromechanical::core::Material< T >::get ( const std::string & key,
T default_ = 0.0 ) const
inline

Access material properties.

Parameters
keyProperty name
Returns
Property value

Referenced by get_(), phi_combined(), sin_phi_mises(), sin_phi_smp(), and sin_phi_tresca().

Here is the caller graph for this function:

◆ get_()

template<typename T>
T micromechanical::core::Material< T >::get_ ( const std::string & key,
const int idx,
T default_ = 0.0 )
inline

Get a parameter value with anisotropic factor.

Parameters
keyProperty name
idxThe index of the integration point
default_Default value
Returns
Property value

References anisotropicFactor(), and get().

Referenced by Ad_(), b_(), c_(), ch_(), chi0_(), cohesion_(), e0_(), ec0_(), emax_(), emin_(), eref0_(), eref_(), erefu_(), fb0_(), fc0_(), fnr_(), fref_(), h0_(), hp_(), kappa_(), kn0_(), kp_(), kpr_(), krr_(), kt0_(), Lambda_(), m_(), n_(), nd_(), ne_(), ng_(), np_(), nw_(), pref_(), R_(), rho_(), rhoc_(), theta_(), V_(), vf_(), vi_(), X_(), xi_(), xib_(), and xic_().

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

◆ h0()

template<typename T>
T micromechanical::core::Material< T >::h0 ( ) const
inline

a parameter controlling the hardening of the back stress ratio

References at().

Here is the call graph for this function:

◆ h0_()

template<typename T>
T micromechanical::core::Material< T >::h0_ ( const int idx)
inline

a parameter controlling the hardening of the back stress ratio

References get_().

Here is the call graph for this function:

◆ hp()

template<typename T>
T micromechanical::core::Material< T >::hp ( ) const
inline

a parameter relating to plastic modulus of bounding surface effect

References at().

Here is the call graph for this function:

◆ hp_()

template<typename T>
T micromechanical::core::Material< T >::hp_ ( const int idx)
inline

a parameter relating to plastic modulus of bounding surface effect

References get_().

Here is the call graph for this function:

◆ hyperbolic() [1/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::hyperbolic ( const std::vector< T > & props)
inlinestatic

Create a hyperbolic material.

Parameters
propsMaterial properties: kt0, R, phi, e0, Lambda, xi, np, nd, eref0, erefu, b, rho, nw, Ad
Returns
Hyperbolic material

References create(), and props.

Referenced by hyperbolic().

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

◆ hyperbolic() [2/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::hyperbolic ( T * props)
inlinestatic

Create a hyperbolic material.

Parameters
propsMaterial properties: kt0, R, phi, e0, Lambda, xi, np, nd, eref0, erefu, b, rho, nw, Ad
Returns
Hyperbolic material

References hyperbolic(), and props.

Here is the call graph for this function:

◆ hypoplastic() [1/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::hypoplastic ( const std::vector< T > & props)
inlinestatic

Create a hypoplastic material.

Parameters
propsMaterial properties: kt0, ng, phi, e0, Lambda, xi, np, nd, eref0, erefu, b, rho, nw, vi
Returns
Hypoplastic material

References create(), and props.

Referenced by hypoplastic().

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

◆ hypoplastic() [2/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::hypoplastic ( T * props)
inlinestatic

Create a hypoplastic material.

Parameters
propsMaterial properties: kt0, ng, phi, e0, Lambda, xi, np, nd, eref0, erefu, b, rho, nw, vi
Returns
Hypoplastic material

References hypoplastic(), and props.

Here is the call graph for this function:

◆ initialize()

template<typename T>
void micromechanical::core::Material< T >::initialize ( StateVariable< T > & sv)
inline

Initialize the material.

Parameters
svState variable

◆ kappa()

template<typename T>
T micromechanical::core::Material< T >::kappa ( ) const
inline

slope of swelling line

References at().

Here is the call graph for this function:

◆ kappa_()

template<typename T>
T micromechanical::core::Material< T >::kappa_ ( const int idx)
inline

slope of swelling line

References get_().

Here is the call graph for this function:

◆ kn0()

template<typename T>
T micromechanical::core::Material< T >::kn0 ( ) const
inline

reference normal stiffness

References at().

Here is the call graph for this function:

◆ kn0_()

template<typename T>
T micromechanical::core::Material< T >::kn0_ ( const int idx)
inline

reference normal stiffness

References get_().

Here is the call graph for this function:

◆ kp()

template<typename T>
T micromechanical::core::Material< T >::kp ( ) const
inline

a parameter controlling the yield surface of SIMSAND model

References at().

Here is the call graph for this function:

◆ kp_()

template<typename T>
T micromechanical::core::Material< T >::kp_ ( const int idx)
inline

a parameter controlling the yield surface of SIMSAND model

References get_().

Here is the call graph for this function:

◆ kpr()

template<typename T>
T micromechanical::core::Material< T >::kpr ( ) const
inline

a parameter controlling the yield surface of SIMSAND model

References at().

Here is the call graph for this function:

◆ kpr_()

template<typename T>
T micromechanical::core::Material< T >::kpr_ ( const int idx)
inline

a parameter controlling the yield surface of SIMSAND model

References get_().

Here is the call graph for this function:

◆ krr()

template<typename T>
T micromechanical::core::Material< T >::krr ( ) const
inline

ratio of tangential to normal stiffness

References at().

Here is the call graph for this function:

◆ krr_()

template<typename T>
T micromechanical::core::Material< T >::krr_ ( const int idx)
inline

ratio of tangential to normal stiffness

References get_().

Here is the call graph for this function:

◆ kt0()

template<typename T>
T micromechanical::core::Material< T >::kt0 ( ) const
inline

reference tangential stiffness

References at().

Here is the call graph for this function:

◆ kt0_()

template<typename T>
T micromechanical::core::Material< T >::kt0_ ( const int idx)
inline

reference tangential stiffness

References get_().

Here is the call graph for this function:

◆ Lambda()

template<typename T>
T micromechanical::core::Material< T >::Lambda ( ) const
inline

slope of critical state line

References at().

Here is the call graph for this function:

◆ Lambda_()

template<typename T>
T micromechanical::core::Material< T >::Lambda_ ( const int idx)
inline

slope of critical state line

References get_().

Here is the call graph for this function:

◆ m()

template<typename T>
T micromechanical::core::Material< T >::m ( ) const
inline

a parameter controlling the shape of yield surface

References at().

Here is the call graph for this function:

◆ m_()

template<typename T>
T micromechanical::core::Material< T >::m_ ( const int idx)
inline

a parameter controlling the shape of yield surface

References get_().

Here is the call graph for this function:

◆ Mc()

template<typename T>
T micromechanical::core::Material< T >::Mc ( T ba = 0.0,
T Ra = 1.0,
T weight_mises = 0.0,
T weight_tresca = 0.0,
T weight_mohr_coulomb = 1.0,
T weight_smp = 0.0 ) const
inline

Get the critical state slope for compression.

References phi_combined(), and PI.

Here is the call graph for this function:

◆ Mc_()

template<typename T>
T micromechanical::core::Material< T >::Mc_ ( const int idx,
T ba = 0.0,
T Ra = 1.0,
T weight_mises = 0.0,
T weight_tresca = 0.0,
T weight_mohr_coulomb = 1.0,
T weight_smp = 0.0 )
inline

Get the critical state slope for compression.

References phi_(), and PI.

Here is the call graph for this function:

◆ mcc() [1/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::mcc ( const std::vector< T > & props)
inlinestatic

Create a mcc material.

Parameters
propsMaterial properties
Returns
mcc material

References create(), and props.

Referenced by mcc().

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

◆ mcc() [2/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::mcc ( T * props)
inlinestatic

Create a mcc material.

Parameters
propsMaterial properties
Returns
mcc material

References mcc(), and props.

Here is the call graph for this function:

◆ Me()

template<typename T>
T micromechanical::core::Material< T >::Me ( T ba = 0.0,
T Ra = 1.0,
T weight_mises = 0.0,
T weight_tresca = 0.0,
T weight_mohr_coulomb = 1.0,
T weight_smp = 0.0 ) const
inline

Get the critical state slope for extension.

References phi_combined(), and PI.

Here is the call graph for this function:

◆ Me_()

template<typename T>
T micromechanical::core::Material< T >::Me_ ( const int idx,
T ba = 0.0,
T Ra = 1.0,
T weight_mises = 0.0,
T weight_tresca = 0.0,
T weight_mohr_coulomb = 1.0,
T weight_smp = 0.0 )
inline

Get the critical state slope for extension.

References phi_(), and PI.

Here is the call graph for this function:

◆ mu()

template<typename T>
T micromechanical::core::Material< T >::mu ( T ba = 0.0,
T Ra = 1.0,
T weight_mises = 0.0,
T weight_tresca = 0.0,
T weight_mohr_coulomb = 1.0,
T weight_smp = 0.0 ) const
inline

friction coefficient

References phi_combined(), and PI.

Here is the call graph for this function:

◆ mu_()

template<typename T>
T micromechanical::core::Material< T >::mu_ ( const int idx,
T ba = 0.0,
T Ra = 1.0,
T weight_mises = 0.0,
T weight_tresca = 0.0,
T weight_mohr_coulomb = 1.0,
T weight_smp = 0.0 )
inline

References phi_(), and PI.

Here is the call graph for this function:

◆ n()

template<typename T>
T micromechanical::core::Material< T >::n ( ) const
inline

a parameter controlling the shape of yield surface

References at().

Here is the call graph for this function:

◆ n_()

template<typename T>
T micromechanical::core::Material< T >::n_ ( const int idx)
inline

a parameter controlling the shape of yield surface

References get_().

Here is the call graph for this function:

◆ nd()

template<typename T>
T micromechanical::core::Material< T >::nd ( ) const
inline

a parameter controlling the dilation

References at().

Here is the call graph for this function:

◆ nd_()

template<typename T>
T micromechanical::core::Material< T >::nd_ ( const int idx)
inline

a parameter controlling the dilation

References get_().

Here is the call graph for this function:

◆ ne()

template<typename T>
T micromechanical::core::Material< T >::ne ( ) const
inline

exponent in the equation of normal stiffness

References at().

Here is the call graph for this function:

◆ ne_()

template<typename T>
T micromechanical::core::Material< T >::ne_ ( const int idx)
inline

exponent in the equation of normal stiffness

References get_().

Here is the call graph for this function:

◆ ng()

template<typename T>
T micromechanical::core::Material< T >::ng ( ) const
inline

exponent in the equation of tangential stiffness

References at().

Here is the call graph for this function:

◆ ng_()

template<typename T>
T micromechanical::core::Material< T >::ng_ ( const int idx)
inline

exponent in the equation of tangential stiffness

References get_().

Here is the call graph for this function:

◆ np()

template<typename T>
T micromechanical::core::Material< T >::np ( ) const
inline

a parameter controlling the dilation

References at().

Here is the call graph for this function:

◆ np_()

template<typename T>
T micromechanical::core::Material< T >::np_ ( const int idx)
inline

a parameter controlling the dilation

References get_().

Here is the call graph for this function:

◆ nw()

template<typename T>
T micromechanical::core::Material< T >::nw ( ) const
inline

a parameter controlling the particle breakage

References at().

Here is the call graph for this function:

◆ nw_()

template<typename T>
T micromechanical::core::Material< T >::nw_ ( const int idx)
inline

a parameter controlling the particle breakage

References get_().

Here is the call graph for this function:

◆ operator[]() [1/2]

template<typename T>
T & micromechanical::core::Material< T >::operator[] ( const std::string & key)
inline

Access material properties.

Parameters
keyProperty name
Returns
Property value

◆ operator[]() [2/2]

template<typename T>
T micromechanical::core::Material< T >::operator[] ( const std::string & key) const
inline

Access material properties.

Parameters
keyProperty name
Returns
Property value

◆ osimsand() [1/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::osimsand ( const std::vector< T > & props)
inlinestatic

Create a osimsand material.

Parameters
propsMaterial properties
Returns
mcc material

References create(), and props.

Referenced by osimsand().

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

◆ osimsand() [2/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::osimsand ( T * props)
inlinestatic

Create a osimsand material.

Parameters
propsMaterial properties
Returns
mcc material

References osimsand(), and props.

Here is the call graph for this function:

◆ phi()

template<typename T>
T micromechanical::core::Material< T >::phi ( ) const
inline

friction angle

References at().

Referenced by sin_phi_mises(), sin_phi_smp(), and sin_phi_tresca().

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

◆ phi_()

template<typename T>
T micromechanical::core::Material< T >::phi_ ( const int idx,
T ba = 0.0,
T Ra = 1.0,
T weight_mises = 0.0,
T weight_tresca = 0.0,
T weight_mohr_coulomb = 1.0,
T weight_smp = 0.0 )
inline

friction angle

References anisotropicFactor(), and phi_combined().

Referenced by Mc_(), Me_(), and mu_().

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

◆ phi_combined()

template<typename T>
T micromechanical::core::Material< T >::phi_combined ( T ba = 0.0,
T Ra = 1.0,
T weight_mises = 0.0,
T weight_tresca = 0.0,
T weight_mohr_coulomb = 1.0,
T weight_smp = 0.0 ) const
inline

Combined friction angle.

References get(), PI, sin_phi_mises(), sin_phi_smp(), and sin_phi_tresca().

Referenced by Mc(), Me(), mu(), and phi_().

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

◆ pr()

template<typename T>
T micromechanical::core::Material< T >::pr ( ) const
inline

mean effective stress when log(e) = 1 in the LCC line (log(e)-log(p) space)

References at().

Here is the call graph for this function:

◆ pref()

template<typename T>
T micromechanical::core::Material< T >::pref ( ) const
inline

reference pressure

References at().

Here is the call graph for this function:

◆ pref_()

template<typename T>
T micromechanical::core::Material< T >::pref_ ( const int idx)
inline

reference pressure

References get_().

Here is the call graph for this function:

◆ R()

template<typename T>
T micromechanical::core::Material< T >::R ( ) const
inline

ratio of normal to tangential stiffness

References at().

Here is the call graph for this function:

◆ R_()

template<typename T>
T micromechanical::core::Material< T >::R_ ( const int idx)
inline

ratio of normal to tangential stiffness

References get_().

Here is the call graph for this function:

◆ rho()

template<typename T>
T micromechanical::core::Material< T >::rho ( ) const
inline

a parameter controlling the rate of particle breakage

References at().

Here is the call graph for this function:

◆ rho_()

template<typename T>
T micromechanical::core::Material< T >::rho_ ( const int idx)
inline

a parameter controlling the rate of particle breakage

References get_().

Here is the call graph for this function:

◆ rhoc()

template<typename T>
T micromechanical::core::Material< T >::rhoc ( ) const
inline

slope of the LCC line in the log(e) - log(p) space

References at().

Here is the call graph for this function:

◆ rhoc_()

template<typename T>
T micromechanical::core::Material< T >::rhoc_ ( const int idx)
inline

slope of the LCC line in the log(e) - log(p) space

References get_().

Here is the call graph for this function:

◆ sanisand() [1/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::sanisand ( const std::vector< T > & props)
inlinestatic

Create a sanisand material.

Parameters
propsMaterial properties
Returns
mcc material

References create(), and props.

Referenced by sanisand().

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

◆ sanisand() [2/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::sanisand ( T * props)
inlinestatic

Create a sanisand material.

Parameters
propsMaterial properties
Returns
mcc material

References props, and sanisand().

Here is the call graph for this function:

◆ set()

template<typename T>
void micromechanical::core::Material< T >::set ( const std::string & key,
T value )
inline

Set material properties.

Parameters
keyProperty name
valueProperty value

Referenced by __setitem__().

Here is the caller graph for this function:

◆ setAnisotropicParameters()

template<typename T>
void micromechanical::core::Material< T >::setAnisotropicParameters ( const std::string & key,
const std::string & type = "chang1990-ext",
std::string evolution = "zhao2020",
const std::map< std::string, T > & coefs = {} )
inline

Set anisotropic parameters.

Parameters
keyThe key of the anisotropic parameter
typefabric tensor type
evolutionevolution type
coefsfabric tensor coefficients

◆ simsand() [1/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::simsand ( const std::vector< T > & props)
inlinestatic

Create a simsand material.

Parameters
propsMaterial properties
Returns
mcc material

References create(), and props.

Referenced by simsand().

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

◆ simsand() [2/2]

template<typename T>
static std::map< std::string, T > micromechanical::core::Material< T >::simsand ( T * props)
inlinestatic

Create a simsand material.

Parameters
propsMaterial properties
Returns
mcc material

References props, and simsand().

Here is the call graph for this function:

◆ sin_phi_mises()

template<typename T>
T micromechanical::core::Material< T >::sin_phi_mises ( T ba = 0.0,
T Ra = 1.0 ) const
inline

Friction angle sine of Von Mises failure criteria.

References get(), phi(), and PI.

Referenced by phi_combined().

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

◆ sin_phi_smp()

template<typename T>
T micromechanical::core::Material< T >::sin_phi_smp ( T ba = 0.0,
T Ra = 1.0 ) const
inline

Friction angle sine of SMP failure criteria.

References get(), phi(), and PI.

Referenced by phi_combined().

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

◆ sin_phi_tresca()

template<typename T>
T micromechanical::core::Material< T >::sin_phi_tresca ( T ba = 0.0,
T Ra = 1.0 ) const
inline

Friction angle sine of Tresca failure criteria.

References get(), phi(), and PI.

Referenced by phi_combined().

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

◆ theta()

template<typename T>
T micromechanical::core::Material< T >::theta ( ) const
inline

a constant exponent in the hardening behavior of p0

References at().

Here is the call graph for this function:

◆ theta_()

template<typename T>
T micromechanical::core::Material< T >::theta_ ( const int idx)
inline

a constant exponent in the hardening behavior of p0

References get_().

Here is the call graph for this function:

◆ V()

template<typename T>
T micromechanical::core::Material< T >::V ( ) const
inline

a large model parameter

References at().

Here is the call graph for this function:

◆ V_()

template<typename T>
T micromechanical::core::Material< T >::V_ ( const int idx)
inline

a large model parameter

References get_().

Here is the call graph for this function:

◆ vf()

template<typename T>
T micromechanical::core::Material< T >::vf ( ) const
inline

final slope of normal displacement versus tangential displacement curve

References at().

Here is the call graph for this function:

◆ vf_()

template<typename T>
T micromechanical::core::Material< T >::vf_ ( const int idx)
inline

final slope of normal displacement versus tangential displacement curve

References get_().

Here is the call graph for this function:

◆ vi()

template<typename T>
T micromechanical::core::Material< T >::vi ( ) const
inline

initial slope of normal displacement versus tangential displacement curve

References at().

Here is the call graph for this function:

◆ vi_()

template<typename T>
T micromechanical::core::Material< T >::vi_ ( const int idx)
inline

initial slope of normal displacement versus tangential displacement curve

References get_().

Here is the call graph for this function:

◆ X()

template<typename T>
T micromechanical::core::Material< T >::X ( ) const
inline

a positive model parameter

References at().

Here is the call graph for this function:

◆ X_()

template<typename T>
T micromechanical::core::Material< T >::X_ ( const int idx)
inline

a positive model parameter

References get_().

Here is the call graph for this function:

◆ xi()

template<typename T>
T micromechanical::core::Material< T >::xi ( ) const
inline

a parameter controlling the shape of critical state line

References at().

Here is the call graph for this function:

◆ xi_()

template<typename T>
T micromechanical::core::Material< T >::xi_ ( const int idx)
inline

a parameter controlling the shape of critical state line

References get_().

Here is the call graph for this function:

◆ xib()

template<typename T>
T micromechanical::core::Material< T >::xib ( ) const
inline

a parameter controlling the hardening of the adhesive force

References at().

Here is the call graph for this function:

◆ xib_()

template<typename T>
T micromechanical::core::Material< T >::xib_ ( const int idx)
inline

a parameter controlling the hardening of the adhesive force

References get_().

Here is the call graph for this function:

◆ xic()

template<typename T>
T micromechanical::core::Material< T >::xic ( ) const
inline

a parameter controlling the hardening of the size of the yield surface

References at().

Here is the call graph for this function:

◆ xic_()

template<typename T>
T micromechanical::core::Material< T >::xic_ ( const int idx)
inline

a parameter controlling the hardening of the size of the yield surface

References get_().

Here is the call graph for this function:

Member Data Documentation

◆ fabrics

template<typename T>
std::map<std::string, std::shared_ptr<FabricTensor<T> > > micromechanical::core::Material< T >::fabrics = {}

Fabric tensors.

◆ integration

template<typename T>
std::shared_ptr<Integration<T> > micromechanical::core::Material< T >::integration = std::shared_ptr<Integration<T>>(nullptr)

◆ props


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