NEML2 2.0.0
Loading...
Searching...
No Matches
[Models]

Table of Contents

Note
Clicking on the option with a triangle bullet ▸ next to it will expand/collapse its detailed information.
Type name written in PascalCase typically refer to a NEML2 object type, oftentimes a primitive tensor type.
The 🔗 symbol denotes that the option can cross-reference another object.
You can always use Ctrl+F or Cmd+F to search the entire page.

The following symbols are used throughout the documentation to denote different components of function definition.

  • 🇮: input variable
  • 🇴: output variable
  • 🇵: parameter
  • 🇧: buffer

Available objects and their input file syntax

Refer to System Documentation for detailed explanation about this system.

ArrheniusParameter

Define the nonlinear parameter as a function of temperature according to the Arrhenius law \( p = p_0 \exp \left( -\frac{Q}{RT} \right) \), where \( p_0 \) is the reference value, \( Q \) is the activation energy, \( R \) is the ideal gas constant, and \( T \) is the temperature.

activation_energy 🇵 Activation energy

  • Type: Scalar 🔗
ideal_gas_constant The ideal gas constant

  • Type: number
reference_value 🇵 Reference value

  • Type: Scalar 🔗
temperature 🇮 Temperature

  • Type: variable name
  • Default: forces/T

Detailed documentation link

AssociativeIsotropicPlasticHardening

Map the flow rate (i.e., the consistency parameter in the KKT conditions) to the rate of internal variables. This object calculates the rate of equivalent plastic strain following associative flow rule, i.e. \( \dot{\varepsilon}_p = - \dot{\gamma} \frac{\partial f}{\partial k} \), where \( \dot{\varepsilon}_p \) is the equivalent plastic strain, \( \dot{\gamma} \) is the flow rate, \( f \) is the yield function, and \( k \) is the isotropic hardening.

equivalent_plastic_strain_rate 🇴 Rate of equivalent plastic strain

  • Type: variable name
  • Default: state/internal/ep_rate
flow_rate 🇮 Flow rate

  • Type: variable name
  • Default: state/internal/gamma_rate
isotropic_hardening_direction 🇮 Direction of associative isotropic hardening which can be calculated using Normality.

  • Type: variable name
  • Default: state/internal/Nk

Detailed documentation link

AssociativeJ2FlowDirection

The plastic flow direction assuming an associative J2 flow.

flow_direction Flow direction

  • Type: variable name
  • Default: state/NM
mandel_stress Mandel stress

  • Type: variable name
  • Default: state/M

Detailed documentation link

AssociativeKinematicPlasticHardening

Map the flow rate (i.e., the consistency parameter in the KKT conditions) to the rate of internal variables. This object calculates the rate of kinematic plastic strain following associative flow rule, i.e. \( \dot{\boldsymbol{K}}_p = - \dot{\gamma} \frac{\partial f}{\partial \boldsymbol{X}} \), where \( \dot{\boldsymbol{K}}_p \) is the kinematic plastic strain, \( \dot{\gamma} \) is the flow rate, \( f \) is the yield function, and \( \boldsymbol{X} \) is the kinematic hardening.

flow_rate 🇮 Flow rate

  • Type: variable name
  • Default: state/internal/gamma_rate
kinematic_hardening_direction 🇮 Direction of associative kinematic hardening which can be calculated using Normality.

  • Type: variable name
  • Default: state/internal/NX
kinematic_plastic_strain_rate 🇴 Rate of kinematic plastic strain

  • Type: variable name
  • Default: state/internal/Kp_rate

Detailed documentation link

AssociativePlasticFlow

Map the flow rate (i.e., the consistency parameter in the KKT conditions) to the rate of internal variables. This object calculates the rate of plastic strain following associative flow rule, i.e. \( \dot{\boldsymbol{\varepsilon}}_p = - \dot{\gamma} \frac{\partial f}{\partial \boldsymbol{M}} \), where \( \dot{\boldsymbol{\varepsilon}}_p \) is the plastic strain, \( \dot{\gamma} \) is the flow rate, \( f \) is the yield function, and \( \boldsymbol{M} \) is the Mandel stress.

flow_direction 🇮 Flow direction which can be calculated using Normality

  • Type: variable name
  • Default: state/internal/NM
flow_rate 🇮 Flow rate

  • Type: variable name
  • Default: state/internal/gamma_rate
plastic_strain_rate 🇴 Rate of plastic strain

  • Type: variable name
  • Default: state/internal/Ep_rate

Detailed documentation link

ChabochePlasticHardening

Map the flow rate (i.e., the consistency parameter in the KKT conditions) to the rate of internal variables. This object defines the non-associative Fredrick-Armstrong kinematic hardening. In the model, back stress is directly treated as an internal variable. Rate of back stress is given as \( \dot{\boldsymbol{X}} = \left( \frac{2}{3} C \frac{\partial f}{\partial \boldsymbol{M}} - g \boldsymbol{X} \right) \dot{\gamma} \). \( \frac{\partial f}{\partial \boldsymbol{M}} \) is the flow direction, \( \dot{\gamma} \) is the flow rate, and \( C \) and \( g \) are material parameters. The complete Chaboche model adds static recovery terms \( - A \lVert \boldsymbol{X} \rVert^{a - 1} \boldsymbol{X} \), so the model includes kinematic hardening, dynamic recovery, and static recovery. \( A \) and \( a \) are additional material parameters.

A 🇵 Static recovery prefactor

  • Type: Scalar 🔗
C 🇵 Kinematic hardening coefficient

  • Type: Scalar 🔗
a 🇵 Static recovery exponent

  • Type: Scalar 🔗
back_stress 🇮 Back stress

  • Type: variable name
  • Default: state/internal/X
back_stress_rate 🇴 Back stress rate, defaults to back_stress + _rate

  • Type: variable name
flow_direction 🇮 Flow direction

  • Type: variable name
  • Default: state/internal/NM
flow_rate 🇮 Flow rate

  • Type: variable name
  • Default: state/internal/gamma_rate
g 🇵 Dynamic recovery coefficient

  • Type: Scalar 🔗

Detailed documentation link

ComposedModel

Compose multiple models together to form a single model. The composed model can then be treated as a new model and composed with others. The system documentation provides in-depth explanation on how the models are composed together.

additional_outputs Extra output variables to be extracted from the composed model in addition to the ones identified through dependency resolution.

  • Type: list of variable name
automatic_nonlinear_parameter Whether to automatically add dependent nonlinear parameters

  • Type: bool
  • Default: true
automatic_scaling Whether to perform automatic scaling. See neml2::NonlinearSystem::init_scaling for implementation details.

  • Type: bool
  • Default: false
automatic_scaling_miter Maximum number of automatic scaling iterations. No error is produced upon reaching the maximum number of scaling iterations, and the scaling matrices obtained at the last iteration are used to scale the nonlinear system.

  • Type: unsigned number
  • Default: 20
automatic_scaling_tol Tolerance used in iteratively updating the scaling matrices.

  • Type: number
  • Default: 0.01
