Repository navigation
Releases: Symbulator/solver
Releases · Symbulator/solver
Release list
symbulator 0.6.18
No change to any answer: nothing under symbulator/ moved but one comment
and the version number. This release exists so that PyPI's page carries the
new classifier and README.
- Out of beta (#471). Symbulator 9 left the beta it had been in since its
public launch on 28 Aug 2026; the classifier is now
Development Status :: 5 - Production/Stable, and Python 3.13 and 3.14 are
listed beside 3.9–3.12. - The repository, ready for review (#470). A GitHub Actions workflow runs
the suite on Python 3.9 to 3.14, with the ahkab ground-truth tests in a job
of their own;CONTRIBUTING.md,CODE_OF_CONDUCT.mdandCITATION.cff
added; the JOSS paper and its fact-check inpaper/. - README. The Tests section names the command that counts the suite
instead of a count that had gone stale ("48 tests across six files"; there
are 26 files), and says why the ahkab and IPython tests skip in a plain
install. Two sentences that still said a side of the circuit behind a port
is "reported floating" now say it is given a local reference, as it has
been since 0.5.32. The quick start's transient uses1'u, so the printed
answer matches its comment exactly. Install names the Python versions and
the extras.
On PyPI: https://pypi.org/project/symbulator/0.6.18/ (wheel sha256 f93423548d1d...).
symbulator 0.6.17
Added
evaluate(result, "expression")andsolve(result, equations, unknowns)-- the app's Evaluate box and Solve card as package
functions, so a notebook can do what the calculator did with a solved
circuit's variables:evaluate(res, "vo/vs"),evaluate(res, "vc", conditions=["t = 2"]),solve(res, ["im(ze) = 0"], ["w"], conditions=["w > 0"], real_only=True). Both return SymPy and read
answer names in every spelling (i_r1,ir1,IR1), with the same
shorthand a circuit value gets (2'k,^,u(t),{...}in FD).
evaluatealso answerspf(...),s2t(...)/t2s(...)and
limit(...)with the answers substituted in first, takes a condition at
infinity as a limit, and on ath()result knows the load answers
irl,vrlandprlin the variableload.solvereads a pinning
condition (R_3 = 10) as a substitution and a comparison as a filter on
the roots, andreal_only=Trueis the calculator'ssolve()against
itscSolve(). Aport()result and a plain mapping of names to values
are accepted too, the latter being hower()'s single expression is
handed over. New modulesymbulator/cards.py; nothing else changes.Result.desc, the circuit a result was solved from. It lets
cards.pyderive an element's voltage drop from the two nodes it spans,
which in fd and tr is not amongvalues-- the third level is computed
for dc and ac only -- sovcnames an answer on the app's page while
the package had no such key.- Notebooks.
notebooks/books/holds one executed notebook per built-in
example book (the Course's problems, the two textbook samplers, the
Showcase and the monograph's exemplars), A Baker's Dozen, and the
Manual's circuits, each generated from the app's own files and compared
with the app answer by answer. Not part of the installed package.
Fixed
th(),er()andport()accept a frequency written as a string, as
ac()always has:th(circuit, "2", "0", domain="ac", omega="2*pi*2e3")
reached the stamping code as astrand failed there with can't multiply
sequence by non-int of type ImaginaryUnit, naming nothing the caller had
typed. The one place all of them pass through now sympifies it.
On PyPI: https://pypi.org/project/symbulator/0.6.17/ (wheel sha256 c7108cbd0395...).