Creep models

Overview

Creep models in NEML relate stress and strain to a creep strain rate. This means they do not maintain a set of internal history variables. Currently, they are only used in conduction with a standard NEML material model through the creep+plasticity metamodel.

NEML creep models fulfill the interface

\dot{\bm{\varepsilon}}^{cr}
\leftarrow
\mathcal{C}\left(\bm{\sigma}, \bm{\varepsilon}, t, T \right).

So the creep strain rate can depend on the stress, the total strain, time, and temperature.

Implementations

Class description

class CreepModel : public neml::NEMLObject, public neml::Solvable

Interface to creep models.

Subclassed by neml::J2CreepModel

Public Functions

CreepModel(ParameterSet &params)

Parameters are a solver tolerance, the maximum allowable iterations, and a verbosity flag

void update(const double *const s_np1, double *const e_np1, const double *const e_n, double T_np1, double T_n, double t_np1, double t_n, double *const A_np1)

Use the creep rate function to update the creep strain.

virtual void f(const double *const s, const double *const e, double t, double T, double *const f) const = 0

The creep rate as a function of stress, strain, time, and temperature.

virtual void df_ds(const double *const s, const double *const e, double t, double T, double *const df) const = 0

The derivative of the creep rate wrt stress.

virtual void df_de(const double *const s, const double *const e, double t, double T, double *const df) const = 0

The derivative of the creep rate wrt strain.

virtual void df_dt(const double *const s, const double *const e, double t, double T, double *const df) const

The derivative of the creep rate wrt time, defaults to zero.

virtual void df_dT(const double *const s, const double *const e, double t, double T, double *const df) const

The derivative of the creep rate wrt temperature, defaults to zero.

void make_trial_state(const double *const s_np1, const double *const e_n, double T_np1, double T_n, double t_np1, double t_n, CreepModelTrialState &ts) const

Setup a trial state for the solver.

virtual size_t nparams() const

Number of solver parameters.

virtual void init_x(double *const x, TrialState *ts)

Setup the initial guess for the solver.

virtual void RJ(const double *const x, TrialState *ts, double *const R, double *const J)

The nonlinear residual and jacobian to solve.