CrystalDamageModel

Overview

This forms the base class for the implementation of a particular crystal plasticity continuum damage model. The class provides the definition of the projection operator \mathbf{P} as well as the associated internal damage variables d_i. The class also must define all the partial derivatives required for an implicit integration of the projection in the context of the crystal plasticity kinematics and the set of internal variables.

Implementations

Class description

class CrystalDamageModel : public neml::HistoryNEMLObject

Abstract base class for slip plane damage models.

Subclassed by neml::NilDamageModel, neml::PlanarDamageModel

Public Functions

CrystalDamageModel(ParameterSet &params, std::vector<std::string> vars)
virtual size_t nvars() const

Report the number of internal variables.

virtual std::vector<std::string> varnames() const

Report the names of the internal variables.

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

Set the internal variables to new names.

virtual void populate_hist(History &history) const

Setup whatever history variables the model requires.

virtual void init_hist(History &history) const = 0

Initialize history.

virtual SymSymR4 projection(const Symmetric &stress, const History &damage, const Orientation &Q, Lattice &lattice, const SlipRule &slip, double T) = 0

Returns the current projection operator.

virtual SymSymSymR6 d_projection_d_stress(const Symmetric &stress, const History &damage, const Orientation &Q, Lattice &lattice, const SlipRule &slip, double T) = 0

Return the derivative of the projection operator wrt to the stress.

virtual History d_projection_d_history(const Symmetric &stress, const History &damage, const Orientation &Q, Lattice &lattice, const SlipRule &slip, double T) = 0

Return the derivative of the projection operator wrt to the damage vars.

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

Damage variable rate.

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

Derivative of each damage with respect to stress.

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

Derivative of damage with respect to history.