All of these allow the user to specify the number of states, nStates, to be defined at each integration point. These state values are passed to the external functions in an argument called
states. Note that the
states vector is both input and output: when the function is called, it contains the previous step converged values of the states; on return, it must contain the state values to be stored if the solver decides to proceed to the next step.
The user is also required to specify an array of material model parameters, called par. The number of parameters
nPar is specified implicitly as the length of the material property array, which must be defined as a property in a property group under the calling
External Material feature or set in the
Material Contents table in the
External Material node’s settings.
The General stress-strain relation socket implements a stress-strain relation computing a second Piola-Kirchhoff stress tensor given the current Green-Lagrange strain together with a material property vector and a vector of stored states. The expected external material function signature is:
The e and
s tensors are given in Voigt order; that is., the components in
e are
{exx, eyy, ezz, eyz, exz, exy} and similarly for
s. The Jacobian
D is a 6-by-6 matrix of partial derivatives of components of
s (rows) with respect to components of
e (columns); the matrix is stored in row-major order.
The Inelastic Residual Strain socket implements an update procedure for an additive inelastic contribution to the total Green-Lagrange strain. Total stress and strain at the previous converged step, current total strain, current temperature, a reference temperature, a material property vector, and a vector of stored states are passed as inputs.
The sOld,
eOld,
e, and
eInel tensors are given in Voigt order (that is, the components in
e are
{exx, eyy, ezz, eyz, exz, exy}) and similarly for the other tensors. The Jacobian
Jac is a 6-by-6 matrix of partial derivatives of components of
eInel (rows) with respect to components of
e (columns); the matrix is stored in row-major order. Note that the primary output quantity
eInel is declared as states, meaning that the argument on entry contains the previous converged step values. The temperature arguments
T and
Tref are standard model inputs, which are specified in the physics feature calling the external material where the Inelastic residual strain socket is selected.
The General H(B) relation socket implements a generalization of an HB curve. It computes an updated magnetic field corresponding to an updated magnetic flux density, given the magnetic field and magnetic flux density at the previous converged step. A material property vector and a vector of stored states are passed as additional input. Typical implementations will use extra states to model hysteresis.
The magnetic flux densities oldB and
B and the magnetic field
H are passed as arrays of length 3. The Jacobian
Jac is a 3-by-3 matrix of partial derivatives of components of H (rows) with respect to components of B (columns); the matrix is stored in row-major order. Note that the primary output quantity H is declared as states, meaning that the argument on entry contains the previous converged step values.
The General B(H) relation socket implements a generalization of a BH curve. It computes an updated magnetic flux density corresponding to an updated magnetic field, given the magnetic field and magnetic flux density at the previous converged step. A material property vector and a vector of stored states are passed as additional input. Typical implementations will use extra states to model hysteresis.
The magnetic fields oldH and
H and the magnetic flux density
B are passed as arrays of length 3. The Jacobian
Jac is 3-by-3 matrix of partial derivatives of components of
B (rows) with respect to components of
H (columns); the matrix is stored in row-major order. Note that the primary output quantity
B is declared as states, meaning that the argument on entry contains the previous converged step values..