models Models being composed together

  • Type: list of string
priority Priorities of models in decreasing order. A model with higher priority will be evaluated first. This is useful for breaking cyclic dependency.

  • Type: list of string

Detailed documentation link

CopyMillerIndex

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyQuaternion

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyR2

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyR3

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyR4

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyR5

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyR8

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyRot

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopySFFR4

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopySFR3

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopySR2

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopySSFR5

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopySSR4

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopySSSSR8

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopySWR4

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyScalar

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyVec

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyWR2

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyWSR4

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CopyWWR4

Copy the value from one variable to another.

from 🇮 Variable to copy value from

  • Type: variable name
to 🇴 Variable to copy value to

  • Type: variable name

Detailed documentation link

CubicElasticityTensor

This class defines a cubic anisotropic elasticity tensor using three parameters. Various options are available for which three parameters to provide.

coefficient_as_parameter Whether to treat the coefficients as (trainable) parameters. Default is true. Setting this option to false will treat the coefficients as buffers.

  • Type: list of bool
  • Default: 1
coefficient_types Types for each parameter, options are: INVALID P_WAVE_MODULUS POISSONS_RATIO YOUNGS_MODULUS SHEAR_MODULUS BULK_MODULUS LAME_LAMBDA

  • Type: MultiEnumSelection
  • Default: INVALID
coefficients 🇵 Coefficients used to define the elasticity tensor

  • Type: list of Scalar 🔗

Detailed documentation link

ElasticStrainRate

Calculates the elastic strain rate as \(\dot{\varepsilon} = d - d^p - \varepsilon w + w \varepsilon \) where \( d \) is the deformation rate, \( d^p \) is the plastic deformation rate, \( w \) is the vorticity, and \( \varepsilon \) is the elastic strain.

deformation_rate 🇮 Name of the deformation rate

  • Type: variable name
  • Default: forces/deformation_rate
elastic_strain 🇮 Name of the elastic strain

  • Type: variable name
  • Default: state/elastic_strain
elastic_strain_rate 🇴 Name of the elastic strain rate

  • Type: variable name
  • Default: state/elastic_strain_rate
plastic_deformation_rate 🇮 Name of the plastic deformation rate

  • Type: variable name
  • Default: state/internal/plastic_deformation_rate
vorticity 🇮 Name of the vorticity

  • Type: variable name
  • Default: forces/vorticity

Detailed documentation link

FixOrientation

Checks the value of the modified Rodrigues parameter by checking if \( \left\lVert r \right\rVert > t \), with \( t \) a threshold value set to 1.0 by default and replacing all the orientations that exceed this limit with their shadow parameters values.

input_orientation 🇮 Name of input tensor of orientations to operate on.

  • Type: variable name
  • Default: state/orientation
output_orientation 🇴 Name of output tensor

  • Type: variable name
  • Default: state/orientation
threshold Threshold value for translating to the shadow parameters

  • Type: number
  • Default: 1

Detailed documentation link

FredrickArmstrongPlasticHardening

Map the flow rate (i.e., the consistency parameter in the KKT conditions) to the rate of internal variables. This object defines the non-associative Fredrick-Armstrong kinematic hardening. In the model, back stress is directly treated as an internal variable. Rate of back stress is given as \( \dot{\boldsymbol{X}} = \left( \frac{2}{3} C \frac{\partial f}{\partial \boldsymbol{M}} - g \boldsymbol{X} \right) \dot{\gamma} \). \( \frac{\partial f}{\partial \boldsymbol{M}} \) is the flow direction, \( \dot{\gamma} \) is the flow rate, and \( C \) and \( g \) are material parameters.

C 🇵 Kinematic hardening coefficient

  • Type: Scalar 🔗
back_stress 🇮 Back stress

  • Type: variable name
  • Default: state/internal/X
back_stress_rate 🇴 Back stress rate, defaults to back_stress + _rate

  • Type: variable name
flow_direction 🇮 Flow direction

  • Type: variable name
  • Default: state/internal/NM
flow_rate 🇮 Flow rate

  • Type: variable name
  • Default: state/internal/gamma_rate
g 🇵 Dynamic recovery coefficient

  • Type: Scalar 🔗

Detailed documentation link

GTNYieldFunction

Gurson-Tvergaard-Needleman yield function for poroplasticity. The yield function is defined as \( f = \left( \frac{\bar{\sigma}}{\sigma_y + k} \right)^2 + 2 q_1 \phi \cosh \left( \frac{1}{2} q_2 \frac{3\sigma_h-\sigma_s}{\sigma_y + k} \right) - \left( q_3 \phi^2 + 1 \right) \), where \( \bar{\sigma} \) is the von Mises stress, \( \sigma_y \) is the yield stress, \( k \) is isotropic hardening, \( \phi \) is the porosity, \( \sigma_h \) is the hydrostatic stress, and \( \sigma_s \) is the void growth back stress (sintering stress). \( q_1 \), \( q_2 \), and \( q_3 \) are parameters controlling the yield mechanisms.

flow_invariant 🇮 Effective stress driving plastic flow

  • Type: variable name
  • Default: state/internal/se
isotropic_hardening 🇮 Isotropic hardening

  • Type: variable name
poro_invariant 🇮 Effective stress driving porous flow

  • Type: variable name
  • Default: state/internal/sp
q1 🇵 Parameter controlling the balance/competition between plastic flow and void evolution.

  • Type: Scalar 🔗
q2 🇵 Void evolution rate

  • Type: Scalar 🔗
q3 🇵 Pore pressure

  • Type: Scalar 🔗
void_fraction 🇮 Void fraction (porosity)

  • Type: variable name
  • Default: state/internal/f
yield_function 🇴 Yield function

  • Type: variable name
  • Default: state/internal/fp
yield_stress 🇵 Yield stress

  • Type: Scalar 🔗

Detailed documentation link

GeneralElasticity

Relates elastic strain to stress with some non-isotropic tensor. This verion implements a general relation using the elasticity tensor, expressed as an SSR4 object

compliance Whether the model defines the compliance relationship, i.e., mapping from stress to elastic strain. When set to false (default), the model maps elastic strain to stress.

  • Type: bool
  • Default: false
elastic_stiffness_tensor 🇵 Elastic stiffness tensor

  • Type: SSR4 🔗
orientation 🇮 Active convention orientation from reference to current

  • Type: variable name
  • Default: state/orientation
rate_form Whether the model defines the stress-strain relationship in rate form. When set to true, the model maps elastic strain rate to stress rate.

  • Type: bool
  • Default: false
strain 🇮 Elastic strain

  • Type: variable name
  • Default: state/internal/Ee
stress 🇴 Stress

  • Type: variable name
  • Default: state/S

Detailed documentation link

GursonCavitation

Local mass balance used in conjunction with the GTNYieldFunction, \( \dot{\phi} = (1-\phi) \dot{\varepsilon}_p \).

plastic_strain_rate 🇮 Plastic strain rate

  • Type: variable name
  • Default: state/internal/Ep_rate
