Skip to content

Static recovery: mechanism discriminator before material admission

Decision and scope

Test whether time-dependent strength loss can reactivate plastic flow during a strain hold. This is a synthetic uniaxial tensile material-point experiment, not a new FEM solver, a fitted P92 law or a life prediction. Keep it under tools/, outside the runtime constitutive catalogue.

NEML's ChabocheVoceRecovery description distinguishes flow-driven hardening from static recovery. Its stress signs and backstress normalization differ from common conventions; no parameters or tensor implementation are copied here. The discriminator uses a simpler, explicitly stated positive tensile strength convention.

Model and exact solution

Let sigma = E (epsilon - p), yield sigma <= Y + R, and R_dot = H p_dot - k R, with positive E, H, Y and nonnegative k. Initial tensile stress satisfies Y < sigma0 < Y + R0. Hold total strain. Before plastic activation, stress is constant and R = R0 exp(-k t). Activation occurs at ta = log(R0 / (sigma0 - Y)) / k. After activation, consistency gives R_dot = -k E R / (E + H), sigma = Y + R, and p - p0 = (sigma0 - sigma) / E. For k=0, no hold evolution occurs.

With stored energy psi = sigma^2/(2E) + R^2/(2H), the dissipation rate is Y p_dot + k R^2/H >= 0 on the tensile branch. This is a model-specific thermodynamic statement, not a general creep-fatigue energy law.

Numerical experiment and admission gates

Backward Euler eliminates R_new = (R_old + H delta_p)/(1 + k dt). Use the elastic predictor if its yield function is nonpositive; otherwise solve the scalar consistency equation exactly. Compare time refinements with the independent closed-form hold, and verify fixed-old-state tangent, yield admissibility, nonnegative plastic increments and untouched input state.

This isolates a necessary mechanism distinction: strength may decay while stress remains unchanged; stress relaxation begins only after yield reactivation. Static recovery is therefore not automatically a successful explanation of the P92 low-stress hold. Real-data admission still needs full paths, temperature conventions, multiaxial formulation, calibrated parameters and a new independent validation condition. Do not retune on SLR and call it unseen validation.

Executed evidence

python tools/static_recovery_discriminator.py uses E=200000, H=10000, Y=100, initial stress=150, initial strength=100 and k=0.02 in consistent stress/time units. Exact activation is 34.657359. Maximum stress errors for 100/200/400/800 increments are 0.347572/0.174461/0.087414/0.043750; halving time increments halves the error. Twelve tests pass, including fixed-old-state tangents, inactive holds, energy decay, invalid time inputs, initially active states and scalar exact queries. No experimental fit occurs.

Public material candidate for the next gate

Zhang et al., Metals 10 (2020) 307, provide a modified unified viscoplastic model, parameters at 600 and 650 C, and tensile-dwell comparisons. This is a useful next reproduction source, not a parameter card for the BAM 620 C dataset. Its nonlinear kinematic and isotropic recovery/softening terms exceed this simple discriminator.

Before implementation, retrieve and check the complete equations and loading waveform, pin the parameter transcription, and establish quantitative reference data or digitization uncertainty. Then compare independent time integrators, material tangents and structural reactions. A paper's reported agreement is not AgentFEM validation; interpolating its parameters to another material batch and temperature is a separate modelling assumption. Keep this as a proposed source until those checks are executable.

Published-equation reproduction, separate from validation

The version-2 PDF was subsequently downloaded and its equations (9)--(13), Table 4 and loading description checked against rendered pages 9--10 and page 3. SHA-256: c00a71167969edaab6a1b52641140cb5a3f241e82a90b74b464f293f46fcd604. tools/p92_published_recovery_reference.py transcribes the uniaxial equations and both parameter sets, without fitting or temperature interpolation. The startup is declared explicitly: zero state to positive half-range; successive tensile dwells are separated by compression and tension ramps.

The reference remains outside the runtime package. Radau and BDF agree on two-cycle histories at both temperatures and 60/600 s dwells within 0.001 MPa at the sampled hold stresses. Seven source/equation/integrator tests plus the twelve analytical discriminator tests pass. Two integrators sharing one rate function check integration, not independent transcription or experiment.

A 200-cycle, 600 C, 0.8% range, 60 s dwell run gives hold-end stresses 239.8993, 229.4435 and 186.0506 MPa at cycles 1, 20 and 200. Figures 11--14 were visually inspected, but no numerical experimental acceptance is claimed. The article does not supply a machine-readable comparison here; startup and plot digitization uncertainty must be resolved before declaring reproduction of its curves. The public reference now supplies a useful independent local target for a future material provider, not a substitute for that provider or for structural verification.

The same reference now includes a local backward-Euler corrector solving all five variables simultaneously. Its axial algorithmic tangent comes from the implicit-function Jacobian, not a frozen-history elastic modulus. Analytical rate derivatives pass centered differences in tensile, compressive and inactive states at both temperatures; evolved-state tangents pass independent strain differences. Hold-only and full loading/reversal/hold refinements converge toward the continuous reference. The published-model suite passes 18 tests (plus 12 separate analytical-discriminator tests). This is still a uniaxial local reference, not an unverified automatic 3D embedding.

Long-path integration check

The --published-campaign option runs the eight Table 2 conditions to the integer floor of their reported half-lives. Reported lives select duration; they are explicitly inputs, never predicted fatigue lives. Each integration method covered 3267 cycles, retaining the complete cycle-to-cycle state. Radau and BDF maximum sampled hold-stress differences were:

Temperature, C Strain range Dwell, s Cycles Maximum difference, MPa
600 0.008 60 651 1.968e-5
600 0.008 180 595 1.366e-5
600 0.008 600 337 1.171e-5
600 0.012 180 270 1.038e-5
650 0.008 60 435 1.505e-5
650 0.008 180 426 1.029e-5
650 0.008 600 312 8.825e-6
650 0.012 180 241 9.560e-6

Commands: run python tools/p92_published_recovery_reference.py --published-campaign --method Radau --output <new-json-path> and repeat with --method BDF and a different output path. Both use rtol=1e-8. The executed tool SHA-256 was 38d20a1530c9391f7a98c9e226de0c74928a820c6fb7b342a993539d0da51a55. Local totals were 166.54 s and 119.16 s respectively, not FEM performance evidence. Including new-file-only evidence output checks, 31 targeted tests pass. Experimental data comparison and structural integration remain open.