SlipSingleStrengthHardening

Overview

This object further degenerates the general SlipSingleHardening model to where the (single) slip system strength is equal to some static strength, a contribution from a single internal variable, defined by a scalar rate equation, and a contribution from the Nye tensor. If this scalar history variable is \tilde{\tau} the history map is

\bar{\tau} = \tilde{\tau} + \tau_0 + \tau_{nye}

where \tau_0 is some static strength that does not evolve with time and \tau_{nye} is a function of the Nye tensor \bm{\alpha}. The Nye tensor contribution defaults to zero, which gives a classical slip hardening model.

The remaining interface must provide the evolution equation, and associated partial derivatives, of the scalar history variable:

\dot{\tilde{\tau}}, \frac{\partial \dot{\tilde{\tau}}}{\partial \bm{\sigma}}, \frac{\partial \dot{\tilde{\tau}}}{\partial \tilde{\tau}}, \tau_0 \leftarrow \mathcal{H}\left(\bm{\sigma}, \tilde{\tau}, \bm{\alpha}, T \right).

Implementations

Class description

class SlipSingleStrengthHardening : public neml::SlipSingleHardening

Slip strength rule where all systems evolve on a single scalar strength.

Subclassed by neml::PlasticSlipHardening

Public Functions

SlipSingleStrengthHardening(ParameterSet &params)
virtual std::vector<std::string> varnames() const

Report varnames.

virtual void set_varnames(std::vector<std::string> vars)

Set new varnames.

virtual void populate_hist(History &history) const

Request whatever history you will need.

virtual void init_hist(History &history) const

Setup history.

virtual History hist(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &L, double T, const SlipRule &R, const History &fixed) const

The rate of the history.

virtual History d_hist_d_s(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &L, double T, const SlipRule &R, const History &fixed) const

Derivative of the history wrt stress.

virtual History d_hist_d_h(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &L, double T, const SlipRule &R, const History &fixed) const

Derivative of the history wrt the history.

virtual History d_hist_d_h_ext(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &L, double T, const SlipRule &R, const History &fixed, std::vector<std::string> ext) const

Derivative of this history wrt the history, external variables.

virtual double hist_map(const History &history, double T, const History &fixed) const

The scalar map.

virtual History d_hist_map(const History &history, double T, const History &fixed) const

The derivative of the scalar map.

void set_variable(std::string name)

Set the variable’s name.

virtual double static_strength(double T) const = 0

Static (not evolving) strength.

double nye_contribution(const History &fixed, double T) const

Nye contribution (defaults to zero)

virtual double nye_part(const RankTwo &nye, double T) const

Actual implementation of any Nye contribution (defaults to zero)

virtual double init_strength() const = 0

Setup the scalar.

virtual double hist_rate(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &L, double T, const SlipRule &R, const History &fixed) const = 0

Scalar evolution law.

virtual Symmetric d_hist_rate_d_stress(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &L, double T, const SlipRule &R, const History &fixed) const = 0

Derivative of scalar law wrt stress.

virtual History d_hist_rate_d_hist(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &L, double T, const SlipRule &R, const History &fixed) const = 0

Derivative of scalar law wrt the scalar.

virtual History d_hist_rate_d_hist_ext(const Symmetric &stress, const Orientation &Q, const History &history, Lattice &L, double T, const SlipRule &R, const History &fixed, std::vector<std::string> ext) const = 0

Derivative of the scalar law wrt all others.