jaxmat.materials.viscoplasticity module#

class AFInternalState[source]#

Bases: SmallStrainState

Internal state for the Armstrong-Frederick model

p: float = 0.0#

Cumulated plastic strain

epsp: SymmetricTensor2#

Plastic strain tensor

X: SymmetricTensor2#

Backstress tensors

class AmrstrongFrederickViscoplasticity[source]#

Bases: SmallStrainBehavior

Small-strain viscoplastic constitutive model with Armstrong-Frederick kinematic hardening, Voce isotropic hardening, and Norton-type viscous flow.

This model represents a rate-dependent J2 (von Mises) viscoplastic material combining isotropic and kinematic hardening mechanisms under small strain assumptions. The total strain is additively decomposed into elastic and viscoplastic parts, and the evolution of the backstress follows the nonlinear Armstrong-Frederick law.

Note

  • The model is suitable for cyclic loading and ratcheting simulations.

  • When the viscous exponent tends to infinity, the model approaches the rate-independent limit.

  • The formulation assumes small strains and isotropic material symmetry.

References

  • Armstrong, P. J., & Frederick, C. O. (1966).

    “A Mathematical Representation of the Multiaxial Bauschinger Effect for Hardening Materials.” CEGB Report RD/B/N731.

  • Norton, F. H. (1929).

    “The Creep of Steel at High Temperatures.” McGraw-Hill.

elasticity: LinearElasticIsotropic#

Linear isotropic elasticity defined by Young modulus and Poisson ratio.

yield_stress: Module#

Isotropic hardening law controlling the evolution of the yield surface size.

viscous_flow: NortonFlow#

Viscoplastic flow rule following Norton (power-law) viscosity formulation.

kinematic_hardening: ArmstrongFrederickHardening#

Kinematic hardening model defining the backstress evolution rate with dynamic recovery (Armstrong-Frederick formulation).

plastic_surface = vonMises()#

J2-type yield (or loading) surface based on the deviatoric stress invariant.

internal: AbstractVar[AbstractState] = AFInternalState(   p=f64[],   epsp=SymmetricTensor2(dim=3, rank=2, _tensor=f64[3,3]),   X=SymmetricTensor2(dim=3, rank=2, _tensor=f64[2,3,3]) )#

Internal variables associated with the accumulated plastic strain and backstress tensor.

constitutive_update(eps, state, dt)[source]#

Perform the constitutive update for a given small strain increment for a small-strain behavior.

This abstract method defines the interface for advancing the material state over a time increment based on the provided strain tensor. Implementations should return the updated stress tensor and internal variables, along with any auxiliary information required for consistent tangent computation or subsequent analysis.

Parameters:
  • eps (array_like) – Small strain tensor at the current integration point.

  • state (PyTree) – PyTree containing the current state variables (stress, strain and internal) of the material.

  • dt (float) – Time increment over which the update is performed.

Returns:

  • stress (array_like) – Updated Cauchy stress tensor.

  • new_state (PyTree) – Updated state variables after the constitutive update.

Notes

This method should be implemented by subclasses defining specific constitutive behaviors (elastic, plastic, viscoplastic, etc.).

class GenericInternalState[source]#

Bases: SmallStrainState

Internal state for the generic elastoviscoplastic model.

p: float = 0.0#

Cumulated plastic strain

epsp: SymmetricTensor2#

Plastic strain tensor

nX: int = 1#

Number of kinematic hardening mechanisms.

X: SymmetricTensor2#

Backstress tensors

class GenericViscoplasticity[source]#

Bases: SmallStrainBehavior

Small-strain viscoplastic constitutive model with generic yield surface, isotropic and kinematic hardening and viscoplastic flow rule.

elasticity: LinearElasticIsotropic#

Linear isotropic elasticity defined by Young modulus and Poisson ratio.

plastic_surface: AbstractPlasticSurface#

A generic plastic yield surface.

yield_stress: Module#

Isotropic hardening law controlling the evolution of the yield surface size.

viscous_flow: Module#

A generic viscoplastic flow rule.

kinematic_hardening: AbstractKinematicHardening#

A generic kinematic hardening law.

internal: AbstractState#

Internal variables associated with the accumulated plastic strain and backstress tensors.

constitutive_update(eps, state, dt)[source]#

Perform the constitutive update for a given small strain increment for a small-strain behavior.

This abstract method defines the interface for advancing the material state over a time increment based on the provided strain tensor. Implementations should return the updated stress tensor and internal variables, along with any auxiliary information required for consistent tangent computation or subsequent analysis.

Parameters:
  • eps (array_like) – Small strain tensor at the current integration point.

  • state (PyTree) – PyTree containing the current state variables (stress, strain and internal) of the material.

  • dt (float) – Time increment over which the update is performed.

Returns:

  • stress (array_like) – Updated Cauchy stress tensor.

  • new_state (PyTree) – Updated state variables after the constitutive update.

Notes

This method should be implemented by subclasses defining specific constitutive behaviors (elastic, plastic, viscoplastic, etc.).