a SPICE-like electronic circuit simulator written in Python
Version 0.18 represents the culmination of almost two months of efforts, yet another step in the current time-based release scheme.
This release features support for the Fourier (.FOUR) and Fast Fourier Transform directives (.FFT). Piece-wise linear functions are also now supported in Python, with extra features like a repeat directory to enable periodicity.
Moreover, as in the previous releases, several commits were devoted to improving the documentation: you can find the new, improved documentation online at http://ahkab.readthedocs.org/en/latest/
.FOUR
and .FFT
supportUser code can be usually easily fixed substituting 2*pi*r[w]
with r[f]
or the like. Sorry for any trouble this creates.
None.
BUGFIX: Fix opening of files in system that do not default to utf-8 BUGFIX: Suppress error message on Windows BUGFIX: Use all assumptions, fix #32 BUGFIX: fix reading the netlist from stdin BUGFIX: Use different options for SH and BFPSS BUGFIX: no DC value -> return t=0 BUGFIX: convert to uppercase before comparison
Version 0.17 represents the culmination of 15 days of efforts, yet another step in the current time-based release scheme.
This release features a new memoization system, AM and FM time functions, improved docs and error messages. We also got rid of the last instances of np.mat
in the code.
Moreover, as in the previous releases, many commits were devoted to improving the documentation: you can find the new, improved documentation online at http://ahkab.readthedocs.org/en/latest/
mytime_function.value()
with mytime_function(time)
.find_vde_index()
now allows for elem
and part_id
args.remove_elem()
now allows elem
and part_id
args.time_functions.py
. This means code referring to the sin
, pulse
and exp
functions needs to change from devices.sin
to time_functions.sin
.set_results()
to set pss_solution
data.I apologize for the above. Thankfully it is easy enough to fix with one find and replace.
None.
BUGFIX: plotting: remember to set the active figure.
BUGFIX: fix a bug in circuit.remove_elem()
, add tests.
BUGFIX: fix a bug in circuit.find_vde()
, add tests.
BUGFIX: fix error message in circuit.py.
BUGFIX: Do not ask for prediction if we don't have enough points.
Version 0.16 represents the culmination of 1 month of efforts, yet another step in the current time-based release scheme.
This release brings the test coverage of the codebase over the 80% milestone for
the first time. It also features a faster substitution algorithm for symbolic
simulations, we empoly the tabulate
module more extensively, producing a
prettier output (for example print_short()
now prints a pretty table.)
Internally, We removed occurrences of np.matrix
, in favor of np.array
,
according to the overall planned switch in the library. This should be
completely transparent to the user.
A few changes that have been introduced are incompatible with the previous releases:
utilities.log_axis_iterator
and
utilities.lin_axis_iterator
now follow the syntax (min, max, points)
.solution.asmatrix()
has been renamed to
solution.asarray()
.pz_solution
as 'Re(p0)'
and 'Im(p0)'
. Hopefully, being
undocumented it had little use. Please use numpy.real(r['p0'])
or
numpy.imag(r['p0'])
to achieve the same result.printing.table_print()
for print(printing.table())
.We apologize about the above, we believe the technical debt we paid with the changes above makes up for the discomfort to our userbase.
Moreover, as in the previous releases, several commits were devoted to improving the documentation: you can find the new, improved documentation online at http://ahkab.readthedocs.org/en/latest/
ahkab
should now work well in IPython running under Python2 again.None.
ValueError
in results.cid
pss_solution.asmatrix()
codecs
even if on Ipythonsymbolic_solution
symbolic_solution
raise KeyErrors
dc_solution.values()
now slices along the correct axisload_csv()
raises ValueError
KeyErrors
KeyError
for key misses in ac_solutionitems()
returns no arrays.values()
returns a list, not an array.Version 0.14 represents the culmination of three months of efforts, yet another step in the current time-based release scheme.
This release features much improved tabular print-outs, thanks to tabulate
, faster circuit checking and reverse node look-ups.
Moreover, as in the previous releases, many commits were devoted to improving the documentation: you can find the new, improved documentation online at http://ahkab.readthedocs.org/en/latest/
tabulate
to print out pretty tables. They are pretty, oh so pretty tables.
circuit.get_nodes_number()
.nodes_dict
to speed up reverse lookups.None.
Version 0.13 represents the culmination of efforts dating back to January and contains 135 commits.
This release features current-controlled current sources and voltage sources and new options to select the format of numbers printed for user display and how the MNA matrix is built in Symbolic Analysis.
Moreover, as in the previous releases, many commits were devoted to improving the documentation: you can find the new, improved documentation at http://ahkab.readthedocs.org/en/latest/
None.
Version 0.12 represents the culmination of efforts dating back to May and contains 142 commits.
This release has no new features, but it has several bug fixes and it introduces Python3 support (!).
Moreover, many commits were devoted to improving the documentation: you can find the new, improved documentation at http://ahkab.readthedocs.org/en/latest/
None.
None.
Version 0.11 represent the culmination of four months of efforts.
Ahkab also got considerably faster in DC/OP/TRAN/PSS analyses.
A PY3 version passing the whole test suite is available in the repository.
None.
The 0.10 series is a development series mostly devoted to documenting, fixing bugs, enforcing PEP8 and making minor changes to the code base, feature-wise.
The plan is to roll out quickly new versions for any bug fixes added to the code base.
add print_netlist_elem_line()
.modify_x0_for_ic()
should NOT modify op results.an_list
so that we can pop out items as we please transparently to the user.element.part_id
in subckts__version__.py
for versioningmycirc.gnd
.setup.py
.ahkab
Python interface.get_headers_index(..., load_headers=[])
returns all header indices.if filename == '-' or sys.stdout
$DISPLAY
convergence_check()
to utilities.Thanks to @weilawei**, @endolith, @mightyiam for their contributions.
** Big thanks man, excellent job.