|
musica (C++)
|
Stress dependent stiffness for the contact law based on Chang et al. (1989). More...
#include <stiffness.hpp>


Public Member Functions | |
| Eigen::Matrix< T, 3, 3 > | elasticStiffness (const int idx, T fn, const StateVariable< T > &sv0, StateVariable< T > &sv) override |
| Calculate the elastic stiffness matrix. | |
| Public Member Functions inherited from micromechanical::core::ContactLawBase< T > | |
| 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 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. | |
Additional Inherited Members | |
| Public Attributes inherited from micromechanical::core::ContactLawBase< T > | |
| 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 inherited from micromechanical::core::ContactLawBase< T > | |
| 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. | |
Stress dependent stiffness for the contact law based on Chang et al. (1989).
|
inlineoverridevirtual |
Calculate the elastic stiffness matrix.
| idx | index of the integration point |
| fn | normal force |
| sv0 | initial state variable |
| sv | state variable |
Implements micromechanical::core::ContactLawBase< T >.
References micromechanical::core::ContactLawBase< T >::material, micromechanical::core::ContactLawBase< T >::options, and constitutive::StateVariable< T >::scalars.