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

Material properties for contact laws. More...

#include <material.hpp>

Inheritance diagram for micromechanical::core::Material< T >:
Collaboration diagram for micromechanical::core::Material< T >:

Public Member Functions

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

Static Public Member Functions

static std::unordered_map< std::string, T > create (const std::vector< std::string > &keys, const std::vector< T > &values)
 Create a material.
static std::unordered_map< std::string, T > elastic (const std::vector< T > &props)
 Create an elastic material.
static std::unordered_map< std::string, T > elastic (T *props)
 Create an elastic material.
static std::unordered_map< std::string, T > coulomb (const std::vector< T > &props)
 Create a coulomb material.
static std::unordered_map< std::string, T > coulomb (T *props)
 Create a coulomb material.
static std::unordered_map< std::string, T > exponential (const std::vector< T > &props)
 Create an exponential material.
static std::unordered_map< std::string, T > exponential (T *props)
 Create an exponential material.
static std::unordered_map< std::string, T > hyperbolic (const std::vector< T > &props)
 Create a hyperbolic material.
static std::unordered_map< std::string, T > hyperbolic (T *props)
 Create a hyperbolic material.
static std::unordered_map< std::string, T > hypoplastic (const std::vector< T > &props)
 Create a hypoplastic material.
static std::unordered_map< std::string, T > hypoplastic (T *props)
 Create a hypoplastic material.
static std::unordered_map< std::string, T > mcc (const std::vector< T > &props)
 Create a mcc material.
static std::unordered_map< std::string, T > mcc (T *props)
 Create a mcc material.
static std::unordered_map< std::string, T > sanisand (const std::vector< T > &props)
 Create a sanisand material.
static std::unordered_map< std::string, T > sanisand (T *props)
 Create a sanisand material.
static std::unordered_map< std::string, T > simsand (const std::vector< T > &props)
 Create a simsand material.
static std::unordered_map< std::string, T > simsand (T *props)
 Create a simsand material.
static std::unordered_map< std::string, T > osimsand (const std::vector< T > &props)
 Create a osimsand material.
static std::unordered_map< std::string, T > osimsand (T *props)
 Create a osimsand material.
Static Public Member Functions inherited from constitutive::MaterialBase< T >
static std::unordered_map< std::string, T > create (const std::vector< std::string > &keys, const std::vector< T > &values)
 Create a material.

Public Attributes

std::shared_ptr< Integration< T > > integration = std::shared_ptr<Integration<T>>(nullptr)
 Integration.
std::unordered_map< std::string, std::shared_ptr< FabricTensor< T > > > fabrics = {}
 Fabric tensors.
Public Attributes inherited from constitutive::MaterialBase< T >
std::unordered_map< std::string, T > props = {}
 Material properties.

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::unordered_map< std::string, T > & props = {})
inlineexplicit

Constructor.

Parameters
propsMaterial properties

References constitutive::MaterialBase< T >::props.

Member Function Documentation

◆ Ad()

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

a parameter controlling the dilation

References constitutive::MaterialBase< T >::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,
const 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:

◆ b()

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

a parameter controlling the particle breakage

References constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::props.

Here is the call graph for this function:

◆ create()

template<typename T>
std::unordered_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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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,
const int idx,
const 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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::props.

Here is the call graph for this function:

◆ hypoplastic() [1/2]

template<typename T>
std::unordered_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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::props.

Here is the call graph for this function:

◆ initialize()

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

Initialize the material.

Parameters
svState variable

Reimplemented from constitutive::MaterialBase< T >.

References constitutive::StateVariable< T >::contact_min_normal_force, and constitutive::MaterialBase< T >::get().

Here is the call graph for this function:

◆ kappa()

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

slope of swelling line

References constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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_ ( 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>
std::unordered_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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::props.

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_ ( 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 coefficient

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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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:

◆ osimsand() [1/2]

template<typename T>
std::unordered_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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::props.

Here is the call graph for this function:

◆ phi()

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

friction angle

References constitutive::MaterialBase< T >::at().

Here is the call 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 constitutive::MaterialBase< T >::phi_combined().

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

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 constitutive::MaterialBase< T >::at().

Here is the call graph for this function:

◆ pref()

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

reference pressure

References constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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>
std::unordered_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 constitutive::MaterialBase< T >::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>
std::unordered_map< std::string, T > micromechanical::core::Material< T >::sanisand ( T * props)
inlinestatic

Create a sanisand material.

Parameters
propsMaterial properties
Returns
mcc material

References constitutive::MaterialBase< T >::props, and sanisand().

Here is the call graph for this function:

◆ setAnisotropicParameters()

template<typename T>
void micromechanical::core::Material< T >::setAnisotropicParameters ( const std::string & key,
const std::string & type = "chang1990-ext",
const std::string & evolution = "li2012",
const std::unordered_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>
std::unordered_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 constitutive::MaterialBase< T >::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>
std::unordered_map< std::string, T > micromechanical::core::Material< T >::simsand ( T * props)
inlinestatic

Create a simsand material.

Parameters
propsMaterial properties
Returns
mcc material

References constitutive::MaterialBase< T >::props, and simsand().

Here is the call 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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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 constitutive::MaterialBase< T >::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::unordered_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)

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