Nonassociative hardening rules

Overview

This object provides the interface for a generic nonassociative hardening rule. The interface is:

\mathbf{q}, \mathbf{h}_{\gamma}, \mathbf{h}_{t}, \mathbf{h}_{T}
\leftarrow
\mathcal{H}\left(\bm{\alpha}, T \right).

Here \mathbf{q} is a map between the history variables \bm{\alpha} and the “stress-like” hardening variables needed for the yield stress. Usually these will be an isotropic hardening variable Q and a kinematic backstress \mathbf{X}. The functions \mathbf{h}_\gamma, \mathbf{h}_t, and \mathbf{h}_T are the parts of the history evolution rate that are proportional to the scalar inelastic strain rate, the temperature rate, and time, respectively. For more information see Chaboche viscoplastic flow rule and Rate independent nonassociative flow.

Implementations

Class description

class NonAssociativeHardening : public neml::HistoryNEMLObject

ABC of a non-associative hardening rule.

Subclassed by neml::Chaboche, neml::ChabocheVoceRecovery

Public Functions

NonAssociativeHardening(ParameterSet &params)
virtual size_t ninter() const = 0

How many stress-like variables.

virtual void q(const double *const alpha, double T, double *const qv) const = 0

Map from strain to stress.

virtual void dq_da(const double *const alpha, double T, double *const qv) const = 0

Derivative of the map.

virtual void h(const double *const s, const double *const alpha, double T, double *const hv) const = 0

Hardening proportional to the equivalent inelastic strain.

virtual void dh_ds(const double *const s, const double *const alpha, double T, double *const dhv) const = 0

Derivative of h wrt stress.

virtual void dh_da(const double *const s, const double *const alpha, double T, double *const dhv) const = 0

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.