musica (C++)
Loading...
Searching...
No Matches
constitutive::MaterialBase< T > Struct Template Reference

Material properties. More...

#include <materialbase.hpp>

Inheritance diagram for constitutive::MaterialBase< T >:

Public Member Functions

 MaterialBase (const std::unordered_map< std::string, T > &props={})
 Constructor.
virtual ~MaterialBase ()=default
 Destructor.
virtual void initialize (StateVariable< T > &sv)
 Initialize the material.
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.

Public Attributes

std::unordered_map< std::string, T > props = {}
 Material properties.

Detailed Description

template<typename T>
struct constitutive::MaterialBase< T >

Material properties.

Constructor & Destructor Documentation

◆ MaterialBase()

template<typename T>
constitutive::MaterialBase< T >::MaterialBase ( const std::unordered_map< std::string, T > & props = {})
inlineexplicit

Constructor.

Parameters
propsMaterial properties

References props.

◆ ~MaterialBase()

template<typename T>
virtual constitutive::MaterialBase< T >::~MaterialBase ( )
virtualdefault

Destructor.

Member Function Documentation

◆ __contains__()

template<typename T>
bool constitutive::MaterialBase< 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 constitutive::MaterialBase< T >::__setitem__ ( const std::string & key,
const T value )
inline

Set item.

Parameters
keyProperty name
valueProperty value

References set().

Here is the call graph for this function:

◆ at()

template<typename T>
T constitutive::MaterialBase< T >::at ( const std::string & key) const
inline

Access material properties.

Parameters
keyProperty name
Returns
Property value

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

Here is the caller graph for this function:

◆ create()

template<typename T>
std::unordered_map< std::string, T > constitutive::MaterialBase< 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 elastoplastic::core::ElastoplasticMaterial< T >::elastic(), elastoplastic::core::ElastoplasticMaterial< T >::j2yang(), elastoplastic::core::ElastoplasticMaterial< T >::mohrcoulomb(), and elastoplastic::core::ElastoplasticMaterial< T >::simsand().

Here is the caller graph for this function:

◆ get()

template<typename T>
T constitutive::MaterialBase< T >::get ( const std::string & key,
const T default_ = 0.0 ) const
inline

Referenced by elastoplastic::core::ElastoplasticMaterial< T >::Ad(), elastoplastic::core::ElastoplasticMaterial< T >::c(), elastoplastic::core::ElastoplasticMaterial< T >::E(), elastoplastic::core::ElastoplasticMaterial< T >::e0(), elastoplastic::core::ElastoplasticMaterial< T >::ea(), elastoplastic::core::ElastoplasticMaterial< T >::epsilon(), elastoplastic::core::ElastoplasticMaterial< T >::epsr(), elastoplastic::core::ElastoplasticMaterial< T >::eref(), elastoplastic::core::ElastoplasticMaterial< T >::G(), micromechanical::core::Material< T >::get_(), micromechanical::core::Material< T >::initialize(), elastoplastic::core::ElastoplasticMaterial< T >::K(), elastoplastic::core::ElastoplasticMaterial< T >::kp(), elastoplastic::core::ElastoplasticMaterial< T >::Lambda(), elastoplastic::core::ElastoplasticMaterial< T >::lame(), elastoplastic::core::ElastoplasticMaterial< T >::M(), elastoplastic::core::ElastoplasticMaterial< T >::me(), elastoplastic::core::ElastoplasticMaterial< T >::nd(), elastoplastic::core::ElastoplasticMaterial< T >::ne(), elastoplastic::core::ElastoplasticMaterial< T >::np(), elastoplastic::core::ElastoplasticMaterial< T >::nu(), elastoplastic::core::ElastoplasticMaterial< T >::phi(), elastoplastic::core::ElastoplasticMaterial< T >::phid(), elastoplastic::core::ElastoplasticMaterial< T >::pref(), elastoplastic::core::ElastoplasticMaterial< T >::psi(), sin_phi_combined(), sin_phi_mises(), sin_phi_smp(), sin_phi_tresca(), elastoplastic::core::ElastoplasticMaterial< T >::thetat(), and elastoplastic::core::ElastoplasticMaterial< T >::xi().

