InelasticModel

Overview

Inelastic models provide the plastic deformation rate and internal variable history rate equations to the higher level objects, along with associated partial derivatives. The mathematical interface is:

\mathbf{D}^p, \frac{\partial \mathbf{D}^p}{\partial \bm{\sigma}}, \frac{\partial \mathbf{D}^p}{\partial \mathbf{h}} \leftarrow \mathcal{D}\left(\bm{\sigma}, \mathbf{h}, \bm{\alpha}, T \right)

  \mathbf{W}^p, \frac{\partial \mathbf{W}^p}{\partial \bm{\sigma}}, \frac{\partial \mathbf{W}^p}{\partial \mathbf{h}} \leftarrow \mathcal{W}\left(\bm{\sigma}, \mathbf{h}, \bm{\alpha}, T \right)

\dot{\mathbf{h}}, \frac{\partial \dot{\mathbf{h}}}{\partial \bm{\sigma}}, \frac{\partial \dot{\mathbf{h}}}{\partial \mathbf{h}} \leftarrow \mathcal{H}\left(\bm{\sigma}, \mathbf{h}, \bm{\alpha}, T \right)

where all these quantities are defined in the crystal plasticity overview. Note the implementations also have the crystallographic information available through the model’s Lattice object.

Implementations

Class description

class InelasticModel : public neml::HistoryNEMLObject

A inelastic model supplying D_p and W_p.

Subclassed by neml::AsaroInelasticity, neml::CombinedInelasticity, neml::NoInelasticity, neml::PowerLawInelasticity

Public Functions

InelasticModel(ParameterSet &params)
virtual double strength(const History &history, Lattice &L, double T, const History &fixed) const = 0

Helper for external models that want an average strength.

virtual Symmetric d_p(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const = 0

Symmetric part of the plastic deformation.

virtual SymSymR4 d_d_p_d_stress(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const = 0

Derivative of the symmetric part with respect to stress.

virtual History d_d_p_d_history(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const = 0

Derivative of the symmetric part with respect to stress.

virtual History history_rate(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const = 0

History rate.

virtual History d_history_rate_d_stress(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const = 0

Derivative of the history rate with respect to stress.

virtual History d_history_rate_d_history(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const = 0

Derivative of the history rate with respect to the history.

virtual Skew w_p(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const = 0

Skew part of the plastic deformation rate.

virtual SkewSymR4 d_w_p_d_stress(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const = 0

Derivative of the skew part with respect to stress.

virtual History d_w_p_d_history(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const = 0

Derivative of the skew part with respect to history.

virtual bool use_nye() const

Whether this model uses the nye tensor.