AsaroInelasticity

Overview

This class implements the standard crystal plasticity plastic deformation rate presented in [A1983]. The plastic deformation rate is the sum of simple shear deformations on each individual slip direction and plane:

\mathbf{L}^p = \sum_{g=1}^{n_{group}}\sum_{i=1}^{n_{slip}}\dot{\gamma}_{g,i}\left(\mathbf{d}_{g,i}\otimes\mathbf{n}_{g,i}\right)

where \mathbf{d}_{g,i} are the slip directions and \mathbf{n}_{g,i} are the slip normals in the current frame \Omega. \mathbf{D}^p and \mathbf{W}^p are the symmetric and skew parts of this definition.

The slip rate, \dot{\gamma}_{g,i}, is a function of stress, temperature, and the internal variables. A separate class implements different models for the slip rate:

The implementation also defers the definition of the internal variables to the SlipRule object.

Parameters

Parameter

Object type

Description

Default

rule

neml::SlipRule

Slip rate and history definition

No

Class description

class AsaroInelasticity : public neml::InelasticModel

The classic crystal plasticity inelastic model, as described in the manual.

Public Functions

AsaroInelasticity(ParameterSet &params)

Provide a SlipRule defining the slip rate/strength relations.

virtual ~AsaroInelasticity()

Destructor.

virtual void populate_hist(History &history) const

Populate the history, deferred to the SlipRule.

virtual void init_hist(History &history) const

Initialize the history with the starting values, deferred to the SlipRule.

virtual double strength(const History &history, Lattice &L, double T, const History &fixed) const

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

Symmetric part of the plastic deformation rate.

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

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

Derivative of the symmetric part with respect to history.

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

History rate, deferred to the SlipRule.

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

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

Derivative of the history rate with respect to history.

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

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

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

Derivative of the skew part with respect to history.

virtual bool use_nye() const

Whether this model uses the Nye tensor.

inline const SlipRule &slip_rule() const

Access to the slip rule for other models to get detailed slip information.

Public Static Functions

static std::string type()

String type for the object system.

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

Initialize from parameter set.

static ParameterSet parameters()

Default parameters.