void_fraction 🇮 Void fraction (porosity)

  • Type: variable name
  • Default: state/internal/f
void_fraction_rate 🇴 Rate of void evolution

  • Type: variable name
  • Default: state/internal/f_rate

Detailed documentation link

ImplicitUpdate

Update an implicit model by solving the underlying implicit system of equations.

implicit_model The implicit model defining the implicit system of equations to be solved

  • Type: string
solver Solver used to solve the implicit system

  • Type: string

Detailed documentation link

IsotropicElasticityTensor

This class defines an isotropic elasticity tensor using two parameters. Various options are available for which two parameters to provide.

coefficient_as_parameter Whether to treat the coefficients as (trainable) parameters. Default is true. Setting this option to false will treat the coefficients as buffers.

  • Type: list of bool
  • Default: 1
coefficient_types Types for each parameter, options are: INVALID P_WAVE_MODULUS POISSONS_RATIO YOUNGS_MODULUS SHEAR_MODULUS BULK_MODULUS LAME_LAMBDA

  • Type: MultiEnumSelection
  • Default: INVALID
coefficients 🇵 Coefficients used to define the elasticity tensor

  • Type: list of Scalar 🔗

Detailed documentation link

IsotropicMandelStress

Map Cauchy stress to Mandel stress For isotropic material under small deformation, the Mandel stress and the Cauchy stress coincide.

cauchy_stress 🇮 Cauchy stress

  • Type: variable name
  • Default: state/S
mandel_stress 🇴 Mandel stress

  • Type: variable name
  • Default: state/internal/M

Detailed documentation link

KocksMeckingActivationEnergy

Calculates the Kocks-Mecking normalized activation as \(g = \frac{kT}{\mu b^3} \log \frac{\dot{\varepsilon}_0}{\dot{\varepsilon}} \) with \( \mu \) the shear modulus, \( k \) the Boltzmann constant, \( T \) the absolute temperature, \( b \) the Burgers vector length, \( \dot{\varepsilon}_0 \) a reference strain rate, and \( \dot{\varepsilon} \) the current strain rate.

activation_energy 🇴 Output name of the activation energy

  • Type: variable name
  • Default: forces/g
b Magnitude of the Burgers vector

  • Type: number
eps0 Reference strain rate

  • Type: number
k The Boltzmann constant

  • Type: number
shear_modulus 🇵 The shear modulus

  • Type: Scalar 🔗
strain_rate 🇮 Name of the effective strain rate

  • Type: variable name
  • Default: forces/effective_strain_rate
temperature 🇮 Absolute temperature

  • Type: variable name
  • Default: forces/T

Detailed documentation link

KocksMeckingFlowSwitch

Switches between rate independent and rate dependent flow rules based on the value of the Kocks-Mecking normalized activation energy. For activation energies less than the threshold use the rate independent flow rule, for values greater than the threshold use the rate dependent flow rule. This version uses a soft switch between the models, based on a tanh sigmoid function.

activation_energy 🇮 The input name of the activation energy

  • Type: variable name
  • Default: forces/g
flow_rate 🇴 Output name for the mixed flow rate

  • Type: variable name
  • Default: state/internal/gamma_rate
g0 🇵 Critical value of activation energy

  • Type: Scalar 🔗
rate_dependent_flow_rate 🇮 Input name of the rate dependent flow rate

  • Type: variable name
  • Default: state/internal/rd_rate
rate_independent_flow_rate 🇮 Input name of the rate independent flow rate

  • Type: variable name
  • Default: state/internal/ri_rate
sharpness A steepness parameter that controls the tanh mixing of the models. Higher values gives a sharper transition.

  • Type: number
  • Default: 1

Detailed documentation link

KocksMeckingFlowViscosity

Calculates the temperature-dependent flow viscosity for a Perzyna-type model using the Kocks-Mecking model. The value is \( \eta = \exp{B} \mu \dot{\varepsilon}_0^\frac{-k T A}{\mu b^3} \) with \( \mu \) the shear modulus, \( \dot{\varepsilon}_0 \) a reference strain rate, \( b \) the Burgers vector, \( k\) the Boltzmann constant, \( T \) absolute temperature, \( A \) the Kocks-Mecking slope parameter, and \( B \) the Kocks-Mecking intercept parameter.

A 🇵 The Kocks-Mecking slope parameter

  • Type: Scalar 🔗
B 🇵 The Kocks-Mecking intercept parameter

  • Type: Scalar 🔗
b The Burgers vector

  • Type: number
eps0 The reference strain rate

  • Type: number
k Boltzmann constant

  • Type: number
shear_modulus 🇵 The shear modulus

  • Type: Scalar 🔗
temperature 🇮 Absolute temperature

  • Type: variable name
  • Default: forces/T

Detailed documentation link

KocksMeckingIntercept

The critical value of the normalized activation energy given by \( g_0 \frac{C-B}{A} \)

A 🇵 The Kocks-Mecking slope

  • Type: Scalar 🔗
B 🇵 The Kocks-Mecking intercept

  • Type: Scalar 🔗
C 🇵 The Kocks-Mecking horizontal value

  • Type: Scalar 🔗

Detailed documentation link

KocksMeckingRateSensitivity

Calculates the temperature-dependent rate sensitivity for a Perzyna-type model using the Kocks-Mecking model. The value is \( n = \frac{\mu b^3}{k T A} \) with \( \mu \) the shear modulus, \( b \) the Burgers vector, \( k\) the Boltzmann constant, \( T \) absolute temperature, and \( A \) the Kocks-Mecking slope parameter.

A 🇵 The Kocks-Mecking slope parameter

  • Type: Scalar 🔗
b The Burgers vector

  • Type: number
k Boltzmann constant

  • Type: number
shear_modulus 🇵 The shear modulus

  • Type: Scalar 🔗
temperature 🇮 Absolute temperature

  • Type: variable name
  • Default: forces/T

Detailed documentation link

KocksMeckingYieldStress

The yield stress given by the Kocks-Mecking model. \( \sigma_y = \exp{C} \mu \) with \( \mu \) the shear modulus and \( C \) the horizontal intercept from the Kocks-Mecking diagram.

C 🇵 The Kocks-Mecking horizontal intercept

  • Type: Scalar 🔗
shear_modulus 🇵 The shear modulus

  • Type: Scalar 🔗

Detailed documentation link

LinearIsotropicElasticJ2TrialStressUpdate

Update the trial stress under the assumptions of J2 plasticity and isotropic linear elasticity

coefficient_as_parameter Whether to treat the coefficients as (trainable) parameters. Default is true. Setting this option to false will treat the coefficients as buffers.

  • Type: list of bool
  • Default: 1
coefficient_types Types for each parameter, options are: INVALID P_WAVE_MODULUS POISSONS_RATIO YOUNGS_MODULUS SHEAR_MODULUS BULK_MODULUS LAME_LAMBDA

  • Type: MultiEnumSelection
  • Default: INVALID
coefficients 🇵 Coefficients used to define the elasticity tensor

  • Type: list of Scalar 🔗
