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

Localize the macroscopic stress to the microscopic contact force. More...

#include <localize.hpp>

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

Public Member Functions

Eigen::Matrix< T, Eigen::Dynamic, 3 > localizeStrain (const Eigen::Matrix< T, 6, 1 > &eps, const StateVariable< T > &sv0, StateVariable< T > &sv) override
 localize the marcro strain to micro contact displacement
 
- Public Member Functions inherited from micromechanical::core::MicromechanicalBase< T >
 MicromechanicalBase (ContactLawBase< T > *contact, const std::map< std::string, T > &props={}, T npv=1e9, T radius=0.65e-3)
 constructor
 
 MicromechanicalBase (ContactLawType type, const std::map< std::string, T > &props={}, T npv=1e9, T radius=0.65e-3)
 constructor
 
 MicromechanicalBase (const std::string &path, const std::map< std::string, T > &props={}, T npv=1e9, T radius=0.65e-3)
 constructor
 
 MicromechanicalBase ()=default
 default constructor
 
virtual ~MicromechanicalBase ()=default
 destructor
 
void setContactLaw (ContactLawType type, const std::map< std::string, T > &props={})
 Set the contact law if it is not set in the constructor.
 
void setContactLaw (const std::string &path, const std::map< std::string, T > &props={})
 Set the contact law if it is not set in the constructor.
 
void setContactLaw (ContactLawBase< T > *contact)
 Set the contact law if it is not set in the constructor.
 
std::vector< StateVariable< T > > run ()
 Run the micromechanical model.
 
void umat (const T *dstran, T *stress, T *statev, T *ddsdde=nullptr, const bool initialize=false, const bool normalize_ddsdde=true)
 ABAQUS UMAT interface.
 
void vumat (const int nBlock, const T *strainInc, const T *stressOld, T *stressNew, const T *stateOld, T *stateNew, const bool initialize=false)
 ABAQUS VUMAT interface.
 

Additional Inherited Members

- Public Attributes inherited from micromechanical::core::MicromechanicalBase< T >
std::shared_ptr< ContactLawBase< T > > contact
 contact law
 
std::shared_ptr< Integration< T > > integration
 gauss integration points
 
std::shared_ptr< Load< T > > load
 load
 
std::shared_ptr< DebugVariable< T > > debugVariable = std::shared_ptr<DebugVariable<T>>(nullptr)
 debug variable
 
std::string name = "Undefined"
 name of the model
 
std::vector< StateVariable< T > > stateVars = {}
 state variables of the current run
 
std::shared_ptr< Options< T > > options = std::shared_ptr<Options<T>>(nullptr)
 options for the micromechanical model
 
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
 
- Protected Member Functions inherited from micromechanical::core::MicromechanicalBase< T >
int nstatev () const
 
StateVariable< T > initialize ()
 Initialize the state variables.
 
virtual void postInitialize (StateVariable< T > &sv)
 Post-initialize the state variables.
 
void postProcess (StateVariable< T > &sv)
 Post-process the state variables.
 
void resetCustomStateVariables (StateVariable< T > &sv0, StateVariable< T > &sv)
 Reset the custom state variables to zeros existing in the current state variables but not in the initial state variables.
 
virtual Eigen::Matrix< T, 6, 1 > increment (const Eigen::Matrix< T, 6, 1 > &dx, Eigen::Matrix< T, 6, 1 > x, const Eigen::Matrix< T, 6, 6 > &S, const Eigen::Matrix< T, 6, 6 > &E, const Eigen::Matrix< T, 6, 6 > &G, const StateVariable< T > &sv0, StateVariable< T > &sv)=0
 Compute one increment.
 
void fabricEvolution (const StateVariable< T > &sv0, StateVariable< T > &sv)
 Compute the fabric evolution.
 
virtual Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > stiffness (const StateVariable< T > &sv0, const StateVariable< T > &sv, const Eigen::Matrix< T, Eigen::Dynamic, 1 > kn=Eigen::Matrix< T, Eigen::Dynamic, 1 >::Zero(0, 1), const Eigen::Matrix< T, Eigen::Dynamic, 1 > ks=Eigen::Matrix< T, Eigen::Dynamic, 1 >::Zero(0, 1), bool original=false)=0
 Compute the stiffness matrix.
 
virtual void macroMicroIntegrate (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > &dsig, const Eigen::Matrix< T, 6, 1 > &deps, const StateVariable< T > &sv0, StateVariable< T > &sv)=0
 Integrate the macro-micro relation.
 
void contactIntegrates (const Eigen::Matrix< T, Eigen::Dynamic, 3 > &dforce, const Eigen::Matrix< T, Eigen::Dynamic, 3 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Integrate all the contact laws with cache.
 
virtual void contactIntegrate (int idx, const Eigen::Matrix< T, 3, 1 > &dforce, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv) const =0
 Integrate the contact law.
 
virtual Eigen::Matrix< T, Eigen::Dynamic, 3 > localizeStress (const Eigen::Matrix< T, 6, 1 > &sig, const StateVariable< T > &sv0, StateVariable< T > &sv)
 localize the marcro stress to micro contact force
 
virtual Eigen::Matrix< T, 6, 1 > averageStress (const Eigen::Matrix< T, Eigen::Dynamic, 3 > force, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Average the micro contact force to macro stress.
 
virtual Eigen::Matrix< T, 6, 1 > averageStrain (const Eigen::Matrix< T, Eigen::Dynamic, 3 > disp, const StateVariable< T > &sv0, StateVariable< T > &sv)
 Average the micro contact displacement to macro strain.
 

Detailed Description

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

Localize the macroscopic stress to the microscopic contact force.

Member Function Documentation

◆ localizeStrain()

template<typename T>
Eigen::Matrix< T, Eigen::Dynamic, 3 > micromechanical::core::KinematicHypothesisLocalization< T >::localizeStrain ( const Eigen::Matrix< T, 6, 1 > & eps,
const StateVariable< T > & sv0,
StateVariable< T > & sv )
inlineoverridevirtual

localize the marcro strain to micro contact displacement

Parameters
epsmacro strain
sv0initial state variable
svstate variable
Returns
micro contact displacement

Reimplemented from micromechanical::core::MicromechanicalBase< T >.

References micromechanical::math::ignoreDistractions(), micromechanical::core::MicromechanicalBase< T >::integration, micromechanical::core::MicromechanicalBase< T >::options, and micromechanical::math::vec2mat().

Referenced by micromechanical::ChangHicher< T >::macroMicroIntegrate().

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

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