Here is the caller graph for this function:

◆ initialize()

template<typename T>
virtual void constitutive::MaterialBase< T >::initialize ( StateVariable< T > & sv)
inlinevirtual

Initialize the material.

Parameters
svState variable

Reimplemented in micromechanical::core::Material< T >.

◆ Mc()

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

◆ Me()

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

◆ mu()

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

◆ operator[]() [1/2]

template<typename T>
T & constitutive::MaterialBase< T >::operator[] ( const std::string & key)
inline

Access material properties.

Parameters
keyProperty name
Returns
Property value

◆ operator[]() [2/2]

template<typename T>
T constitutive::MaterialBase< T >::operator[] ( const std::string & key) const
inline

Access material properties.

Parameters
keyProperty name
Returns
Property value

◆ phi_combined()

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

Combined friction angle.

References PI, and sin_phi_combined().

Referenced by Mc(), Me(), mu(), and micromechanical::core::Material< T >::phi_().

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

◆ set()

template<typename T>
void constitutive::MaterialBase< T >::set ( const std::string & key,
const T value )
inline

Set material properties.

Parameters
keyProperty name
valueProperty value

Referenced by __setitem__().

Here is the caller graph for this function:

◆ sin_phi_combined()

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

Sine of combined friction angle.

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

Referenced by phi_combined().

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

◆ sin_phi_mises()

template<typename T>
T constitutive::MaterialBase< T >::sin_phi_mises ( const T ba = 0.0,
const T Ra = 1.0 ) const
inline

Friction angle sine of Von Mises failure criteria.

References get(), and PI.

Referenced by sin_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 constitutive::MaterialBase< T >::sin_phi_smp ( const T ba = 0.0,
const T Ra = 1.0 ) const
inline

Friction angle sine of SMP failure criteria.

References get(), and PI.

Referenced by sin_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 constitutive::MaterialBase< T >::sin_phi_tresca ( const T ba = 0.0,
const T Ra = 1.0 ) const
inline

Friction angle sine of Tresca failure criteria.

References get(), and PI.

Referenced by sin_phi_combined().

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

Member Data Documentation

◆ props

template<typename T>
std::unordered_map<std::string, T> constitutive::MaterialBase< T >::props = {}

Material properties.

Referenced by micromechanical::core::Material< T >::coulomb(), micromechanical::core::Material< T >::coulomb(), create(), micromechanical::core::Material< T >::create(), elastoplastic::core::ElastoplasticMaterial< T >::elastic(), elastoplastic::core::ElastoplasticMaterial< T >::elastic(), micromechanical::core::Material< T >::elastic(), micromechanical::core::Material< T >::elastic(), elastoplastic::core::ElastoplasticMaterial< T >::ElastoplasticMaterial(), micromechanical::core::Material< T >::exponential(), micromechanical::core::Material< T >::exponential(), micromechanical::core::Material< T >::hyperbolic(), micromechanical::core::Material< T >::hyperbolic(), micromechanical::core::Material< T >::hypoplastic(), micromechanical::core::Material< T >::hypoplastic(), elastoplastic::core::ElastoplasticMaterial< T >::j2yang(), elastoplastic::core::ElastoplasticMaterial< T >::j2yang(), micromechanical::core::Material< T >::Material(), MaterialBase(), micromechanical::core::Material< T >::mcc(), micromechanical::core::Material< T >::mcc(), elastoplastic::core::ElastoplasticMaterial< T >::mohrcoulomb(), elastoplastic::core::ElastoplasticMaterial< T >::mohrcoulomb(), micromechanical::core::Material< T >::osimsand(), micromechanical::core::Material< T >::osimsand(), micromechanical::core::Material< T >::sanisand(), micromechanical::core::Material< T >::sanisand(), elastoplastic::core::ElastoplasticMaterial< T >::simsand(), elastoplastic::core::ElastoplasticMaterial< T >::simsand(), micromechanical::core::Material< T >::simsand(), and micromechanical::core::Material< T >::simsand().


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