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

Stress dependent stiffness for the contact law based on Richart et al. (1970) More...

#include <stiffness.hpp>

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

Public Member Functions

Eigen::Matrix< T, 3, 3 > elasticStiffness (int idx, T fn, const StateVariable< T > &sv0, const StateVariable< T > &sv) override
 Calculate the elastic stiffness matrix.
 
- Public Member Functions inherited from micromechanical::core::ContactLawBase< T >
 ContactLawBase (const std::map< std::string, T > &props={})
 constructor
 
virtual ~ContactLawBase ()=default
 destructor
 
virtual std::vector< std::string > symmetricContactScalars ()
 Symmetric contact scalar variables.
 
virtual std::vector< std::string > symmetricContactVectors ()
 Symmetric contact vector variables.
 
virtual void initialize (StateVariable< T > &sv)
 initialize the contact law
 
ContactLawBaseoperator= (const ContactLawBase &other)
 move operator
 
frictionCoefficient (int idx, const StateVariable< T > &sv0, const StateVariable< T > &sv)
 calculate the friction coefficient combined with different criteria
 
Eigen::Matrix< T, 3, 3 > forceDisplacement (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
 

Additional Inherited Members

- Public Attributes inherited from micromechanical::core::ContactLawBase< T >
std::shared_ptr< Material< T > > material
 Material properties.
 
std::string name = "Undefined"
 Name of the contact law.
 
std::string type = "Undefined"
 Type of the contact law.
 
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::shared_ptr<Options<T>>(new Options<T>())
 options for the micromechanical model
 
std::shared_ptr< DebugVariable< T > > debugVariable = std::shared_ptr<DebugVariable<T>>(new 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 inherited from micromechanical::core::ContactLawBase< T >
virtual Eigen::Matrix< T, 3, 3 > integrate (int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const Eigen::Matrix< T, 3, 3 > &Ke, const StateVariable< T > &sv0, StateVariable< T > &sv)=0
 integrate the force-displacement contact law, with a number of increments.
 
Eigen::Matrix< T, 3, 3 > increment (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 (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 (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 (int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 pre-processing before the integration
 
virtual void postIntegration (int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 post-processing after the integration
 
virtual void preIncrement (int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 pre-processing before the increment
 
virtual void postIncrement (int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 post-processing after the increment
 
virtual T CSL (int idx, const StateVariable< T > &sv0, StateVariable< T > &sv)
 calculate the critical state line
 

Detailed Description

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

Stress dependent stiffness for the contact law based on Richart et al. (1970)

Member Function Documentation

◆ elasticStiffness()

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

Calculate the elastic stiffness matrix.

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

Implements micromechanical::core::ContactLawBase< T >.

References micromechanical::core::StateVariable< T >::e, and micromechanical::core::ContactLawBase< T >::material.


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