Methodology / 02
Field Solvers for SI/PI: 2D, 2.5D, and 3D
A field solver computes what Maxwell's equations say about a structure you describe. The three classes differ in what they assume before they start — and those assumptions, not the accuracy claims, are what decide which one is right for a given question.
Every closed-form formula an engineer first learns — such as Wheeler's microstrip equation or the classic Z0 = √(L/C) relationship — is a simplified analytical approximation. These formulas assume infinite reference planes, zero conductor thickness, perfectly rectangular traces, and uniform dielectrics. In actual PCB and package manufacturing, traces have trapezoidal sidewalls, dielectrics are inhomogeneous fiberglass weaves, and signals transition through vertical vias with complex anti-pad cutouts. At multi-gigabit speeds, closed-form formulas fail completely.
A field solver replaces rules of thumb by solving Maxwell's equations directly on the actual physical geometry. By discretizing the physical space into a computational mesh of millions of tiny elements, the solver calculates the precise electric and magnetic fields, yielding exact frequency-dependent impedance, loss, and coupling matrices.
However, “field solver” is not a single uniform tool. Solving electromagnetics in three dimensions is notoriously computationally expensive. The entire discipline of practical modeling centers on choosing the cheapest solver class whose geometric assumptions still capture the essential physics of the structure: 2D solvers for uniform cross-sections, 2.5D planar solvers for power-ground plane pairs, and full 3D solvers for complex transitions.
What a solver is doing, and why there are three
Every electrical property on this site comes from fields: impedance from where the electric field terminates, inductance from where the magnetic field loops, coupling from field that reaches a neighbour. A field solver computes those fields numerically for a geometry you supply.
Solving the full three-dimensional problem is expensive, and usually unnecessary. Most of a board is a trace running over a plane with a cross-section that does not change along its length — and for that, the three-dimensional problem collapses to a two-dimensional one that solves in seconds.
So the classes of solver are really classes of assumption: how much of the geometry you are allowed to say is repetitive, and therefore how much work can be skipped.
The three classes
- 2D. Assumes the cross-section is uniform along the length, and solves it once to give RLGC per unit length. For a straight trace over a solid plane this is not an approximation — it is exact, and it runs in seconds. Use it for every uniform transmission line in the design, and sweep it freely.
- 2.5D / planar (method of moments). Assumes the structure is a stack of flat layers with vertical connections between them, which is exactly what a PCB is. Handles arbitrary shapes within each layer — plane cutouts, cavity resonance, irregular fills — far faster than full 3D. This is the natural tool for plane-pair PDN work.
- 3D (FEM or FDTD). Assumes nothing about the geometry. Necessary for anything genuinely three-dimensional: vias with their antipads and surrounding ground vias, connector launches, bond wires, package transitions. Slowest by orders of magnitude, and the accuracy depends heavily on the mesh.
Where each one misleads
2D applied where the cross-section changes. A trace that necks down through a breakout, or runs over a plane cutout, is not uniform, and a 2D solve of the nominal geometry will simply not contain the discontinuity. The result looks clean because the impairment is absent, not because it is small.
3D with an inadequate mesh. A 3D solver's answer is only as good as its discretisation, and the default mesh is often too coarse for thin dielectrics and skin-depth effects at high frequency. The check is convergence: refine the mesh and re-run, and if the answer moves meaningfully, it had not converged. A single 3D run with no convergence check is a number with unknown error bars.
Any solver with the wrong material model. A frequency-independent Dk and Df is non-causal, and produces the characteristic artefacts — energy arriving before it was sent — in the time domain. A dispersive model such as a Djordjević-Sarkar fit costs nothing extra and removes an entire class of confusing results.
One last practical note: solvers give you S-parameters, and S-parameters are the thing to sanity check. Passivity, causality and reciprocity should be verified on every extracted block before it is cascaded, because a violation in one block propagates into everything downstream and is far harder to find there.
Watch a 2D solver work
The panel below is a small 2D field solver, running as you watch. It does what every quasi-TEM 2D solver does. It solves Laplace’s equation for the potential around the trace twice, once with the laminate in place and once with air everywhere, and takes the characteristic impedance from the two capacitances per unit length. The blue wash is the potential, and the blue lines are equipotentials, one every 10% of the trace voltage. The dark lines are lines of electric flux, one for each equal share of the charge on the trace, so they crowd where the charge does, at the corners. The faint grid behind them is the mesh, the only thing the solver actually knows about your geometry.
Two plots go with it, one for each check this page asks of any solver result. The first is convergence: the same structure solved on finer and finer meshes. A finite-element solution can only overestimate capacitance, so Z0 creeps up as the mesh refines, and when the last points stop moving the answer has converged. The dotted line extrapolates where they are heading. Press Coarse mesh and the panel still gives a plausible-looking number, a few percent low. Nothing in the picture warns you; only the ladder does.
The second plot is the boundary. A solver has to stop somewhere, and this one stops at grounded walls a set number of trace heights away. Slide them in, or press Close walls, and the field lines that should reach the plane end on the walls instead. Capacitance rises and Z0 falls, and the answer still converges, to the wrong question. That is the 3D symptom from the fault list below, a result that changes with domain size, made visible in 2D.
Then validate it against something you already know. The Exact check preset is a zero-thickness strip 5 mil wide, centred between planes 10 mil apart in a laminate of Dk 4. Conformal mapping gives that geometry an exact answer, 50.2 Ω, with no approximation anywhere. Refine the mesh and watch the solver close in on it. For a single microstrip the readout compares the solver with the Hammerstad–Jensen formula used by the site’s impedance calculator; for a pair there is no formula to compare with, which is exactly when you need a solver. Drag a trace’s outer edge to change its width, drag the trace up or down to change its height, and drag the right-hand trace of a pair to change the gap.
Best viewed on a laptop or desktop. These panels are built so you can move a slider and watch several charts answer at once. A phone has no room to put them side by side.
Why this decides how your board behaves
- Match the solver class to the geometry. A 2D solve cannot represent a via because the geometry violates the translational-uniformity assumption on which the method rests.
- Convergence is not accuracy. A converged result is one that stopped changing with mesh refinement. It can still be the exact answer to a badly posed problem.
- Boundary conditions are part of the model. What a solver assumes at the edges of its domain changes the answer, especially for anything radiating or resonant.
- Material data drives everything. A perfect solve with a wrong Df is wrong, and the error grows with frequency.
What to do about it
Match the class to the geometry, not to the budget. Uniform cross-section → 2D, exactly and in seconds. Layered planar structures → 2.5D. Genuinely three-dimensional structures — vias, launches, connectors — → 3D, and only those.
Check convergence deliberately. Refine the mesh and confirm the answer stops moving. A single run at default settings is an opinion.
Validate against something you already know. Solve a structure with a known answer — a plain 50 Ω line, or a quarter-wave stub whose resonance you can compute — before trusting the solver on the structure you cannot check.
State your material assumptions with any result. Dk, Df, at what frequency, copper roughness and its parameter definition. A result without them is not reproducible.
- A solved impedance that does not match the fabricator's coupon. Compare the geometry assumptions first — etch trapezoid, copper thickness, solder mask — before suspecting the laminate.
- 3D results that change with domain size. Boundary conditions are affecting the answer, which means the domain is too small or the boundary type is wrong.
- Loss under-predicted, growing with frequency. Roughness, usually either absent or given the wrong roughness parameter.
- A resonance in the solve that hardware does not show. Check whether the model's boundary made a cavity the real structure does not have.
Go deeper — what each class assumes, and where each misleads
- 2D assumes the cross-section is uniform along the length. For a straight trace over a solid plane that is not an approximation — it is exact. It misleads the moment the geometry stops being uniform, and it has no way to tell you that it has.
- 2.5D, or planar method-of-moments, assumes the structure is a stack of flat layers with vertical connections between them — which is exactly what a PCB is. It handles arbitrary shapes within a layer, so it is the right tool for plane cutouts and cavity behaviour. It misleads where true three-dimensional field structure matters, such as inside a connector or around a bond wire.
- 3D assumes nothing about the geometry and pays for it in runtime. It misleads mainly through the modeller: domain size, boundary conditions, port definitions and mesh density are all choices, and all of them can produce a converged answer to the wrong question.
Ports are the underrated part. A 3D solve produces S-parameters relative to ports you defined, and how a port is set up — its reference conductor, its size, whether it is a wave port or a lumped one — changes the result. Two engineers solving the same via with different port setups will disagree, and both will have converged.
And partition coupling. Splitting a structure into pieces and solving each separately is only valid if the pieces are not coupled. Two vias solved independently and cascaded is not the same as two vias solved together, and the difference is exactly the coupling you split apart. Cut where the fields are quiet.
The solver selection matrix: matching physics to geometry. Deciding which solver to deploy on a specific PCB or package feature comes down to geometric symmetries and field orientation:
- 2D Solvers (Boundary Element / Finite Difference): Assumes invariance along the Z-axis (propagation direction). Field equations reduce to transverse electro-magnetic (TEM or quasi-TEM) modes. Runtime: seconds. Solves transmission line per-unit-length parameters (R, L, G, C) and characteristic impedance (Z0, Zdiff). Use for: 95% of total trace length across microstrip, stripline, and coplanar topologies. Fails when: Traces neck down near BGA escapes, cross splits in reference planes, or couple to non-parallel routing.
- 2.5D Planar Solvers (Method of Moments / Transmission Matrix): Assumes planar, stratified dielectric layers with current flowing predominantly in X-Y planes and strictly vertical (1D) currents on via barrels. Runtime: minutes. Meshes only the conducting surfaces rather than 3D air/dielectric volumes, shrinking matrix dimensions dramatically. Use for: Power integrity plane-pair impedance extraction, cavity resonances, irregular DC power islands, and board-wide decoupling capacitor placement. Fails when: Horizontal fields dominate, such as antipad fringe fields in dense via fields, tilted wirebonds, or connector pin headers.
- 3D Full-Wave Solvers (Finite Element Method - FEM / FDTD): Assumes zero geometric symmetry. Solves full vector Maxwell's curl equations in 3D space by dividing the entire volume into tetrahedral or hexahedral meshes. Runtime: hours to overnight. Use for: High-speed via transitions (>10 GHz), connector launches, BGA ball-to-board breakouts, optical transceiver receptacles, and socket interfaces. Fails when: Misconfigured! The biggest danger is artificial boundary reflection (insufficient radiation boundary distance), poor wave port sizing, or halting before adaptive mesh refinement achieves scattering parameter convergence (ΔS ≤ 0.01).
How the panel above works
The equation. In a uniform line carrying a quasi-TEM wave, the transverse field is the field of a static problem: Laplace’s equation for the potential, with the trace at 1 V and the planes and walls at 0 V. The panel solves it twice. With the laminate in place it gives the capacitance per length C; with air everywhere it gives Cair, and because the inductance of a line does not depend on its dielectric, L follows from that alone. Then
The discretisation. The cross-section is cut into rectangles on a graded mesh, smallest at the copper edges, where the field is singular and the charge piles up, and growing away from them. Inside each rectangle the potential is bilinear. The capacitance comes from the stored energy, C = 2W/V2. Because the finite-element solution is the lowest-energy potential the mesh can represent, and the true potential is lower still, the energy and so C can only be overestimated. That is why every point on the ladder is below the converged Z0 and why the curve only ever climbs. A solver that uses charge instead of energy loses that guarantee, which is one reason commercial tools report a convergence history rather than a single number.
Symmetry. Only the right half is solved. For a single trace, and for a pair in even mode, the centre line is a plane no field line crosses. For a pair in odd mode it is a plane at 0 V, which is why odd-mode field lines run straight across to it. The pair numbers are Zdiff = 2Zodd and Zcomm = Zeven/2. In a stripline the two modes see the same Dk and travel together; in a microstrip more of the odd-mode field is in air, so the two modes separate, which is the far-end crosstalk the crosstalk page describes.
The extrapolation. The solver runs at seven mesh levels. From the levels with 4, 8 and 16 cells across the smallest feature it estimates where the sequence is heading with Aitken’s Δ2 method, which needs no assumption about how fast the sequence converges. It is an estimate: trust it when the last three rungs are already close together.
What it leaves out. Loss, frequency dependence, solder mask, the trapezoid of a real etched trace and copper roughness. Each moves Z0 by a percent or two, and a sign-off solver includes them all. None of them changes the two lessons the panel is built for: converge the mesh, and keep the walls away.
In the real world
Solvers have become easy to run and no easier to run well. The defaults produce a picture, and the picture is persuasive in a way that hides every assumption behind it.
Which is why the habit of validating against a known case is worth more than any amount of tool expertise. If a solver reproduces a quarter-wave resonance you calculated by hand, you have learned something about the solver. If it does not, you have learned something more important.