|
musica (C++)
|
OSIMSAND contact law. More...
#include <osimsand.hpp>


Public Member Functions | |
| OSIMSANDContactLaw (const std::unordered_map< std::string, T > &props={}) | |
| void | initialize (StateVariable< T > &sv) override |
| initialize the contact law | |
| T | yieldFunction (const int idx, const T fn, const T fr, const StateVariable< T > &sv0, StateVariable< T > &sv) override |
| Yield function for elastoplastic contact laws. | |
| Eigen::Matrix< T, 3, 1 > | dfdforce (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv) override |
| Derivative of the yield function with respect to the force. | |
| Eigen::Matrix< T, 3, 1 > | dgdforce (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv) override |
| Derivative of the potential function with respect to the force. | |
| Eigen::Matrix< T, 3, 1 > | plasticModulus0 (const int idx, const Eigen::Matrix< T, 3, 1 > &dgdforce, const StateVariable< T > &sv0, StateVariable< T > &sv) override |
| Plastic modulus for elastoplastic contact laws. | |
| Public Member Functions inherited from micromechanical::core::ElastoplasticContactLaw< T > | |
| void | setPlasticMethod (const std::string &method) |
| set the plastic method | |
| 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. | |
| 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 | |
| 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 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 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 Member Functions inherited from micromechanical::core::ChangStiffness< T > | |
| 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::LogarithmicCSL< T > | |
| T | CSL (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv) const override |
| calculate the critical state line | |
Additional Inherited Members | |
| Public Attributes inherited from micromechanical::core::ElastoplasticContactLaw< T > | |
| std::string | plasticMethod = "CPA" |
| Plastic method. | |
| 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::ElastoplasticContactLaw< T > | |
| bool | isExplicit () const |
| check if the plastic method is explicit | |
| bool | isCPA () const |
| check if the plastic method is CPA | |
| bool | isCPPM () const |
| check if the plastic method is CPPM | |
| Eigen::Matrix< T, 3, 3 > | stiffness (const int idx, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv) override |
| calculate the elastoplastic stiffness matrix | |
| Eigen::Matrix< T, 3, 3 > | ExplicitCPA (const int idx, const Eigen::Matrix< T, 3, 3 > &Ke, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Explicit method for elastoplastic contact laws. | |
| Eigen::Matrix< T, 3, 3 > | CPPM (const int idx, const Eigen::Matrix< T, 3, 3 > &Ke, const Eigen::Matrix< T, 3, 1 > &ddisp, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| CPPM method for elastoplastic contact laws. | |
| 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 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. | |
| Protected Member Functions inherited from micromechanical::core::CSLBase< T > | |
| T | tanphip (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv) const |
| T | tanphipt (const int idx, const StateVariable< T > &sv0, StateVariable< T > &sv) const |
OSIMSAND contact law.
|
inlineexplicit |
|
inlineoverridevirtual |
Derivative of the yield function with respect to the force.
| idx | index of the integration point |
| sv0 | initial state variable |
| sv | state variable |
Reimplemented from micromechanical::core::ContactLawBase< T >.
References constitutive::StateVariable< T >::nst(), constitutive::StateVariable< T >::scalars, and micromechanical::core::CSLBase< T >::tanphip().

|
inlineoverridevirtual |
Derivative of the potential function with respect to the force.
| idx | index of the integration point |
| sv0 | initial state variable |
| sv | state variable |
Reimplemented from micromechanical::core::ContactLawBase< T >.
References constitutive::StateVariable< T >::fnc(), constitutive::StateVariable< T >::fr(), micromechanical::core::ContactLawBase< T >::material, constitutive::StateVariable< T >::nst(), and micromechanical::core::CSLBase< T >::tanphipt().
Referenced by plasticModulus0().


|
inlineoverridevirtual |
initialize the contact law
| sv | state variable |
Reimplemented from micromechanical::core::ContactLawBase< T >.
References micromechanical::core::LogarithmicCSL< T >::CSL().

|
inlineoverridevirtual |
Plastic modulus for elastoplastic contact laws.
| idx | index of the integration point |
| dgdforce | derivative of the potential function with respect to the force |
| sv0 | initial state variable |
| sv | state variable |
Reimplemented from micromechanical::core::ContactLawBase< T >.
References dgdforce(), constitutive::StateVariable< T >::fnc(), micromechanical::core::ContactLawBase< T >::material, constitutive::StateVariable< T >::nst(), micromechanical::core::ContactLawBase< T >::options, constitutive::StateVariable< T >::scalars, micromechanical::core::CSLBase< T >::tanphip(), constitutive::StateVariable< T >::upr(), constitutive::StateVariable< T >::ur(), and constitutive::StateVariable< T >::vectors.

|
inlineoverridevirtual |
Yield function for elastoplastic contact laws.
| idx | index of the integration point |
| fn | normal force |
| fr | shear force |
| sv0 | initial state variable |
| sv | state variable |
Reimplemented from micromechanical::core::ContactLawBase< T >.
References micromechanical::core::ContactLawBase< T >::material, micromechanical::core::ContactLawBase< T >::options, constitutive::StateVariable< T >::scalars, micromechanical::core::CSLBase< T >::tanphip(), constitutive::StateVariable< T >::upr(), and constitutive::StateVariable< T >::ur().
