Metadata-Version: 2.1
Name: spicepy
Version: 1.0
Summary: Circuit simulator written in python
Home-page: https://github.com/giaccone/SpicePy
Author: Luca Giaccone
Author-email: luca.giaccone@polito.it
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE

# 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](https://github.com/giaccone/SpicePy/wiki).

# 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`)

# Installation

## From Pypi
Run this command (optionally you can activate you virtual environment first):
```
pip install spicepy
```

## From GitHub
1. Clone the repository:

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

2. add SpicePy folder to the python path
3. done!

## Requirements
This project is based on Python 3. I'm use to run this project on the latest version provided by [miniconda](https://docs.conda.io/en/latest/miniconda.html). Side note, Python 2 is **not** supported.

The project makes use of the following Python modules:
* `numpy`
* `scipy`
* `matplotlib`

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

Last but not least, as many other Python tools a convenient method to handle SpicePy is within an interactive shell like: [`iPython`](https://ipython.org/), [`jupyter notebook`](https://jupyter.org/), [`google colab`](https://colab.research.google.com/)

# 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.

