Skip to content

Jajaho/NACLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

888b    888        d8888  .d8888b.  888      8888888 
8888b   888       d88888 d88P  Y88b 888        888   
88888b  888      d88P888 888    888 888        888   
888Y88b 888     d88P 888 888        888        888   
888 Y88b888    d88P  888 888        888        888   
888  Y88888   d88P   888 888    888 888        888   
888   Y8888  d8888888888 Y88b  d88P 888        888   
888    Y888 d88P     888  "Y8888P"  88888888 8888888 

Nodal Analysis Command Line Interface by Jakob Holz 

Features

  • Supported component types: Current Source, Resistor, Conductor
  • The program can validate the graph and automatically remove floating nodals.
  • Print the SLE
  • Multiple connections between two nodals are allowed.
  • Unlimited nodals

Technical Keypoints

  • GraalVM 11 JDK
  • GraalVM 20.02 compiler
  • Picocli
  • Gradle 7.1 for dependency management
  • Customised JGraphT library
  • Precise component values through BigDecimal
  • Custom MathUtil.java

Theory of Operation

The circuit under test is manually inserted by the user using the command line interface. Control and data inputs are processed using regular expressions. The circuit is represented as a directed weighted graph, which is created live with every input. The graph is validated upon request ("val" control input) or automatically before every compute if a calculation is triggered ("cal" control input). During the validation procedure the user is prompted to fix all errors if any are detected. Once the calculation is triggered the previously created graph is parsed into a system of linear equations (SLE) as per common rules of the nodal analysis. In software this is accomplished by iterating through every edge (component) connected to every vertex (nodal) and adding the edge weight to corresponding index in the array e.g. conductance matrix (For further information on how this is done exactly please see the makeSLE method in the Main.java class). After the matrix has been parsed and checked for symmetry, Cramers method is used to solve the SLE and calculate the individual nodal potentials.

About

Command Line Interface for Nodal Analysis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages