Sign in ↗

Documentation

How we validate

The physical models behind Phases, how each was calibrated, the data they were checked against, and how far you can take the numbers.

You are about to put a predicted hardness or a nugget diameter into a report, and you need to know what stands behind it. This page describes the models Phases actually evaluates, the data each was fitted and checked against, and where the validation record is written down.

Phases runs numerical solvers, not language-model estimates. The physics lives in compiled code and in per-grade material cards; the chat agent only configures runs and reports what came back.

The three model layers#

Every simulator in the product — heat treatment, CCT, resistance spot welding and V-Gleeble — sits on the same transformation model. What differs is the thermal history driving it.

Phase transformation kinetics. The model is a Kirkaldy-Venugopalan type rate equation, chosen over pure JMAK because it separates the transformation rate into physically meaningful factors rather than one fitted curve. For the diffusion-controlled phases (ferrite, pearlite, bainite):

dx/dt = FG x FC x FT x FXMICRO(xp, NX) x FE

FG      = 2^(0.1 x ASTM)                  grain size
FC      = 1 (inactive)                    alloy factor, not evaluated
FT      = |Tcrit - T|^NT x exp(-Q/(R x T))  temperature driving force
FXMICRO = xp^(NX(1-xp)) x (1-xp)^(NX x xp)  JMAK nucleation geometry
FE      = 1 / (1 - eps)^2                 strain acceleration

One line in that block deserves more than a label. The Kirkaldy alloy factor FC is identically 1.0 in the shipped solver — micro.f sets the constant to 1.0 before the phase loop, and fccalc.f returns 1.0 on every branch regardless of what it is given. Composition therefore does not change how fast a diffusional transformation proceeds. Chemistry reaches a result by two other routes: the card's critical-temperature composition offsets, which move where transformation starts, and the hardness correlation, which reads composition directly. This is the single largest limitation in the transformation model and it is written up on known limits.

Martensite is not diffusion-controlled. It uses the athermal Koistinen-Marburger equation, dX_M = (1 - exp(-a x (Ms - T))) x X_available, with the coefficient a read from the material card. It is 1.300x10^-2 on the fourteen legacy DC, HC and DP reference decks. Other grades carry their own authored value — roughly 0.010 to 0.030 across the catalog, median about 0.0135. 22MnB5 ships 0.0245.

Critical temperatures. Ae3, Ae1, Bs and Ms are read from the exact material card as a phase-specific base plus that phase's composition-coefficient row. They therefore vary across cards and when a verified chemistry override changes the evaluated composition. These are kinetic card predictions, not measured equilibrium temperatures independently calibrated for every grade; bainite start remains implicit in its card curve.

Martensite start is the one temperature that is partly composition-aware, and it is worth being precise about how. Each card carries a baseline Ms on its martensite critical-temperature curve, and that curve is what the Koistinen-Marburger solver reads. There is no single shared baseline. Counting the 2,060 catalog cards: 2,039 carry 561 °C, fourteen legacy DC/HC/DP reference cards carry 550 °C, one martensitic stainless card carries 462 °C, and six cards that are not kinetics-ready carry no martensite curve at all. The twenty reference decks packaged with the solver itself split differently — 550 °C on all fifteen non-boron decks, EN13261 included, and 561 °C on the five boron decks — so quote the card set you mean when you compare these figures. On top of whichever baseline the card holds, its composition-correction row applies per-grade offsets. Those produce effective values such as 532 °C for DC06, 499 °C for DC04 and 459 °C for DP600 from the 550 °C decks, and about 410 °C for 22MnB5 — a 561 °C baseline less roughly 150 °C of composition offset. Two 22MnB5 decks ship and they differ slightly: the catalog card resolves to 412.7 °C and the RSW/V-Gleeble property deck to 407.9 °C, because their authored chemistries are not identical. The correction is real but partial: it does not rewrite the baseline, so Ms is not a per-chemistry calculation.

The reference correlation used as a check is Andrews (1965), Ms = 539 - 423C - 30.4Mn - 17.7Ni - 12.1Cr - 7.5Mo, which spans roughly 323 °C to 523 °C across the seventeen reference grades it was tabulated for. Applied to the full catalog the same expression runs far wider and goes negative on cast irons and high-alloy grades, where it is outside its own fitted domain. Read it as a sanity check on the reference set, not as a catalog-wide Ms model.

Hardness. Vickers hardness is computed in Fortran from the phase fractions, the composition and the local cooling rate, using a hybrid of three published correlations — Maynier (1978), Kasuya-Yurioka (1993) and Krauss (2005). Martensite and bainite each branch at 0.12 wt% carbon; ferrite and pearlite share one relation. The cooling rate is converted to °C/h, floored at 1 °C/h, and entered as log10(Vr).

The constituents are then mixed: HV = (x_F + x_P)HV_FP + x_B HV_B + x_M HV_M. Austenite contributes nothing to this rule. Floors are enforced at 60 HV for ferrite+pearlite, 150 HV for bainite and 50 HV for the total. The equations themselves, with their stated validity ranges and sources, are set out on hardness validation.

What was calibrated, and what was not#

The April 2026 calibration pass made six changes. Three were data repairs to the material cards: composition curves written in the wrong column widths, so the parser read every element as zero; per-grade room-temperature ferrite and pearlite baselines; and corrupted bainite and martensite equilibrium flags on the DP grades.

