ChabocheVoceRecovery: a special variant of the Chaboche model¶
Overview¶
This model describes a variant of the Chaboche kinematic hardening with Voce isotropic hardening. The only differences compared to using the standard Chaboche model with Voce isotropic hardening are:
The Voce model is reparameterized as described below
The Voce model includes static recovery
There is a subtle difference in the definition of the static recovery on the Chaboche backstress terms.
Voce reparameterization and recovery¶
The Voce model for this hardening option is reparameterized so that the strength is given as

Warning
All of the NEML yield surfaces assume the opposite of the standard sign convention for isotropic and kinematic hardening. The hardening model is expected to return a negative value of the isotropic hardening stress and a negative value of the backstress.

where
is the scalar plastic strain rate and the remaining undefined terms are parameters.
The first term, proportional to the scalar plastic strain rate, is identical to the standard Voce
model in NEML, just reparameterized. The second term provides power law static recovery, which can reduce the value
of the isotropic strength down to the threshold strength
.
Slight change to Chaboche static recovery¶
The standard Chaboche kinematic hardening in NEML uses a static recovery term of

This model instead uses

The only change is the location of the
term. This change makes the current model
directly compatible with a 1D formulation.
Parameters¶
Parameter |
Object type |
Description |
Default |
|---|---|---|---|
|
Threshold stress |
No |
|
|
Initial isotropic hardening slope |
No |
|
|
Maximum (saturated) isotropic hardening strength |
No |
|
|
Minimum (threshold) isotropic strength for static recovery |
No |
|
|
Prefactor for isotropic recovery |
No |
|
|
Exponent for isotropic recovery |
No |
|
|
|
Values of constant C for each backstress |
No |
|
|
The gamma functions for each backstress |
No |
|
|
The value of A for each backstress |
No |
|
|
The value of a for each backstress |
No |
|
|
Include the nonisothermal term? |
|
The number of backstresses is set implicitly from the lengths of these vectors. The model will return an error if they have different lengths.
Class description¶
-
class ChabocheVoceRecovery : public neml::NonAssociativeHardening¶
Chaboche model with hard-coded, recoverable Voce isotropic hardening.
Public Functions
-
ChabocheVoceRecovery(ParameterSet ¶ms)¶
Parameters: isotropic hardening model, vector of backstress constants C, vector of gamma functions, vector of static recovery constants A, vector static recovery constants a, flag trigger the nonisothermal terms
-
virtual size_t ninter() const¶
1 (isotropic) + 6 (backstress) = 7
-
virtual void q(const double *const alpha, double T, double *const qv) const¶
Map the isotropic variable, map the backstresses.
-
virtual void dq_da(const double *const alpha, double T, double *const qv) const¶
Derivative of map.
-
virtual void h(const double *const s, const double *const alpha, double T, double *const hv) const¶
Hardening proportional to inelastic strain rate Assume associated isotropic hardening, each backstress is -2/3 * C * X/norm(X) - sqrt(2/3) gamma(ep) * X
-
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 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 proportional to the 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.
-
int n() const¶
Getter for the number of backstresses.
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()¶
Default parameters.
-
ChabocheVoceRecovery(ParameterSet ¶ms)¶