elastic_trial_stress 🇮 Initial trial stress assuming a purely elastic step

  • Type: variable name
  • Default: forces/s
equivalent_plastic_strain 🇮 Current guess for the equivalent plastic strain

  • Type: variable name
  • Default: state/ep
updated_trial_stress 🇴 Trial stress corrected for the current increment of plastic deformation

  • Type: variable name
  • Default: state/s

Detailed documentation link

LinearIsotropicElasticity

Relate elastic strain to stress for linear isotropic material. \( \boldsymbol{\sigma} = K \tr \boldsymbol{\varepsilon}_e + 2 G \text{dev} \boldsymbol{\varepsilon}_e \), where \( K \) and \( G \) are bulk and shear moduli, respectively. Other pairs of Lame parameters are also supported.

coefficient_as_parameter Whether to treat the coefficients as (trainable) parameters. Default is true. Setting this option to false will treat the coefficients as buffers.

  • Type: list of bool
  • Default: 1
coefficient_types Types for each parameter, options are: INVALID P_WAVE_MODULUS POISSONS_RATIO YOUNGS_MODULUS SHEAR_MODULUS BULK_MODULUS LAME_LAMBDA

  • Type: MultiEnumSelection
  • Default: INVALID
coefficients 🇵 Coefficients used to define the elasticity tensor

  • Type: list of Scalar 🔗
compliance Whether the model defines the compliance relationship, i.e., mapping from stress to elastic strain. When set to false (default), the model maps elastic strain to stress.

  • Type: bool
  • Default: false
rate_form Whether the model defines the stress-strain relationship in rate form. When set to true, the model maps elastic strain rate to stress rate.

  • Type: bool
  • Default: false
strain 🇮 Elastic strain

  • Type: variable name
  • Default: state/internal/Ee
stress 🇴 Stress

  • Type: variable name
  • Default: state/S

Detailed documentation link

LinearIsotropicHardening

Map equivalent plastic strain to isotropic hardening following a linear relationship, i.e., \( h = K \varepsilon_p \) where \( K \) is the hardening modulus.

equivalent_plastic_strain 🇮 Equivalent plastic strain

  • Type: variable name
  • Default: state/internal/ep
hardening_modulus 🇵 Hardening modulus

  • Type: Scalar 🔗
isotropic_hardening 🇴 Isotropic hardening

  • Type: variable name
  • Default: state/internal/k

Detailed documentation link

LinearKinematicHardening

Map kinematic plastic strain to back stress following a linear relationship, i.e., \( \boldsymbol{X} = H \boldsymbol{K}_p \) where \( H \) is the hardening modulus.

back_stress 🇴 Back stress

  • Type: variable name
  • Default: state/internal/X
hardening_modulus 🇵 Hardening modulus

  • Type: Scalar 🔗
kinematic_plastic_strain 🇮 Kinematic plastic strain

  • Type: variable name
  • Default: state/internal/Kp

Detailed documentation link

LinearSingleSlipHardeningRule

Simple linear slip system hardening defined by \( \dot{\tau} = \theta \sum_{i=1}^{n_{slip}} \left| \dot{\gamma}_i \right| \) where \( \theta \) is the hardening slope.

hardening_slope 🇵 Hardening rate

  • Type: Scalar 🔗
slip_hardening 🇮 Name of current values of slip hardening

  • Type: variable name
  • Default: state/internal/slip_hardening
slip_hardening_rate 🇴 Name of tensor to output the slip system hardening rates into

  • Type: variable name
  • Default: state/internal/slip_hardening_rate
sum_slip_rates 🇮 Name of tensor containing the sum of the slip rates

  • Type: variable name
  • Default: state/internal/sum_slip_rates

Detailed documentation link

MillerIndexConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: MillerIndex 🔗

Detailed documentation link

MillerIndexInputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

MixedControlSetup

Object to setup a model for mixed stress/strain control. Copies the values of the fixed_values (the input strain or stress) and the mixed_state (the conjugate stress or strain values) into the stress and strain tensors used by the model.

cauchy_stress 🇴 The name of the Cauchy stress tensor

  • Type: variable name
  • Default: state/S
control 🇮 The name of the control signal. Values less than the threshold are strain control, greater are stress control

  • Type: variable name
  • Default: forces/control
fixed_values 🇮 The name of the fixed values, i.e. the actual strain or stress values being imposed on the model

  • Type: variable name
  • Default: forces/fixed_values
mixed_state 🇮 The name of the mixed state tensor. This holds the conjugate values to those being controlled

  • Type: variable name
  • Default: state/mixed_state
strain 🇴 The name of the strain tensor

  • Type: variable name
  • Default: state/E
threshold The threshold to switch between strain and stress control

  • Type: Tensor 🔗
  • Default: 0.5

Detailed documentation link

Normality

Store the first derivatives of a scalar-valued function in given variables, i.e. \( u_i = \dfrac{f(\boldsymbol{v})}{v_i} \).

from Function arguments to take derivatives w.r.t.

  • Type: list of variable name
function Function to take derivative

  • Type: variable name
model The model which evaluates the scalar-valued function

  • Type: string
to Variables to store the first derivatives

  • Type: list of variable name

Detailed documentation link

OlevskySnumbereringStress

Define the Olevsky-Skorohod sintering stress to be used in conjunction with poroplasticity yield functions such as the GTNYieldFunction. The sintering stress is defined as \( \sigma_s = 3 \dfrac{\gamma}{r} \phi^2 \), where \( \gamma \) is the surface tension, \( r \) is the size of the particles/powders, and \( \phi \) is the void fraction.

particle_radius 🇵 Particle radius

  • Type: Scalar 🔗
sintering_stress 🇴 Sintering stress

  • Type: variable name
  • Default: state/internal/ss
surface_tension 🇵 Surface tension

  • Type: Scalar 🔗
void_fraction 🇮 Void fraction

  • Type: variable name
  • Default: state/internal/f

Detailed documentation link

OrientationRate

Defines the rate of the crystal orientations as a spin given by \( \Omega^e = w - w^p - \varepsilon d^p + d^p \varepsilon \) where \( \Omega^e = \dot{Q} Q^T \), \( Q \) is the orientation, \( w \) is the vorticity, \( w^p \) is the plastic vorticity, \( d^p \) is the plastic deformation rate, and \( \varepsilon \) is the elastic stretch.

elastic_strain 🇮 The name of the elastic strain tensor

  • Type: variable name
  • Default: state/elastic_strain
orientation_rate 🇴 The name of the orientation rate (spin)

  • Type: variable name
  • Default: state/orientation_rate
plastic_deformation_rate 🇮 The name of the plastic deformation rate

  • Type: variable name
  • Default: state/internal/plastic_deformation_rate
plastic_vorticity 🇮 The name of the plastic vorticity

  • Type: variable name
  • Default: state/internal/plastic_vorticity
vorticity 🇮 The name of the voriticty tensor

  • Type: variable name
  • Default: forces/vorticity

