Documentation
Virtual Gleeble tests
Run Gleeble-style dilatometry, weld-HAZ, hot deformation, Satoh and hot-stamping cycles on a steel grade without booking a physical machine.
Physical thermomechanical testing is slow and expensive. A Gleeble machine grips a small specimen, resistively heats it along a programmed temperature-time path, deforms it if the test calls for it, and records dimensions, force and displacement throughout. Booking one, machining specimens and running a matrix of conditions takes weeks. Most of the time what you actually wanted was a first answer: does this grade soften in the HAZ at this cooling time, where does the dilatation curve bend, roughly what flow stress should I expect at 800 °C.
V-Gleeble replicates those experiments numerically. You describe the cycle in chat, the solver runs real phase-transformation physics against your prescribed thermal (and where applicable mechanical) schedule, and you get back the traces a machine would have produced — dilatation, phase fractions, hardness and, for deformation modes, flow stress.
It is worth being clear about what this is not. V-Gleeble computes one uniform specimen state stepping through the schedule you asked for; there is no temperature gradient across the specimen and no geometry. It is not a substitute for a physical test when you need certified data, and several of its predictions are known to be off in documented, specific ways. Those are listed at the end of this page and in known limits.
Running one#
Say what you want in plain language, naming the grade:
Run a V-Gleeble weld-HAZ cycle on 22MnB5 and check for HAZ softening.
Run Gleeble CCT dilatometry on DC04 at 0.5, 1, 10, 50 and 100 °C/s from 860 °C.
The agent replies with a vgleeble-params configuration card summarizing the test mode, material and parameters it understood. Nothing runs until you confirm it. See parameter blocks for how these cards work, and how the conversation works for the general pattern.
In chat there is no default material. A bare "run a Gleeble test" gets a question back, not a run.
The simulator panel is not the same. Its Configure tab opens with 22MnB5 preselected in the material dropdown, and pressing "Run CCT Dilatometry" without touching that dropdown runs 22MnB5. The panel submits a fully populated configuration, so the chat-side missing-material check never fires and nothing asks you to confirm the grade. Check the material field before you press Run.
One phrase is genuinely ambiguous and the agent will ask about it. "CCT" can mean two different products here: a phase-boundary diagram (see CCT and TTT diagrams) or Gleeble-style dilatometry data. Say "CCT diagram" for the first and "Gleeble CCT" or "dilatometry" for the second.
The eight test modes#
The default mode is cct. Hyphens and underscores are both accepted (hot-tensile and hot_tensile are the same mode). An unrecognized mode is rejected before anything runs, with the supported list echoed back.
CCT dilatometry — cct#
Cools the specimen linearly from a start temperature to an end temperature, once per cooling rate in your list, starting from 100% austenite. Returns the dilatation-versus-temperature trace for every rate overlaid on one plot, the final phase fractions per rate as a grouped bar chart, and final hardness versus cooling rate on a log axis.
Reach for it when you want the measurement a dilatometer would produce — where the length change deviates, how sharp the martensite step is — rather than a boundary map.
Weld HAZ — haz#
The mode most people come here for. Heats from 20 °C at 300 °C/s to a peak temperature, holds 0.5 s at peak, then cools with an average rate of 300/dt8-5 °C/s through 800 °C and 500 °C down to 20 °C. dt85 is the cooling time from 800 °C to 500 °C in seconds — the standard weld-cooling descriptor.
Use it to compare grades or heat inputs for coarse-grained HAZ hardness and martensite fraction. Read the hardness caveat below before drawing conclusions on low-carbon grades.
Isothermal hold — isothermal#
Heats from 20 °C at 50 °C/s to the hold temperature and holds there for the requested time. There is no cooling segment. The cycle ends at temperature, so the reported final phase fractions are the phases present at the end of the hold, not a room-temperature microstructure.
Use it for isothermal transformation questions — how much ferrite and pearlite forms in 60 s at 700 °C.
Hot tensile — hot-tensile and hot compression — hot-compression#
Both run the same schedule, and only the test temperature, strain rate and maximum strain are yours to set. The specimen heats at 50 °C/s to the test temperature, soaks 5 s, deforms at the requested strain rate to the requested maximum true strain, holds 2 s at temperature, then cools at 20 °C/s back to 20 °C. The heating and cooling rates and the soak and hold durations are fixed.
The two modes are numerically identical. Same thermal path, the same positive true-strain history running from 0 to your maximum strain, the same flow-stress table lookup — so for the same temperature, rate and strain they return the same curve. Choosing hot-compression labels the run in the chat summary and in the stored run metadata; it does not switch to a compression-specific constitutive model, and no friction or barrelling correction is applied. The flow-stress plot does not carry the mode name — a hot-compression run on DC04 at 800 °C is titled Flow Stress — DC04 (T=800C), exactly as the tensile run would be. Only phases.png records it, as the (hot_compression) suffix in its title.
Returns a flow-stress-versus-true-strain curve alongside phases and hardness. These are the two modes with the strictest material requirement — see below.
Satoh test — satoh#
Heats from 20 °C at 10 °C/s to the peak temperature, then cools at 5 °C/s back to 20 °C with the specimen axially restrained. Below the restraint temperature (set equal to the peak) the solver converts the thermal strain that would have occurred if the specimen were free into elastic stress, using a temperature-dependent modulus, and caps the accumulated stress at the yield stress read from the flow-stress table. Neither the heating nor the cooling rate is adjustable.
That yield cap is read at a fixed strain and strain rate rather than at your test conditions, and unlike the two hot-deformation modes it is not domain-checked. Read the flow-stress bullet under "Limits worth knowing" below before you take a Satoh peak far above 1200 °C.
Use it for weld residual-stress reasoning: how much stress a restrained joint builds up as it cools, and where transformation plasticity relieves it.
Hot stamping — hot-stamping#
Takes no parameters at all. The cycle is fixed: austenitize at 950 °C reached in about 30 s, 300 s soak, 10 s transfer cooling at 5 °C/s (so the blank is at 900 °C when the die closes), then a 50 °C/s die quench to a 200 °C final temperature. Naming a temperature in your request changes nothing.
Use it as a standard press-hardening reference cycle for a boron grade.
Custom profile — custom#
Accepted, and a dead end on every surface. The tool has no thermal_profile or mechanical_profile parameter, so nothing you author as a profile reaches the solver. All four of these:
- a profile you describe in chat,
- a curve you draw in the simulator panel's Custom Profile temperature editor,
- the panel's shipped "Custom — Quench + Temper" template and its seven-point thermal profile,
- a run launched from a workspace material's Simulate surface,
execute the same fixed default: 860 °C held for 5 s, then cooled to 20 °C over the following 5 s. The panel puts both profile fields on the configuration it submits, but that configuration is turned back into a chat message and re-parsed into the same parameter-less tool, so both are dropped; the workspace-material path drops them earlier still, because neither the frontend adapter nor the backend's forwarded-parameter list includes them. Nothing warns you. If you need a specific schedule, express it through one of the parameterized modes instead.
Parameters, units and defaults#
| Parameter | Unit | Applies to | Default |
|---|---|---|---|
test_mode | — | all | cct |
material_id | — | all | active session material |
cooling_rates | °C/s | CCT | 0.5, 1, 10, 50, 100 |
start_temp_c | °C | CCT | 860 |
end_temp_c | °C | CCT | 20 |
test_temp_c | °C | hot tensile, hot compression | 800 |
strain_rate | 1/s | hot tensile, hot compression | 1.6 |
max_strain | true strain | hot tensile, hot compression | 0.2 |
peak_temp_c | °C | HAZ, Satoh | 1350 (HAZ), 900 (Satoh) |
dt85 | s | HAZ | 15 |
hold_temp_c | °C | isothermal | 700 |
hold_time | s | isothermal | 60 |
time_step | s | all | 1.0 maximum; automatically refined |
initial_phase_fractions | fractions | all | see below |
composition | wt% | all | the material's own chemistry |
The solver-wide operating envelope is 0.5–1000 °C/s cooling rate, 20–1200 °C deformation temperature, 0.001–500 s⁻¹ strain rate, 0.01–1.0 maximum strain, and 10,800 s total profile duration. The maximum-strain default is 0.2. These limits apply uniformly across the full material selector; old per-grade Marc-table ranges are source-data metadata, not form or admission limits. When an accepted temperature or strain rate lies outside the resolved table's source grid, the solver evaluates it by nearest-plane linear or log-linear extrapolation rather than changing the requested value to a table boundary.
time_step is a maximum requested step between 0.001 and 1 s, not a fixed integration interval. The solver independently reduces it for each thermal segment so temperature changes by no more than 10 °C per step; a constant-temperature segment uses at most 1 s. HAZ dt85 is limited to 0.3–600 s, which is the same 1000–0.5 °C/s cooling envelope expressed over the 800→500 °C interval, and its peak temperature must be at least 800 °C. The complete generated cycle—including heating, deformation, holds and cooling—must finish within three hours.
The simulator panel caps a CCT sweep at 10 cooling rates and validates every rate, the HAZ-derived rate, total isothermal duration, requested maximum timestep and custom-profile cooling segments before submission. The standalone solver repeats the operating-envelope validation immediately before execution, so direct callers and durable workers cannot bypass it.
The starting microstructure#
CCT alone forces 100% austenite as its starting state because that is the CCT experiment's imposed condition. Every non-CCT mode—including hot tensile, hot compression and hot stamping—starts from the exact material card's authored phase content unless you provide initial_phase_fractions. The thermal cycle may subsequently transform that state; the initial state is not fabricated from the mode name.
If the starting state matters—and for HAZ softening questions it usually does—set it explicitly rather than relying on the card default:
Run a V-Gleeble isothermal hold on EN13261 at 700 °C for 60 s, starting from 50% ferrite and 50% pearlite.
Accepted phase keys are case-insensitive and limited to ferrite, pearlite, bainite, martensite and austenite (the abbreviations fer, pear, bain, mart, aust also work). Keys outside that set are silently ignored. If the values do not sum to 1, they are renormalized.
Those same five phases are what you read back. The material cards themselves declare seven phase slots — the two extra ones are Ghost and Liquid, and they exist for above-solidus behaviour. You cannot set them through initial_phase_fractions, and they are never written to the CSV, the plots or the chat summary. On a cycle that reached melting the five reported fractions can therefore sum to less than 1. That is not the ordinary case: DC04's card declares a solidus of 1740 K, about 1467 °C, well above the 1350 °C default HAZ peak, so it takes a deliberately extreme peak temperature to get there.
The deformation-table requirement#
This is the single most common disappointment on this simulator, so it is worth stating plainly.
Every mode needs a base material card and transformation kinetics, and almost the whole built-in catalog has both — roughly 2,050 of about 2,060 built-in grades, plus your workspace materials and your own chemistry. That is the material scope of CCT dilatometry, weld HAZ, isothermal hold, hot stamping and custom.
The three deformation modes — hot tensile, hot compression and Satoh — are the narrow case. They additionally need a reviewed bulk flow surface: a sigma(strain, strain rate, temperature) table for that grade, and that exists for twenty grades only. Thermal-only modes never load one. The full picture is in the capability matrix.
Seventeen grades ship with a per-grade table that the resolver uses as it stands, with no run-time substitution or rescaling. That is what "exact per-grade table" means here — not "measured on this grade". All seventeen were themselves generated from five MSC Marc reference files by temperature-dependent scaling and gap-filling: Eurocode EN 1993-1-2 reduction factors below Ac1, a blend through the intercritical range, and the Shida (1969) austenite model above Ac3.
| Family | Grades with an exact deformation table |
|---|---|
| Mild | DC01, DC03, DC04, DC05, DC06 |
| HSLA | HC260LA, HC300LA, HC340LA, HC380LA, HC420LA |
| Dual phase | DP450, DP500, DP600, DP780 |
| Press-hardening boron | 20MnB5, 22MnB5 |
| Railway | EN13261 |
Three boron press-hardening grades have no shipped table. 20MnB8, 25MnB5 and 29MnB7 run through an explicitly reviewed mapping onto a 16MnCr5 source table with strength scale factors of 1.05, 1.18 and 1.25 respectively. The result carries a warning naming the mapping and the scale factor, so you always know a surrogate was used.
The gap between the two blocks is thinner than it looks. 20MnB5 and 22MnB5 are derived from that same 16MnCr5 reference, at scale factors 1.00 and 1.10; their scaling was simply baked into a shipped file, so the resolver labels them exact per-grade tables and the run carries no surrogate warning. The shipped 20MnB5 and 22MnB5 tables also declare 20–1200 °C where the 16MnCr5 source only covers 20–1100 °C; that difference remains provenance about the source, not a different UI envelope.
A custom chemistry cannot run a deformation mode at all. If your material's composition differs from its template's chemistry, the resolver returns an unavailable result rather than substituting something plausible:
No validated custom V-Gleeble bulk flow surface exists for [your material]; phase P1-P4 is not a compatible substitute.
The run then fails with Required material physics is unavailable for V-Gleeble <mode>, listing the missing capability. Nothing is silently approximated. A calculated phase flow-stress result is a different capability and cannot stand in for the bulk surface.
Thermal-only modes — CCT dilatometry, HAZ, isothermal, hot stamping and custom — do work with a custom chemistry. So if you have your own steel and want HAZ behavior, you can run it; if you want a hot flow curve, you cannot. See your own chemistry for how custom materials are created and what confirming one does and does not calculate.
Two more material rules. V-Gleeble cannot consume a raw material deck: a registry grade runs by its id and everything else runs through its chemistry, so launching a run from the workspace materials Simulate surface fails for a material with no stored composition. And the twenty grades in the two blocks above are the deformation-table scope, not the catalog — the built-in catalog is two orders of magnitude larger, and every one of those grades is available to the thermal modes. See finding your steel for how to locate a grade by its EN name, material number or AISI/UNS equivalent, the material catalog for what your workspace has enabled, and workspace materials for saved custom grades.
What comes back#
Every run writes a versioned run folder to your session — see sessions, runs and artifacts.
For a CCT sweep you get three plots: cct_dilatometry.png (dilatation versus temperature for every rate, temperature axis inverted, each rate labeled with its final hardness), cct_phases.png (final phase fractions per rate) and cct_hardness.png (final hardness versus cooling rate on a log axis, each point annotated). The chat summary lists one line per rate with ferrite, bainite, martensite fractions and hardness.
For every other mode you get phases.png (phase fractions versus time with temperature overlaid) and hardness.png. A dilatation plot is added when the dilatation signal is non-trivial, and a flow-stress plot when any flow stress was computed. The chat summary reports step count, wall time, final phases above 0.1%, final hardness in HV and — when flow stress was computed — the maximum flow stress in MPa.
A completed run also renders a strict vgleeble-results/v1 result card in the conversation. It carries the test mode, the material, the summary text and, for a CCT sweep, one row per cooling rate with that rate's final phase fractions, hardness in HV and step count; for single-run modes it carries the final phases, the final hardness and the maximum flow stress. The card is what you still see after a page reload or when the session is replayed.
Every run also stores vgleeble_data.csv. For single-run modes it is the full trace: time, temperature, HV, flow stress, dilatation, strain, transformation dilatation and one column per present phase. For CCT it is one row per cooling rate. Alongside the plots, every run stores the exact resolved material card (mat_Steel.k) and a material_resolution.json manifest recording which physics was used — and for deformation modes, the exact bulk table that was resolved.
Each plot carries an annotation box naming the material. It lists up to six composition elements in wt% only when a chemistry was supplied with the run — a plain registry grade with no chemistry override shows the name alone. On single-run plots the box adds the final phase fractions above 0.5%, and the final hardness in HV on every plot except hardness.png, where hardness is already the chart. On cct_dilatometry.png and cct_phases.png the box carries a per-rate table of ferrite, bainite and martensite fractions with hardness instead. cct_hardness.png is the exception: its box is composition-only and is drawn only when a chemistry was supplied, so a run without one leaves that plot with no annotation box at all — the material name still appears in the figure title.
Limits worth knowing#
- A session is required. The material card and resolution manifest are mandatory uploads. If artifact persistence fails, the run is recorded as failed even though the physics completed.
- The solver envelope is broader than the source grids. Hot tensile and hot compression accept the uniform 20–1200 °C, 0.001–500 s⁻¹ and 0.01–1.0 strain envelope. A resolved Marc table may contain fewer temperature or rate planes; the evaluator uses the nearest two planes to extrapolate while preserving the requested value. This is a model prediction outside the source grid, not new validation evidence, so interpret edge-of-envelope results cautiously. Satoh uses the same evaluator at 0.002 strain and 0.001 s⁻¹ for its yield-stress cap.
- Flow stress is only evaluated while deformation is active. Outside the deformation window the reported value is zero.
- Satoh's stress trace is plotted against strain, not temperature. Satoh applies no mechanical strain, so its strain history is zero and the flow-stress figure is not the stress-versus-temperature chart you would expect from a Satoh test. Read the numbers from the CSV.
- A queued run is not a finished run. V-Gleeble runs through durable background execution wherever
feature.durable_vgleeble_jobsis enabled, which is the default. There the tool returns an acceptance carrying an operation id rather than results; no phase fractions, hardness or flow stress exist until that operation reports completed. In chat the agent waits and reports back; over MCP, wait the suggested delay and callask_phaseswith the sameproduct_session_id, the returnedoperation_id, and an empty message. Phases checks status and interprets the verified result when it is ready. See long-running simulations. - Documented accuracy limits. HAZ hardness is over-predicted for low-carbon grades: at a 1350 °C peak and dt8-5 of 15 s the model gives 275 HV for DC04 and 277 HV for HC260LA where 150–200 HV and a mixed ferrite-bainite structure is expected, and 662 HV for EN13261 against an expected 450–550 HV. Hot compression at 1000 °C is systematically 50–100% high because the tables are scaled from room-temperature strength ratios and do not capture dynamic recrystallization. 22MnB5 hot-tensile flow stress at 800 °C is roughly 50% above published values. Isothermal holds and Satoh stresses validate well across the grades tested. Full detail is in how we validate and hardness validation.
- Hardness is bulk mixture hardness in HV, not the hardness of any individual phase.
- Access can be restricted. A workspace admin can disable the V-Gleeble simulator entirely, and a workspace viewer cannot run simulations — see workspaces and roles.
If a run does not behave the way you expect, common problems covers the usual causes, and unfamiliar terms are defined in the glossary.

