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)¶