Download Nabla
Nabla User Manual 0.1.0

Thermal

Thermal

Steady-state and transient heat-conduction analysis on the same mesh as the electromagnetic solve.

Turn the module on from Addons → Thermal Module. This is an uncoupled thermal solve: it shares your geometry, regions and mesh with the electromagnetic model, but heat sources are entered directly rather than derived from a Joule/iron-loss result — feeding a magnetic loss result into a thermal source is a manual step you make yourself, reading one from Post-processing — losses and typing it into the source below.

Enabling the module changes what the Model Tree shows: Coils, Motion and Circuit disappear (a thermal solve has none of those), replaced by a Sources node for the heat sources described below. Turning the module back off restores the electromagnetic tree and leaves your thermal setup untouched, ready for next time.

Thermal region properties

With the module enabled, Region Properties shows a thermal property set instead of the electromagnetic one: Thermal Conductivity k [W/(m·K)], Density ρ [kg/m³], Specific Heat cp [J/(kg·K)] (used only by a transient solve), and the constant heat source described below. These are entered directly per region rather than picked from the material library the electromagnetic model uses.

Typical property values

These are entered by hand, not looked up from the material library the electromagnetic model uses, so there is no automatic transfer even when a region's electromagnetic material already carries the same physical properties. Typical starting values for common motor materials:

Typical thermal properties for common motor materials
Materialk [W/(m·K)]ρ [kg/m³]cp [J/(kg·K)]
Copper winding (bulk, ignoring insulation)3858960385
Electrical steel lamination stack (in-plane)25–307650460
NdFeB magnet97500440
Air (still, for a gap or vent region)0.0261.21005
Aluminium housing/frame1672700896

A wound slot is usually not modelled as solid copper: its effective in-plane conductivity is reduced by the enamel insulation and the air between strands, so a slot region commonly needs a derated k rather than bulk copper's value — treat the table above as a starting point, not a substitute for a manufacturer datasheet when the result matters.

Heat sources

Every region has a constant volumetric heat source q [W/m³], defaulting to zero (no self-heating). For a source that varies over a transient run, define a Source (transient) from the Sources node instead: double-click it to open a q(t) [W/m³] vs. time(s) table with a live preview plot, the same editing pattern as a coil's custom current waveform, then assign it to one or more regions from Region Properties. A region assigned a transient source ignores its own constant q — the two are exclusive, not additive.

Feeding an electromagnetic loss result into a heat source

The two solves are uncoupled and run separately, but a typical workflow chains them: solve the electromagnetic model first, read off a loss, then type it into the matching thermal region as q.

  1. Solve the electromagnetic model at the operating point you want to check thermally, then open Post-processing — losses and read the loss for the region you care about — stator core iron loss, a winding's Joule loss, a rotor bar's Joule loss for an IM.
  2. Losses are reported as a total power [W] for the region (or, for a coil, its winding) over the model's axial length and sector count exactly as solved; a thermal region's q is a volumetric density [W/m³]. Divide the reported loss by the region's volume (area × axial length, scaled by the number of symmetric sectors the loss already accounts for) to get q.
  3. Enable the Thermal Module, open Region Properties for the matching region, and type the resulting q in. For a region whose loss depends on speed or load and you want more than one operating point, define a Source (transient) q(t) table instead and step through values by hand, or repeat the constant-q solve once per operating point of interest.

This division is a per-run manual step: nothing recomputes q for you when you rerun the electromagnetic model at a different point, or when you change the region's geometry. If you resize a slot or change the operating point, re-read the loss and re-enter q before trusting a thermal result that follows.

Thermal boundary conditions

Assigning boundary conditions works exactly as in the electromagnetic model, but the panel offers the three temperature types instead — see Boundary conditions — thermal boundary conditions for Fixed Temperature, Heat Flux and Convection. An edge left unassigned is adiabatic (zero heat flux), the natural default for an interior or symmetry edge. Periodic and anti-periodic pairs also carry over from the electromagnetic BCs for a sector model, with one difference: only the plain periodic type makes physical sense for a scalar temperature field, so anti-periodic pairs are rejected on a thermal boundary.

Steady-state vs. transient

Solver settings' Problem Type (Static or Transient) and time-integration settings apply to the thermal solve exactly as they do to the electromagnetic one — see Solving for Backward Euler vs. Crank–Nicolson and how to set the step size and duration. A steady-state solve ignores any transient heat source and reports one temperature field; a transient solve needs an initial uniform temperature (Thermal settings' Initial Temperature T0) and reports the temperature history at every saved step, exactly like an electromagnetic transient run.

Sharing a mesh with the electromagnetic model

The thermal solve reuses whatever geometry, regions and mesh are current on the model — it does not generate a separate thermal-only mesh. Two consequences follow directly from that:

Regenerating the mesh (a geometry change, or a manual re-mesh) invalidates both solutions at once, electromagnetic and thermal — there is no way to keep one fresh while only the other goes stale.

The Thermal settings panel

Problem type, time integration scheme, step size and duration are the same fields the electromagnetic solve uses (see Solving) — there is no separate thermal time base, so a coupled reading of both solutions at "the same instant" is only meaningful when the two runs share step size and duration. The Thermal settings panel itself adds exactly one field beyond that: Initial / ambient temperature T0 [°C], the uniform starting temperature a transient solve steps forward from (ignored by a steady-state solve). Region properties — k, ρ, cp — are entered as plain constants; the thermal solve has no temperature-dependent property curve to fit or converge on, so every thermal solve, steady or transient, is linear.

Axisymmetric thermal models

The thermal solver supports axisymmetric problems on the same terms as planar ones — set Problem Type → Axisymmetric before meshing, as for an electromagnetic model (see Solving). There is no r-weighted potential substitution for temperature the way there is for the magnetic vector potential: the solved unknown is plain T(r, z) in both modes, so nothing about reading a thermal result changes between planar and axisymmetric.

Reading thermal results

A thermal solve writes a _solution.ths file next to your model, alongside (not instead of) any electromagnetic .ems solution — see File formats. Post-processing switches its own quantity list to temperature, its gradient, and heat flux whenever the active result is a thermal one; everything else about probes, field plots and export works the same way as for an electromagnetic solve (see Post-processing). Reopening a model with the Thermal Module enabled loads its existing .ths result automatically if one is on disk, so you land back on your last solve rather than a blank Post-processing tab.

Next steps