Detailed documentation link

PerzynaPlasticFlowRate

Perzyna's viscous approximation of the consistent yield envelope (with a power law), i.e. \( \dot{\gamma} = \left( \frac{\left< f \right>}{\eta} \right)^n \), where \( f \) is the yield function, \( \eta \) is the reference stress, and \( n \) is the power-law exponent.

exponent 🇵 Power-law exponent

  • Type: Scalar 🔗
flow_rate 🇴 Flow rate

  • Type: variable name
  • Default: state/internal/gamma_rate
reference_stress 🇵 Reference stress

  • Type: Scalar 🔗
yield_function 🇮 Yield function

  • Type: variable name
  • Default: state/internal/fp

Detailed documentation link

PlasticDeformationRate

Caclulates the plastic deformation rate as \( d^p = \sum_{i=1}^{n_{slip}} \dot{\gamma}_i Q \operatorname{sym}{\left(d_i \otimes n_i \right)} Q^T \) with \( d^p \) the plastic deformation rate, \( \dot{\gamma}_i \) the slip rate on the ith slip system, \(Q \) the orientation, \( d_i \) the slip system direction, and \( n_i \) the slip system normal.

crystal_geometry_name The name of the Data object containing the crystallographic information for the material

  • Type: string
  • Default: crystal_geometry
orientation 🇮 The name of the orientation matrix tensor

  • Type: variable name
  • Default: state/orientation_matrix
plastic_deformation_rate 🇴 The name of the plastic deformation rate tensor

  • Type: variable name
  • Default: state/internal/plastic_deformation_rate
slip_rates 🇮 The name of the tensor containg the current slip rates

  • Type: variable name
  • Default: state/internal/slip_rates

Detailed documentation link

PlasticVorticity

Caclulates the plastic vorcitity as \( w^p = \sum_{i=1}^{n_{slip}} \dot{\gamma}_i Q \operatorname{skew}{\left(d_i \otimes n_i \right)} Q^T \) with \( d^p \) the plastic deformation rate, \( \dot{\gamma}_i \) the slip rate on the ith slip system, \(Q \) the orientation, \( d_i \) the slip system direction, and \( n_i \) the slip system normal.

crystal_geometry_name The name of the Data object containing the crystallographic information for the material

  • Type: string
  • Default: crystal_geometry
orientation 🇮 The name of the orientation matrix tensor

  • Type: variable name
  • Default: state/orientation_matrix
plastic_vorticity 🇴 The name of the plastic vorticity tensor

  • Type: variable name
  • Default: state/internal/plastic_vorticity
slip_rates 🇮 The name of the tensor containg the current slip rates

  • Type: variable name
  • Default: state/internal/slip_rates

Detailed documentation link

PowerLawIsotropicHardeningStaticRecovery

This particular model implements a power law recovery of the type \( \dot{k} = -\left(\frac{\lVert k \rVert}{\tau}\right)^{n-1} \frac{k}{\tau} \)

isotropic_hardening 🇮 Isotropic hardening variable

  • Type: variable name
  • Default: state/internal/k
isotropic_hardening_rate 🇮 Rate of isotropic hardening, defaults to isotropic_hardening + _recovery_rate

  • Type: variable name
n 🇵 Recovery exponent

  • Type: Scalar 🔗
tau 🇵 Recovery rate

  • Type: Scalar 🔗

Detailed documentation link

PowerLawKinematicHardeningStaticRecovery

This object defines kinematic hardening static recovery on a backstress term. This particular model uses a power law for recovery \( \dot{X} = - \left(\frac{\lVert X \rVert}{\tau}\right)^{n-1} \frac{X}{\tau} \)where \( n \) is the power law recovery exponent and \(\tau\) is the recovery rate.

back_stress 🇮 Back stress

  • Type: variable name
  • Default: state/internal/X
back_stress_rate 🇴 Back stress rate, defaults to back_stress + _recovery_rate

  • Type: variable name
n 🇵 Static recovery exponent

  • Type: Scalar 🔗
tau 🇵 Static recovery rate

  • Type: Scalar 🔗

Detailed documentation link

PowerLawSlipRule

Power law slip rule defined as \( \dot{\gamma}_i = \dot{\gamma}_0 \left| \frac{\tau_i}{\hat{\tau}_i} \right|^{n-1} \frac{\tau_i}{\hat{\tau}_i} \) with \( \dot{\gamma}_i \) the slip rate on system \( i \), \( \tau_i \) the resolved shear, \( \hat{\tau}_i \) the slip system strength, \( n \) the rate senstivity, and \( \dot{\gamma}_0 \) a reference slip rate.

crystal_geometry_name Name of the Data object containing the crystallographic information

  • Type: string
  • Default: crystal_geometry
gamma0 🇵 Reference slip rate

  • Type: Scalar 🔗
n 🇵 Rate sensitivity exponent

  • Type: Scalar 🔗
resolved_shears 🇮 Name of the resolved shear tensor

  • Type: variable name
  • Default: state/internal/resolved_shears
slip_rates 🇴 Name of the slip rate tensor

  • Type: variable name
  • Default: state/internal/slip_rates
slip_strengths 🇮 Name of the tensor containing the slip system strengths

  • Type: variable name
  • Default: state/internal/slip_strengths

Detailed documentation link

QuaternionConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: Quaternion 🔗

Detailed documentation link

QuaternionInputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

R2ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: R2 🔗

Detailed documentation link

R2InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

R3ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: R3 🔗

Detailed documentation link

R3InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

R4ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: R4 🔗

Detailed documentation link

R4InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

R5ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: R5 🔗

Detailed documentation link

R5InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

R8ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: R8 🔗

Detailed documentation link

R8InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

RateIndependentPlasticFlowConstranumber

Solve the consistent plasticity yield envelope by solving the equivalent complementarity condition

\[ r = \dot{\gamma} - f^p - \sqrt{{\dot{\gamma}}^2 + {f^p}^2} \]

flow_rate 🇮 Flow rate

  • Type: variable name
  • Default: state/internal/gamma_rate
yield_function 🇮 Yield function

  • Type: variable name
  • Default: state/internal/fp

Detailed documentation link

ResolvedShear

Calculates the resolved shears as \( \tau_i = \sigma : Q \operatorname{sym}\left(d_i \otimes n_i \right) Q^T \) where \( \tau_i \) is the resolved shear on slip system i, \( \sigma \) is the Cauchy stress \( Q \) is the orientation matrix, \( d_i \) is the slip direction, and \( n_i \) is the slip system normal.

crystal_geometry_name The name of the data object with the crystallographic information

  • Type: string
  • Default: crystal_geometry
orientation 🇮 The name of the orientation matrix

  • Type: variable name
  • Default: state/orientation_matrix
resolved_shears 🇴 The name of the resolved shears

  • Type: variable name
  • Default: state/internal/resolved_shears
stress 🇮 The name of the Cauchy stress tensor

  • Type: variable name
  • Default: state/internal/cauchy_stress

Detailed documentation link

RotConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: Rot 🔗

