Skip to content

Latest commit

 

History

History
114 lines (79 loc) · 3.7 KB

README.txt

File metadata and controls

114 lines (79 loc) · 3.7 KB

PySpice : Simulate Electronic Circuit using Python and the Ngspice / Xyce Simulators

|Pypi License| |Pypi Python Version|

|Pypi Version|

|Anaconda Version| |Anaconda Downloads|

|Tavis CI master|

Quick Links

2024 Update

Disclaimer: PySpice is developed on my free time actually, so I could be busy with other tasks and less reactive.

The free Discourse forum was closed some time ago due to a lack of activity. A HTML backup is stored in the directory pyspice-discourse-backup.

On Devel HEAD

  • fixed the ngspice library loading for recent cffi
  • fixed simulation aborting due to a message from newer ngspice
  • fixes for Spice parser
  • added support for Pint unit library
  • implemented SpiceLibrary
  • code cleanup but must check for typo...

An issue was found with NgSpice Shared, we must setlocale(LC_NUMERIC, "C"); see https://sourceforge.net/p/ngspice/bugs/490/

Overview

What is PySpice ?

PySpice is a Python module which interface |Python|_ to the |Ngspice|_ and |Xyce|_ circuit simulators.

Where is the Documentation ?

The documentation is available on the |PySpiceHomePage|_.

Note: This site is hosted on my own infrastructure, if the site seems done, please create an issue to notify me.

Where to get help or talk about PySpice ?

Thanks to Discourse, PySpice now has a Forum hosted at https://pyspice.discourse.group

What are the main features ?

  • support Ngspice and Xyce circuit simulators
  • support Linux, Windows and Mac OS X platforms
  • licensed under GPLv3 therms
  • implement an Ngspice shared library binding using CFFI which support external sources
  • implement (partial) SPICE netlist parser
  • implement an Oriented Object API to define circuit
  • export simulation output to |Numpy|_ arrays
  • plot using |Matplotlib|_
  • handle units
  • work with Kicad schematic editor
  • implement a documentation generator
  • provides many examples

How to install it ?

Look at the installation section in the documentation.

Pull Request Recommendation

To make it easier to merge your pull request, you should divide your PR into smaller and easier-to-verify units.

Please do not make a pull requests with a lot of modifications which are difficult to check. If I merge pull requests blindly then there is a high risk this software will become a mess quickly for everybody.

Credits

Authors: Fabrice Salvaire and contributors

News