It is possible to run GnuCAP simulations from Python.
For this, you need to install the Gnucap Python package from Felix Saalfelder. This package can be obtained from: The Gitlab project
The main project package is located at: http://gnucap.org/dokuwiki/doku.php/gnucap:user:gnucap_python
First you need to clone the repo:
git clone https://gitlab.com/gnucap/gnucap-python
To build the Gnucap Python extension you might to build a recent version of gnucap. You can see a list of recent versions with:
git tag -lgit checkout 20171003
And repeat the build cycle from Chapter 1.
The Python extension is based on SWIG and the autotools build system
To build and use the Gnucap module, you should install a at least the numpy package with development headers. In Linux you can simply put a link to these headers in the /usr/include folder as follows:
# cd /usr/local/include && ln -sf /usr/local/lib/python3.5/dist-packages/numpy/core/include/numpy .
Also you might want to install matplotlib package to plot simulation results.
$ cat > pulse.cktspicev1 (1 0) pulse (0 1).print tran v(1).tran 0 1 .1.tran trace all.end
Then run the Python based simulation script:
$ cat > sim_pulse.pyimport gnucapfrom gnucap import command as cmdcmd("get stuff.sp")print("listing circuit")cmd("list")cmd("store tran v(nodes)")cmd("transient 1 trace=none > /dev/null") # spice aliases don't work# bug: does not throw if "v(1)" doesnt exist, (but returns None).w = gnucap.CKT_BASE_find_wave("v(1)")for i in w:print (i)