Two were kinetics parameters. The ferrite activation energy dropped from 1.208x10^5 to 1.000x10^5 J/mol and the pearlite activation energy from 1.500x10^5 to 1.050x10^5 J/mol. Both original values had been calibrated for 22MnB5 boron steel and incorrectly shared with every other grade, suppressing ferrite nucleation by roughly 300x. The sixth change added the Krauss branch below 0.12 %C, because Kasuya-Yurioka returns 294 HV at zero carbon.

That pass ran on a fixed set of reference decks, and its "deliberately unchanged" list belongs to those decks rather than to the product as a whole. Fourteen catalog cards — DC01, DC03, DC04, DC05, DC06, HC260LA, HC300LA, HC340LA, HC380LA, HC420LA, DP450, DP500, DP600 and DP780 — plus the simulator-only EN13261 deck share one constant set: bainite activation energy 1.500x10^5 J/mol, Koistinen-Marburger coefficient 1.300x10^-2, ASTM grain size 7.200, JMAK exponent 0.7312 and temperature exponent 2.0733. Those fifteen decks therefore all inherit the same hardenability, which is a real constraint on accuracy and is listed in known limits.

The remaining ~2,046 catalog cards carry per-grade authored values instead. ASTM grain size spans 4.89 to 13.00 across them, with about 1,880 distinct values, and the Koistinen-Marburger coefficient likewise varies per grade. Every boron press-hardening deck carries its own values: 22MnB5, 20MnB8 and 29MnB7 in the catalog, plus the solver-local 20MnB5 and 25MnB5. Per-grade authored constants are not the same thing as per-grade experimental CCT calibration, which is still incomplete across the catalog.

The validation record#

Hold one thing in mind while reading what follows. The built-in catalog holds about 2,060 grades, and the published validation record covers a few dozen of them. What that means for a grade outside the record is spelled out on known limits.

Hardness — 25 of 25 literature cases pass. Twenty-five cases covering 14 grades were run at two cooling rates, 0.01 °C/s (expect ferrite + pearlite) and 100 °C/s (expect martensite), and compared against published ranges from EN standards, OEM datasheets and academic literature. The criterion was model HV inside the published range, or within 15 % for a near miss. Result: 19 inside range, 6 near miss, 0 failures. Both rates are endpoints, so the pass rate says nothing about the intermediate band. The full per-case table, and what the grid missed, are on hardness validation.

The recorded conclusion is worth stating plainly: the hardness equations were already well calibrated across 0.02–0.40 %C. The pre-tuning mismatches came from the transformation model returning wrong phase fractions, not from the hardness formulas.

Spot welding — nugget diameter against a standard. RSW is calibrated against the AWS D8.1M / DVS 2902 acceptance criterion, d = 5 x sqrt(t) mm minimum with 5.5 x sqrt(t) as the nominal qualification target, where t is the thinner sheet. Twenty-two calibrated templates ship: 17 symmetric single-grade cases and 5 dissimilar joints. In the thermal-only set all 17 symmetric cases ran without error with nuggets within one mesh step of target, and the 5 dissimilar cases are logged as 5 of 5 in range — though two of them measure just above the top of their band in the report's own per-case table. With the experimental mechanical path enabled, 9 of the 17 land inside the band and the other 8 sit within one mesh step of it. Details and caveats are on RSW validation.

Cross-mode literature comparison. A separate V&V run on 2026-04-06 executed all 17 reference grades in 7 simulation modes — 119 simulations — against published data. Martensite-start and bainite-start temperatures came within about ±20 °C for most grades: DC04 Ms 499 °C against 480–510, DP780 Ms 430 °C against 400–430, and 22MnB5 Ms 397 °C against 375–410. That 22MnB5 reading is a snapshot of the deck as it stood in April 2026, when the baseline was 550 °C; the cards that ship today give 408–413 °C. Still inside the published band, but a reminder that a validation figure belongs to the card it was run on, and that any figure quoted from a dated report should be re-read off the current card before it goes into a document. Isothermal holds at 700 °C were rated good or reasonable for every grade checked, and 22MnB5 hot stamping is recorded as correctly predicting roughly 500 HV martensite. Satoh restrained-cooling peak stresses were rated good or acceptable, with DP780 and EN13261 sitting at or just above the top of their expected ranges. The same run recorded several of the known limits, including systematically high flow stress above 1000 °C and over-predicted martensite in low-carbon weld HAZ cycles.

How to read a Phases number#

Four rules the product applies to itself, and that you should apply when quoting a result:

  • Predicted hardness is bulk, mixture hardness. It is a rule-of-mixtures value over the phase fractions. It is not the intrinsic hardness of an individual phase.
  • Imposed inputs are not solver findings. A CCT run starts from 100 % austenite because the run imposes it, not because the model proved austenitization completed.
  • A cooling rate is not a quench medium. Phases does not model water, oil or air quenching. It models the rate you gave it.
  • The nearest-grade distance badge is not an accuracy score. It measures how close a chemistry sits to a catalog template. See your own chemistry.

The standing caveat#

Do not present Phases output as validated engineering data without review. These are numerical simulations and, like any model, they depend on input assumptions and on the quality of the material data behind them. Where the record shows a model is off — and it does in several documented places — that is on known limits, which is the page to read before a decision, not after.