General flow rule
Overview
A general flow rule provides the interface

So it provides a generic stress rate and history evolution rate as a function of the current state.
The base interface is entirely abstract. It maintains a set of history variables set by the specific implementation.
Implementations
- Viscoplastic general flow rule
- Overview
- Parameters
- Class description
TVPFlowRuleTVPFlowRule::TVPFlowRule()TVPFlowRule::populate_hist()TVPFlowRule::init_hist()TVPFlowRule::s()TVPFlowRule::ds_ds()TVPFlowRule::ds_da()TVPFlowRule::ds_de()TVPFlowRule::a()TVPFlowRule::da_ds()TVPFlowRule::da_da()TVPFlowRule::da_de()TVPFlowRule::work_rate()TVPFlowRule::elastic_strains()TVPFlowRule::set_elastic_model()TVPFlowRule::override_guess()TVPFlowRule::type()TVPFlowRule::initialize()TVPFlowRule::parameters()
- Walker-Krempl rate sensitivity modification
- Overview
- Parameters
- Class description
WalkerKremplSwitchRuleWalkerKremplSwitchRule::WalkerKremplSwitchRule()WalkerKremplSwitchRule::populate_hist()WalkerKremplSwitchRule::init_hist()WalkerKremplSwitchRule::s()WalkerKremplSwitchRule::ds_ds()WalkerKremplSwitchRule::ds_da()WalkerKremplSwitchRule::ds_de()WalkerKremplSwitchRule::a()WalkerKremplSwitchRule::da_ds()WalkerKremplSwitchRule::da_da()WalkerKremplSwitchRule::da_de()WalkerKremplSwitchRule::work_rate()WalkerKremplSwitchRule::elastic_strains()WalkerKremplSwitchRule::set_elastic_model()WalkerKremplSwitchRule::kappa()WalkerKremplSwitchRule::dkappa()WalkerKremplSwitchRule::override_guess()WalkerKremplSwitchRule::type()WalkerKremplSwitchRule::initialize()WalkerKremplSwitchRule::parameters()
Class description
-
class GeneralFlowRule : public neml::HistoryNEMLObject
ABC for a completely general flow rule…
Subclassed by neml::TVPFlowRule, neml::WalkerKremplSwitchRule
Public Functions
-
GeneralFlowRule(ParameterSet ¶ms)
-
virtual void s(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const sdot) = 0
Stress rate.
-
virtual void ds_ds(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_sdot) = 0
Partial of stress rate wrt stress.
-
virtual void ds_da(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_sdot) = 0
Partial of stress rate wrt history.
-
virtual void ds_de(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_sdot) = 0
Partial of stress rate wrt strain rate.
-
virtual void a(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const adot) = 0
History rate.
-
virtual void da_ds(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_adot) = 0
Partial of history rate wrt stress.
-
virtual void da_da(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_adot) = 0
Partial of history rate wrt history.
-
virtual void da_de(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_adot) = 0
Partial of history rate wrt strain rate.
-
virtual void work_rate(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double &p_rate)
The implementation needs to define inelastic dissipation.
-
virtual void elastic_strains(const double *const s_np1, double T_np1, double *const e_np1) const = 0
The implementation needs to define elastic strain.
Set a new elastic model.
-
virtual void override_guess(double *const x)
Optional method for modifying the initial guess.
-
GeneralFlowRule(ParameterSet ¶ms)