Rate independent flow rule

Overview

A rate independent flow rule provides the interface

f, \frac{\partial f}{\partial \bm{\sigma}},
\mathbf{g}, \frac{\partial \mathbf{g}}{\partial \bm{\sigma}},
   \frac{\partial \mathbf{g}}{\partial \bm{\alpha}},
\mathbf{h}, \frac{\partial \mathbf{h}}{\partial \bm{\sigma}},
   \frac{\partial \mathbf{h}}{\partial \bm{\alpha}}
\leftarrow
\mathcal{F}\left(\bm{\sigma}, \bm{\alpha}, T \right).

f is a yield surface, \mathbf{g} is a flow function defining the direction of plastic flow, and \mathbf{h} is a history evolution function. This interface is used to define a Rate independent plasticity model.

The base interface is entirely abstract. It maintains a set of history variables set by the specific implementation.

Implementations

Class description

class RateIndependentFlowRule : public neml::HistoryNEMLObject

ABC describing rate independent flow.

Subclassed by neml::RateIndependentAssociativeFlow, neml::RateIndependentNonAssociativeHardening

Public Functions

RateIndependentFlowRule(ParameterSet &params)
virtual void f(const double *const s, const double *const alpha, double T, double &fv) const = 0

Yield surface.

virtual void df_ds(const double *const s, const double *const alpha, double T, double *const dfv) const = 0

Partial derivative of the surface wrt stress.

virtual void df_da(const double *const s, const double *const alpha, double T, double *const dfv) const = 0

Partial derivative of the surface wrt history.

virtual void g(const double *const s, const double *const alpha, double T, double *const gv) const = 0

Flow function.

virtual void dg_ds(const double *const s, const double *const alpha, double T, double *const dgv) const = 0

Partial derivative of the flow function wrt stress.

virtual void dg_da(const double *const s, const double *const alpha, double T, double *const dgv) const = 0

Partial derivative of the flow function wrt history.

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

Hardening rule.

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

Partial derivative of the hardening rule wrt. stress.

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

Partial derivative of the hardening rule wrt. history.