← Back to the examples

What you need to run it: the Python API. The transient run needs nothing beyond that; the time-harmonic run needs Core Pro, and the script says so and exits cleanly rather than failing when the licence is not there. Opening the model and reading results already in it never requires a licence.

What this one is for

Every other example here is a machine. This one is not, and that is the point: it is a plain geometry model — circles, regions, coils and one Dirichlet boundary — built from an empty document by a single script, with no machine module involved anywhere. If you want to see the shape of an API script before committing to a rotor, start here.

The physics it shows is the classical pair that stranded conductors are designed around. Skin effect pushes current away from the middle of each individual strand as frequency rises. Proximity effect is what the strands do to each other: they are driven identically, and they still do not carry or dissipate the same amount, because each one also sits in its neighbours' field. At the settings this model ships with, the second one wins so completely that it empties the middle of the cable.

At a glance

QuantityValueUnit
Strands37 (three honeycomb rings)
Strand diameter1.6mm
Strand pitch1.84mm
Bundle radius6.32mm
Outer boundary radius18.96mm
Nominal current100 peak total, 2.70 per strandA
Frequency10 000Hz
Copper conductivity5.77 × 107S/m
Skin depth at 10 kHz0.66, against a 0.80 strand radiusmm
Axial length1000mm
Outer shell of strands3.60 time-harmonic, 3.00 transient× bundle mean
Innermost strands0.00 time-harmonic, 0.18 transient× bundle mean
Mesh12642 nodes, 25082 elements, P1
Wall time, end to end81 time-harmonic, 136 transients

There is deliberately no bundle loss in watts in that table. Further down is why: at these settings the absolute figure this model produces is not a loss, and quoting it would be worse than leaving it out.

What it builds

Thirty-seven copper strands on a hexagonal close-packed lattice — one in the middle and three rings around it — inside a circle of air with A = 0 on the outside. Each strand is its own region with its own conductivity and its own coil, and every coil is driven with an equal share of the cable current, in phase, at the same frequency.

Both the strand count and the strand diameter are parameters at the top of the script. N_RINGS counts honeycomb rings around the centre strand: 0 gives 1 strand, 1 gives 7, 2 gives 19, 3 gives 37, and the geometry, the regions, the coils and the current split all follow from it. Turning a 37-strand cable into a 331-strand cable is one number.

Flux density magnitude across the cable cross-section

This picture is the whole result. The field does not penetrate the bundle. It peaks in a hot ring on the outermost strands and collapses to nothing a strand or two inside, so the interior of the cable is magnetically shielded by its own outside. Every number below follows from this one picture.

The numbers that say it

Loss per strand against distance from the bundle centre

Thirty-seven identically driven strands, and where a strand sits decides everything. The six positions on the geometric lattice fall into shells, and the loss is a staircase down them:

Distance from centre (mm)StrandsTime-harmonicTransient
5.52 (outer corners)63.603.00
4.87121.231.19
3.6860.080.29
3.1960.020.25
1.8460.000.21
0.00 (centre)10.000.18

All figures are multiples of the bundle mean. The outermost eighteen strands do essentially all of the work and the inner nineteen are along for the ride — which is the whole argument against building a large conductor as a plain bundle, and the reason litz wire transposes its strands instead of stacking them.

Skin effect within a single strand is real at these settings. The skin depth in copper at 10 kHz is 0.66 mm against a strand radius of 0.80 mm, so a strand is thicker than one skin depth — which it would not be below about 7 kHz. You can see both effects at once in the current density: the outer strands carry a crescent pushed onto their outward-facing side — skin effect distorted by the neighbours — while the interior strands sit nearly flat and nearly empty.

Current density in the strands

Two solvers, one problem

SOLVER at the top of the script picks one of two runs. They solve the same model and are worth running back to back.

TransientTime-harmonic
What it doesthree periods of the waveform, 40 steps eachone steady-state solve at 10 kHz, replayed as 24 snapshots
Outer shell / mean3.003.60
Centre strand / mean0.180.00
Wall time136 s81 s
Licencenone beyond the APICore Pro

They agree on the shape and differ on how deep the shielded region goes: the frequency-domain run drives the interior strands to essentially zero, the transient leaves them near a fifth of the mean. That gap is the transient's own startup, which three periods at 10 kHz have not fully shed — a steady-state solve has no startup to shed. Raise TRANSIENT_PERIODS and the transient walks toward the frequency-domain answer. It is a useful thing to watch, and a fair warning about how many periods an eddy-current transient needs before it means anything.

Excitation current in the centre strand's coil

Why there is no loss figure on this page

Each strand's coil drives the field directly, with no external circuit — the simplest way to excite a solid conductor in Nabla. The coil prescribes a source current density and the field solve adds the induced reaction on top of it, which is exactly what produces the redistribution above. What it does not do is pin each strand's net current back to the nominal value once that reaction appears, the way a real current source would; that needs the strand wired through the circuit solver, as Nabla's squirrel-cage bars are.

At 2 kHz and seven strands that was a bias. At 10 kHz across 37 mutually coupled strands it is the dominant term: the reaction very nearly cancels the source through most of the bundle, so the model's total comes out at 1.16 mW/m (time-harmonic) and 1.42 mW/m (transient) — against 1.16 W/m of plain DC loss for the same nominal current in the same copper. An AC loss three orders of magnitude below the DC loss is not a loss; it is the statement that the currents in this model are no longer the currents you asked for.

So read this example as a picture of where current goes in a bundle, which it gets right and which is what it is here to show. Do not read a cable rating off it. For AC resistance against closed-form answers, see V12 in the validation dossier; for the same physics with the terminal current actually enforced, the induction-machine examples' rotor bars (E08) are the worked case.

Running it

python cable_AC_loss.py

Set SOLVER = "transient" or SOLVER = "time-harmonic" first — one invocation runs one of them, by design. At the shipped 37-strand size the frequency-domain run takes about a minute and a half and the transient a little over two, mesh included.

Try this next

  • Move FREQUENCY_HZ and N_RINGS together. They are the two knobs that decide how dark the middle of the bundle goes, and it takes four short runs to separate them. Centre strand, as a multiple of the bundle mean, from the frequency-domain solver:
    2 kHz10 kHz
    7 strands (N_RINGS = 1)0.880.16
    37 strands (N_RINGS = 3)0.140.00
    Neither knob is the whole story: a small bundle at 2 kHz barely grades at all, and either more copper around a strand or a shorter skin depth will bury it.
  • Push TRANSIENT_PERIODS up and watch the transient interior fall toward the frequency-domain answer.
  • Thicken the strands at fixed total copper area and watch the shielding get worse, not better. That trade is why litz wire exists.

About these numbers

This is a demonstration geometry, not a standard cable, and as the section above says its absolute losses are not engineering figures. Every plot and every number on this page came out of the runs described here, at the settings the script ships with. For accuracy against a stated reference and tolerance, the validation dossier is where that question belongs.

More from this run

Vector potential with flux lines
Vector potential, with flux lines — they close outside the bundle and barely enter it