|
musica (C++)
|
#include <elastoplasticmodelbase.hpp>


Public Member Functions | |
| void | setPlasticMethod (const std::string &method) |
| set the plastic method | |
| Eigen::Matrix< T, 6, 6 > | continuumElastoplasticStiffness (const Eigen::Matrix< T, 6, 6 > &K, const StateVariable< T > &sv0, StateVariable< T > &sv, bool check_elastic_state=true, std::optional< bool > check_positive_definite=std::nullopt, std::optional< bool > check_non_singularity=std::nullopt) override |
| Eigen::Matrix< T, 6, 6 > | symmetricContinuumElastoplasticStiffness (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > &deps, const StateVariable< T > &sv0, StateVariable< T > &sv, bool check_elastic_state=true, std::optional< bool > check_positive_definite=std::nullopt, std::optional< bool > check_non_singularity=std::nullopt) override |
| Eigen::Matrix< T, 6, 6 > | consistentElastoplasticStiffness (const Eigen::Matrix< T, 6, 6 > &K, const StateVariable< T > &sv0, StateVariable< T > &sv, bool check_elastic_state=true, std::optional< bool > check_positive_definite=std::nullopt, std::optional< bool > check_non_singularity=std::nullopt) override |
| virtual T | yieldFunction (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Yield function for elastoplastic model. | |
| Eigen::Matrix< T, 6, 1 > | dfdsig0 (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the yield function with respect to the stress. | |
| virtual Eigen::Matrix< T, 6, 1 > | dfdsig (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the yield function with respect to the stress. | |
| Eigen::Matrix< T, 6, 1 > | dfdsig1 (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the yield function with respect to the stress. | |
| Eigen::Matrix< T, 6, 1 > | dfdeps0 (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the yield function with respect to the strain. | |
| virtual Eigen::Matrix< T, 6, 1 > | dfdeps (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the yield function with respect to the strain. | |
| Eigen::Matrix< T, 6, 1 > | dfdeps1 (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the yield function with respect to the strain. | |
| Eigen::Matrix< T, 6, 1 > | dfdepsp0 (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the yield function with respect to the plastic strain. | |
| virtual Eigen::Matrix< T, 6, 1 > | dfdepsp (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the yield function with respect to the plastic strain. | |
| Eigen::Matrix< T, 6, 1 > | dfdepsp1 (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the yield function with respect to the plastic strain. | |
| Public Member Functions inherited from constitutive::ConstitutiveModelBase< T > | |
| ConstitutiveModelBase ()=default | |
| default constructor | |
| virtual | ~ConstitutiveModelBase ()=default |
| destructor | |
| virtual std::vector< StateVariable< T > > | run () |
| Run the model. | |
| 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) |
| Compute one increment. | |
| void | setElementType (const std::string &element_type) |
| Set ABAQUS element type. | |
| void | setStressStrainComponents (const int ndi, const int nshr) |
| Set number of stress/strain components. | |
| std::tuple< StateVariable< T >, StateVariable< T > > | umat (const T *dload, T *stress, T *statev, T *ddsdde=nullptr, T *sse=nullptr, T *spd=nullptr, T *scd=nullptr) |
| ABAQUS UMAT interface. | |
| void | vumat (const int nBlock, const T *loadInc, const T *stressOld, T *stressNew, const T *stateOld, T *stateNew, const int nStatev) |
| ABAQUS VUMAT interface. | |
| virtual Eigen::Matrix< T, 6, 6 > | stiffness (const StateVariable< T > &sv0, StateVariable< T > &sv)=0 |
| Compute the stiffness matrix. | |
| Eigen::Matrix< T, 6, 6 > | elastoplasticStiffness (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > deps, const StateVariable< T > &sv0, StateVariable< T > &sv, bool check_elastic_state=true, std::optional< bool > check_positive_definite=std::nullopt, std::optional< bool > check_non_singularity=std::nullopt) |
| Compute the elastoplastic stiffness matrix. | |
Public Attributes | |
| std::string | plasticMethod = "CPA" |
| Plastic method. | |
| Public Attributes inherited from constitutive::ConstitutiveModelBase< T > | |
| std::string | name = "Undefined" |
| name of the model | |
| std::shared_ptr< Load< T > > | load = std::make_shared<Load<T>>() |
| load | |
| std::shared_ptr< Options< T > > | options = std::make_shared<Options<T>>() |
| options for the constitutive model | |
| std::shared_ptr< DebugVariable< T > > | debugVariable = std::make_shared<DebugVariable<T>>() |
| debug variable | |
| std::vector< StateVariable< T > > | stateVars = {} |
| state variables of the current run | |
| Eigen::Matrix< T, 3, 3 > | custom_loading_direction = Eigen::Matrix<T, 3, 3>::Zero() |
| custom loading direction | |
| bool | abaqus_initialize = false |
| Options for abaqus UMAT/VUMAT interfaces. | |
| bool | abaqus_normalize_ddsdde = true |
| whether to normalize stiffness matrix | |
| bool | abaqus_strain_control = true |
| the load is controlled by strain (true) or stress (false) | |
| bool | abaqus_disable_unused_components = false |
| whether to disable unused components in the flow rule | |
| int | abaqus_ndi = 3 |
| number of direct stress/strain components | |
| int | abaqus_nshr = 3 |
| number of shear stress/strain components | |
| std::string | abaqus_stiffness_type = "elastic" |
| T | abaqus_elastoplastic_stiffness_strain_increment_multiplier = 1.0 |
| multiplier for strain increment when computing elastoplastic stiffness matrix | |
| bool | abaqus_check_stiffness_matrix_positive_definite = true |
| whether to check the positive definiteness of the stiffness matrix | |
| bool | abaqus_check_stiffness_matrix_non_singularity = true |
| whether to check the non-singularity of the stiffness matrix | |
| int | _phase = 0 |
| index of the phase | |
| int | _step = 0 |
| current step | |
| int | _mixedLoad = 0 |
| number of mixed load steps | |
Protected Member Functions | |
| 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 | |
| bool | isRungeKutta () const |
| check if the plastic method is RungeKutta | |
| void | stressStrainIntegrate (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) override |
| Stress-strain integration. | |
| void | returnMapping (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) |
| return mapping algorithm to solve plastic problem (plastic strain and stress) | |
| T | elasticTrial (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > &deps, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Perform the elastic trial. | |
| void | revertElasticTrial (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > &deps, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Revert the elastic trial. | |
| virtual void | beginConstantStressStateScope (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Begin the scope of a constant stress state which can be used to cache intermediate variables for the plastic correction, such as derivatives of the yield and plastic potential functions, and hardening law. | |
| void | beginConstantStressStateScope1 (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Begin the scope of a constant stress state which can be used to cache intermediate variables for the plastic correction, such as derivatives of the yield and plastic potential functions, and hardening law. | |
| virtual void | endConstantStressStateScope (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| End the scope of a constant stress state. | |
| void | endConstantStressStateScope1 (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| End the scope of a constant stress state. | |
| virtual bool | converged (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Whether the current stress state can be accepted as converged, used for elastoplastic substepping. | |
| void | ExplicitCPA (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > &deps, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Explicit/CPA methods for elastoplastic model. | |
| void | CPPM (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > &deps, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| CPPM method for elastoplastic model. | |
| std::tuple< bool, T > | integrateToYieldSurface (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > &deps, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Integrate stress state to the yield surface elastically, solve f(sig0 + alpha * K * deps) = 0. | |
| std::tuple< Eigen::Matrix< T, 6, 6 >, Eigen::Matrix< T, 6, 1 >, Eigen::Matrix< T, 6, 1 >, Eigen::Matrix< T, Eigen::Dynamic, 1 >, Eigen::Matrix< T, Eigen::Dynamic, 6 > > | RKn (int n, const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > &deps, const StateVariable< T > &sv0, StateVariable< T > &sv, const bool revert=false) |
| Perform a Runge-Kutta increment. | |
| void | RungeKutta (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > &deps, const StateVariable< T > &sv0, StateVariable< T > &sv, std::optional< int > order=std::nullopt) |
| Runge-Kutta method for elastoplastic model. | |
| virtual T | CSL (const StateVariable< T > &sv0, StateVariable< T > &sv) const |
| calculate the critical state line | |
| T | yieldFunction1 (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Yield function for elastoplastic model. | |
| Eigen::Matrix< T, 6, 6 > | dsigadsig (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the modified stress with respect to the stress. | |
| virtual T | potentialFunction (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Potential function for elastoplastic model. | |
| Eigen::Matrix< T, 6, 1 > | dgdsig0 (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the potential function with respect to the stress. | |
| virtual Eigen::Matrix< T, 6, 1 > | dgdsig (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Derivative of the potential function with respect to the stress. | |
| Eigen::Matrix< T, 6, 1 > | dgdsig1 (const Eigen::Matrix< T, 6, 1 > &dfdsig, const StateVariable< T > &sv0, StateVariable< T > &sv, std::optional< bool > associated=std::nullopt) |
| Derivative of the potential function with respect to the stress. | |
| Eigen::Matrix< T, 6, 6 > | d2gdsig20 (const Eigen::Matrix< T, 6, 1 > &dfdsig, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Second-order derivative of the potential function with respect to the stress. | |
| virtual Eigen::Matrix< T, 6, 6 > | d2gdsig2 (const Eigen::Matrix< T, 6, 1 > &dfdsig, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Second-order derivative of the potential function with respect to the stress. | |
| Eigen::Matrix< T, 6, 6 > | d2gdsig21 (const Eigen::Matrix< T, 6, 1 > &dfdsig, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Second-order derivative of the potential function with respect to the stress. | |
| virtual T | plasticModulus (const Eigen::Matrix< T, 6, 1 > &dgdsig, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Plastic modulus for elastoplastic model, including dgdsig. | |
| T | plasticModulus1 (const Eigen::Matrix< T, 6, 1 > &dgdsig, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Plastic modulus for elastoplastic model, including dgdsig. | |
| virtual void | updateHardeningVariables (const T ddlambda, const Eigen::Matrix< T, 6, 1 > &ddepsp, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Update the hardening variables. | |
| virtual void | yieldFunctionCorrection (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > &deps, const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Yield surface correction to keep the force state on the yield surface. | |
| Eigen::Matrix< T, 3, 3 > | orthogonalDirection (const Eigen::Matrix< T, 3, 3 > &F, const Eigen::Matrix< T, 3, 3 > &n) const |
| Orthogonal direction. | |
| Eigen::Matrix< T, 3, 3 > | nonCoaxialDirection (const Eigen::Matrix< T, 3, 3 > &F, const Eigen::Matrix< T, 3, 3 > &n, const Eigen::Matrix< T, 3, 3 > &m) const |
| Non-coaxial direction. | |
| void | interpolateFabricTensor (const StateVariable< T > &sv0, StateVariable< T > &sv, const bool clear_caches=true, std::optional< std::string > combined_stress_tensor_type=std::nullopt) |
| Interpolate fabric tensor towards critical state. | |
| Protected Member Functions inherited from constitutive::ConstitutiveModelBase< T > | |
| bool | checkStiffnessMatrix (const Eigen::Matrix< T, 6, 6 > &K, std::optional< bool > check_positive_definite=std::nullopt, std::optional< bool > check_non_singularity=std::nullopt) |
| Check whether the stiffness matrix is valid. | |
| virtual void | fromAbaqus (StateVariable< T > &sv0, T *statev)=0 |
| Sync the state variables sv0 from abaqus statev. | |
| virtual void | toAbaqus (const StateVariable< T > &sv0, StateVariable< T > &sv, T *statev)=0 |
| Sync the state variables sv to abaqus statev. | |
| virtual StateVariable< T > | createStateVariable ()=0 |
| Create a new state variable object. | |
| virtual void | initialize (StateVariable< T > &sv)=0 |
| Initialize the state variables. | |
| T | updateVoidRatio (T e0, StateVariable< T > &sv) |
| Update the void ratio after the isotropic loading to the void ratio before the isotropic loading. | |
| virtual void | postInitialize (StateVariable< T > &sv) |
| Post-initialize the state variables. | |
| void | saveElasticStiffnessMatrix (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Save elastic stiffness matrix. | |
| virtual void | postProcess (StateVariable< T > &sv) |
| Post-process the state variables. | |
| virtual void | preStressStrainIntegrate (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Pre-processing before the stress-strain integration. | |
| virtual void | postStressStrainIntegrate (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Post-processing after the stress-strain integration. | |
| virtual void | preIncrement (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Pre-processing before the increment. | |
| virtual void | postIncrement (const StateVariable< T > &sv0, StateVariable< T > &sv) |
| Post-processing after the increment. | |
| std::tuple< Eigen::Matrix< T, 6, 1 >, Eigen::Matrix< T, 6, 1 > > | linearize (const Eigen::Matrix< T, 6, 6 > &K, const Eigen::Matrix< T, 6, 1 > &dx, 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) |
| Linearize the stress and strain increment. | |
| 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. | |
| Eigen::Matrix< T, 3, 3 > | loadingDirection (const StateVariable< T > &sv0, StateVariable< T > &sv) const |
| loading direction | |
Protected Attributes | |
| std::string | state = "none" |
| bool | cached_ = false |
| whether the state variables have been cached | |
| Eigen::Matrix< T, 1, 6 > | dpadsiga = {-1.0 / 3.0, -1.0 / 3.0, -1.0 / 3.0, 0.0, 0.0, 0.0} |
| Eigen::Matrix< T, 1, 6 > | dqadtaua = Eigen::Matrix<T, 1, 6>::Zero() |
| Eigen::Matrix< T, 6, 6 > | dtauadsiga |
| Protected Attributes inherited from constitutive::ConstitutiveModelBase< T > | |
| T | _e0 = 0.0 |
| original void ratio | |
|
inlineprotectedvirtual |
Begin the scope of a constant stress state which can be used to cache intermediate variables for the plastic correction, such as derivatives of the yield and plastic potential functions, and hardening law.
| sv0 | initial state variable |
| sv | current state variable |
Reimplemented in elastoplastic::J2Yang< T >, and elastoplastic::SIMSAND< T >.
Referenced by beginConstantStressStateScope1().

|
inlineprotected |
Begin the scope of a constant stress state which can be used to cache intermediate variables for the plastic correction, such as derivatives of the yield and plastic potential functions, and hardening law.
| sv0 | initial state variable |
| sv | current state variable |
References beginConstantStressStateScope(), constitutive::StateVariable< T >::F, and constitutive::ConstitutiveModelBase< T >::options.
Referenced by consistentElastoplasticStiffness(), continuumElastoplasticStiffness(), CPPM(), symmetricContinuumElastoplasticStiffness(), and yieldFunctionCorrection().


|
inlineoverridevirtual |
| K | stiffness matrix |
| sv0 | initial state variable |
| sv | state variable |
| check_elastic_state | Whether to check if the current stress state is elastic |
| check_positive_definite | Whether to check the positive definiteness of the elastoplastic stiffness matrix |
| check_non_singularity | Whether to check the non-singularity of the elastoplastic stiffness matrix |
Reimplemented from constitutive::ConstitutiveModelBase< T >.
References beginConstantStressStateScope1(), constitutive::ConstitutiveModelBase< T >::checkStiffnessMatrix(), d2gdsig2(), d2gdsig21(), dfdsig(), dfdsig1(), dgdsig(), dgdsig1(), constitutive::StateVariable< T >::elastic(), endConstantStressStateScope1(), plasticModulus1(), and constitutive::StateVariable< T >::scalars.

|
inlineoverridevirtual |
| K | stiffness matrix |
| sv0 | initial state variable |
| sv | state variable |
| check_elastic_state | Whether to check if the current stress state is elastic |
| check_positive_definite | Whether to check the positive definiteness of the elastoplastic stiffness matrix |
| check_non_singularity | Whether to check the non-singularity of the elastoplastic stiffness matrix |
Reimplemented from constitutive::ConstitutiveModelBase< T >.
References beginConstantStressStateScope1(), constitutive::ConstitutiveModelBase< T >::checkStiffnessMatrix(), dfdeps(), dfdeps1(), dfdsig(), dfdsig1(), dgdsig(), dgdsig1(), constitutive::StateVariable< T >::elastic(), endConstantStressStateScope1(), constitutive::ConstitutiveModelBase< T >::options, plasticModulus1(), and constitutive::StateVariable< T >::vectors.
Referenced by RKn(), and RungeKutta().


|
inlineprotectedvirtual |
Whether the current stress state can be accepted as converged, used for elastoplastic substepping.
| sv0 | initial state variable |
| sv | current state variable |
Reimplemented in elastoplastic::core::ElastoplasticModel< T >.
Referenced by CPPM(), integrateToYieldSurface(), RungeKutta(), stressStrainIntegrate(), micromechanical::ChangHicher< T >::stressStrainIntegrate1(), and yieldFunctionCorrection().

|
inlineprotected |
CPPM method for elastoplastic model.
| K | stiffness matrix |
| deps | strain increment |
| sv0 | initial state variable |
| sv | state variable |
References constitutive::ConstitutiveModelBase< T >::_mixedLoad, constitutive::ConstitutiveModelBase< T >::_phase, constitutive::ConstitutiveModelBase< T >::_step, beginConstantStressStateScope1(), converged(), d2gdsig2(), d2gdsig21(), constitutive::ConstitutiveModelBase< T >::debugVariable, dfdsig(), dfdsig1(), dgdsig(), dgdsig1(), elasticTrial(), endConstantStressStateScope1(), constitutive::StateVariable< T >::eps, constitutive::StateVariable< T >::epsp, constitutive::ConstitutiveModelBase< T >::options, plasticModulus1(), constitutive::StateVariable< T >::scalars, constitutive::StateVariable< T >::sig, constitutive::StateVariable< T >::sig_(), updateHardeningVariables(), and yieldFunction1().
Referenced by returnMapping().


|
inlineprotectedvirtual |
calculate the critical state line
| sv0 | initial state variable |
| sv | state variable |
Reimplemented in elastoplastic::core::CriticalStateLine< T >.
Referenced by elastoplastic::core::ElastoplasticModel< T >::createStateVariable(), elastoplastic::core::ElastoplasticModel< T >::dMpde(), elastoplastic::core::ElastoplasticModel< T >::dMpdec(), elastoplastic::core::ElastoplasticModel< T >::dMptde(), elastoplastic::core::ElastoplasticModel< T >::dMptdec(), returnMapping(), and elastoplastic::core::ElastoplasticModel< T >::stateParameter().

|
inlineprotectedvirtual |
Second-order derivative of the potential function with respect to the stress.
| dfdsig | the derivative of the yield function with respect to the stress |
| sv0 | initial state variable |
| sv | state variable |
References d2gdsig20(), and dfdsig().
Referenced by consistentElastoplasticStiffness(), CPPM(), d2gdsig20(), and d2gdsig21().


|
inlineprotected |
Second-order derivative of the potential function with respect to the stress.
| dfdsig | the derivative of the yield function with respect to the stress |
| sv0 | initial state variable |
| sv | state variable |
References d2gdsig2(), dfdsig(), dgdsig0(), dgdsig1(), constitutive::ConstitutiveModelBase< T >::options, constitutive::StateVariable< T >::sig, and constitutive::StateVariable< T >::sig_().
Referenced by d2gdsig2(), and d2gdsig21().


|
inlineprotected |
Second-order derivative of the potential function with respect to the stress.
| dfdsig | the derivative of the yield function with respect to the stress |
| sv0 | initial state variable |
| sv | state variable |
References d2gdsig2(), d2gdsig20(), dfdsig(), and constitutive::ConstitutiveModelBase< T >::options.
Referenced by consistentElastoplasticStiffness(), and CPPM().


|
inlinevirtual |
Derivative of the yield function with respect to the strain.
| sv0 | initial state variable |
| sv | state variable |
Reimplemented in elastoplastic::J2Yang< T >, and elastoplastic::SIMSAND< T >.
References dfdeps0().
Referenced by continuumElastoplasticStiffness(), dfdeps0(), and dfdeps1().


|
inline |
Derivative of the yield function with respect to the strain.
| sv0 | initial state variable |
| sv | state variable |
References dfdeps(), constitutive::StateVariable< T >::eps, constitutive::ConstitutiveModelBase< T >::options, constitutive::StateVariable< T >::setStrain(), and yieldFunction1().
Referenced by dfdeps(), and dfdeps1().


|
inline |
Derivative of the yield function with respect to the strain.
| sv0 | initial state variable |
| sv | state variable |
References dfdeps(), dfdeps0(), constitutive::StateVariable< T >::F, and constitutive::ConstitutiveModelBase< T >::options.
Referenced by continuumElastoplasticStiffness().


|
inlinevirtual |
Derivative of the yield function with respect to the plastic strain.
| sv0 | initial state variable |
| sv | state variable |
Reimplemented in micromechanical::ChangHicher< T >.
References dfdepsp0().
Referenced by dfdepsp0(), and dfdepsp1().


|
inline |
Derivative of the yield function with respect to the plastic strain.
| sv0 | initial state variable |
| sv | state variable |
References dfdepsp(), constitutive::StateVariable< T >::epsp, constitutive::ConstitutiveModelBase< T >::options, and yieldFunction1().
Referenced by dfdepsp(), and dfdepsp1().


|
inline |
Derivative of the yield function with respect to the plastic strain.
| sv0 | initial state variable |
| sv | state variable |
References dfdepsp(), dfdepsp0(), constitutive::StateVariable< T >::F, and constitutive::ConstitutiveModelBase< T >::options.
Referenced by plasticModulus().


|
inlinevirtual |
Derivative of the yield function with respect to the stress.
| sv0 | initial state variable |
| sv | state variable |
Reimplemented in elastoplastic::J2Yang< T >, elastoplastic::SIMSAND< T >, and micromechanical::ChangHicher< T >.
References dfdsig0().
Referenced by consistentElastoplasticStiffness(), continuumElastoplasticStiffness(), CPPM(), d2gdsig2(), d2gdsig20(), d2gdsig21(), dfdsig0(), dfdsig1(), dgdsig1(), symmetricContinuumElastoplasticStiffness(), and yieldFunctionCorrection().


|
inline |
Derivative of the yield function with respect to the stress.
| sv0 | initial state variable |
| sv | state variable |
References dfdsig(), constitutive::ConstitutiveModelBase< T >::options, constitutive::StateVariable< T >::sig, constitutive::StateVariable< T >::sig_(), and yieldFunction1().
Referenced by dfdsig(), and dfdsig1().


|
inline |
Derivative of the yield function with respect to the stress.
| sv0 | initial state variable |
| sv | state variable |
References dfdsig(), dfdsig0(), constitutive::StateVariable< T >::F, and constitutive::ConstitutiveModelBase< T >::options.
Referenced by consistentElastoplasticStiffness(), continuumElastoplasticStiffness(), CPPM(), integrateToYieldSurface(), symmetricContinuumElastoplasticStiffness(), and yieldFunctionCorrection().


|
inlineprotectedvirtual |
Derivative of the potential function with respect to the stress.
| sv0 | initial state variable |
| sv | state variable |
Reimplemented in elastoplastic::core::StressDilatancy< T >, and micromechanical::ChangHicher< T >.
References dgdsig0().
Referenced by consistentElastoplasticStiffness(), continuumElastoplasticStiffness(), CPPM(), dgdsig0(), dgdsig1(), plasticModulus(), plasticModulus1(), RKn(), symmetricContinuumElastoplasticStiffness(), and yieldFunctionCorrection().


|
inlineprotected |
Derivative of the potential function with respect to the stress.
| sv0 | initial state variable |
| sv | state variable |
References dgdsig(), constitutive::ConstitutiveModelBase< T >::options, potentialFunction(), constitutive::StateVariable< T >::sig, and constitutive::StateVariable< T >::sig_().
Referenced by d2gdsig20(), dgdsig(), and dgdsig1().


|
inlineprotected |
Derivative of the potential function with respect to the stress.
| dfdsig | the derivative of the yield function with respect to the stress |
| sv0 | initial state variable |
| sv | state variable |
| associated | whether to override the option to use associated flow rule |
References constitutive::ConstitutiveModelBase< T >::abaqus_disable_unused_components, constitutive::ConstitutiveModelBase< T >::abaqus_ndi, constitutive::ConstitutiveModelBase< T >::abaqus_nshr, dfdsig(), dgdsig(), dgdsig0(), and constitutive::ConstitutiveModelBase< T >::options.
Referenced by consistentElastoplasticStiffness(), continuumElastoplasticStiffness(), CPPM(), d2gdsig20(), symmetricContinuumElastoplasticStiffness(), and yieldFunctionCorrection().


|
inlineprotected |
Derivative of the modified stress with respect to the stress.
| sv0 | initial state variable |
| sv | state variable |
References constitutive::StateVariable< T >::Aij(), and constitutive::ConstitutiveModelBase< T >::options.
Referenced by elastoplastic::J2Yang< T >::dfdsig(), elastoplastic::SIMSAND< T >::dfdsig(), elastoplastic::core::StressDilatancy< T >::dgdsig(), and stressStrainIntegrate().


|
inlineprotected |
Perform the elastic trial.
| K | stiffness matrix |
| deps | strain increment |
| sv0 | initial state variable |
| sv | state variable |
References constitutive::ConstitutiveModelBase< T >::abaqus_disable_unused_components, constitutive::ConstitutiveModelBase< T >::abaqus_ndi, constitutive::ConstitutiveModelBase< T >::abaqus_nshr, constitutive::StateVariable< T >::addStrain(), constitutive::ConstitutiveModelBase< T >::options, constitutive::StateVariable< T >::scalars, constitutive::StateVariable< T >::sig_(), and yieldFunction1().
Referenced by CPPM(), ExplicitCPA(), and integrateToYieldSurface().


|
inlineprotectedvirtual |
End the scope of a constant stress state.
| sv0 | initial state variable |
| sv | current state variable |
Referenced by endConstantStressStateScope1().

|
inlineprotected |
End the scope of a constant stress state.
| sv0 | initial state variable |
| sv | current state variable |
References endConstantStressStateScope(), and constitutive::ConstitutiveModelBase< T >::options.
Referenced by consistentElastoplasticStiffness(), continuumElastoplasticStiffness(), CPPM(), symmetricContinuumElastoplasticStiffness(), and yieldFunctionCorrection().


|
inlineprotected |
Explicit/CPA methods for elastoplastic model.
| K | stiffness matrix |
| deps | strain increment |
| sv0 | initial state variable |
| sv | state variable |
References elasticTrial(), constitutive::StateVariable< T >::vectors, and yieldFunctionCorrection().
Referenced by returnMapping().


|
inlineprotected |
Integrate stress state to the yield surface elastically, solve f(sig0 + alpha * K * deps) = 0.
| K | stiffness matrix |
| deps | strain increment |
| sv0 | initial state variable |
| sv | state variable |
References converged(), dfdsig1(), elasticTrial(), constitutive::StateVariable< T >::eps, constitutive::ConstitutiveModelBase< T >::options, constitutive::StateVariable< T >::setStrain(), constitutive::StateVariable< T >::sig, constitutive::StateVariable< T >::sig_(), and yieldFunction1().
Referenced by RungeKutta().


|
inlineprotected |
Interpolate fabric tensor towards critical state.
References constitutive::StateVariable< T >::F_(), constitutive::StateVariable< T >::FAV(), constitutive::StateVariable< T >::Fij(), constitutive::ConstitutiveModelBase< T >::loadingDirection(), constitutive::mat2vec(), nonCoaxialDirection(), constitutive::ConstitutiveModelBase< T >::options, orthogonalDirection(), and constitutive::StateVariable< T >::scalars.
Referenced by elastoplastic::core::StressDilatancy< T >::dgdsig(), and elastoplastic::core::ElastoplasticModel< T >::preIncrement().


|
inlineprotected |
check if the plastic method is CPA
Referenced by returnMapping().

|
inlineprotected |
check if the plastic method is CPPM
Referenced by returnMapping().

|
inlineprotected |
check if the plastic method is explicit
Referenced by returnMapping(), and yieldFunctionCorrection().

|
inlineprotected |
check if the plastic method is RungeKutta
Referenced by returnMapping().

|
inlineprotected |
Non-coaxial direction.
References constitutive::nonCoaxialDirection().
Referenced by interpolateFabricTensor(), and elastoplastic::core::ElastoplasticModel< T >::stateParameter().


|
inlineprotected |
Orthogonal direction.
References constitutive::orthogonalDirection().
Referenced by interpolateFabricTensor(), and elastoplastic::core::ElastoplasticModel< T >::stateParameter().


|
inlineprotectedvirtual |
Plastic modulus for elastoplastic model, including dgdsig.
| dgdsig | derivative of the potential function with respect to the stress |
| sv0 | initial state variable |
| sv | state variable |
Reimplemented in elastoplastic::J2Yang< T >, and elastoplastic::SIMSAND< T >.
References dfdepsp1(), and dgdsig().
Referenced by plasticModulus1().


|
inlineprotected |
Plastic modulus for elastoplastic model, including dgdsig.
| dgdsig | derivative of the potential function with respect to the stress |
| sv0 | initial state variable |
| sv | state variable |
References dgdsig(), constitutive::StateVariable< T >::F, constitutive::ConstitutiveModelBase< T >::options, and plasticModulus().
Referenced by consistentElastoplasticStiffness(), continuumElastoplasticStiffness(), CPPM(), symmetricContinuumElastoplasticStiffness(), and yieldFunctionCorrection().


|
inlineprotectedvirtual |
Potential function for elastoplastic model.
| sv0 | initial state variable |
| sv | state variable |
Reimplemented in elastoplastic::core::StressDilatancy< T >, and elastoplastic::MohrCoulomb< T >.
References yieldFunction1().
Referenced by dgdsig0().


|
inlineprotected |
return mapping algorithm to solve plastic problem (plastic strain and stress)
References constitutive::ConstitutiveModelBase< T >::_mixedLoad, constitutive::ConstitutiveModelBase< T >::_phase, constitutive::ConstitutiveModelBase< T >::_step, CPPM(), CSL(), constitutive::ConstitutiveModelBase< T >::debugVariable, constitutive::StateVariable< T >::e, constitutive::StateVariable< T >::ec, ExplicitCPA(), isCPA(), isCPPM(), isExplicit(), isRungeKutta(), constitutive::ConstitutiveModelBase< T >::options, and RungeKutta().
Referenced by stressStrainIntegrate(), and micromechanical::ChangHicher< T >::stressStrainIntegrate().


|
inlineprotected |
Revert the elastic trial.
| K | stiffness matrix |
| deps | strain increment |
| sv0 | initial state variable |
| sv | state variable |
References constitutive::ConstitutiveModelBase< T >::abaqus_disable_unused_components, constitutive::ConstitutiveModelBase< T >::abaqus_ndi, constitutive::ConstitutiveModelBase< T >::abaqus_nshr, constitutive::StateVariable< T >::addStrain(), constitutive::ConstitutiveModelBase< T >::options, and constitutive::StateVariable< T >::sig_().

|
inlineprotected |
Perform a Runge-Kutta increment.
| n | Order of the Runge-Kutta method |
| K | stiffness matrix |
| deps | strain increment |
| sv0 | initial state variable |
| sv | state variable |
| revert | Whether to revert the state variables after the increment for estimation |
References constitutive::StateVariable< T >::addStrain(), constitutive::butcherTableau(), continuumElastoplasticStiffness(), dgdsig(), constitutive::StateVariable< T >::eps, constitutive::StateVariable< T >::epsp, constitutive::ConstitutiveModelBase< T >::options, constitutive::StateVariable< T >::setStrain(), constitutive::StateVariable< T >::sig, constitutive::StateVariable< T >::sig_(), updateHardeningVariables(), and constitutive::StateVariable< T >::vectors.
Referenced by RungeKutta().


|
inlineprotected |
Runge-Kutta method for elastoplastic model.
| K | stiffness matrix |
| deps | strain increment |
| sv0 | initial state variable |
| sv | state variable |
| order | Order of the Runge-Kutta method |
References constitutive::ConstitutiveModelBase< T >::_mixedLoad, constitutive::ConstitutiveModelBase< T >::_phase, constitutive::ConstitutiveModelBase< T >::_step, constitutive::StateVariable< T >::addStrain(), continuumElastoplasticStiffness(), converged(), constitutive::ConstitutiveModelBase< T >::debugVariable, constitutive::StateVariable< T >::eps, constitutive::StateVariable< T >::epsp, integrateToYieldSurface(), constitutive::StateVariable< T >::matrices, constitutive::ConstitutiveModelBase< T >::options, RKn(), constitutive::StateVariable< T >::scalars, constitutive::StateVariable< T >::sig, constitutive::StateVariable< T >::sig_(), updateHardeningVariables(), and yieldFunctionCorrection().
Referenced by returnMapping().


|
inline |
set the plastic method
| method | plastic method, "Explicit", "CPA", "CPPM" or "RungeKutta" |
|
inlineoverrideprotectedvirtual |
Stress-strain integration.
| K | stiffness matrix |
| dsig | stress increment |
| deps | strain increment |
| sv0 | initial state variable |
| sv | state variable |
Implements constitutive::ConstitutiveModelBase< T >.
References constitutive::ConstitutiveModelBase< T >::_mixedLoad, constitutive::ConstitutiveModelBase< T >::_phase, constitutive::ConstitutiveModelBase< T >::_step, converged(), constitutive::ConstitutiveModelBase< T >::debugVariable, dsigadsig(), constitutive::StateVariable< T >::e, constitutive::StateVariable< T >::eps, constitutive::StateVariable< T >::epsp, constitutive::ConstitutiveModelBase< T >::loadingDirection(), constitutive::StateVariable< T >::matrices, constitutive::ConstitutiveModelBase< T >::options, returnMapping(), constitutive::StateVariable< T >::scalars, constitutive::StateVariable< T >::sig, constitutive::StateVariable< T >::sig_(), and constitutive::StateVariable< T >::vectors.

|
inlineoverridevirtual |
| K | stiffness matrix |
| deps | strain increment |
| sv0 | initial state variable |
| sv | state variable |
| check_elastic_state | Whether to check if the current stress state is elastic |
| check_positive_definite | Whether to check the positive definiteness of the elastoplastic stiffness matrix |
| check_non_singularity | Whether to check the non-singularity of the elastoplastic stiffness matrix |
Reimplemented from constitutive::ConstitutiveModelBase< T >.
References beginConstantStressStateScope1(), constitutive::ConstitutiveModelBase< T >::checkStiffnessMatrix(), dfdsig(), dfdsig1(), dgdsig(), dgdsig1(), constitutive::StateVariable< T >::elastic(), endConstantStressStateScope1(), and plasticModulus1().

|
inlineprotectedvirtual |
Update the hardening variables.
| ddlambda | plastic multiplier |
| ddepsp | plastic displacement increment |
| sv0 | initial state variable |
| sv | state variable |
Reimplemented in micromechanical::ChangHicher< T >.
Referenced by CPPM(), RKn(), RungeKutta(), and yieldFunctionCorrection().

|
inlinevirtual |
Yield function for elastoplastic model.
| sv0 | initial state variable |
| sv | state variable |
Reimplemented in elastoplastic::J2Yang< T >, elastoplastic::MohrCoulomb< T >, elastoplastic::SIMSAND< T >, and micromechanical::ChangHicher< T >.
Referenced by yieldFunction1().

|
inlineprotected |
Yield function for elastoplastic model.
| sv0 | initial state variable |
| sv | state variable |
References constitutive::StateVariable< T >::F, constitutive::ConstitutiveModelBase< T >::options, and yieldFunction().
Referenced by CPPM(), dfdeps0(), dfdepsp0(), dfdsig0(), elasticTrial(), integrateToYieldSurface(), potentialFunction(), and yieldFunctionCorrection().


|
inlineprotectedvirtual |
Yield surface correction to keep the force state on the yield surface.
| K | stiffness matrix |
| deps | strain increment |
| sv0 | initial state variable |
| sv | state variable |
Reimplemented in micromechanical::ChangHicher< T >.
References constitutive::ConstitutiveModelBase< T >::_mixedLoad, constitutive::ConstitutiveModelBase< T >::_phase, constitutive::ConstitutiveModelBase< T >::_step, beginConstantStressStateScope1(), converged(), constitutive::ConstitutiveModelBase< T >::debugVariable, dfdsig(), dfdsig1(), dgdsig(), dgdsig1(), endConstantStressStateScope1(), constitutive::StateVariable< T >::eps, constitutive::StateVariable< T >::epsp, isExplicit(), constitutive::ConstitutiveModelBase< T >::options, plasticModulus1(), constitutive::StateVariable< T >::scalars, constitutive::StateVariable< T >::sig, constitutive::StateVariable< T >::sig_(), updateHardeningVariables(), and yieldFunction1().
Referenced by ExplicitCPA(), and RungeKutta().


|
protected |
whether the state variables have been cached
Referenced by elastoplastic::J2Yang< T >::beginConstantStressStateScope(), elastoplastic::SIMSAND< T >::beginConstantStressStateScope(), elastoplastic::J2Yang< T >::dfdeps(), elastoplastic::SIMSAND< T >::dfdeps(), elastoplastic::J2Yang< T >::dfdsig(), elastoplastic::SIMSAND< T >::dfdsig(), elastoplastic::core::StressDilatancy< T >::dilatancy(), elastoplastic::J2Yang< T >::kp(), elastoplastic::SIMSAND< T >::kp(), elastoplastic::SIMSAND< T >::plasticModulus(), elastoplastic::J2Yang< T >::yieldFunction(), and elastoplastic::SIMSAND< T >::yieldFunction().
|
protected |
|
protected |
|
protected |
Referenced by elastoplastic::J2Yang< T >::dfdeps(), elastoplastic::SIMSAND< T >::dfdeps(), elastoplastic::J2Yang< T >::dfdsig(), elastoplastic::SIMSAND< T >::dfdsig(), and elastoplastic::core::StressDilatancy< T >::dgdsig().
| std::string constitutive::ElastoplasticModelBase< T >::plasticMethod = "CPA" |
Plastic method.
|
protected |
State of the elastoplastic stress integration, "none", "elastic_trial", "elastic_to_yield", "elastoplastic", or "plastic_correction".