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

Base class for contact laws. More...

#include <contactlaw.hpp>

Inheritance diagram for micromechanical::core::ContactLawBase< T >:

Public Member Functions

 ContactLawBase (const std::unordered_map< std::string, T > &props={})
 constructor
virtual ~ContactLawBase ()=default
 destructor
virtual std::vector< std::string > symmetricContactScalars () const
 Symmetric contact scalar variables.
virtual std::vector< std::string > symmetricContactVectors () const
 Symmetric contact vector variables.
virtual void initialize (StateVariable< T > &sv)
 initialize the contact law
T frictionCoefficient (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv) const
 calculate the friction coefficient combined with different criteria
Eigen::Matrix< T, 3, 3 > forceDisplacement (const int idx, Eigen::Matrix< T, 3, 1 > &ddisp, Eigen::Matrix< T, 3, 3 > &Ke, const StateVariable< T > &sv0, StateVariable< T > &sv)
 integrate the force-displacement relation
virtual Eigen::Matrix< T, 3, 3 > elasticStiffness (const int idx, T fn, const StateVariable< T > &sv0, StateVariable< T > &sv)=0
 Calculate the elastic stiffness matrix.
virtual T CSL (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv) const
 calculate the critical state line
virtual T yieldFunction (const int idx, const T fn, const T fr, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Yield function for elastoplastic contact laws.
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > yieldFunctions (const int idx, const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &fn, const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &fr, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Calculate yield function for multiple times.
Eigen::Matrix< T, 3, 1 > dfdforce0 (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Derivative of the yield function with respect to the force.
virtual Eigen::Matrix< T, 3, 1 > dfdforce (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Derivative of the yield function with respect to the force.
virtual T potentialFunction (const int idx, const T fn, const T fr, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Potential function for elastoplastic contact laws.
Eigen::Matrix< T, 3, 1 > dgdforce0 (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Derivative of the potential function with respect to the force.
virtual Eigen::Matrix< T, 3, 1 > dgdforce (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Derivative of the potential function with respect to the force.
virtual Eigen::Matrix< T, 3, 1 > plasticModulus0 (const int idx, const Eigen::Matrix< T, 3, 1 > &dgdforce, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Plastic modulus for elastoplastic contact laws.
virtual T plasticModulus (const int idx, const Eigen::Matrix< T, 3, 1 > &dgdforce, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Plastic modulus for elastoplastic contact laws, including dgdforce.
T plasticModulus1 (const int idx, const Eigen::Matrix< T, 3, 1 > &dgdforce, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Plastic modulus for elastoplastic contact laws, including dgdforce.
virtual void updateHardeningVariables (const int idx, const T dlambda, const Eigen::Matrix< T, 3, 1 > &ddispp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Update the hardening variables.
virtual void yieldFunctionCorrection (const int idx, const Eigen::Matrix< T, 3, 3 > &Ke, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Yield surface correction to keep the force state on the yield surface.
virtual void maintainYieldSurface (const int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const Eigen::Matrix< T, 3, 1 > &dforce, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Revert state variables from elastic state to maintain the force state on the yield surface.

Public Attributes

std::string name = "Undefined"
 Name of the contact law.
std::shared_ptr< Material< T > > material
 Material properties.
int nstatev_custom = 0
 Number of custom state variables.
bool plastic_displacement = false
 Flag to save the plastic displacement in the state variables.
std::shared_ptr< Options< T > > options = std::make_shared<Options<T>>()
 options for the micromechanical model
std::shared_ptr< DebugVariable< T > > debugVariable = std::make_shared<DebugVariable<T>>()
 debug variable
int _phase = 0
 index of the phase
int _step = 0
 current step
int _mixedLoad = 0
 number of mixed load steps
int _integration = 0
 number of integration steps
int _increment = 0
 number of contact increments
int _plasticCorrection = 0
 number of contact plastic corrections

Protected Member Functions

virtual Eigen::Matrix< T, 3, 3 > integrate (const int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const Eigen::Matrix< T, 3, 3 > &Ke, const StateVariable< T > &sv0, StateVariable< T > &sv)
 integrate the force-displacement contact law, with a number of increments.
Eigen::Matrix< T, 3, 3 > increment (const int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const Eigen::Matrix< T, 3, 3 > &Ke, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Calculate one increment.
virtual Eigen::Matrix< T, 3, 3 > stiffness (const int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv)=0
 calculate the elastoplastic stiffness matrix
virtual void check (const int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 check the convergence of the contact law
virtual void preIntegration (const int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 pre-processing before the integration
virtual void postIntegration (const int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 post-processing after the integration
virtual void preIncrement (const int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 pre-processing before the increment
virtual void postIncrement (const int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 post-processing after the increment
Eigen::Matrix< T, 3, 1 > dfdforce1 (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Derivative of the yield function with respect to the force.
Eigen::Matrix< T, 3, 1 > dgdforce1 (const int idx, const Eigen::Matrix< T, 3, 1 > &dfdforce, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Derivative of the potential function with respect to the force.

Detailed Description

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

Base class for contact laws.

Constructor & Destructor Documentation

◆ ContactLawBase()

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

constructor

Parameters
propsmaterial properties

◆ ~ContactLawBase()

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

destructor

Member Function Documentation

◆ check()

template<typename T>
virtual void micromechanical::core::ContactLawBase< T >::check ( const int idx,
const Eigen::Matrix< T, 3, 1 > & ddisp,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlineprotectedvirtual

check the convergence of the contact law

Parameters
idxindex of the integration point
ddispdisplacement increment
sv0initial state variable
svstate variable

◆ CSL()

template<typename T>
virtual T micromechanical::core::ContactLawBase< T >::CSL ( const int idx,
const StateVariable< T > & sv0,
StateVariable< T > & sv ) const
inlinevirtual

calculate the critical state line

Parameters
idxindex of the integration point
sv0initial state variable
svstate variable
Returns
the critical void ratio

Reimplemented in micromechanical::core::ExponentialBreakageCSL< T >, micromechanical::core::LogarithmicCSL< T >, and micromechanical::core::MCCCSL< T >.

◆ dfdforce()

template<typename T>
virtual Eigen::Matrix< T, 3, 1 > micromechanical::core::ContactLawBase< T >::dfdforce ( const int idx,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlinevirtual

Derivative of the yield function with respect to the force.

Parameters
idxindex of the integration point
sv0initial state variable
svstate variable
Returns
the derivative of the yield function with respect to the force

Reimplemented in micromechanical::contacts::CoulombContactLaw< T >, micromechanical::contacts::MCCContactLaw< T >, micromechanical::contacts::OSIMSANDContactLaw< T >, micromechanical::contacts::SANISANDContactLaw< T >, and micromechanical::contacts::SIMSANDContactLaw< T >.

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

Here is the caller graph for this function:

◆ dfdforce0()

template<typename T>
Eigen::Matrix< T, 3, 1 > micromechanical::core::ContactLawBase< T >::dfdforce0 ( const int idx,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inline

Derivative of the yield function with respect to the force.

Parameters
idxindex of the integration point
sv0initial state variable
svstate variable
Returns
the derivative of the yield function with respect to the force

◆ dfdforce1()

template<typename T>
Eigen::Matrix< T, 3, 1 > micromechanical::core::ContactLawBase< T >::dfdforce1 ( const int idx,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlineprotected

Derivative of the yield function with respect to the force.

Parameters
idxindex of the integration point
sv0initial state variable
svstate variable
Returns
the derivative of the yield function with respect to the force

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

Here is the caller graph for this function:

◆ dgdforce()

template<typename T>
virtual Eigen::Matrix< T, 3, 1 > micromechanical::core::ContactLawBase< T >::dgdforce ( const int idx,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlinevirtual

Derivative of the potential function with respect to the force.

Parameters
idxindex of the integration point
sv0initial state variable
svstate variable
Returns
the derivative of the potential function with respect to the force

Reimplemented in micromechanical::contacts::MCCContactLaw< T >, micromechanical::contacts::OSIMSANDContactLaw< T >, micromechanical::contacts::SANISANDContactLaw< T >, and micromechanical::contacts::SIMSANDContactLaw< T >.

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

Here is the caller graph for this function:

◆ dgdforce0()

template<typename T>
Eigen::Matrix< T, 3, 1 > micromechanical::core::ContactLawBase< T >::dgdforce0 ( const int idx,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inline

Derivative of the potential function with respect to the force.

Parameters
idxindex of the integration point
sv0initial state variable
svstate variable
Returns
the derivative of the potential function with respect to the force

◆ dgdforce1()

template<typename T>
Eigen::Matrix< T, 3, 1 > micromechanical::core::ContactLawBase< T >::dgdforce1 ( const int idx,
const Eigen::Matrix< T, 3, 1 > & dfdforce,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlineprotected

Derivative of the potential function with respect to the force.

Parameters
idxindex of the integration point
dfdforcederivative of the yield function with respect to the force
sv0initial state variable
svstate variable
Returns
the derivative of the potential function with respect to the force

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

Here is the caller graph for this function:

◆ elasticStiffness()

template<typename T>
virtual Eigen::Matrix< T, 3, 3 > micromechanical::core::ContactLawBase< T >::elasticStiffness ( const int idx,
T fn,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
pure virtual

Calculate the elastic stiffness matrix.

Parameters
idxindex of the integration point
fnnormal force
sv0initial state variable
svstate variable
Returns
the elastic stiffness matrix

Implemented in micromechanical::contacts::HypoplasticContactLaw< T >, micromechanical::core::ChangStiffness< T >, micromechanical::core::ConstantStiffness< T >, and micromechanical::core::RichartStiffness< T >.

◆ forceDisplacement()

template<typename T>
Eigen::Matrix< T, 3, 3 > micromechanical::core::ContactLawBase< T >::forceDisplacement ( const int idx,
Eigen::Matrix< T, 3, 1 > & ddisp,
Eigen::Matrix< T, 3, 3 > & Ke,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inline

integrate the force-displacement relation

Parameters
idxindex of the integration point
ddispdisplacement increment
Keelastic stiffness matrix
sv0initial state variable
svstate variable
Returns
the elastoplastic stiffness matrix

◆ frictionCoefficient()

◆ increment()

template<typename T>
Eigen::Matrix< T, 3, 3 > micromechanical::core::ContactLawBase< T >::increment ( const int idx,
const Eigen::Matrix< T, 3, 1 > & ddisp,
const Eigen::Matrix< T, 3, 3 > & Ke,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlineprotected

Calculate one increment.

Parameters
idxindex of the integration point
ddispdisplacement increment
Keelastoplastic stiffness matrix
sv0initial state variable
svstate variable
Returns
the elastoplastic stiffness matrix

◆ initialize()

◆ integrate()

template<typename T>
virtual Eigen::Matrix< T, 3, 3 > micromechanical::core::ContactLawBase< T >::integrate ( const int idx,
const Eigen::Matrix< T, 3, 1 > & ddisp,
const Eigen::Matrix< T, 3, 3 > & Ke,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlineprotectedvirtual

integrate the force-displacement contact law, with a number of increments.

Parameters
idxindex of the integration point
ddispdisplacement increment
Keelastic stiffness matrix
sv0initial state variable
svstate variable
Returns
the elastoplastic stiffness matrix

◆ maintainYieldSurface()

template<typename T>
virtual void micromechanical::core::ContactLawBase< T >::maintainYieldSurface ( const int idx,
const Eigen::Matrix< T, 3, 1 > & ddisp,
const Eigen::Matrix< T, 3, 1 > & dforce,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlinevirtual

Revert state variables from elastic state to maintain the force state on the yield surface.

Parameters
idxindex of the integration point
ddispdisplacement increment
dforceforce increment
sv0initial state variable
svstate variable

Reimplemented in micromechanical::contacts::SANISANDContactLaw< T >.

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

Here is the caller graph for this function:

◆ plasticModulus()

template<typename T>
virtual T micromechanical::core::ContactLawBase< T >::plasticModulus ( const int idx,
const Eigen::Matrix< T, 3, 1 > & dgdforce,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlinevirtual

Plastic modulus for elastoplastic contact laws, including dgdforce.

Parameters
idxindex of the integration point
dgdforcederivative of the potential function with respect to the force
sv0initial state variable
svstate variable
Returns
the plastic modulus

Reimplemented in micromechanical::contacts::SANISANDContactLaw< T >.

◆ plasticModulus0()

template<typename T>
virtual Eigen::Matrix< T, 3, 1 > micromechanical::core::ContactLawBase< T >::plasticModulus0 ( const int idx,
const Eigen::Matrix< T, 3, 1 > & dgdforce,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlinevirtual

Plastic modulus for elastoplastic contact laws.

Parameters
idxindex of the integration point
dgdforcederivative of the potential function with respect to the force
sv0initial state variable
svstate variable
Returns
the plastic modulus

Reimplemented in micromechanical::contacts::MCCContactLaw< T >, micromechanical::contacts::OSIMSANDContactLaw< T >, and micromechanical::contacts::SIMSANDContactLaw< T >.

◆ plasticModulus1()

template<typename T>
T micromechanical::core::ContactLawBase< T >::plasticModulus1 ( const int idx,
const Eigen::Matrix< T, 3, 1 > & dgdforce,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inline

Plastic modulus for elastoplastic contact laws, including dgdforce.

Parameters
idxindex of the integration point
dgdforcederivative of the potential function with respect to the force
sv0initial state variable
svstate variable
Returns
the plastic modulus

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

Here is the caller graph for this function:

◆ postIncrement()

template<typename T>
virtual void micromechanical::core::ContactLawBase< T >::postIncrement ( const int idx,
const Eigen::Matrix< T, 3, 1 > & ddisp,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlineprotectedvirtual

post-processing after the increment

Parameters
idxindex of the integration point
ddispdisplacement increment
sv0initial state variable
svstate variable

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

◆ postIntegration()

template<typename T>
virtual void micromechanical::core::ContactLawBase< T >::postIntegration ( const int idx,
const Eigen::Matrix< T, 3, 1 > & ddisp,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlineprotectedvirtual

post-processing after the integration

Parameters
idxindex of the integration point
ddispdisplacement increment
sv0initial state variable
svstate variable

◆ potentialFunction()

template<typename T>
virtual T micromechanical::core::ContactLawBase< T >::potentialFunction ( const int idx,
const T fn,
const T fr,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlinevirtual

Potential function for elastoplastic contact laws.

Parameters
idxindex of the integration point
fnnormal force
frshear force
sv0initial state variable
svstate variable
Returns
the yield function

◆ preIncrement()

template<typename T>
virtual void micromechanical::core::ContactLawBase< T >::preIncrement ( const int idx,
const Eigen::Matrix< T, 3, 1 > & ddisp,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlineprotectedvirtual

pre-processing before the increment

Parameters
idxindex of the integration point
ddispdisplacement increment
sv0initial state variable
svstate variable

◆ preIntegration()

template<typename T>
virtual void micromechanical::core::ContactLawBase< T >::preIntegration ( const int idx,
const Eigen::Matrix< T, 3, 1 > & ddisp,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlineprotectedvirtual

pre-processing before the integration

Parameters
idxindex of the integration point
ddispdisplacement increment
sv0initial state variable
svstate variable

Reimplemented in micromechanical::contacts::HypoplasticContactLaw< T >.

◆ stiffness()

template<typename T>
virtual Eigen::Matrix< T, 3, 3 > micromechanical::core::ContactLawBase< T >::stiffness ( const int idx,
const Eigen::Matrix< T, 3, 1 > & ddisp,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
protectedpure virtual

calculate the elastoplastic stiffness matrix

Parameters
idxindex of the integration point
ddispdisplacement increment
sv0initial state variable
svstate variable
Returns
the elastoplastic stiffness matrix

Implemented in micromechanical::contacts::ElasticContactLaw< T >, micromechanical::contacts::ExponentialContactLaw< T >, micromechanical::contacts::HyperbolicContactLaw< T >, micromechanical::contacts::HypoplasticContactLaw< T >, micromechanical::core::ElastoplasticContactLaw< T >, and micromechanical::core::NonlinearElasticContactLaw< T >.

◆ symmetricContactScalars()

template<typename T>
virtual std::vector< std::string > micromechanical::core::ContactLawBase< T >::symmetricContactScalars ( ) const
inlinevirtual

Symmetric contact scalar variables.

◆ symmetricContactVectors()

template<typename T>
virtual std::vector< std::string > micromechanical::core::ContactLawBase< T >::symmetricContactVectors ( ) const
inlinevirtual

Symmetric contact vector variables.

◆ updateHardeningVariables()

template<typename T>
virtual void micromechanical::core::ContactLawBase< T >::updateHardeningVariables ( const int idx,
const T dlambda,
const Eigen::Matrix< T, 3, 1 > & ddispp,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlinevirtual

Update the hardening variables.

Parameters
idxindex of the integration point
dlambdaplastic multiplier
ddisppplastic displacement increment
sv0initial state variable
svstate variable

Reimplemented in micromechanical::contacts::MCCContactLaw< T >, and micromechanical::contacts::SANISANDContactLaw< T >.

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

Here is the caller graph for this function:

◆ yieldFunction()

template<typename T>
virtual T micromechanical::core::ContactLawBase< T >::yieldFunction ( const int idx,
const T fn,
const T fr,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlinevirtual

Yield function for elastoplastic contact laws.

Parameters
idxindex of the integration point
fnnormal force
frshear force
sv0initial state variable
svstate variable
Returns
the yield function

Reimplemented in micromechanical::contacts::CoulombContactLaw< T >, micromechanical::contacts::MCCContactLaw< T >, micromechanical::contacts::OSIMSANDContactLaw< T >, micromechanical::contacts::SANISANDContactLaw< T >, and micromechanical::contacts::SIMSANDContactLaw< T >.

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

Here is the caller graph for this function:

◆ yieldFunctionCorrection()

template<typename T>
virtual void micromechanical::core::ContactLawBase< T >::yieldFunctionCorrection ( const int idx,
const Eigen::Matrix< T, 3, 3 > & Ke,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlinevirtual

Yield surface correction to keep the force state on the yield surface.

Parameters
idxindex of the integration point
Kestiffness matrix
sv0initial state variable
svstate variable

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

Here is the caller graph for this function:

◆ yieldFunctions()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > micromechanical::core::ContactLawBase< T >::yieldFunctions ( const int idx,
const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > & fn,
const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > & fr,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inline

Calculate yield function for multiple times.

Parameters
idxindex of the integration point
fnnormal force
frshear force
sv0initial state variable
svstate variable
Returns
the yield function

Member Data Documentation

◆ _increment

template<typename T>
int micromechanical::core::ContactLawBase< T >::_increment = 0

number of contact increments

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

◆ _integration

template<typename T>
int micromechanical::core::ContactLawBase< T >::_integration = 0

number of integration steps

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

◆ _mixedLoad

template<typename T>
int micromechanical::core::ContactLawBase< T >::_mixedLoad = 0

number of mixed load steps

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

◆ _phase

template<typename T>
int micromechanical::core::ContactLawBase< T >::_phase = 0

◆ _plasticCorrection

template<typename T>
int micromechanical::core::ContactLawBase< T >::_plasticCorrection = 0

number of contact plastic corrections

Referenced by micromechanical::core::ElastoplasticContactLaw< T >::ExplicitCPA().

◆ _step

template<typename T>
int micromechanical::core::ContactLawBase< T >::_step = 0

◆ debugVariable

template<typename T>
std::shared_ptr<DebugVariable<T> > micromechanical::core::ContactLawBase< T >::debugVariable = std::make_shared<DebugVariable<T>>()

◆ material

template<typename T>
std::shared_ptr<Material<T> > micromechanical::core::ContactLawBase< T >::material

Material properties.

Referenced by micromechanical::contacts::MCCContactLaw< T >::checkConvergence(), micromechanical::contacts::HypoplasticContactLaw< T >::coefficients(), micromechanical::core::ExponentialBreakageCSL< T >::CSL(), micromechanical::core::LogarithmicCSL< T >::CSL(), micromechanical::core::MCCCSL< T >::CSL(), micromechanical::contacts::MCCContactLaw< T >::dfdforce(), micromechanical::contacts::SANISANDContactLaw< T >::dfdforce(), micromechanical::contacts::MCCContactLaw< T >::dgdforce(), micromechanical::contacts::OSIMSANDContactLaw< T >::dgdforce(), micromechanical::contacts::SANISANDContactLaw< T >::dgdforce(), micromechanical::contacts::SIMSANDContactLaw< T >::dgdforce(), micromechanical::contacts::HypoplasticContactLaw< T >::elasticStiffness(), micromechanical::core::ChangStiffness< T >::elasticStiffness(), micromechanical::core::ConstantStiffness< T >::elasticStiffness(), micromechanical::core::RichartStiffness< T >::elasticStiffness(), micromechanical::contacts::HypoplasticContactLaw< T >::initialize(), micromechanical::contacts::MCCContactLaw< T >::initialize(), micromechanical::contacts::SANISANDContactLaw< T >::initialize(), micromechanical::contacts::SANISANDContactLaw< T >::maintainYieldSurface(), micromechanical::contacts::SANISANDContactLaw< T >::plasticModulus(), micromechanical::contacts::MCCContactLaw< T >::plasticModulus0(), micromechanical::contacts::OSIMSANDContactLaw< T >::plasticModulus0(), micromechanical::contacts::SIMSANDContactLaw< T >::plasticModulus0(), micromechanical::contacts::ExponentialContactLaw< T >::stiffness(), micromechanical::contacts::HyperbolicContactLaw< T >::stiffness(), micromechanical::contacts::HypoplasticContactLaw< T >::stiffness(), micromechanical::contacts::MCCContactLaw< T >::updateHardeningVariables(), micromechanical::contacts::MCCContactLaw< T >::yieldFunction(), micromechanical::contacts::OSIMSANDContactLaw< T >::yieldFunction(), micromechanical::contacts::SANISANDContactLaw< T >::yieldFunction(), and micromechanical::contacts::SIMSANDContactLaw< T >::yieldFunction().

◆ name

template<typename T>
std::string micromechanical::core::ContactLawBase< T >::name = "Undefined"

Name of the contact law.

◆ nstatev_custom

template<typename T>
int micromechanical::core::ContactLawBase< T >::nstatev_custom = 0

Number of custom state variables.

◆ options

◆ plastic_displacement

template<typename T>
bool micromechanical::core::ContactLawBase< T >::plastic_displacement = false

Flag to save the plastic displacement in the state variables.


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