{ "info": { "author": "Giuseppe Venturini and others", "author_email": "ggventurini+GITHUB@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License (GPL)", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4" ], "description": "ahkab\n=====\n\n**a SPICE-like electronic circuit simulator written in Python**\n\nThe code should be easy to read and modify, the main language is Python\n-- 2 or 3 -- and it is platform-independent.\n\nNews!\n-----\n\n- Ahkab v0.18 was released on July 18 2015, including new features,\n bugfixes and improved documentation. It is recommended to upgrade.\n Check out `the release\n notes `__ for\n more!\n- The whole codebase has been going through a (yet incomplete)\n refactoring and documenting effort. The `new documentation is\n available on RTD `__.\n\nMy resources are limited these days, so the much-needed work is\nproceeding slowly, albeit hopefully steadily. If you are interested and\nyou would like to contribute to refactoring or documenting a particular\nfeature, it would be very welcome.\n\n|Build Status| |Coverage Status| |PyPi version| |GPLv2 license| |DOI|\n\nSupported simulations:\n----------------------\n\n- Numeric:\n\n - **Operating point**, with guess computation to speed up the\n solution. See example: `Downscaling current\n mirror `__\n - **DC sweep**\n - **Transient analysis**, available differentiation formulas:\n implicit Euler, trapezoidal, gear orders from 2 to 5. See for\n example the `simulation of a Colpitts\n Oscillator `__.\n - **AC analysis**\n - **PZ** analysis\n - **Periodic steady state analysis** of non-autonomous circuits,\n *time* *domain* shooting and brute-force algorithms.\n\n- Symbolic:\n\n - **Small signal analysis**, AC or DC, with extraction of transfer\n functions, DC gain, poles and zeros. Various `symbolic analysis\n examples on this\n page `__.\n\nThe results are saved to disk, plotted or printed to stdout and can be\nread/processed by the most common tools (eg.\n`Octave `__,\n`gnuplot `__,\n`Matlab `__,\n`gwave `__ and others)\n\nInstall\n-------\n\nThe program requires:\n\n- the Python interpreter version 2 or 3 (at least v.2.6 for Python2,\n v.3.3 for Python3),\n- numpy>=1.7.0, scipy>=0.14.0, sympy>=0.7.6 and tabulate>=0.7.3.\n\nMatplotlib is strongly recommended and no plotting will work without.\n\nIf you need more information about the dependencies, check the `Install\nnotes `__.\n\nUsage\n-----\n\n1. ``ahkab`` can be run as a Python library\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n from ahkab import new_ac, run\n from ahkab.circuit import Circuit\n from ahkab.plotting import plot_results # calls matplotlib for you\n import numpy as np\n\n # Define the circuit\n cir = Circuit('Butterworth 1kHz band-pass filter')\n cir.add_vsource('V1', 'n1', cir.gnd, dc_value=0., ac_value=1.)\n cir.add_resistor('R1', 'n1', 'n2', 50.)\n cir.add_inductor('L1', 'n2', 'n3', 0.245894)\n cir.add_capacitor('C1', 'n3', 'n4', 1.03013e-07)\n cir.add_inductor('L2', 'n4', cir.gnd, 9.83652e-05)\n cir.add_capacitor('C2', 'n4', cir.gnd, 0.000257513)\n cir.add_inductor('L3', 'n4', 'n5', 0.795775)\n cir.add_capacitor('C3', 'n5', 'n6', 3.1831e-08)\n cir.add_inductor('L4', 'n6', cir.gnd, 9.83652e-05)\n cir.add_capacitor('C4', 'n6', cir.gnd, 0.000257513)\n cir.add_capacitor('C5', 'n7', 'n8', 1.03013e-07)\n cir.add_inductor('L5', 'n6', 'n7', 0.245894)\n cir.add_resistor('R2', 'n8', cir.gnd, 50.)\n\n # Define the analysis\n ac1 = new_ac(2.*np.pi*.97e3, 2.*np.pi*1.03e3, 1e2, x0=None)\n\n # run it\n res = run(cir, ac1)\n\n # plot the results\n plot_results('5th order 1kHz Butterworth filter', [('|Vn8|',\"\")], res['ac'],\n outfilename='bpf_transfer_fn.png')\n\n2. ``ahkab`` can be run from the command line with a netlist file\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThe syntax is:\n\n::\n\n `$ python ahkab -o graph.dat `\n\nSee ``ahkab --help`` for command line switches, `also online on the\ndocumentation\npages. `__\n\nDocumentation\n~~~~~~~~~~~~~\n\nThe `documentation is available on\nRTD `__.\n\nThere, you can find a\n`documentation `__\nand\n`examples `__\nregarding how to simulate from a Python script.\n\nRefer to the `netlist syntax\npage `__\nif you prefer to write netlist files that describe the circuit.\n\nExperience with running SPICE or related commercial simulators can be\nvery useful: this is not for the faint of heart.\n\nDevelopment model\n~~~~~~~~~~~~~~~~~\n\n- The development happens on the `github\n repository `__,\n- Mostly on the master branch, with feature branch being created only\n for special purposes or non-trivial features.\n- Snapshots are released on a (hopefully) regular basis and are\n available on the `Releases pages, complete with\n changelog `__ and on\n `PYPI `__\n\nPatches and pull requests are welcome!\n\nHow this project was born\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThis project was born when I was an enthusistic undergrad, apparently\nwith plenty of free time, attending \"Simulazione Circuitale\" (*Circuit\nSimulation*) taught by `Prof. A.\nBrambilla `__ back in Italy at the\nPolytechnic University of Milan.\n\nI am grateful to prof. Brambilla for teaching one of the most\ninteresting courses of my university years. -GV\n\nBugs and patches\n~~~~~~~~~~~~~~~~\n\nDoes it work? Bugs? Do you have patches? Did you run some noteworthy\nsimulation? Let me know! Feedback is very welcome, my `email\naddress `__ is available after a captcha.\n\nSupport the development with a donation\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf you wish to support the development of ``ahkab``, ***please donate to\ncancer research:***\n\n- `Association for International Cancer Research\n (eng) `__,\n\nor\n\n- `Fond. IRCCS Istituto Nazionale dei Tumori\n (it) `__.\n\nCredits\n~~~~~~~\n\n**Authors:** `Giuseppe Venturini `__,\nwith contributions from `Ian Daniher `__\nand `Rob Crowther `__.\n\n**Code:** the module ``py3compat.py`` is (c) 2013 - the Jinja team.\n\n**Dependencies:** many thanks to the authors of ``numpy``, ``scipy``,\n``sympy``, ``matplotlib`` and ``tabulate``!\n\n.. |Build Status| image:: https://travis-ci.org/ahkab/ahkab.png?branch=master\n :target: https://travis-ci.org/ahkab/ahkab\n.. |Coverage Status| image:: https://coveralls.io/repos/ahkab/ahkab/badge.png?branch=master\n :target: https://coveralls.io/r/ahkab/ahkab?branch=master\n.. |PyPi version| image:: http://img.shields.io/badge/version-0.18-brightgreen.png\n :target: https://pypi.python.org/pypi/ahkab/\n.. |GPLv2 license| image:: http://img.shields.io/badge/license-GPL%20v2-brightgreen.png\n :target: https://raw.githubusercontent.com/ahkab/ahkab/master/LICENSE\n.. |DOI| image:: https://zenodo.org/badge/doi/10.5281/zenodo.17696.svg\n :target: http://dx.doi.org/10.5281/zenodo.17696", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://ahkab.github.io/ahkab/", "keywords": "electronic circuit simulator numeric symbolic", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "ahkab", "package_url": "https://pypi.org/project/ahkab/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ahkab/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://ahkab.github.io/ahkab/" }, "release_url": "https://pypi.org/project/ahkab/0.18/", "requires_dist": null, "requires_python": null, "summary": "a SPICE-like electronic circuit simulator", "version": "0.18" }, "last_serial": 1630031, "releases": { "0.12": [ { "comment_text": "", "digests": { "md5": "4e52690dc1bebb258aed0b37e7b30f0d", "sha256": "e3f7277f8fd95c3f3159b0eba75ac20fbefae478b8bbd2a2dc58afc7a564ac56" }, "downloads": -1, "filename": "ahkab-0.12.tar.gz", "has_sig": false, "md5_digest": "4e52690dc1bebb258aed0b37e7b30f0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 127341, "upload_time": "2015-01-07T11:22:32", "url": "https://files.pythonhosted.org/packages/c1/0b/4f15b7ee72e83bb400bf22e2d03e6be8fb0e30e87049c9aca43d00572a16/ahkab-0.12.tar.gz" } ], "0.13": [ { "comment_text": "", "digests": { "md5": "073454e4ce35544444670378f51e9fbd", "sha256": "109b78fbba92888dba88835dd0f48ffd5fdc4dd6cf97d7fba587834cdf298c28" }, "downloads": -1, "filename": "ahkab-0.13.tar.gz", "has_sig": false, "md5_digest": "073454e4ce35544444670378f51e9fbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 140331, "upload_time": "2015-02-17T17:17:53", "url": "https://files.pythonhosted.org/packages/bb/04/940d34274ee4f344053145f2652cee686862c8ef11a8d15f0b936e79985e/ahkab-0.13.tar.gz" } ], "0.14": [], "0.15": [], "0.15.1": [ { "comment_text": "", "digests": { "md5": "d85b9e51c92f16bfe20536e0dacc2f99", "sha256": "b12a5847ac70b6caf27e94c360643189953239f7385694d831817d3a6e269a48" }, "downloads": -1, "filename": "ahkab-0.15.1.tar.gz", "has_sig": false, "md5_digest": "d85b9e51c92f16bfe20536e0dacc2f99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 142650, "upload_time": "2015-04-20T12:32:49", "url": "https://files.pythonhosted.org/packages/5d/36/60445bba2a00e41c61ee38ef4f0ebaa81799e26d1025510cc33bf6bd2831/ahkab-0.15.1.tar.gz" } ], "0.16": [ { "comment_text": "", "digests": { "md5": "679f0758cec08278dfb67e9ae1682f3f", "sha256": "2e31d570303e26199be27e6f98b8ea1a036a7736884a86315c8bb4dec05299d3" }, "downloads": -1, "filename": "ahkab-0.16.tar.gz", "has_sig": false, "md5_digest": "679f0758cec08278dfb67e9ae1682f3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 143477, "upload_time": "2015-05-03T13:17:54", "url": "https://files.pythonhosted.org/packages/5d/a1/a81208574f7373cd85117bbeee682f190a7a2aaa1a1cefc48dc1612929da/ahkab-0.16.tar.gz" } ], "0.17": [ { "comment_text": "", "digests": { "md5": "f99492a8d81344ea6e6450bce934335e", "sha256": "1e5ce6eea5068155890bdea35cc3cdd0f9a7d3584e87669970d94cbf00f0e575" }, "downloads": -1, "filename": "ahkab-0.17.tar.gz", "has_sig": false, "md5_digest": "f99492a8d81344ea6e6450bce934335e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 147246, "upload_time": "2015-05-17T19:53:49", "url": "https://files.pythonhosted.org/packages/f7/af/48dd1f180b08e0cc0cee85d250ed39143639edb7d9aba9c14053fd4a3659/ahkab-0.17.tar.gz" } ], "0.18": [ { "comment_text": "", "digests": { "md5": "c202f8ee6fe8188eac9a20333de1a071", "sha256": "69625db9c5c8c4e20f16e6c0afe15b34cfce85c80a41049feda30891dcdbffe5" }, "downloads": -1, "filename": "ahkab-0.18.tar.gz", "has_sig": false, "md5_digest": "c202f8ee6fe8188eac9a20333de1a071", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 163005, "upload_time": "2015-07-12T15:34:52", "url": "https://files.pythonhosted.org/packages/8b/b4/02d892780fbf27646454fc0655e5bc9df7b48bcfc544b24d1fbb52cdc033/ahkab-0.18.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c202f8ee6fe8188eac9a20333de1a071", "sha256": "69625db9c5c8c4e20f16e6c0afe15b34cfce85c80a41049feda30891dcdbffe5" }, "downloads": -1, "filename": "ahkab-0.18.tar.gz", "has_sig": false, "md5_digest": "c202f8ee6fe8188eac9a20333de1a071", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 163005, "upload_time": "2015-07-12T15:34:52", "url": "https://files.pythonhosted.org/packages/8b/b4/02d892780fbf27646454fc0655e5bc9df7b48bcfc544b24d1fbb52cdc033/ahkab-0.18.tar.gz" } ] }