TransformationFunction
These models are part of the PlanarDamageModel system. They map the stress normal to a slip plane
and an
internal damage variable, defined with a SlipPlaneDamage object, to a
suitable damage metric ranging from 0 (no damage) to 1 (no stiffness in
the direction).
Superclass description
-
class TransformationFunction : public neml::NEMLObject
Transformation functions: map the damage variable + ancillary info into the range [0,1]
Subclassed by neml::SigmoidTransformation, neml::SwitchTransformation
Public Functions
-
TransformationFunction(ParameterSet ¶ms)
-
virtual double map(double damage, double normal_stress) = 0
Map from damage and the normal stress to [0,1].
-
virtual double d_map_d_damage(double damage, double normal_stress) = 0
Derivative of the map with respect to the damage.
-
virtual double d_map_d_normal(double damage, double normal_stress) = 0
Derivative of the map with respect to the normal stress.
-
TransformationFunction(ParameterSet ¶ms)
Individual models
SigmoidTransformation
Overview
This transformation function is independent of the normal stress. It
is a sigmoid function that maps the damage variable to the
interval
:

The parameter
is some critical value of the damage variable
on plane
and the exponent
is a
smoothness parameter where
represents a linear transition
from 0 to 1 and higher values of
represent a more abrupt onset of
the effects of damage.
Parameters
Parameter |
Object type |
Description |
Default |
|---|---|---|---|
|
|
Critical damage value |
No |
|
:c:type`double` |
Abruptness of damage onset |
No |
Class description
-
class SigmoidTransformation : public neml::TransformationFunction
Sigmoid function. x=0 -> y=0, x=c -> y=1, beta controls smoothing.
Public Functions
-
SigmoidTransformation(ParameterSet ¶ms)
-
virtual double map(double damage, double normal_stress)
Map from damage and the normal stress to [0,1].
-
virtual double d_map_d_damage(double damage, double normal_stress)
Derivative of the map with respect to damage.
-
virtual double d_map_d_normal(double damage, double normal_stress)
Derivative of the map with respect to the normal stress.
Public Static Functions
-
static std::string type()
String type for the object system.
-
static std::unique_ptr<NEMLObject> initialize(ParameterSet ¶ms)
Initialize from a parameter set.
-
static ParameterSet parameters()
Default parameters.
-
SigmoidTransformation(ParameterSet ¶ms)
SwitchTransformation
Overview
This is a “meta-transformation” that takes another TransformationFunction as a parameter and modifies it to return a different result. Specifically, this function returns 0 (no damage) if the loading on the plane is compressive and returns the base TransformationFunction value if the stress on the plane is tensile. Mathematically:

where
is the base TransformationFunction.
Parameters
Parameter |
Object type |
Description |
Default |
|---|---|---|---|
|
Base function |
No |
Class Description
-
class SwitchTransformation : public neml::TransformationFunction
Normal stress switch: don’t damage compression.
Public Functions
-
SwitchTransformation(ParameterSet ¶ms)
-
virtual double map(double damage, double normal_stress)
Map from damage and the normal stress to [0,1]
-
virtual double d_map_d_damage(double damage, double normal_stress)
Derivative of the map with respect to damage.
-
virtual double d_map_d_normal(double damage, double normal_stress)
Derivative of the map with respect to the normal stress.
Public Static Functions
-
static std::string type()
String type for the object system.
-
static std::unique_ptr<NEMLObject> initialize(ParameterSet ¶ms)
Initialize from a parameter set.
-
static ParameterSet parameters()
Default parameters.
-
SwitchTransformation(ParameterSet ¶ms)