https://github.com/alexius-huang/thevenin
An elegant circuitry simulation website
https://github.com/alexius-huang/thevenin
circuit circuit-simulation graph-algorithm jest nextjs typescript
Last synced: 8 months ago
JSON representation
An elegant circuitry simulation website
- Host: GitHub
- URL: https://github.com/alexius-huang/thevenin
- Owner: Alexius-Huang
- Created: 2019-11-09T16:20:13.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T08:23:30.000Z (almost 3 years ago)
- Last Synced: 2025-02-12T05:56:14.602Z (10 months ago)
- Topics: circuit, circuit-simulation, graph-algorithm, jest, nextjs, typescript
- Language: TypeScript
- Homepage:
- Size: 1.77 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Thévenin
[](https://travis-ci.com/Maxwell-Alexius/Thevenin) [](https://coveralls.io/github/Maxwell-Alexius/Thevenin?branch=master)
> An elegant circuitry simulation website.
Overall Status: **Under Development**
## Details
Using TypeScript and working on several parts:
- Main Circuit Library:
- `Circuit`: Main wrapper for the circuit simulation
- `Circuit.Unit`: Circuit grid system represented by circuit-unit to place different components or wire
- `Circuit.Electronic`: Electronic component class
- `Circuit.Electronic.Unit`: Electronic component unit mapping with respect to the grid circuit unit
- `Circuit.Graph`: The graph data structure to represent the circuit (converted from grid of `Circuit.Unit`)
- `Circuit.GaussianElimination`: Implementation of [Gaussian Elimination](https://www.wikiwand.com/en/Gaussian_elimination) method for determine the result of multi-variable equations by representing and solving the matrix
- `Circuit.Equation`: Construct node-voltage equation
- `Circuit.SimultaneousEquations`: Collection of node-voltage equations and solve by Gaussian Elimination
- `Circuit.Simulation`: The circuit **simulation** algorithm part using [Nodal Voltage Analysis](https://www.wikiwand.com/en/Nodal_analysis) which consists of several phases including:
- Supernode Propagation - Propagates through the circuit graph generated from `Circuit.Graph` and convert voltage source related `Circuit.Graph.Node` into a single super node with different biased voltage
- Node-Voltage Matrix Derivation - Deriving the node voltage matrix to solve for each components' (represented by `Circuit.Graph.Edge`) current values (based on [KCL from Kirchhoff's Circuit Law](https://www.wikiwand.com/en/Kirchhoff%27s_circuit_laws))
- **[TBD]** Ending Phase - After deriving the current of the loads such resistors, scanning through the circuit and derive rest of the node-voltage and other underived component's current according to KVL and KCL
- Using Jest test framework to write Unit/Integration tests
- **[Will Implement After Completing the Circuit Library]** Frontend UI: Using Next.JS framework, Redux (with TypeScript)
- Details will be planned on the future...
## Maintainer
[Maxwell Alexius](https://svartalvhe.im/maxwell-alexius)