Material model API

This page documents the constructors of the bundled material models together with the PlaneStrain and PlaneStress wrappers that embed a 3D model into a 2D analysis. The assembler, the load handler, the material interface, and the remaining public functions are on the General API page.


Material models

Each material model is a concrete AbstractMaterial subtype whose constructor signature is documented on its dedicated page within the Material models section. The grouped autodocs below provide the associated parameter docstrings.

FerriteSolidMechanics.Hooke2D — Type
Hooke2D(E, nu; plane_stress=false)

Two-dimensional isotropic linear elastic material. The stress is σ = C ⊡ ε with a constant tangent C, so the assembler treats Hooke2D cells as linear.

Parameters

  • E – Young's modulus; higher values stiffen the elastic response
  • nu – Poisson's ratio; controls lateral contraction under stretch

Keyword arguments

  • plane_stress – selects the plane stress constitutive matrix (σ_zz = 0); the default false selects plane strain (ε_zz = 0)
source
FerriteSolidMechanics.ArrudaBoyce — Type
ArrudaBoyce(μ, κ, N; tangent=:AT)

Compressible Arruda–Boyce eight-chain hyperelastic material.

Parameters

  • μ – Network shear modulus; scales the network stress contribution
  • κ – Bulk modulus; parameterizes the volumetric response
  • N – Limiting chain extensibility, the number of Kuhn segments per chain; larger values push locking to higher stretches

Keyword arguments

  • tangent – chooses how the model forms ∂P/∂F: :AT (default) builds it from the analytic second Piola–Kirchhoff stress and its derivative, :AD obtains it by automatic differentiation of the PK1 map

References

  • E. M. Arruda, M. C. Boyce. A three-dimensional constitutive model for the large stretch behavior of rubber elastic materials. Journal of the Mechanics and Physics of Solids 41(2) (1993) 389-412. https://doi.org/10.1016/0022-5096(93)90013-6
source
FerriteSolidMechanics.MooneyRivlin — Type
MooneyRivlin(C10, C01, κ; tangent=:AD)

Compressible Mooney–Rivlin hyperelastic material. The isochoric response is linear in the first two modified invariants.

Parameters

  • C10 – Coefficient of the first modified invariant
  • C01 – Coefficient of the second modified invariant
  • κ – Bulk modulus; parameterizes the volumetric response

Keyword arguments

  • tangent – chooses how the model forms ∂P/∂F: :AD (default) obtains it by automatic differentiation of the PK1 map, :AT builds it from the analytic second Piola–Kirchhoff stress and its derivative

References

  • M. Mooney. A theory of large elastic deformation. Journal of Applied Physics 11(9) (1940) 582-592. https://doi.org/10.1063/1.1712836
  • R. S. Rivlin. Large elastic deformations of isotropic materials. IV. further developments of the general theory. Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences 241(835) (1948) 379-397. https://doi.org/10.1098/rsta.1948.0024
source
FerriteSolidMechanics.Ogden — Type
Ogden(μ, α, κ)

Compressible Ogden hyperelastic material with an arbitrary number of isochoric terms. The stress and tangent are analytic, in spectral form. Scalar μ and α values are accepted as a one-term shorthand. The combined small-strain shear modulus 0.5 * sum(μ .* α) must be positive.

Parameters

  • μ – Vector holding one coefficient per term, in the μ / α Ogden convention
  • α – Vector holding one nonzero principal stretch exponent per term
  • κ – Bulk modulus; parameterizes the volumetric response

References

  • R. W. Ogden. Large deformation isotropic elasticity – on the correlation of theory and experiment for incompressible rubberlike solids. Proceedings of the Royal Society of London. Series A, Mathematical and Physical Sciences 326(1567) (1972) 565-584. https://doi.org/10.1098/rspa.1972.0026
  • R. W. Ogden. Non-Linear Elastic Deformations. Ellis Horwood, 1984.
source
FerriteSolidMechanics.J2Plasticity — Type
J2Plasticity(E, nu, sigma0, H)

Small-strain von Mises plasticity with isotropic hardening.

Parameters

  • E – Young's modulus; higher values stiffen the elastic response
  • nu – Poisson's ratio; controls lateral contraction under stretch
  • sigma0 – Initial yield limit; higher values delay the onset of plasticity
  • H – Linear hardening modulus; larger values raise the post-yield stiffness

References

source
FerriteSolidMechanics.VEPD_Detrez2010 — Type
VEPD_Detrez2010(E, ν, R0, Q, b, α, β, n_ab, μ_ab, G, τ; plastic_update=:end_step, maxwell_update=:closed_form_cv)

Viscoelastic-plastic-damage material model after Detrez. Combines crystalline elasticity, network hyperelasticity, selectable Maxwell-branch updates, and isotropic hardening with damage.

