lineforge's bitmap C/Gp pipeline solves the 2D electrostatic Laplace equation on a Cartesian pixel grid:
with Dirichlet boundary conditions at conductor pixels (V = +1, −1, or 0) and homogeneous Dirichlet at the outer boundary (V = 0 at infinity, approximated via the open-boundary grid extension).
For a uniform Cartesian grid of pixel side
where each
(and similarly for W, N, S).
For piecewise-constant material maps, the arithmetic-mean stencil produces a
solution accurate to second-order in
The iterative scheme:
$$ V_{i,j}^{(k+1)} = V_{i,j}^{(k)} + \omega \left( \frac{\alpha_E V_{i,j+1}^{(k)} + \alpha_W V_{i,j-1}^{(k)} + \alpha_N V_{i-1,j}^{(k)} + \alpha_S V_{i+1,j}^{(k)}} {\alpha_E + \alpha_W + \alpha_N + \alpha_S}
- V_{i,j}^{(k)} \right) $$
Optimal ω for an
For typical PCB usermaps (
For grids ≳
After convergence, the per-unit-length capacitance is extracted via the energy integral:
where
A second Laplace solve is run with
This is the same trick atlc v1 uses, and matches Wadell's textbook approach.
For a lossy dielectric with loss tangent
Frequency-dependent. For a uniform dielectric this simplifies to
Phase 2 extends the usermap by edge replication out to a 3200×3200 effective area, then uses zero-Dirichlet at the outer edge. Phase 4's polish work implements atlc2's progressive 8×-coarse-pixel extension, which reduces the equation count for very large unshielded simulations without sacrificing accuracy in the field-energy regions that matter for C.
- atlc v1 source (GPL): http://atlc.sourceforge.net/, especially
do_fd_calculation.c. - atlc2 docs §"C and Gp": http://www.hdtvprimer.com/kq6qv/atlc2.html.
- B. Wadell, Transmission Line Design Handbook, Artech 1991, §3.2 (relaxation methods).
- W. Press et al., Numerical Recipes, §17.7 (SOR convergence).
- PyAMG: https://pyamg.readthedocs.io/.