Detailed documentation link

RotInputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

RotationMatrix

Convert a Rot (rotation represented in Rodrigues format) to R2 (a full rotation matrix).

from 🇮 Rot to convert

  • Type: variable name
to 🇴 R2 to store the resulting rotation matrix

  • Type: variable name

Detailed documentation link

SFFR4ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: SFFR4 🔗

Detailed documentation link

SFFR4InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

SFR3ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: SFR3 🔗

Detailed documentation link

SFR3InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

SR2BackwardEulerTimeIntegration

Define the backward Euler time integration residual \( r = s - s_n - (t - t_n) \dot{s} \), where \(s\) is the variable being integrated, \(\dot{s}\) is the variable rate, and \(t\) is time. Subscripts \(n\) denote quantities from the previous time step.

automatic_scaling Whether to perform automatic scaling. See neml2::NonlinearSystem::init_scaling for implementation details.

  • Type: bool
  • Default: false
automatic_scaling_miter Maximum number of automatic scaling iterations. No error is produced upon reaching the maximum number of scaling iterations, and the scaling matrices obtained at the last iteration are used to scale the nonlinear system.

  • Type: unsigned number
  • Default: 20
automatic_scaling_tol Tolerance used in iteratively updating the scaling matrices.

  • Type: number
  • Default: 0.01
rate 🇮 Variable rate

  • Type: variable name
time 🇮 Time

  • Type: variable name
  • Default: forces/t
variable 🇮 Variable being integrated

  • Type: variable name

Detailed documentation link

SR2ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: SR2 🔗

Detailed documentation link

SR2CrystalMean

Average the variable over all crystals.

crystal_geometry_name The name of the Data object containing the crystallographic information

  • Type: string
  • Default: crystal_geometry
from 🇮 Variable to average

  • Type: variable name
to 🇴 The averaged variable

  • Type: variable name

Detailed documentation link

SR2ForwardEulerTimeIntegration

Perform forward Euler time integration defined as \( s = s_n + (t - t_n) \dot{s} \), where \(s\) is the variable being integrated, \(\dot{s}\) is the variable rate, and \(t\) is time. Subscripts \(n\) denote quantities from the previous time step.

rate 🇮 Variable rate of change

  • Type: variable name
time 🇮 Time

  • Type: variable name
  • Default: forces/t
variable 🇴 Variable being integrated

  • Type: variable name

Detailed documentation link

SR2InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

SR2Invariant

Calculate the invariant of a symmetric second order tensor (of type SR2).

invariant 🇴 Invariant

  • Type: variable name
invariant_type Type of invariant. Options are: INVALID EFFECTIVE_STRAIN VONMISES I2 I1

  • Type: EnumSelection
  • Default: INVALID
tensor 🇮 SR2 which is used to calculate the invariant of

  • Type: variable name

Detailed documentation link

SR2LinearCombination

Calculate linear combination of multiple SR2 tensors as \( u = c_i v_i \) (Einstein summation assumed), where \( c_i \) are the coefficients, and \( v_i \) are the variables to be summed.

coefficient_as_parameter By default, the coefficients are declared as buffers. Set this option to true to declare them as (trainable) parameters. This option takes a list of booleans, one for each coefficient. When the length of this list is 1, the boolean applies to all coefficients.

  • Type: list of bool
coefficients 🇵 Weights associated with each variable. This option takes a list of weights, one for each coefficient. When the length of this list is 1, the same weight applies to all coefficients.

  • Type: list of Scalar 🔗
  • Default: 1
from_var SR2 tensors to be summed

  • Type: list of variable name
to_var 🇴 The sum

  • Type: variable name

Detailed documentation link

SR2LinearInterpolation

Interpolate a SR2 as a function of the given argument. See neml2::Interpolation for rules on shapes of the interpolant and the argument. This object performs a linear interpolation.

abscissa Scalar defining the abscissa values of the interpolant

  • Type: Scalar 🔗
argument 🇮 Argument used to query the interpolant

  • Type: variable name
ordinate SR2 defining the ordinate values of the interpolant

  • Type: SR2 🔗

Detailed documentation link

SR2TwoStageThermalAnnealing

Thermal annealing recovery for a hardening variable of type SR2.For temperatures below \( T_1 \) the model keeps the base model hardenign rate.For temperatures above \(T_1\) but below \(T_2 \) the model zeros the hardening rate.For temperatures above \(T_2\) the model replaces the hardening rate with \( \dot{h} = \frac{-h}{\tau} \) where \( \tau \) is the rate of recovery.

T1 🇵 First stage annealing temperature

  • Type: Scalar 🔗
T2 🇵 Second stage annealing temperature

  • Type: Scalar 🔗
base 🇮 Underlying base hardening variable

  • Type: variable name
base_rate 🇮 Base hardening rate

  • Type: variable name
modified_rate 🇴 Output for the modified hardening rate.

  • Type: variable name
tau 🇵 Recovery rate for second stage annealing.

  • Type: Scalar 🔗
temperature 🇮 Temperature

  • Type: variable name
  • Default: forces/T

Detailed documentation link

SR2VariableRate

Calculate the first order discrete time derivative of a variable as \( \dot{f} = \frac{f-f_n}{t-t_n} \), where \( f \) is the force variable, and \( t \) is time.

rate 🇴 The variable's rate of change

  • Type: variable name
time 🇮 Time

  • Type: variable name
  • Default: forces/t
variable 🇮 The variable to take time derivative with

  • Type: variable name

Detailed documentation link

SSFR5ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: SSFR5 🔗

Detailed documentation link

SSFR5InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

SSR4ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: SSR4 🔗

Detailed documentation link

SSR4InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

SSSSR8ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: SSSSR8 🔗

Detailed documentation link

SSSSR8InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

SWR4ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: SWR4 🔗

Detailed documentation link

SWR4InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

ScalarBackwardEulerTimeIntegration

Define the backward Euler time integration residual \( r = s - s_n - (t - t_n) \dot{s} \), where \(s\) is the variable being integrated, \(\dot{s}\) is the variable rate, and \(t\) is time. Subscripts \(n\) denote quantities from the previous time step.

automatic_scaling Whether to perform automatic scaling. See neml2::NonlinearSystem::init_scaling for implementation details.

  • Type: bool
  • Default: false
automatic_scaling_miter Maximum number of automatic scaling iterations. No error is produced upon reaching the maximum number of scaling iterations, and the scaling matrices obtained at the last iteration are used to scale the nonlinear system.

  • Type: unsigned number
  • Default: 20
automatic_scaling_tol Tolerance used in iteratively updating the scaling matrices.

  • Type: number
  • Default: 0.01
rate 🇮 Variable rate

  • Type: variable name
time 🇮 Time

  • Type: variable name
  • Default: forces/t
variable 🇮 Variable being integrated

  • Type: variable name

Detailed documentation link

ScalarConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: Scalar 🔗

Detailed documentation link

ScalarForwardEulerTimeIntegration

