SlipStrengthSlipRule

Overview

These objects provide a relation between the stress, history, and temperature and the slip rate on each individual slip system where the slip rate is related to the resolved shear stress on the system

\tau_{g,i} = \bm{\sigma} : \left(\mathbf{d}_{g,i}\otimes\mathbf{n}_{g,i}\right)

where \mathbf{d}_{g,i} is the slip direction for group g, system i in the current coordinates and \mathbf{n}_{g,i} is similarly the slip system normal. The interface used is:

\dot{\gamma}_{g,i}, \frac{\partial \dot{\gamma}_{g,i}}{\partial \tau_{g,i}}, \frac{\partial \dot{\gamma}_{g,i}}{\partial \bar{\tau}_{g,i}} \leftarrow \mathcal{G}\left( \tau_{g,i}, \bar{\tau}_{g,i}, \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 g indicates the slip group, i indicates the system within the group, and \bar{\tau}_{g,i} is the slip system strength, defined by a SlipHardening model:

The definition of the history evolution is left to the SlipHardening model.

Implementations

Parameters

Parameter

Object type

Description

Default

strength

neml::SlipHardening

Slip hardening definition

No

Class description

class SlipStrengthSlipRule : public neml::SlipMultiStrengthSlipRule

Class where all slip rules that give the system response proportional to some strength, which is in turn a function of the history

Subclassed by neml::ArrheniusSlipRule, neml::PowerLawSlipRule

Public Functions

SlipStrengthSlipRule(ParameterSet &params)

Initialize with the strength model.

virtual double sslip(size_t g, size_t i, double tau, std::vector<double> strengths, double T) const

The slip rate on group g, system i given the resolved shear, the strength, and temperature

virtual double d_sslip_dtau(size_t g, size_t i, double tau, std::vector<double> strengths, double T) const

Derivative of slip rate with respect to the resolved shear.

virtual std::vector<double> d_sslip_dstrength(size_t g, size_t i, double tau, std::vector<double> strengths, double T) const

Derivative of the slip rate with respect to the strengths.

virtual double scalar_sslip(size_t g, size_t i, double tau, double strength, double T) const = 0

The scalar equivalent of the slip rates.

virtual double scalar_d_sslip_dtau(size_t g, size_t i, double tau, double strength, double T) const = 0

Derivative of slip rate with respect to the resolved shear.

virtual double scalar_d_sslip_dstrength(size_t g, size_t i, double tau, double strength, double T) const = 0

Derivative of the slip rate with respect to the strength.