Parameters

  • E – Young's modulus of the crystalline phase; higher values stiffen the elastic stress response
  • ν – Poisson's ratio of the crystalline phase; controls lateral contraction under stretch
  • R0 – Initial yield stress; higher values delay the onset of plasticity
  • Q – Saturation modulus; higher values raise the asymptotic hardening limit
  • b – Saturation exponent; larger values cause the yield stress to plateau at smaller plastic strains
  • α – Damage scaling factor; sets the asymptotic damage level (value is capped at 1)
  • β – Damage exponent; larger values accelerate damage accumulation with plastic strain
  • n_ab – Number of Kuhn segments per Arruda–Boyce chain; larger values soften the network at moderate stretches and push locking to higher stretches
  • μ_ab – Network shear modulus; scales the Arruda–Boyce network stress contribution
  • G – Vector of per-Maxwell-branch shear moduli; higher values raise the branch elastic stiffness
  • τ – Vector of per-Maxwell-branch relaxation times; larger values delay branch equilibration

Keyword arguments

  • plastic_update – :end_step applies one return map at the end of the global step; :path_substepped applies the same return map over 8 deformation-path subincrements
  • maxwell_update – :closed_form_cv updates the viscous right Cauchy-Green branch state Cv in closed form; :objective_rate advances branch Cauchy stresses with a 16-substep objective rate update

References

  • F. Detrez, S. Cantournet, R. Séguéla. A constitutive model for semi-crystalline polymer deformation involving lamellar fragmentation. Comptes Rendus Mécanique 338(12) (2010) 681–687. https://doi.org/10.1016/j.crme.2010.10.008

The code-level reference for this implementation is an unpublished C routine that was kindly provided by Fabrice Detrez.

source
FerriteSolidMechanics.VEVP_Zhao2021_AD — Type
VEVP_Zhao2021_AD(μE, κ, NV, β, α, μVe, μVN, τ̂₁, τ̂N, m₁, mN, τcut₁, τcutN, μV;
           dt_scale=1.0)

Viscoelastic-viscoplastic material model after Zhao with automatic differentiation for the algorithmic tangent. Uses multiple inelastic modules and a semi-implicit internal-variable update.

Note: not interchangeable with VEVP_Zhao2021_AT

Uses the same parameterization and semi-implicit update structure as VEVP_Zhao2021_AT, but builds the final PK2 stress from a different basis. This struct uses the converged SVⱼ (new μVₖ₊₁, new Cᵢₖ₊₁), so the returned stress is colocated with the AD tangent. VEVP_Zhao2021_AT uses the trial SV_trial{j} (old μVₖ, old Cᵢₖ_inv), matching the CAPRICCIO/Zhao analytical-tangent path. The AD path also applies small determinant and principal stretch floors. The same F, dt, parameters, and history state therefore give different PK2 stresses from the two models.

Parameters

NV must be at least 2 as branch parameters are interpolated between the branch-1 and branch-N end points.

  • μE – Elastic branch shear modulus
  • κ – Bulk modulus
  • NV – Number of inelastic modules (requires NV ≥ 2; module parameters are interpolated between the module-1 and module-NV endpoints)
  • β – Yield-threshold softening coefficient; larger values drop the threshold sooner
  • α – Inelastic shear modulus evolution rate; higher values approach μVe faster
  • μVe – Target total inelastic shear modulus approached by the μV evolution
  • μVN – Module-NV shear modulus endpoint; near zero gives uniform modules
  • τ̂₁, τ̂N – Flow-resistance stress-scale endpoints in the power-flow law; larger values reduce the viscoplastic flow rate
  • m₁, mN – Stress exponents in the power-flow law; larger values increase the nonlinearity of the viscoplastic rate
  • τcut₁, τcutN – Initial yield thresholds for the modules; subtracted from the trial-stress ratio before the power-law ramp
  • μV – Initial total inelastic shear modulus

Keyword arguments

  • dt_scale – multiplies dt inside the constitutive update so the time step is expressed in the unit used during parameter calibration. Default 1.0 leaves dt unscaled. When the calibration unit and the driver unit differ, set it to the conversion factor: parameters calibrated in seconds with a driver passing dt in nanoseconds give dt_scale = 1e-9.

References

  • W. Zhao, M. Ries, P. Steinmann, S. Pfaller. A viscoelastic-viscoplastic constitutive model for glassy polymers informed by molecular dynamics simulations. International Journal of Solids and Structures 226–227 (2021) 111071. https://doi.org/10.1016/j.ijsolstr.2021.111071
  • W. Zhao, R. Xiao, S. Pfaller, P. Steinmann. Modeling strain hardening in glassy polymers based on the microscopic mechanisms revealed by molecular dynamic simulations. Journal of the Mechanics and Physics of Solids 206 (2026) 106384. https://doi.org/10.1016/j.jmps.2025.106384

