Resistance spot welding

How to run a coupled electromagnetic-thermal spot weld in Phases, what the confirmation card controls, and which steel grades are supported.

You have a sheet stack and a weld schedule, and you want to know what the nugget does before you tie up a welding cell. Phases runs a real 2D axisymmetric finite element model of the joint: you give it two plate grades, thicknesses, coating state, current and electrode pressure, and it returns the temperature field, the nugget and heat-affected-zone geometry, and an animation of nugget growth.

What the solver actually models#

The solver is a staggered multiphysics loop. For each macro timestep it solves the electromagnetic problem first (a scalar-potential Laplace solve giving Joule heating), then the transient thermal problem (Crank-Nicolson, with temperature-dependent conductivity and specific heat; density is a constant per material), then optionally a mechanical step, then optionally a microstructure update. Contact resistance is modeled at three interfaces — electrode-to-top-sheet, electrode-to-bottom-sheet, and the faying sheet-to-sheet surface — as a pressure- and temperature-dependent Jonny-Kaars model, with a zinc enhancement at the faying surface that starts softening around 400 K and passes zinc melting at 693 K. Electrode ends are water-cooled by a forced-convection boundary condition; outer surfaces lose heat by free air convection and radiation. Coating temperature is capped at 1180 K (zinc boiling point) and steel at 3134 K. Time stepping is adaptive after the current is switched off, so the long cooling tail is cheap.

Two things this is not. The mechanical option is an experimental linear thermoelastic and contact solve — not an elastoplastic one — so its displacement and stress output must not be read as electrode indentation, sheet thinning or expulsion. And the electrode geometry and mesh are fixed: only plate grade, thickness and coating change the geometry. Squeeze time, hold time, electrode tip shape and multi-pulse schedules are not exposed. See Known limits.

Running one#

Type what you want:

Spot-weld two 1.5 mm DP600 sheets at 8 kA and show the nugget growth.

Phases will not run this straight away, and that is deliberate.

The confirmation card is mandatory#

Every spot-welding request produces a Configure Simulation card before anything executes, even when you already stated every parameter — your numbers are pre-filled into the card, but the card still appears. Nothing runs until you press Run Simulation (the button then reads Running...). All four simulators gate execution behind a card; RSW is the only one whose card is mandatory, shown even when there is nothing left for you to fill in. See How the conversation works.

Card fieldParameterUnitDefaultRange the card enforces
Top Plate materialsteel_grade_topgrade nameDC04one of the 20 supported grades
Bottom Plate materialsteel_grade_bottomgrade nameDC04one of the 20 supported grades
Thickness (per plate)thickness_top / thickness_bottommm1.00.5–2.5
Coating switch (per plate)coating_top / coating_bottomon/offon
EM Control switchem_bc_typecurrent or voltagecurrent
Currentcurrent_kAA in the field, kA in the payload7.0 kA1000–12000 A
Voltage (voltage mode)voltageV·mm1062.2fixed, not editable
Mechanical — Pressureforce_pressureMPa23.331–50
Mechanical — Forceforce_kNkN0.5–15
Weld Time / EM switch-offweld_times0.420–1 in the Timing section
Total Time / t_endtotal_times3.0must be ≥ weld time
dt (Timing)dts0.0002shown fixed
Enable microstructure modelmicro_enabledon/offoff
Experimental Mechanicsmechanical_enabledon/offoff

Notes that matter in practice:

  • The Mechanical fieldset toggles between Pressure [MPa] and Force [kN]. Force is converted using a fixed electrode face area of 2π × 14.0 mm², and the resulting pressure is still clamped to 1–50 MPa.
  • Switching EM Control to voltage shows a disabled field at 1062.2. Only current control is user-editable.
  • If total time is below weld time the card refuses to submit and shows Total time must be ≥ weld time.
  • Setting a weld time rewrites the current waveform to a ramp over the first third, a plateau, then switch-off.
  • Selecting a session material for either plate forces the microstructure switch on and locks it.
  • The backend accepts thickness from 0.3 to 5.0 mm, wider than the card's 0.5–2.5 mm.

The card's raw form is a fenced rsw-params block; see Parameter blocks.

Supported grades — a hard limit#

RSW needs validated bulk electrical, thermal, density, latent-heat and mechanical property curves, and only 20 grades have them. The material catalog is much larger; catalog membership does not imply RSW support.

FamilyGrades
Mild / drawingDC01, DC03, DC04, DC05, DC06
HSLAHC260LA, HC300LA, HC340LA, HC380LA, HC420LA
Dual-phaseDP450, DP500, DP600, DP780
Press-hardening (boron)20MnB5, 22MnB5, 20MnB8, 25MnB5, 29MnB7
Railway axleEN13261

Ask for anything else — S355 or AISI 4140, say — and the run is rejected before the solver starts, with an error naming the parameter, the full list of permitted grades, and the value you supplied. The 20 grades collapse onto two bulk-property families: every DC and HC grade uses the DC04 property set, and every DP grade, every MnB grade and EN13261 use the 22MnB5 set. Two grades in the same family therefore share those curves — the grade still matters for microstructure, which uses its own per-grade card. More on what each simulator requires from a material in Capability matrix.

