Heavi RF circuit simulator
Its been a while since I posted. My FEM simulator project is paused at the side of a huge hill called the vector Finite Element method with Curl free basis functions that are a bit more complicated to implement than the scalar quasi-3D solution I have now. After the holidays I haven’t been able to start implementing this yet but in the mean time I decided to release my simple RF circuit simulator under the name Heavi!
What is Heavi?
Heavi is my Python linear component RF circuit simulator intended as a local version of ADS. It uses a very basic nodal analysis algorithm on the Admittance matrix to solve for the S-parameters.
I initially wrote this as a faster way to solve RF-circuits in the microwave domain and also mostly to implement some monte-carlo like simulations.
Imagine for example that you have a cascade of RF splitters, cables, circulators, diplexers etc that are all specified based on macroscopic parameters such as insertion loss, transmission loss, VSWR etc. What would be the amplitude and phase error at the end of your system if you don’t know the exact reflection and transmission phases etc?
In this case the components themselves are very simple but I needed an interface to easily implement normally distributed component parameters such as the actual characteristic impedance so that I could paint a picture of the key performance metrics. This is why I build this simple library.
The core computation is optimized using Numba and is pretty fast. Its very easy to use and quite flexible.
Its in very early development with lots of problems that I have to fix but I thought it interesting to just make the Git repository public for people to play around with it an maybe get some contributions!
You can read more about this and download it on the Git page.
Here is an example of a simple script with a filter and the associated code.