Viscoplastic general flow rule

Overview

This class specializes the General flow rule interface to match the standard definition of a generic viscoplastic flow rule. It defines the stress and hardening rates as

\dot{\bm{\sigma}} = \mathbf{\mathfrak{C}}:\left(\dot{\bm{\varepsilon}}-\mathbf{g}_{\gamma}\dot{\gamma}-\mathbf{g}_{T}\dot{T}-\mathbf{g}_{t}\right)

\dot{\bm{\alpha}} = \mathbf{h}_{\gamma}\dot{\gamma}+\mathbf{h}_{T}\dot{T}+\mathbf{h}_{t}.

A Elasticity models interface defines the stiffness tensor and a viscoplastic flow rule interface defines the scalar flow rate \dot{\gamma}, the flow functions \mathbf{g}_\gamma, \mathbf{g}_T, and \mathbf{g}_t and the hardening functions \mathbf{h}_\gamma, \mathbf{h}_T, and \mathbf{h}_t.

Parameters

Parameter

Object type

Description

Default

elastic

neml::LinearElasticModel

Elasticity model

No

flow

neml::ViscoPlasticFlowRule

Viscoplastic flow rule interface

No

Class description

class TVPFlowRule : public neml::GeneralFlowRule

Thermo-visco-plasticity.

Public Functions

TVPFlowRule(ParameterSet &params)

Parameters: elastic model and a viscoplastic flow rule.

virtual void populate_hist(History &h) const

Setup the internal state.

virtual void init_hist(History &h) const

Initialize history.

virtual void s(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const sdot)

Stress rate.

virtual void ds_ds(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_sdot)

Partial of stress rate wrt stress.

virtual void ds_da(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_sdot)

Partial of stress rate wrt history.

virtual void ds_de(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_sdot)

Partial of stress rate wrt strain rate.

virtual void a(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const adot)

History rate.

virtual void da_ds(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_adot)

Partial of history rate wrt stress.

virtual void da_da(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_adot)

Partial of history rate wrt history.

virtual void da_de(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double *const d_adot)

Partial of history rate wrt strain rate.

virtual void work_rate(const double *const s, const double *const alpha, const double *const edot, double T, double Tdot, double &p_rate)

The implementation needs to define inelastic dissipation.

virtual void elastic_strains(const double *const s_np1, double T_np1, double *const e_np1) const

The implementation needs to define elastic strain.

virtual void set_elastic_model(std::shared_ptr<LinearElasticModel> emodel)

Set a new elastic model.

virtual void override_guess(double *const x)

Override the initial guess.

Public Static Functions

static std::string type()

String type for the object system.

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

Return default parameters.

static ParameterSet parameters()

Initialize from parameter set.