Calibrated templates#

Twenty-two shipped templates give you a starting point that was tuned against AWS D8.1M / DVS 2902 nugget-diameter criteria (minimum d = 5·√t, nominal qualification target 5.5·√t, where t is the thinner sheet in mm).

Show me the calibrated RSW templates

Seventeen are symmetric single-grade cases and five are dissimilar pairs. You can filter by grade or joint type:

Which RSW templates exist for 22MnB5?

Every shipped template uses current control, 3.0 s total time, 0.0002 s timestep and 0.42 s weld time, and none of them enables microstructure or mechanics. Each carries its calibration target range in its description — for example DC04_0.7mm reads "Symmetric DC04, 0.7mm. Target 4.2-4.6mm. Corrected resistivity."

TemplateStackCurrentPressure
DC04_0.7mmDC04 0.7 mm, coated, both sides5.5 kA23.33 MPa
HC340LA_1.2mmHC340LA 1.2 mm, coated7.0 kA28.0 MPa
DP600_1.2mmDP600 1.2 mm, coated6.0 kA32.7 MPa
DP780_1.5mmDP780 1.5 mm, coated6.5 kA37.3 MPa
22MnB5_1.5mm22MnB5 1.5 mm, bare6.5 kA42.0 MPa
DC04_1.0mm_22MnB5_1.5mmDC04 1.0 mm coated + 22MnB5 1.5 mm bare4.5 kA32.7 MPa
DP600_1.2mm_22MnB5_1.5mmDP600 1.2 mm coated + 22MnB5 1.5 mm bare5.0 kA37.3 MPa

The shipped 20MnB5, 22MnB5 and EN13261 templates run with coating disabled; the real AlSi coating on the boron grades is not modeled, and EN13261 is bare in service. Every DC, HC and DP template runs coated. Three supported grades — 20MnB8, 25MnB5 and 29MnB7 — have no calibrated template at all. Any value you pass explicitly wins over the template's value; the template only fills in what you left unset.

Per-plate chemistry#

You can attach a chemistry to either plate independently, which is how dissimilar joints with a supplier-specific melt are run. The plate's grade still has to be one of the 20 supported names — that grade selects the property family — and your chemistry rides alongside it as a per-plate composition with its own display label, which is printed into the plot subtitle. If an active workspace or session material has a modified composition and you did not override a plate, that composition is applied to both plates.

Chemistry only reaches the physics through the microstructure path, so linking a material card to a plate has no effect unless microstructure is enabled. You can also reuse the material card from an earlier run in the session per plate. See Your own chemistry.

What you see while it runs#

The run streams. You get plain progress lines — Running RSW solver..., Loading session material... when a card is linked, Generating plots & GIF..., Uploading results... — plus up to 24 live nugget frames sampled evenly across the simulated time. Each frame carries simulated time, maximum temperature in K, percent complete, the phase (initializing, welding while the current is on, then cooling), wall-clock elapsed and an ETA. Before the first frame exists the solver sends heartbeats so the card does not look frozen.

The in-process solver is killed after 900 seconds. RSW also requires storage to be configured; without it the tool returns Supabase must be enabled to run RSW simulations.

Reading the results#

When the run finishes you get one gallery, not a wall of links. Labels are fixed:

  • Nugget Evolution (animated) — a two-panel GIF, full cross-section plus a nugget-zone zoom, with isotherms drawn at 1723 K and 1803 K
  • Temperature Contours, Temperature History
  • Nugget Zoom (end of welding), Nugget Zoom (cooling)
  • Joule Heat Contours, Scalar Potential Contours
  • Nugget & HAZ Analysis
  • Microstructure Contours and Phase History (liquid element) when microstructure ran

Click any thumbnail for a full-screen view; arrow keys move between images and Escape closes it.

The Nugget & HAZ Analysis plot is the one to read first. It classifies every steel element by peak temperature into four zones — Nugget at or above 1803 K (liquidus), Upper HAZ at or above 1050 K, Lower HAZ at or above 750 K, and Base Metal below that — and reports per-plate zone diameters plus a volume-weighted phase composition per zone. Hardness is shown only when the model has cooled below 473 K (200 °C) by the end of the simulated time and phase data are present; a run that ends hot reports no hardness. Nugget diameter is quantized by the fixed mesh, so it moves in discrete steps rather than continuously. What that means for how much to trust a number is covered in RSW validation.

The text summary alongside the gallery states peak temperature, final temperature and elapsed time, plus the grades and key parameters used.

Stored artifacts#

Every run is stored under its own run version. Persisted files are the PNG plots and the GIF, plus three mandatory JSON records — effective_config.json, material_resolution.json and run_config.json. A microstructure-enabled run also stores both plate material cards (mat_Steel_top.k, mat_Steel_bottom.k) and their resolution manifests. If any mandatory artifact is missing the run is marked failed rather than reported as a success. Raw VTK time-series files are produced in the solver's working directory but are not part of the stored run. See Sessions, runs and artifacts.

Next#