# Purpose
The purpose of this simulation class is to provide a simple, resistor-inductor-capacitor (RLC) circuit solver. Currently, it can perform a transient simulation given a time-varying input. It has personally provided a better intuition on certain effects such as routing a PCB trace over a ground plane split or an impedance mismatch between the source and the load.

Next steps are to provide an adjoint parameter optimizer for optimizing the network for impedance matching or any other cost-quantifiable objective.

# Examples
## Ground Plane Split Example 1
In this example, the source and load are matched but there is a split in a ground plane.

The representative circuit is shown below. The split in the ground plane is modeled by creating a separate, "local ground" on the right side of the circuit that as an inductor and capacitor branch and a parallel resistor connecting it to the true ground.

![](images/gnd_split_matched_load/ltspice_circuit.png)

The LTspice results are shown below.

![](images/gnd_split_matched_load/ltspice_waveform.png)

The LTspice results are compared to the Python simulation. results

![](images/gnd_split_matched_load/ltspice_vs_code.png)

## Ground Plane Split Example 2
In this example, the source and load are matched but there is a split in a ground plane. It varies with the prior example by changing key component values in the model, providing a completely different response.

Circuit

![](images/gnd_plane_reflection/ltspice_circuit.png)

The results of the simulation are below.

![](images/gnd_plane_reflection/reflection_wave.png)

![](images/gnd_plane_reflection/reflection_wave_N24.gif)

## Ground Plane Split with Mismatched Load
This example includes both the ground plate split and a mismatched source and load impedance.

The circuit in LTspice is shown below

![](images/gnd_split_mismatched_load/ltspice_circuit.png)

The LTspice simulation results are below

![](images/gnd_split_mismatched_load/ltspice_waveform.png)

A comparison between the LTspice simulation and Python simulation are below

![](images/gnd_split_mismatched_load/ltspice_vs_code.png)