Skip to content
SHD Sim
Menu

Validation/Current conduction

DC conduction through a bar

The potential in this problem does not depend on the conductivity at all, so a deck that lost it entirely would still give a perfect voltage field. The derived fields are the measurement.

VerificationRecovered resistance within 0.000 % on three meshes

Why this case

A copper bar 0.1 m long and 20 mm square, with 5 V across its ends and every other face insulated. Steady current, nothing else.

The closed form is the one every engineer already knows, and there is nothing in it to argue about:

  • R = L / (σA) — the resistance
  • J = σV/L — the current density, uniform
  • q = σ(V/L)² — the Joule heating per unit volume, uniform
PhysicsSteady current conduction in a solid
MaterialAnnealed copper, σ = 5.96 × 10⁷ S/m
Applied5 V and 0 V on opposite end faces, 0.1 m apart
Closed formR = 4.194631 × 10⁻⁶ Ω, J = 2.98 × 10⁹ A/m², q = 1.49 × 10¹¹ W/m³
MeshTetrahedral, from Netgen — three levels from 19 to 2 136 elements
AgreementRecovered resistance within 0.000 % at every level
Last run2026-08-27

Result

Derived fields against the closed form, across mesh refinement
TetsCurrent density (A/m²)vs closed formJoule heating (W/m³)vs closed form
192.980000 × 10⁹+0.00000 %1.490000 × 10¹¹+0.00000 %
7492.980001 × 10⁹+0.00002 %1.490001 × 10¹¹+0.00005 %
2 1362.980000 × 10⁹−0.00000 %1.490000 × 10¹¹−0.00000 %

Recovering the resistance from the measurement rather than restating it — R = V/(JₓA) on the finest mesh — gives 4.194631 × 10⁻⁶ Ω against an exact 4.194631 × 10⁻⁶ Ω.

Error in current density and Joule heating against element count, both flat near zero
The error in both derived fields, against element count. It does not fall with refinement because there is nothing for refinement to improve — see below.

Why the voltage is not the measurement

The potential through this bar is linear, so it lies inside the element space and any correct implementation reproduces it exactly on any mesh. That alone would make it a weak thing to report. But there is a second and much sharper reason to look past it.

Both are uniform in this geometry, so their spread across the nodes is the discretisation error and needs no integration to read. On the finest mesh the current density spans 2.979996 × 10⁹ to 2.980001 × 10⁹ A/m² — a spread of 0.0002 % of its own mean.

The Joule heating matters for a second reason: it is the field a coupled thermal study of the same part reads as its heat source. If it were wrong it would be wrong inside an electro-thermal answer, where nothing looks at it directly.

What this case found

This benchmark was written before the analysis it checks was believed to work. For a day, current conduction was recorded internally as a defect: a bar with 5 V across it came back with an identically zero potential — not a wrong number, no number at all, and no error from any process in the chain.

It was not the product. The test harness was converting its mesh without a flag the application has always passed, so the bar arrived carrying the mesher’s own body index instead of the one the deck refers to. Nothing matched, no element was active, the solver was built no matrix, and it returned without printing a word. Every process exited successfully and a well-formed result file was written full of zeros.

The control that appeared to exonerate the harness — “the same mesh solves perfectly through the electrostatic solver” — had been run through a different script that did pass the flag. Given the same mesh, the electrostatic solver fails in exactly the same way. A control run through a different harness is not a control.

Repeat this yourself

Every case here is set up from the worked examples in the product, with no hand-editing of solver files — so you can run it, and get the same numbers. The free tier runs real cases up to 250,000 cells of fluids, or 100,000 nodes of solid, with no account needed to download and no time limit.

All validation cases · Written by the team building SHD Sim.