The implementation-level reference for this code path is part of the CAPRICCIO FE–MD coupling tool. This file is a translated/adapted Julia implementation with package-specific changes and explicit permission for MIT distribution in FerriteSolidMechanics.jl: Pfaller, S., Ries, M., Zhao, W., Bauer, C., Weber, F., & Laubert, L. CAPRICCIO - Tool to run concurrent Finite Element-Molecular Dynamics Simulations (Version 2.0.1), Zenodo (2024). https://doi.org/10.5281/zenodo.12606758

source
FerriteSolidMechanics.VEVP_Zhao2021_AT — Type
VEVP_Zhao2021_AT(μE, κ, NV, β, α, μVe, μVN, τ̂₁, τ̂N, m₁, mN, τcut₁, τcutN, μV;
           dt_scale=1.0)

Viscoelastic-viscoplastic material model after Zhao with an assemble-time constitutive update. Provides an analytically derived stiffness matrix for finite-strain problems.

Note: not interchangeable with VEVP_Zhao2021_AD

Uses the same parameterization and semi-implicit update structure as VEVP_Zhao2021_AD, but builds the final PK2 stress from a different basis. This struct uses the trial SV_trial{j} (old μVₖ, old Cᵢₖ_inv) with a hand-derived analytical tangent. VEVP_Zhao2021_AD uses the converged SVⱼ (new μVₖ₊₁, new Cᵢₖ₊₁) and obtains the tangent by AD. The same F, dt, parameters, and history state therefore give different PK2 stresses from the two models.

An archived Matrix-storage translation of the CAPRICCIO/Zhao routines is preserved as FerriteSolidMechanics.Experimental.VEVP_Zhao2021_AT_Matlab.

Parameters

NV must be at least 2 as branch parameters are interpolated between the branch-1 and branch-N end points.

  • μE – Elastic branch shear modulus
  • κ – Bulk modulus
  • NV – Number of inelastic modules (requires NV ≥ 2; module parameters are interpolated between the module-1 and module-NV endpoints)
  • β – Yield-threshold softening coefficient; larger values drop the threshold sooner
  • α – Inelastic shear modulus evolution rate; higher values approach μVe faster
  • μVe – Target total inelastic shear modulus approached by the μV evolution
  • μVN – Module-NV shear modulus endpoint; near zero gives uniform modules
  • τ̂₁, τ̂N – Flow-resistance stress-scale endpoints in the power-flow law; larger values reduce the viscoplastic flow rate
  • m₁, mN – Stress exponents in the power-flow law; larger values increase the nonlinearity of the viscoplastic rate
  • τcut₁, τcutN – Initial yield thresholds for the modules; subtracted from the trial-stress ratio before the power-law ramp
  • μV – Initial total inelastic shear modulus

Keyword arguments

  • dt_scale – multiplies dt inside the constitutive update so the time step is expressed in the unit used during parameter calibration. Default 1.0 leaves dt unscaled. When the calibration unit and the driver unit differ, set it to the conversion factor: parameters calibrated in seconds with a driver passing dt in nanoseconds give dt_scale = 1e-9.

References

  • W. Zhao, M. Ries, P. Steinmann, S. Pfaller. A viscoelastic-viscoplastic constitutive model for glassy polymers informed by molecular dynamics simulations. International Journal of Solids and Structures 226-227 (2021) 111071. https://doi.org/10.1016/j.ijsolstr.2021.111071
  • W. Zhao, R. Xiao, S. Pfaller, P. Steinmann. Modeling strain hardening in glassy polymers based on the microscopic mechanisms revealed by molecular dynamic simulations. Journal of the Mechanics and Physics of Solids 206 (2026) 106384. https://doi.org/10.1016/j.jmps.2025.106384

The implementation-level reference for this code path is part of the CAPRICCIO FE–MD coupling tool. This file is a translated/adapted Julia implementation with package-specific changes and explicit permission for MIT distribution in FerriteSolidMechanics.jl: Pfaller, S., Ries, M., Zhao, W., Bauer, C., Weber, F., & Laubert, L. CAPRICCIO - Tool to run concurrent Finite Element-Molecular Dynamics Simulations (Version 2.0.1), Zenodo (2024). https://doi.org/10.5281/zenodo.12606758

source
FerriteSolidMechanics.VEVP_MOAMMM — Type
VEVP_MOAMMM(order, KK_inf, GG_inf, alpha, nu_p, eta, p_exp,
              sigmac0, hc1, hc2, hcexp,
              sigmat0, ht1, ht2, htexp,
              hb0, hb1, hb2,
              KK, k, GG, g)

