Chaboche viscoplastic flow rule¶
Overview¶
The Chaboche viscoplastic flow model uses an associative flow function but nonassociative hardening. Traditionally the nonassociative hardening model used is the ChabocheHardening model, but this implementation can use any nonassociative hardening rule. The model is defined by:

The time and temperature rate contributions to the flow function are zero.
The rate sensitivity exponent is generally temperature dependent; the prefactor
can be temperature dependent; the
Fluidity model
can depend on both temperature and inelastic strain.
The hardening model is defined by a NonassociativeHardening model.
The time and temperature rate contributions can be non-zero.
The model maintains the history variables defined by the hardening model.
Parameters¶
Parameter |
Object type |
Description |
Default |
|---|---|---|---|
|
Flow surface interface |
No |
|
|
|
Hardening rule interface |
No |
|
Fluidity definition |
No |
|
|
Rate sensitivity exponent |
No |
|
|
Prefactor |
Class description¶
-
class ChabocheFlowRule : public neml::ViscoPlasticFlowRule¶
Non-associative flow based on Chaboche’s viscoplastic formulation.
Public Functions
-
ChabocheFlowRule(ParameterSet ¶ms)¶
Parameters: a yield surface, a nonassociative hardening rule, the fluidity function, and a rate sensitivity exponent
-
virtual void y(const double *const s, const double *const alpha, double T, double &yv) const¶
Scalar flow rate.
-
virtual void dy_ds(const double *const s, const double *const alpha, double T, double *const dyv) const¶
Derivative of y wrt stress.
-
virtual void dy_da(const double *const s, const double *const alpha, double T, double *const dyv) const¶
Derivative of y wrt history.
-
virtual void g(const double *const s, const double *const alpha, double T, double *const gv) const¶
Flow rule proportional to the scalar strain rate.
-
virtual void dg_ds(const double *const s, const double *const alpha, double T, double *const dgv) const¶
Derivative of g wrt stress.
-
virtual void dg_da(const double *const s, const double *const alpha, double T, double *const dgv) const¶
Derivative of g wrt history.
-
virtual void h(const double *const s, const double *const alpha, double T, double *const hv) const¶
Hardening rule proportional to the scalar strain rate.
-
virtual void dh_ds(const double *const s, const double *const alpha, double T, double *const dhv) const¶
Derivative of h wrt stress.
-
virtual void dh_da(const double *const s, const double *const alpha, double T, double *const dhv) const¶
Derivative of h wrt history.
-
virtual void h_time(const double *const s, const double *const alpha, double T, double *const hv) const¶
Hardening rule proportional to time.
-
virtual void dh_ds_time(const double *const s, const double *const alpha, double T, double *const dhv) const¶
Derivative of h_time wrt stress.
-
virtual void dh_da_time(const double *const s, const double *const alpha, double T, double *const dhv) const¶
Derivative of h_time wrt history.
-
virtual void h_temp(const double *const s, const double *const alpha, double T, double *const hv) const¶
Hardening rule proportional to temperature rate.
-
virtual void dh_ds_temp(const double *const s, const double *const alpha, double T, double *const dhv) const¶
Derivative of h_temp wrt stress.
-
virtual void dh_da_temp(const double *const s, const double *const alpha, double T, double *const dhv) const¶
Derivative of h_temp wrt history.
Public Static Functions
-
static std::string type()¶
String type for the object system.
-
static std::unique_ptr<NEMLObject> initialize(ParameterSet ¶ms)¶
Initialize from a parameter set.
-
static ParameterSet parameters()¶
Return default parameters.
-
ChabocheFlowRule(ParameterSet ¶ms)¶
Fluidity model¶
The general Chaboche model allows the fluidity to vary with the integrated effective inelastic strain

These models then define the fluidity as

-
class FluidityModel : public neml::NEMLObject¶
Various Chaboche type fluidity models.
Subclassed by neml::ConstantFluidity, neml::SaturatingFluidity
Public Functions
-
FluidityModel(ParameterSet ¶ms)¶
-
virtual double eta(double a, double T) const = 0¶
Value of viscosity as a function of temperature and inelastic strain.
-
virtual double deta(double a, double T) const = 0¶
Derivative of viscosity wrt inelastic strain.
-
FluidityModel(ParameterSet ¶ms)¶
Constant fluidity¶
This option keeps the fluidity constant with the effective inelastic strain.

It can still vary with temperature.
Parameters¶
Parameter |
Object type |
Description |
Default |
|---|---|---|---|
|
Value of the fluidity |
No |
Class description¶
-
class ConstantFluidity : public neml::FluidityModel¶
The fluidity is constant with respect to plastic strain.
Public Functions
-
ConstantFluidity(ParameterSet ¶ms)¶
Parameter: constant value of viscosity.
-
virtual double eta(double a, double T) const¶
Value of eta.
-
virtual double deta(double a, double T) const¶
Derivative of eta wrt inelastic strain (zero for this implementation)
Public Static Functions
-
static std::string type()¶
String type for the object system.
-
static std::unique_ptr<NEMLObject> initialize(ParameterSet ¶ms)¶
Initialize with a parameter set.
-
static ParameterSet parameters()¶
Default parameters.
-
ConstantFluidity(ParameterSet ¶ms)¶
Saturating fluidity¶
This option evolves the fluidity from some initial value through some increment as an exponential function of inelastic strain. The fluidity eventually saturates to a final, fixed value.

Parameters¶
Parameter |
Object type |
Description |
Default |
|---|---|---|---|
|
Initial fluidity |
No |
|
|
Saturated fluidity is K0 + A |
No |
|
|
Saturation speed exponent |
No |
Class description¶
-
class SaturatingFluidity : public neml::FluidityModel¶
Voce-like saturating fluidity.
Public Functions
-
SaturatingFluidity(ParameterSet ¶ms)¶
Parameters: K0, initial viscosity, A, saturated increase in viscosity, b, sets saturation rate
-
virtual double eta(double a, double T) const¶
Value of eta.
-
virtual double deta(double a, double T) const¶
Derivative of eta wrt inelastic strain.
Public Static Functions
-
static std::string type()¶
String type for the object system.
-
static std::unique_ptr<NEMLObject> initialize(ParameterSet ¶ms)¶
Initialize with a parameter set.
-
static ParameterSet parameters()¶
Default parameters.
-
SaturatingFluidity(ParameterSet ¶ms)¶