Almost every 2D electromagnetic FEA tool lets you move exactly one thing. That is enough for a motor and not enough for a magnetic gear, a dual-rotor machine, a counter-rotating pair, or an actuator sharing a domain with a flywheel. The limitation is rarely physical — it is bookkeeping.
Motion without moving the mesh
Nabla does not integrate a v × B term and does not distort or
regenerate the mesh as the rotor turns. Motion is realised entirely by the
sliding band: two nearly coincident rings of nodes, one attached
to the moving part and one to the stationary part, re-tied at every rotor position
by interpolation constraints.
That choice is what makes the multi-zone case tractable. Every body's nodes stay at their as-meshed positions, mesh quality never degrades over a 500-step run, and the band is the only thing in the model that knows how one body is oriented against another. So N motions simply means N sliding bands — and the constraint machinery already merges an arbitrary number of constraints into one set. The work is in the bookkeeping: which region belongs to which zone, which ring belongs to which band, which torque contour belongs to which mover.
The awkward case, and the one line that solves it
A classic band has one moving ring and one at rest, and shifts the moving ring by its motion's absolute angle. Two motion zones that touch — a magnetic gear's two rotors, counter-rotating rotors, two linear movers sharing a channel wall — break that, because neither ring is at rest. Bind such an interface to either motion and it solves happily and silently, offset by one part's absolute angle instead of the pair's relative one.
The physics is one line. Ring A, at body angle α, sits at lab angle
α + θ_A; ring B, at body angle β, sits at
β + θ_B. They are the same physical place when
β = α + (θ_A − θ_B)
So a band is driven by the relative displacement of its two rings, and the classic mover-against-rest band is the same expression with a zero second term. Nothing else in the constraint machinery changes, and a symmetry sector's periodic or anti-periodic wrap stays legal because both frames carry the same symmetry.
This is also why it is not the nested case. Each band sees exactly two frames and each ring belongs to exactly one rigid part; no frame composes with another. A zone inside another zone — planetary-gear style, where one part's motion is expressed relative to a moving parent — is a genuinely different problem, and Nabla says so rather than pretending otherwise.
The check that actually proves it
Two counter-rotating concentric rotors in a 90° anti-periodic sector, P2 mesh, averaging band, 100 steps. The two rotors report equal and opposite torque at every step: +26.17 against −25.98 N·m at step 10, +1.90 against −1.92 at step 25, −1.90 against +1.88 at step 75, and approximately zero at the aligned steps 0 and 100.
What makes that a real test rather than a tautology is that the two numbers come from different contour integrals — each rotor's own pair of bands. Newton's third law across the interface is therefore an independent check that the relative-displacement coupling transmits the right torque, not a restatement of the same computation.
Two more gates pinned the machinery itself. A two-mover band with one motion frozen produces a byte-identical solution file to the same model written the classic way — the new path reproduces the old one exactly when the second ring does not move. And swapping which ring plays master agrees to 0.2 % worst case over 101 steps, which is the interpolation asymmetry of the swap and confirms the sign and magnitude of the second ring's contribution.
Meanwhile eight existing machine models — 48s20p, 18s6p, 9s4p, an outrunner, single-motion rotary and linear tests — produce byte-identical solution files and identical stderr before and after the change. When a feature this structural lands, “nothing else moved” should be a measurement, not an assurance.
Linear motion is a peer, not a special case
N motion zones means N of either kind, in any mix: N rotary, N linear, or rotary and linear together in one domain. An arc band pairs with a rotary motion, a line band with a linear one, each zone owning its own position history and its own force or torque output. Rotary-first assumptions are the sort of thing that is invisible with one mover and wrong with two, which is why they were audited separately.
What it unlocks
- Magnetic gears and magnetic couplings, where the whole device is two movers interacting.
- Dual-rotor and counter-rotating machines.
- An actuator and a flywheel, or a rotor and a linear mover, in one solution domain.
- Two linear movers sharing a channel.
Several simultaneous motion zones are part of Nabla Core; the free tier includes one motion zone, which is enough to get a feel for how the sliding band behaves.
If you have ever meshed a magnetic gear, you already know what remeshing per step does to a 500-step run. This is the alternative.
Related: second-order elements (the band is order-agnostic through the constraint path), second-order time integration, and the motion chapter of the manual.