Viscoelastic-viscoplastic material model from the MOAMMM project with automatic differentiation. Combines a logarithmic strain viscoelastic update, a Drucker–Prager yield surface, isotropic hardening through separate compression and tension yield stress evolution, and kinematic hardening.

Parameters

  • order – Polynomial order for the logarithm/exponential approximations
  • KK_inf – Equilibrium bulk modulus; long-term volumetric stiffness
  • GG_inf – Equilibrium shear modulus; long-term deviatoric stiffness
  • alpha – Drucker–Prager yield exponent; 1 → linear Drucker–Prager, 2 → quadratic
  • nu_p – Plastic Poisson's ratio; controls volumetric–deviatoric coupling under plastic flow
  • eta – Viscoplastic viscosity; higher values delay rate-dependent flow
  • p_exp – Viscoplastic exponent; controls stress sensitivity of the viscoplastic rate
  • sigmac0 – Initial compression yield limit; higher values delay compressive yield
  • hc1 – Linear compression yield stress growth coefficient
  • hc2 – Saturation compression yield stress increment
  • hcexp – Compression yield stress saturation exponent; at γ = 1/h{c,exp}, the factor (1 − exp(−h{c,exp}·γ)) ≈ 0.63
  • sigmat0 – Initial tension yield limit; higher values delay tensile yield
  • ht1 – Linear tension yield stress growth coefficient
  • ht2 – Saturation tension yield stress increment
  • htexp – Tension yield stress saturation exponent; at γ = 1/h{t,exp}, the factor (1 − exp(−h{t,exp}·γ)) ≈ 0.63
  • hb0 – Constant term of the kinematic hardening polynomial that scales the total backstress rate
  • hb1 – Linear term of the kinematic hardening polynomial; scales with plastic strain
  • hb2 – Quadratic term of the kinematic hardening polynomial; scales with the square of plastic strain
  • KK – Vector of per-branch bulk moduli; raise the volumetric branch stiffness
  • k – Vector of per-branch volumetric relaxation times; larger values delay volumetric equilibration
  • GG – Vector of per-branch shear moduli; raise the deviatoric branch stiffness
  • g – Vector of per-branch deviatoric relaxation times; larger values delay deviatoric equilibration

References

  • V.-D. Nguyen, F. Lani, T. Pardoen, X. P. Morelle, L. Noels. A large strain hyperelastic viscoelastic-viscoplastic-damage constitutive model based on a multi-mechanism non-local damage continuum for amorphous glassy polymers. International Journal of Solids and Structures 96 (2016) 192–216. https://doi.org/10.1016/j.ijsolstr.2016.06.008

The code-level reference for this implementation is the Fortran UMAT umat.f from the moammmPublic code repository.

Note

The Nguyen et al. (2016) paper describes a full hyperelastic–viscoelastic–viscoplastic model with damage and softening. The translated Fortran UMAT (umat.f in the moammmPublic repository) implements only the damage-free, no-softening subset of that model. This Julia port implements the same subset.

source

Dimensionality wrappers

The PlaneStrain and PlaneStress wrappers turn a 3D material model into a 2D one, with the mathematical details explained on the Wrappers page.

FerriteSolidMechanics.PlaneStrain — Type
PlaneStrain(model)

Wrap a 3D material model for a 2D plane strain analysis, imposing ε₃₃ = ε₁₃ = ε₂₃ = 0. Alias for Reduced with the Prescribed closure.

The wrapper embeds the 2D strain measure with F̄₃₃ = 1 or ε̄₃₃ = 0 depending on kinematics, and restricts the 3D tangent to its in-plane part. is_linear is forwarded, so e.g. PlaneStrain(Hooke(E, ν)) is preassembled into the static linear stiffness and reproduces Hooke2D bitwise.

source
FerriteSolidMechanics.PlaneStress — Type
PlaneStress(model; tol=1e-10, maxiter=20)

Wrap a 3D material model for a 2D plane stress analysis, imposing σ₃₃ = 0. Alias for Reduced with the ZeroOutOfPlaneStress closure.

A scalar Newton iteration solves the out-of-plane unknown locally at each quadrature point: F̄₃₃ from P̄₃₃ = 0 for a FiniteStrain model, ε̄₃₃ from σ̄₃₃ = 0 for a SmallStrain one. The in-plane tangent follows by static condensation of that constraint.

For a linear small-strain model the constraint is affine, so the solve converges in one step and the condensed tangent is constant. is_linear is forwarded in that case and PlaneStress(Hooke(E, ν)) is preassembled, matching Hooke2D(E, ν; plane_stress=true).

Keyword arguments

  • tol – Residual tolerance on the out-of-plane stress, relative to the stress scale max(norm(stress), 1)
  • maxiter – Maximum number of local Newton iterations
source