Perform forward Euler time integration defined as \( s = s_n + (t - t_n) \dot{s} \), where \(s\) is the variable being integrated, \(\dot{s}\) is the variable rate, and \(t\) is time. Subscripts \(n\) denote quantities from the previous time step.

rate 🇮 Variable rate of change

  • Type: variable name
time 🇮 Time

  • Type: variable name
  • Default: forces/t
variable 🇴 Variable being integrated

  • Type: variable name

Detailed documentation link

ScalarInputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

ScalarLinearCombination

Calculate linear combination of multiple Scalar tensors as \( u = c_i v_i \) (Einstein summation assumed), where \( c_i \) are the coefficients, and \( v_i \) are the variables to be summed.

coefficient_as_parameter By default, the coefficients are declared as buffers. Set this option to true to declare them as (trainable) parameters. This option takes a list of booleans, one for each coefficient. When the length of this list is 1, the boolean applies to all coefficients.

  • Type: list of bool
coefficients 🇵 Weights associated with each variable. This option takes a list of weights, one for each coefficient. When the length of this list is 1, the same weight applies to all coefficients.

  • Type: list of Scalar 🔗
  • Default: 1
from_var Scalar tensors to be summed

  • Type: list of variable name
to_var 🇴 The sum

  • Type: variable name

Detailed documentation link

ScalarLinearInterpolation

Interpolate a Scalar as a function of the given argument. See neml2::Interpolation for rules on shapes of the interpolant and the argument. This object performs a linear interpolation.

abscissa Scalar defining the abscissa values of the interpolant

  • Type: Scalar 🔗
argument 🇮 Argument used to query the interpolant

  • Type: variable name
ordinate Scalar defining the ordinate values of the interpolant

  • Type: Scalar 🔗

Detailed documentation link

ScalarTwoStageThermalAnnealing

Thermal annealing recovery for a hardening variable of type Scalar.For temperatures below \( T_1 \) the model keeps the base model hardenign rate.For temperatures above \(T_1\) but below \(T_2 \) the model zeros the hardening rate.For temperatures above \(T_2\) the model replaces the hardening rate with \( \dot{h} = \frac{-h}{\tau} \) where \( \tau \) is the rate of recovery.

T1 🇵 First stage annealing temperature

  • Type: Scalar 🔗
T2 🇵 Second stage annealing temperature

  • Type: Scalar 🔗
base 🇮 Underlying base hardening variable

  • Type: variable name
base_rate 🇮 Base hardening rate

  • Type: variable name
modified_rate 🇴 Output for the modified hardening rate.

  • Type: variable name
tau 🇵 Recovery rate for second stage annealing.

  • Type: Scalar 🔗
temperature 🇮 Temperature

  • Type: variable name
  • Default: forces/T

Detailed documentation link

ScalarVariableRate

Calculate the first order discrete time derivative of a variable as \( \dot{f} = \frac{f-f_n}{t-t_n} \), where \( f \) is the force variable, and \( t \) is time.

rate 🇴 The variable's rate of change

  • Type: variable name
time 🇮 Time

  • Type: variable name
  • Default: forces/t
variable 🇮 The variable to take time derivative with

  • Type: variable name

Detailed documentation link

SingleSlipStrengthMap

Calculates the slip system strength for all slip systems as \( \hat{\tau}_i = \bar{\tau} + \tau_0 \) where \( \hat{\tau}_i \) is the strength for slip system i, \( \bar{\tau} \) is an evolving slip system strength (one value of all systems), defined by another object, and \( \tau_0 \) is a constant strength.

constant_strength 🇵 The constant slip system strength

  • Type: Scalar 🔗
crystal_geometry_name Name of the Data object containing the crystallographic information

  • Type: string
  • Default: crystal_geometry
slip_hardening 🇮 The name of the evovling, scalar strength

  • Type: variable name
  • Default: state/internal/slip_hardening
slip_strengths 🇴 Name of the slip system strengths

  • Type: variable name
  • Default: state/internal/slip_strengths

Detailed documentation link

SlopeSaturationVoceIsotropicHardening

SlopeSaturationVoce isotropic hardening model, \( \dot{h} = \theta_0 \left(1 - \frac{h}{R} \right) \varepsilon_p \), where \( R \) is the isotropic hardening upon saturation, and \( \theta_0 \) is the initial hardening rate. In addition to the reparameterization, this model differences from the VoceIsotropicHardening model in that it defines the hardening rate in a non-assocative manner. This is sometimes handy, for example in supplementing the model with static recovery.

flow_rate 🇮 Flow rate

  • Type: variable name
  • Default: state/internal/gamma_rate
initial_hardening_rate 🇵 Initial hardening rate

  • Type: Scalar 🔗
isotropic_hardening 🇮 Isotropic hardening variable

  • Type: variable name
  • Default: state/internal/k
isotropic_hardening_rate 🇮 Rate of isotropic hardening, defaults to isotropic_hardening + _rate

  • Type: variable name
saturated_hardening 🇵 Saturated isotropic hardening

  • Type: Scalar 🔗

Detailed documentation link

SumSlipRates

Calculates the sum of the absolute value of all the slip rates as \( \sum_{i=1}^{n_{slip}} \left| \dot{\gamma}_i \right| \).

crystal_geometry_name The name of the Data object containing the crystallographic information

  • Type: string
  • Default: crystal_geometry
slip_rates 🇮 The name of individual slip rates

  • Type: variable name
  • Default: state/internal/slip_rates
sum_slip_rates 🇴 The outut name for the scalar sum of the slip rates

  • Type: variable name
  • Default: state/internal/sum_slip_rates

Detailed documentation link

ThermalEigenstrain

Define the (cummulative, as opposed to instantaneous) linear isotropic thermal eigenstrain, i.e. \( \boldsymbol{\varepsilon}_T = \alpha (T - T_0) \boldsymbol{I} \), where \( \alpha \) is the coefficient of thermal expansion (CTE), \( T \) is the temperature, and \( T_0 \) is the reference (stress-free) temperature.

CTE 🇵 Coefficient of thermal expansion

  • Type: Scalar 🔗
eigenstrain 🇴 Eigenstrain

  • Type: variable name
  • Default: forces/Eg
reference_temperature 🇧 Reference (stress-free) temperature

  • Type: Scalar 🔗
temperature 🇮 Temperature

  • Type: variable name
  • Default: forces/T

Detailed documentation link

VecBackwardEulerTimeIntegration

Define the backward Euler time integration residual \( r = s - s_n - (t - t_n) \dot{s} \), where \(s\) is the variable being integrated, \(\dot{s}\) is the variable rate, and \(t\) is time. Subscripts \(n\) denote quantities from the previous time step.

automatic_scaling Whether to perform automatic scaling. See neml2::NonlinearSystem::init_scaling for implementation details.

  • Type: bool
  • Default: false
automatic_scaling_miter Maximum number of automatic scaling iterations. No error is produced upon reaching the maximum number of scaling iterations, and the scaling matrices obtained at the last iteration are used to scale the nonlinear system.

  • Type: unsigned number
  • Default: 20
