NEML2 2.0.0
|
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.
Refer to System Documentation for detailed explanation about this system.
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 energyideal_gas_constant
The ideal gas constantreference_value
🇵 Reference valuetemperature
🇮 TemperatureDetailed documentation link
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 strainflow_rate
🇮 Flow rateisotropic_hardening_direction
🇮 Direction of associative isotropic hardening which can be calculated using Normality.Detailed documentation link
The plastic flow direction assuming an associative J2 flow.
flow_direction
Flow directionmandel_stress
Mandel stressDetailed documentation link
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 ratekinematic_hardening_direction
🇮 Direction of associative kinematic hardening which can be calculated using Normality.kinematic_plastic_strain_rate
🇴 Rate of kinematic plastic strainDetailed documentation link
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 Normalityflow_rate
🇮 Flow rateplastic_strain_rate
🇴 Rate of plastic strainDetailed documentation link
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 prefactorC
🇵 Kinematic hardening coefficienta
🇵 Static recovery exponentback_stress
🇮 Back stressback_stress_rate
🇴 Back stress rate, defaults to back_stress + _rateflow_direction
🇮 Flow directionflow_rate
🇮 Flow rateg
🇵 Dynamic recovery coefficientDetailed documentation link
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.automatic_nonlinear_parameter
Whether to automatically add dependent nonlinear parametersautomatic_scaling
Whether to perform automatic scaling. See neml2::NonlinearSystem::init_scaling for implementation details.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.automatic_scaling_tol
Tolerance used in iteratively updating the scaling matrices.models
Models being composed togetherpriority
Priorities of models in decreasing order. A model with higher priority will be evaluated first. This is useful for breaking cyclic dependency.Detailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
Copy the value from one variable to another.
from
🇮 Variable to copy value fromto
🇴 Variable to copy value toDetailed documentation link
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.coefficient_types
Types for each parameter, options are: INVALID P_WAVE_MODULUS POISSONS_RATIO YOUNGS_MODULUS SHEAR_MODULUS BULK_MODULUS LAME_LAMBDA coefficients
🇵 Coefficients used to define the elasticity tensorDetailed documentation link
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 rateelastic_strain
🇮 Name of the elastic strainelastic_strain_rate
🇴 Name of the elastic strain rateplastic_deformation_rate
🇮 Name of the plastic deformation ratevorticity
🇮 Name of the vorticityDetailed documentation link
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.output_orientation
🇴 Name of output tensorthreshold
Threshold value for translating to the shadow parametersDetailed documentation link
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 coefficientback_stress
🇮 Back stressback_stress_rate
🇴 Back stress rate, defaults to back_stress + _rateflow_direction
🇮 Flow directionflow_rate
🇮 Flow rateg
🇵 Dynamic recovery coefficientDetailed documentation link
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 flowisotropic_hardening
🇮 Isotropic hardeningporo_invariant
🇮 Effective stress driving porous flowq1
🇵 Parameter controlling the balance/competition between plastic flow and void evolution.q2
🇵 Void evolution rateq3
🇵 Pore pressurevoid_fraction
🇮 Void fraction (porosity)yield_function
🇴 Yield functionyield_stress
🇵 Yield stressDetailed documentation link
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.elastic_stiffness_tensor
🇵 Elastic stiffness tensororientation
🇮 Active convention orientation from reference to currentrate_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.strain
🇮 Elastic strainstress
🇴 StressDetailed documentation link
Local mass balance used in conjunction with the GTNYieldFunction, \( \dot{\phi} = (1-\phi) \dot{\varepsilon}_p \).
plastic_strain_rate
🇮 Plastic strain ratevoid_fraction
🇮 Void fraction (porosity)void_fraction_rate
🇴 Rate of void evolutionDetailed documentation link
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 solvedsolver
Solver used to solve the implicit systemDetailed documentation link
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.coefficient_types
Types for each parameter, options are: INVALID P_WAVE_MODULUS POISSONS_RATIO YOUNGS_MODULUS SHEAR_MODULUS BULK_MODULUS LAME_LAMBDA coefficients
🇵 Coefficients used to define the elasticity tensorDetailed documentation link
Map Cauchy stress to Mandel stress For isotropic material under small deformation, the Mandel stress and the Cauchy stress coincide.
cauchy_stress
🇮 Cauchy stressmandel_stress
🇴 Mandel stressDetailed documentation link
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 energyb
Magnitude of the Burgers vectoreps0
Reference strain ratek
The Boltzmann constantshear_modulus
🇵 The shear modulusstrain_rate
🇮 Name of the effective strain ratetemperature
🇮 Absolute temperatureDetailed documentation link
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 energyflow_rate
🇴 Output name for the mixed flow rateg0
🇵 Critical value of activation energyrate_dependent_flow_rate
🇮 Input name of the rate dependent flow raterate_independent_flow_rate
🇮 Input name of the rate independent flow ratesharpness
A steepness parameter that controls the tanh mixing of the models. Higher values gives a sharper transition.Detailed documentation link
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 parameterB
🇵 The Kocks-Mecking intercept parameterb
The Burgers vectoreps0
The reference strain ratek
Boltzmann constantshear_modulus
🇵 The shear modulustemperature
🇮 Absolute temperatureDetailed documentation link
The critical value of the normalized activation energy given by \( g_0 \frac{C-B}{A} \)
A
🇵 The Kocks-Mecking slopeB
🇵 The Kocks-Mecking interceptC
🇵 The Kocks-Mecking horizontal valueDetailed documentation link
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 parameterb
The Burgers vectork
Boltzmann constantshear_modulus
🇵 The shear modulustemperature
🇮 Absolute temperatureDetailed documentation link
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 interceptshear_modulus
🇵 The shear modulusDetailed documentation link
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.coefficient_types
Types for each parameter, options are: INVALID P_WAVE_MODULUS POISSONS_RATIO YOUNGS_MODULUS SHEAR_MODULUS BULK_MODULUS LAME_LAMBDA coefficients
🇵 Coefficients used to define the elasticity tensorelastic_trial_stress
🇮 Initial trial stress assuming a purely elastic stepequivalent_plastic_strain
🇮 Current guess for the equivalent plastic strainupdated_trial_stress
🇴 Trial stress corrected for the current increment of plastic deformationDetailed documentation link
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.coefficient_types
Types for each parameter, options are: INVALID P_WAVE_MODULUS POISSONS_RATIO YOUNGS_MODULUS SHEAR_MODULUS BULK_MODULUS LAME_LAMBDA coefficients
🇵 Coefficients used to define the elasticity tensorcompliance
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.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.strain
🇮 Elastic strainstress
🇴 StressDetailed documentation link
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 strainhardening_modulus
🇵 Hardening modulusisotropic_hardening
🇴 Isotropic hardeningDetailed documentation link
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 stresshardening_modulus
🇵 Hardening moduluskinematic_plastic_strain
🇮 Kinematic plastic strainDetailed documentation link
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 rateslip_hardening
🇮 Name of current values of slip hardeningslip_hardening_rate
🇴 Name of tensor to output the slip system hardening rates intosum_slip_rates
🇮 Name of tensor containing the sum of the slip ratesDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 tensorcontrol
🇮 The name of the control signal. Values less than the threshold are strain control, greater are stress controlfixed_values
🇮 The name of the fixed values, i.e. the actual strain or stress values being imposed on the modelmixed_state
🇮 The name of the mixed state tensor. This holds the conjugate values to those being controlledstrain
🇴 The name of the strain tensorthreshold
The threshold to switch between strain and stress controlDetailed documentation link
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.function
Function to take derivativemodel
The model which evaluates the scalar-valued functionto
Variables to store the first derivativesDetailed documentation link
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 radiussintering_stress
🇴 Sintering stresssurface_tension
🇵 Surface tensionvoid_fraction
🇮 Void fractionDetailed documentation link
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 tensororientation_rate
🇴 The name of the orientation rate (spin)plastic_deformation_rate
🇮 The name of the plastic deformation rateplastic_vorticity
🇮 The name of the plastic vorticityvorticity
🇮 The name of the voriticty tensorDetailed documentation link
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 exponentflow_rate
🇴 Flow ratereference_stress
🇵 Reference stressyield_function
🇮 Yield functionDetailed documentation link
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 materialorientation
🇮 The name of the orientation matrix tensorplastic_deformation_rate
🇴 The name of the plastic deformation rate tensorslip_rates
🇮 The name of the tensor containg the current slip ratesDetailed documentation link
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 materialorientation
🇮 The name of the orientation matrix tensorplastic_vorticity
🇴 The name of the plastic vorticity tensorslip_rates
🇮 The name of the tensor containg the current slip ratesDetailed documentation link
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 variableisotropic_hardening_rate
🇮 Rate of isotropic hardening, defaults to isotropic_hardening + _recovery_raten
🇵 Recovery exponenttau
🇵 Recovery rateDetailed documentation link
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 stressback_stress_rate
🇴 Back stress rate, defaults to back_stress + _recovery_raten
🇵 Static recovery exponenttau
🇵 Static recovery rateDetailed documentation link
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 informationgamma0
🇵 Reference slip raten
🇵 Rate sensitivity exponentresolved_shears
🇮 Name of the resolved shear tensorslip_rates
🇴 Name of the slip rate tensorslip_strengths
🇮 Name of the tensor containing the slip system strengthsDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 rateyield_function
🇮 Yield functionDetailed documentation link
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 informationorientation
🇮 The name of the orientation matrixresolved_shears
🇴 The name of the resolved shearsstress
🇮 The name of the Cauchy stress tensorDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
Convert a Rot (rotation represented in Rodrigues format) to R2 (a full rotation matrix).
from
🇮 Rot to convertto
🇴 R2 to store the resulting rotation matrixDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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.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.automatic_scaling_tol
Tolerance used in iteratively updating the scaling matrices.rate
🇮 Variable ratetime
🇮 Timevariable
🇮 Variable being integratedDetailed documentation link
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 parameterDetailed documentation link
Average the variable over all crystals.
crystal_geometry_name
The name of the Data object containing the crystallographic informationfrom
🇮 Variable to averageto
🇴 The averaged variableDetailed documentation link
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 changetime
🇮 Timevariable
🇴 Variable being integratedDetailed documentation link
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 parameterDetailed documentation link
Calculate the invariant of a symmetric second order tensor (of type SR2).
invariant
🇴 Invariantinvariant_type
Type of invariant. Options are: INVALID EFFECTIVE_STRAIN VONMISES I2 I1 tensor
🇮 SR2 which is used to calculate the invariant ofDetailed documentation link
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.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.from_var
SR2 tensors to be summedto_var
🇴 The sumDetailed documentation link
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 interpolantargument
🇮 Argument used to query the interpolantordinate
SR2 defining the ordinate values of the interpolantDetailed documentation link
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 temperatureT2
🇵 Second stage annealing temperaturebase
🇮 Underlying base hardening variablebase_rate
🇮 Base hardening ratemodified_rate
🇴 Output for the modified hardening rate.tau
🇵 Recovery rate for second stage annealing.temperature
🇮 TemperatureDetailed documentation link
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 changetime
🇮 Timevariable
🇮 The variable to take time derivative withDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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.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.automatic_scaling_tol
Tolerance used in iteratively updating the scaling matrices.rate
🇮 Variable ratetime
🇮 Timevariable
🇮 Variable being integratedDetailed documentation link
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 parameterDetailed documentation link
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 changetime
🇮 Timevariable
🇴 Variable being integratedDetailed documentation link
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 parameterDetailed documentation link
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.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.from_var
Scalar tensors to be summedto_var
🇴 The sumDetailed documentation link
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 interpolantargument
🇮 Argument used to query the interpolantordinate
Scalar defining the ordinate values of the interpolantDetailed documentation link
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 temperatureT2
🇵 Second stage annealing temperaturebase
🇮 Underlying base hardening variablebase_rate
🇮 Base hardening ratemodified_rate
🇴 Output for the modified hardening rate.tau
🇵 Recovery rate for second stage annealing.temperature
🇮 TemperatureDetailed documentation link
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 changetime
🇮 Timevariable
🇮 The variable to take time derivative withDetailed documentation link
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 strengthcrystal_geometry_name
Name of the Data object containing the crystallographic informationslip_hardening
🇮 The name of the evovling, scalar strengthslip_strengths
🇴 Name of the slip system strengthsDetailed documentation link
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 rateinitial_hardening_rate
🇵 Initial hardening rateisotropic_hardening
🇮 Isotropic hardening variableisotropic_hardening_rate
🇮 Rate of isotropic hardening, defaults to isotropic_hardening + _ratesaturated_hardening
🇵 Saturated isotropic hardeningDetailed documentation link
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 informationslip_rates
🇮 The name of individual slip ratessum_slip_rates
🇴 The outut name for the scalar sum of the slip ratesDetailed documentation link
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 expansioneigenstrain
🇴 Eigenstrainreference_temperature
🇧 Reference (stress-free) temperaturetemperature
🇮 TemperatureDetailed documentation link
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.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.automatic_scaling_tol
Tolerance used in iteratively updating the scaling matrices.rate
🇮 Variable ratetime
🇮 Timevariable
🇮 Variable being integratedDetailed documentation link
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 parameterDetailed documentation link
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 changetime
🇮 Timevariable
🇴 Variable being integratedDetailed documentation link
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 parameterDetailed documentation link
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.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.from_var
Vec tensors to be summedto_var
🇴 The sumDetailed documentation link
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 interpolantargument
🇮 Argument used to query the interpolantordinate
Vec defining the ordinate values of the interpolantDetailed documentation link
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 changetime
🇮 Timevariable
🇮 The variable to take time derivative withDetailed documentation link
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 strainisotropic_hardening
🇴 Isotropic hardeningsaturated_hardening
🇵 Saturated isotropic hardeningsaturation_rate
🇵 Hardening saturation rateDetailed documentation link
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 hardeningsaturated_hardening
🇵 The final, saturated value of the slip system strengthslip_hardening
🇮 Name of current values of slip hardeningslip_hardening_rate
🇴 Name of tensor to output the slip system hardening rates intosum_slip_rates
🇮 Name of tensor containing the sum of the slip ratesDetailed documentation link
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 parameterDetailed documentation link
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 changetime
🇮 Timevariable
🇴 Variable being integratedDetailed documentation link
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.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.automatic_scaling_tol
Tolerance used in iteratively updating the scaling matrices.rate
🇮 Variable ratetime
🇮 Timevariable
🇮 Variable being integratedDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 parameterDetailed documentation link
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 stressisotropic_hardening
🇮 Isotropic hardeningyield_function
🇴 Yield functionyield_stress
🇵 Yield stressDetailed documentation link