Skip to content

v6.0.0

Choose a tag to compare

@matnoel matnoel released this 01 Oct 13:43
· 194 commits to main since this release
  • Inelastic materials are written on a contract (breaking): a
    Models.InElastic._Behavior declares its Internals and writes Update(eps, z, dt)
    and Stress(eps, z) at one 3D point in jax.numpy; EasyFEA lifts them to every Gauss
    point, derives the tangent by jax.jacfwd, handles plane strain and plane stress, and
    commits the internal state at every converged Solve (Save_Iter only records it, so
    it can be skipped on some steps). Newton, Trace, Deviator, Von_Mises_stress
    help write one. A behavior takes only its elastic model, _Behavior(elastic): dim,
    planeStress and thickness are the model's, C its 3D stiffness even in 2D, and
    modifying the model rebuilds the kernel. External variables, such as a temperature,
    are declared as Externals and set with simu.Set_external(T=...).
  • Shipped behaviors: Plasticity(elastic, surface, hardening), Norton, Chaboche
    with N back-stresses, and Maxwell with N branches. Surfaces (Yield.VonMises,
    Hill, DruckerPrager) and hardening (IsotropicHardening.Perfect, Linear,
    Voce, Swift) are plain callables.
  • The numpy Behavior(dim, elastic, yieldSurface, hardening, kinematic, rate, branches)
    is removed, with KinematicHardening, ViscoPlastic (Perzyna is Norton with
    A = 1/eta) and ViscoElastic (breaking). Chaboche's back-stresses are one
    alpha of shape (N, 6), not alpha0, alpha1, ...; Simulations.InElastic no
    longer reports a free energy.
  • Inelastic behaviors need jax: pip install EasyFEA[jax]. The README lists the
    optional dependencies by extra (viz, io, jax).
  • Boundary surfaces of 3D meshes built with the OCC factory are oriented outward, so
    their normals may flip sign.
  • Fixed the weights of the 6-point triangle quadrature rule, truncated to about 14
    digits.

Full Changelog: v5.0.0...v6.0.0