IsoKinJ2I1

Overview

This object implements the yield function

f\left(\bm{\sigma}, \mathbf{q}, T\right) =
   J_2\left(\bm{\sigma} + \mathbf{X}\right) + \sqrt{\frac{2}{3}}Q +
   \operatorname{sign}\left(I_1\left(\bm{\sigma}\right)\right)
   h \left(I_1\left(\bm{\sigma}\right)\right)^l

J_2\left(\mathbf{Y}\right) = \sqrt{\frac{3}{2}
   \operatorname{dev}\left(\mathbf{Y}\right):
   \operatorname{dev}\left(\mathbf{Y}\right)}

I_1\left(\mathbf{Y}\right) = \operatorname{tr}\left(\mathbf{Y}\right).

It assumes a “stress-like” history vector of

\mathbf{q}=\left[\begin{array}{cc}Q & \mathbf{X}\end{array}\right]

where Q is the isotropic hardening stress and \mathbf{X} is the backstress.

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.

Parameters

Parameter

Object type

Description

Default

h

neml::Interpolate

Power law prefactor

No

l

neml::Interpolate

Power law exponent

No

Class description

class IsoKinJ2I1 : public neml::YieldSurface

Combined isotropic/kinematic hardening with some mean stress contribution.

Public Functions

IsoKinJ2I1(ParameterSet &params)

Parameters: h prefactor, l exponent.

virtual size_t nhist() const

Expects 7 history variables [isotropic 6-Mandel-vector-backstress].

virtual void f(const double *const s, const double *const q, double T, double &fv) const

J2(stress + backstress) + isotropic + sign(mean_stress) * h * |mean_stress|^l

virtual void df_ds(const double *const s, const double *const q, double T, double *const df) const

Gradient wrt stress.

virtual void df_dq(const double *const s, const double *const q, double T, double *const df) const

Gradient wrt q.

virtual void df_dsds(const double *const s, const double *const q, double T, double *const ddf) const

Hessian dsds.

virtual void df_dqdq(const double *const s, const double *const q, double T, double *const ddf) const

Hessian dqdq.

virtual void df_dsdq(const double *const s, const double *const q, double T, double *const ddf) const

Hessian dsdq.

virtual void df_dqds(const double *const s, const double *const q, double T, double *const ddf) const

Hessian dqds.

Public Static Functions

static std::string type()

String type for object system.

static std::unique_ptr<NEMLObject> initialize(ParameterSet &params)

Initialize from parameters.

static ParameterSet parameters()

Default parameters.