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_accuracy — max|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.
Summary
The three
level_2, tier_atests intests/test_1052_VEP_stability_regression.pyfailin a local
amr-devworktree running PETSc 3.25.0 (numpy 2.4.6). They are not inthe
level_1 and tier_aquick gate, so CI ondevelopmentstays green — but they aretier_a(hardened) and should pass.Failing tests:
test_pure_ve_variable_dt_accuracy—max|err| = 240.24vs threshold0.10(pure viscoelastic, variable timestep; a blow-up, not drift)
test_vep_yield_lock_fixed_dttest_vep_snes_no_divergence_loading_through_yieldThis is environment/PETSc, not code
max|err| = 240.24221587183746) on both the currentdevelopmentconstitutive_models.pyand a feature branch — swapping the source doesnot change it.
build/wipe (rm -rf build/lib.* build/bdist.*+rebuild), so it is not a stale-build artifact.
_combine_yieldpath, so recent yield-lawwork 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
Hypothesis / suggested investigation
(a SNES/line-search/TS default, or a
constants[]/ DS interaction), rather than a UW3regression.
reference_env_numpy25_petsc4py_gmshnotes aPETSc3.24→3.25 uw-rebuild.changed PETSc default.
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.