Skip to content

P92 creep equation reproduction: numerical closure, source discrepancy retained

The bounded reference is tools/p92_creep_equation_reference.py. It executes the as-received equations, unlike the earlier published-table arithmetic audit. It does not change a runtime material or calibrate parameters.

Source and explicit choices

The accepted manuscript for DOI 10.1016/j.tafmec.2019.102269 was inspected as rendered pages 7–15 and 18. Its SHA256 is fe858d8ed1c4173fcd89220010c1a977a8785ecac446b282ae8f29c7edcdb01b. Equations 14–21 and Table 2 supply the numerical parameters. The implemented scope is constant 130 MPa, 650 C, as-received material, initial damage zero, initial resistance 3 MPa, ductility 0.2, and initial lath width 0.375 micrometre. Zero initial damage is an explicit implementation assumption.

The source has unresolved transcription/definition issues:

  • Equation 9 includes applied stress in the backstress; equation 15 omits it. With dimensionless H-star in Table 2, only equation 9 has stress dimensions. The literal equation 15 remains a separately named diagnostic, not a candidate material recommended for use.
  • The K_L and A unit labels do not match equations 18 and 21. The reference uses their numerical micrometre convention, not a claimed SI material card.
  • The prose gives K_N=1/3, while the final table gives 0.3. The implementation uses the table, explicitly. Initial fitting prose also mentions H-star=0.45; the final table supplies 0.5.
  • The stated failure construction uses the last curve point with divergent creep rate, without specifying a finite numerical rate threshold. We report a declared D_N endpoint and study its limit, not an integration failure.

Integration without a false rupture event

For positive fixed stress, creep strain is monotonic. Using strain e as the independent variable gives these exact reductions (zero initial damage):

sigma0(e) = 6.2 - 3.2 exp(-2400 e / 6.2)
D_L(e) = e / (0.375 + e)
D_P(t) = 1 - (1 + 1.5e-5 t)^(-1/3)
D_N(e) = 1.5 e
dt/de = 1 / creep_rate(e, t)

The inverse hyperbolic sine rate is evaluated in logarithmic form, avoiding overflow as D_N tends to one. Benign underflow of the inverse rate means the remaining time contribution is negligible; it does not signal solver failure. This reduction is specific to the declared fixed-stress reference, not an arbitrary-history structural constitutive integration algorithm.

Measured results

Reading Time to D_N=1−1e−8
Stress-scaled equation 9 1188.0432345 h
Literal equation 15 diagnostic approximately 0.04733 h
Published Table 1 prediction 1146 h

The 3.67% difference from the published prediction remains unresolved. No coefficient was fitted to erase it. Agreement of numerical methods does not close this source discrepancy or establish experimental validation.

Tests independently integrate all five original state equations in physical time with Radau to D_N=0.3 and compare against the reduced equation. Exact state derivatives, initial conditions, DOP853/Radau, tighter tolerances and endpoint refinement are checked. At endpoints 0.15/0.24/0.3 the times are 1172.7345/1187.3871/1187.9839 h; endpoints 0.5 through near-one approach 1188.04323 h. Stopping the integration earlier is not used to force agreement.

The near-one numerical endpoint implies strain about 0.667 in this reduction, not the stated ductility parameter 0.2. At strain 0.2 the damage variable is 0.3 and elapsed time is already 1187.9839 h. Nearly identical endpoint times therefore do not establish the failure strain or a physical rupture criterion. Keep the numerical asymptote and source failure definition separate.

Run from the source root in fenicsx-env:

python tools/p92_creep_equation_reference.py
python -m pytest -q tests/test_p92_creep_equation_reference.py tests/test_p92_prior_damage_audit.py

The extended implementation passed 80 targeted checks including CI selection. Prior-fatigue prediction also needs the dislocation-density ratio, which the paper obtains from an external cyclic microstructure model rather than listing for every specimen. Do not silently set it to one or infer it from the validation lifetime. Next work should resolve the source definitions or bound their sensitivity before any runtime material integration. High-damage surface-crack failures remain part of the validation record.

Conditional prior-state screen and source boundary

The reference accepts explicit lath_um and density_ratio for conditional experiments. For these inputs the exact expressions become sigma0=6.2-3.2 exp(-2400 e/(6.2 density_ratio)), D_L=e/(lath_um+e) and D_N=(1.5+6.418(lath_um-0.375))e. They do not reconstruct the prior loading history. At lath width 0.766 micrometre, the endpoint time changes from 746.42 h at density ratio 1 to 896.69 h at 0.5 and 1039.52 h at 0.1. These are sensitivity points, not measured density values or validation predictions. No value is chosen by fitting the observed life.

The source's reference 32 is openly available: Barrett et al., International Journal of Fatigue 100 (2017), 388–406, DOI 10.1016/j.ijfatigue.2017.03.018. Its application/validation is P91 at 400–600 C. Copying its coefficients into P92 at 650 C is a transfer hypothesis, not a same-condition calibrated input. This is a concrete reason to retain the density input explicitly instead of quietly implementing a second large model.

A diagnostic trial of the manuscript's other printed numbers gives 1118.77 h using K_N=1/3 with H-star=0.5, and 433.69 h using K_N=0.3 with H-star=0.45. Neither has been substituted into the Table 2 baseline or selected by fit.

The conditional Radau test exposed negative trial time during error estimation at the initial point. The analytical state function now has its smooth mathematical extension inside the integrator, with no clipping; all accepted times must still be nonnegative and nondecreasing. Public physical state queries retain nonnegative-time checks. The failed trial was numerical, not evidence of a negative physical duration or material rupture.

Full-table conditional reconstruction

Although per-specimen densities are not tabulated, Figure 5 supplies predicted density curves at the relevant amplitudes and holds. They were rendered, visually identified and read independently of the lifetime labels. Coordinates, axis calibration and two-pixel reading perturbations are retained in evidence/creep/p92-prior-density-figure.json. These are author-model inputs, not new measured microstructure data or an independent validation dataset.

python -m tools.p92_prior_equation_screen

All 15 rows run with fixed Table 2 parameters and equation 9. Approximate computed/published-prediction times in hours are:

Table row Computed Published prediction
1 1188.04 1146
2 1046.43 1039
3 715.59 695
4 514.04 489
5 493.76 468
6 1096.72 1089
7 841.50 820
8 578.45 550
9 496.10 463
10 1183.09 1076
11 942.39 940
12 557.99 550
13 490.96 479
14 830.30 832
15 820.89 810

The largest discrepancy from the paper's prediction is approximately 9.95% (row 10); no tolerance is invented to declare reproduction complete. Rows 12 and 13 remain strongly nonconservative against observed 129 and 186 h. Reading sensitivity is reported for each row, not used as a statistical confidence interval or an excuse for source inconsistencies. The useful next physical question is crack-sensitive degradation in the failed regime, not another unconstrained fit of the same coefficients to these known outcomes.