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)