All Projects → giaccone → SpicePy

giaccone / SpicePy

Licence: MIT license
Circuit simulator written in python

Programming Languages

python
139335 projects - #7 most used programming language
AGS Script
88 projects

Projects that are alternatives of or similar to SpicePy

circuit-simulator
简易在线电路仿真系统
Stars: ✭ 68 (+11.48%)
Mutual labels:  circuit-simulator
act
ACT hardware description language and core tools.
Stars: ✭ 53 (-13.11%)
Mutual labels:  circuit-simulator
OpenCircuits
A free, open source, online digital circuit/logic designer.
Stars: ✭ 140 (+129.51%)
Mutual labels:  circuit-simulator
Xyce
The Xyce™ Parallel Electronic Simulator
Stars: ✭ 195 (+219.67%)
Mutual labels:  circuit-simulator
node-ngspice
A frontend for NgSpice. (Archived and no longer maintained)
Stars: ✭ 23 (-62.3%)
Mutual labels:  circuit-simulator
brainbox
Teaching-focused digital circuit simulator. Allows anyone to graphically connect objects within a awesome web-browser application without knowing coding or hacking.
Stars: ✭ 100 (+63.93%)
Mutual labels:  circuit-simulator
hradla
Logic network simulator that runs in your browser
Stars: ✭ 22 (-63.93%)
Mutual labels:  circuit-simulator

1. About SpicePy

SpicePy is a name coming from the merge of SPICE (Simulation Program with Integrated Circuit Emphasis) and Python, hence, it goes without saying that it is a Circuit simulator written in python

SpicePy borns as a teaching project. It is shared with students of basic circuit theory with two aims:

  • to allow them to check the results of exercises solved analytically
  • to show them how a numerical code to solve circuit is made

This document provides information basic about features and installation procedure. For the user's guide please refer to the Wiki section.

1.1 What can I do with SpicePy?

SpicePy allows you to simulate

  1. linear circuits
    • operating point
    • transient simulation
    • alternating current simulation
  2. the following components:
    • resistor
    • capacitor
    • inductor
    • independent voltage source
    • independent current source
    • dependent sources (VCVS, VCCS, CCVS, CCCS)
  3. transient sources (pwl, pulse, sin, exp)

2. Installation

This project is based on Python 3 (version >= 3.6 is constrained in the setup). I'm use to run this project on the latest version provided by miniconda. For the sake of completeness, Python 2 is not supported.

The project makes use of the following Python modules:

  • numpy
  • scipy
  • matplotlib

Usually, the last version of these Python modules is the one under use.

In the following three options for the installation are described.

2.1 Install from Pypi

Run this command (optionally, you can activate you virtual environment first):

pip install spicepy

2.2 Install (manually) from GitHub

  1. Clone the repository:

git clone https://github.com/giaccone/SpicePy.git

  1. put the project in the desired location
  2. add SpicePy folder to the path of your interpreter

2.3 Install within Google Colab

  1. Open a notebook in google colab
  2. install spicepy with
!pip install spicepy    # please note the exclamation mark before 'pip'
  1. now you can use spicepy within the notebook

3. Verify the installation

  • Download the benchmark and the demo folder from the GitHub project,
  • put the two folder at the same location,
  • enter the benchmark folder and run the script run_benckmark.py.

If everything is configured correctly, you will obtain the following results:

4. Work in progress

Here you can read about aspects that I'm thinking to include in this project. The list does not certifies that I will integrate all it is described. It's a simple list of the topics that potentially will be developed.

  • non-linearity: I'm planning to implement a non-linear solver based on Newthon-Rapshon method. A rough implementation already exists but it is far from be harmonized to the entire project. Since I prefer stability over new features I will include non-linearity when I will have some more (free) time that currently I do not have.
  • GUI: a small project was developed in order to create a text editor with tools to write netlists and with SpicePy integrated. But It is not sufficiently stable.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].