Changelog¶
All notable changes to reASITIC are documented here. Format follows Keep a Changelog, versioning follows Semantic Versioning.
Unreleased¶
Added¶
Comprehensive REPL CLI with all 117 commands matching the original ASITIC binary (100 % command coverage).
100 % coverage of the binary’s 643 identified C functions — every one is re-implemented in Python or explicitly subsumed by a NumPy / SciPy / stdlib equivalent. See
MAPPING.mdanddocs/milestone.md.10 geometry builders: square spiral, polygon spiral, wire, ring, via cluster, transformer, 3D mirror transformer, symmetric square, symmetric polygon, balun, MIM capacitor, multi-metal series square.
Greenhouse partial-inductance summation with rectangular-bar self-inductance formula (matches the binary’s
cmd_inductance_compute).Filament-level current-crowding solver (
solve_inductance_matrix) via Schur-complement reduction; rigorous MNA-based solver (solve_inductance_mna) forn_w·n_t > 1topologies.Auto-sized filament grid based on skin depth at the operating freq.
Substrate eddy-current correction with finite-thickness ground plane attenuation (
inductance/eddy.py).Wheeler-style AC resistance kernel verbatim ported from the binary’s
compute_inductance_inner_kernel.2-port Y/Z/S / 3-port reduction conversions; Pi / Pi3 / Pi4 / PiX equivalent-circuit extraction.
Self-resonance scan, ShuntR (parallel-equivalent), Zin with arbitrary terminations, transformer analysis (CalcTrans).
Touchstone v1
.s2preader and writer (round-trip) supporting MA / DB / RI formats and Hz/kHz/MHz/GHz scaling.SPICE Pi-model
.subcktexporter (single-frequency and broadband variants).FastHenry
.inpexporter for cross-validation.CIF and Sonnet
.sonwriters and readers.Per-metal-layer parallel-plate substrate shunt-cap with series-stack dielectric averaging.
Multi-layer Sommerfeld Green’s function (
substrate/green.py) with quasi-static and Bessel-J0 numerical integration variants.FFT-accelerated 2-D convolution Green’s grid (
substrate/fft_grid.py).OptSq/OptPoly/OptArea/OptSymSq/OptSymPolyscipy.optimize SLSQP-based optimisers.BatchOptfor multi-target optimisation;Sweepfor Cartesian parametric design exploration.JSON-based session save / load (replaces the binary’s BSAVE/BLOAD; alias commands route to JSON).
Mohan 1999 modified-Wheeler closed-form L estimate as a sanity check.
Y-parameter de-embedding utilities (open-only, open-then-short).
Multi-frequency design report aggregator.
Optional matplotlib plotting helpers.
Performance benchmarks suite.
Auto-generated CLI reference (
scripts/generate_cli_reference.py).Pre-commit hook running ruff + mypy + pytest.
317-test suite (with binary-driven Geom cross-checks under
xvfb-run).Cookbook with 10 worked design recipes.
Tutorial walking through the full design flow.
Documentation¶
README.md— project overview and structure.TUTORIAL.md— step-by-step design flow.COOKBOOK.md— 10 worked recipes.CLI_REFERENCE.md— auto-generated REPL command table.MAPPING.md— line-by-line Python ↔ C function correspondence.PLAN.md— implementation plan and remaining TODOs.
Library substitutions vs. the original binary¶
Vendored in binary |
Replacement in Python |
|---|---|
LAPACK / BLAS |
|
LINPACK |
|
QUADPACK |
|
libf2c (Fortran I/O) |
not needed |
MV++ Sparse-BLAS |
|
SGI STL |
not needed |
libstdc++ exceptions |
Python exceptions |
Mesa GL / X11 |
out of scope — headless library |
readline |
|
BSAVE binary format |
JSON (richer + portable) |
Known limitations¶
The legacy
run/asitic.linux.2.2binary’sIndand other numerical commands segfault in headless mode (uninitialised pointer at offset −4 incmd_inductance_compute); we cross-validate via geometry-only commands (Geom).The full FFT-based grid Green’s function is partially ported — we use scipy’s FFT for the convolution step, which is slower than the binary’s hand-tuned variant for very large designs.
Orthogonal-segment mutual inductance returns 0 (the filamentary Maxwell limit). The binary’s finite-width corner correction is documented but not implemented (negligible for 2-D Manhattan spirals).