automatic_scaling_tol Tolerance used in iteratively updating the scaling matrices.

  • Type: number
  • Default: 0.01
rate 🇮 Variable rate

  • Type: variable name
time 🇮 Time

  • Type: variable name
  • Default: forces/t
variable 🇮 Variable being integrated

  • Type: variable name

Detailed documentation link

VecConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: Vec 🔗

Detailed documentation link

VecForwardEulerTimeIntegration

Perform forward Euler time integration defined as \( s = s_n + (t - t_n) \dot{s} \), where \(s\) is the variable being integrated, \(\dot{s}\) is the variable rate, and \(t\) is time. Subscripts \(n\) denote quantities from the previous time step.

rate 🇮 Variable rate of change

  • Type: variable name
time 🇮 Time

  • Type: variable name
  • Default: forces/t
variable 🇴 Variable being integrated

  • Type: variable name

Detailed documentation link

VecInputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

VecLinearCombination

Calculate linear combination of multiple Vec tensors as \( u = c_i v_i \) (Einstein summation assumed), where \( c_i \) are the coefficients, and \( v_i \) are the variables to be summed.

coefficient_as_parameter By default, the coefficients are declared as buffers. Set this option to true to declare them as (trainable) parameters. This option takes a list of booleans, one for each coefficient. When the length of this list is 1, the boolean applies to all coefficients.

  • Type: list of bool
coefficients 🇵 Weights associated with each variable. This option takes a list of weights, one for each coefficient. When the length of this list is 1, the same weight applies to all coefficients.

  • Type: list of Scalar 🔗
  • Default: 1
from_var Vec tensors to be summed

  • Type: list of variable name
to_var 🇴 The sum

  • Type: variable name

Detailed documentation link

VecLinearInterpolation

Interpolate a Vec as a function of the given argument. See neml2::Interpolation for rules on shapes of the interpolant and the argument. This object performs a linear interpolation.

abscissa Scalar defining the abscissa values of the interpolant

  • Type: Scalar 🔗
argument 🇮 Argument used to query the interpolant

  • Type: variable name
ordinate Vec defining the ordinate values of the interpolant

  • Type: Vec 🔗

Detailed documentation link

VecVariableRate

Calculate the first order discrete time derivative of a variable as \( \dot{f} = \frac{f-f_n}{t-t_n} \), where \( f \) is the force variable, and \( t \) is time.

rate 🇴 The variable's rate of change

  • Type: variable name
time 🇮 Time

  • Type: variable name
  • Default: forces/t
variable 🇮 The variable to take time derivative with

  • Type: variable name

Detailed documentation link

VoceIsotropicHardening

Voce isotropic hardening model, \( h = R \left[ 1 - \exp(-d \varepsilon_p) \right] \), where \( R \) is the isotropic hardening upon saturation, and \( d \) is the hardening rate.

equivalent_plastic_strain 🇮 Equivalent plastic strain

  • Type: variable name
  • Default: state/internal/ep
isotropic_hardening 🇴 Isotropic hardening

  • Type: variable name
  • Default: state/internal/k
saturated_hardening 🇵 Saturated isotropic hardening

  • Type: Scalar 🔗
saturation_rate 🇵 Hardening saturation rate

  • Type: Scalar 🔗

Detailed documentation link

VoceSingleSlipHardeningRule

Voce hardening for a SingleSlipStrength type model defined by \( \dot{\tau} = \theta_0 \left( 1 - \frac{\tau}{\tau_f} \right) \sum_{i=1}^{n_{slip}} \left| \dot{\gamma}_i \right| \) where \( \theta_0 \) is the initial rate of work hardening, \( \tau_f \) is the saturated, maximum value of the slip system strength, and \( \dot{\gamma}_i \) is the slip rate on each system.

initial_slope 🇵 The initial rate of hardening

  • Type: Scalar 🔗
saturated_hardening 🇵 The final, saturated value of the slip system strength

  • Type: Scalar 🔗
slip_hardening 🇮 Name of current values of slip hardening

  • Type: variable name
  • Default: state/internal/slip_hardening
slip_hardening_rate 🇴 Name of tensor to output the slip system hardening rates into

  • Type: variable name
  • Default: state/internal/slip_hardening_rate
sum_slip_rates 🇮 Name of tensor containing the sum of the slip rates

  • Type: variable name
  • Default: state/internal/sum_slip_rates

Detailed documentation link

WR2ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: WR2 🔗

Detailed documentation link

WR2ExplicitExponentialTimeIntegration

Perform explicit discrete exponential time integration of a rotation. The update can be written as \( s = \exp\left[ (t-t_n)\dot{s}\right] \circ s_n \), where \( \circ \) denotes the rotation operator.

rate 🇮 Variable rate of change

  • Type: variable name
time 🇮 Time

  • Type: variable name
  • Default: forces/t
variable 🇴 Variable being integrated

  • Type: variable name

Detailed documentation link

WR2ImplicitExponentialTimeIntegration

Define the implicit discrete exponential time integration residual of a rotation variable. The residual can be written as \( r = s - \exp\left[ (t-t_n)\dot{s}\right] \circ s_n \), where \( \circ \) denotes the rotation operator.

automatic_scaling Whether to perform automatic scaling. See neml2::NonlinearSystem::init_scaling for implementation details.

  • Type: bool
  • Default: false
automatic_scaling_miter Maximum number of automatic scaling iterations. No error is produced upon reaching the maximum number of scaling iterations, and the scaling matrices obtained at the last iteration are used to scale the nonlinear system.

  • Type: unsigned number
  • Default: 20
automatic_scaling_tol Tolerance used in iteratively updating the scaling matrices.

  • Type: number
  • Default: 0.01
rate 🇮 Variable rate

  • Type: variable name
time 🇮 Time

  • Type: variable name
  • Default: forces/t
variable 🇮 Variable being integrated

  • Type: variable name

Detailed documentation link

WR2InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

WSR4ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: WSR4 🔗

Detailed documentation link

WSR4InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

WWR4ConstantParameter

A parameter that is just a constant value, generally used to refer to a parameter in more than one downstream object.

value 🇵 The constant value of the parameter

  • Type: WWR4 🔗

Detailed documentation link

WWR4InputParameter

A parameter that is defined through an input variable. This essentially converts a nonlinear parameter to an input variable

from 🇮 The input variable that defines this nonlinear parameter

  • Type: variable name

Detailed documentation link

YieldFunction

Classical macroscale plasticity yield function, \( f = \bar{\sigma} - \sigma_y - h \), where \( \bar{\sigma} \) is the effective stress, \( \sigma_y \) is the yield stress, and \( h \) is the isotropic hardening.

effective_stress 🇮 Effective stress

  • Type: variable name
  • Default: state/internal/s
isotropic_hardening 🇮 Isotropic hardening

  • Type: variable name
yield_function 🇴 Yield function

  • Type: variable name
  • Default: state/internal/fp
yield_stress 🇵 Yield stress

  • Type: Scalar 🔗

Detailed documentation link