Crystal plasticity damage models¶
NEML views crystal plasticity continuum damage as an alternative kinematic
model to the one described in the main documentation.
The model takes a projection operator
, defined below,
which is a function of some set of internal variables describing damage
evolution,
, the current stress state
, and
uses the projection to project damage onto the elasticity tensor used
in the crystal plasticity stress update formulation.
In the most general case, consider the base stress updated provided by a model as a function of time
. The damage projection will
alter this stress history as:

so that the new, modified stress rate accounting for damage becomes

in the case where the damage evolves slowly compared to the evolution of the stress we can approximate this as

which is the form currently implemented in NEML.
Starting then from the basic stress update kinematics defined in the main documentation, the modified stress rate equation becomes

NEML implements this modified stress update as a new KinematicModel. A CrystalDamageModel provides the definition of the projection operator, including the history evolution rate equations for any internal variables used in defining the projection.
DamagedStandardKinematicModel¶
Parameters¶
Parameter |
Object type |
Description |
Default |
|---|---|---|---|
|
Elasticity tensor |
No |
|
|
Definition of the plastic deformation rate |
No |
|
|
Definition of the damage projection and associated internal variables |
No |
Class description¶
-
class DamagedStandardKinematicModel : public neml::StandardKinematicModel¶
My standard kinematic assumptions with damage.
Public Functions
-
DamagedStandardKinematicModel(ParameterSet ¶ms)¶
Initialize with elastic and inelastic models.
-
virtual void populate_hist(History &history) const¶
Populate a history object with the correct variables.
-
virtual void init_hist(History &history) const¶
Initialize the history object with the starting values.
-
virtual Symmetric stress_rate(const Symmetric &stress, const Symmetric &d, const Skew &w, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const¶
Stress rate.
-
virtual SymSymR4 d_stress_rate_d_stress(const Symmetric &stress, const Symmetric &d, const Skew &w, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const¶
Derivative of stress rate with respect to stress.
-
virtual SymSymR4 d_stress_rate_d_d(const Symmetric &stress, const Symmetric &d, const Skew &w, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const¶
Derivative of the stress rate with respect to the deformation rate.
-
virtual History d_stress_rate_d_history(const Symmetric &stress, const Symmetric &d, const Skew &w, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const¶
Derivative of the stress rate with respect to the history.
-
virtual History history_rate(const Symmetric &stress, const Symmetric &d, const Skew &w, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const¶
History rate.
-
virtual History d_history_rate_d_stress(const Symmetric &stress, const Symmetric &d, const Skew &w, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const¶
Derivative of the history rate with respect to the stress.
-
virtual History d_history_rate_d_history(const Symmetric &stress, const Symmetric &d, const Skew &w, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const¶
Derivative of the history rate with respect to the history.
-
virtual SymSkewR4 d_stress_rate_d_w_decouple(const Symmetric &stress, const Symmetric &d, const Skew &w, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed)¶
Derivative of the stress rate with respect to the vorticity keeping fixed variables fixed
-
virtual Skew spin(const Symmetric &stress, const Symmetric &d, const Skew &w, const Orientation &Q, const History &history, Lattice &lattice, double T, const History &fixed) const¶
The spin rate.
Public Static Functions
-
static std::string type()¶
String type for the object system.
-
static std::unique_ptr<NEMLObject> initialize(ParameterSet ¶ms)¶
Initialize from parameter set.
-
static ParameterSet parameters()¶
Default parameters.
-
DamagedStandardKinematicModel(ParameterSet ¶ms)¶