Skip to content

test_1052 VEP stability tests fail under PETSc 3.25 (variable-dt pure-VE blow-up), pass in level_1 gate #390

Description

@lmoresi

Summary

The three level_2, tier_a tests in tests/test_1052_VEP_stability_regression.py fail
in a local amr-dev worktree running PETSc 3.25.0 (numpy 2.4.6). They are not in
the level_1 and tier_a quick gate, so CI on development stays green — but they are
tier_a (hardened) and should pass.

Failing tests:

  • test_pure_ve_variable_dt_accuracymax|err| = 240.24 vs threshold 0.10
    (pure viscoelastic, variable timestep; a blow-up, not drift)
  • test_vep_yield_lock_fixed_dt
  • test_vep_snes_no_divergence_loading_through_yield

This is environment/PETSc, not code

  • The failure is byte-identical (max|err| = 240.24221587183746) on both the current
    development constitutive_models.py and a feature branch — swapping the source does
    not change it.
  • It persists through a clean build/ wipe (rm -rf build/lib.* build/bdist.* +
    rebuild), so it is not a stale-build artifact.
  • The pure-VE test returns before any yield / _combine_yield path, so recent yield-law
    work cannot be the cause.

Taken together: the failing behaviour is intrinsic to this worktree's environment
(PETSc 3.25.0), not to any code change on development.

Reproduce

pixi run -e amr-dev python -m pytest \
  "tests/test_1052_VEP_stability_regression.py::test_pure_ve_variable_dt_accuracy" -q
# -> AssertionError: max|err|=240.2422 (threshold 0.10; current head ~0.06)

Hypothesis / suggested investigation

  • Most likely a PETSc 3.24 → 3.25 behaviour change reaching the variable-dt VEP path
    (a SNES/line-search/TS default, or a constants[] / DS interaction), rather than a UW3
    regression. reference_env_numpy25_petsc4py_gmsh notes a PETSc3.24→3.25 uw-rebuild.
  • Confirm by running the same test against a PETSc 3.24 build; if it passes there, pin the
    changed PETSc default.
  • If it is a genuine variable-dt VEP accuracy regression, that is worth fixing on its own
    merits; if it is an env/threshold sensitivity, the test may need an env guard or a
    documented tolerance.

Notes

Discovered while root-causing an unrelated consistent-Newton Drucker–Prager Jacobian
recursion (fixed separately). These VEP-stability failures are pre-existing and orthogonal
to that work; filing for a dedicated session.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions