Getting Started¶
Ohmcha is written in C++, and uses the Qt framework for GUI and some file IO. The project is structured in the following way:
ohmcha
├── doc -- Project documentation
│ ├── conf.py
│ ├── contribute.rst
│ ├── developer -- Developer documentation
│ │ ├── algorithms.rst
│ │ ├── circuit_view.rst
│ │ ├── class_documentation.rst
│ │ ├── cli.rst
│ │ ├── component.rst
│ │ ├── getting_started.rst
│ │ ├── index.rst
│ │ ├── mainwindow.rst
│ │ ├── model.rst
│ │ └── tree.rst
│ ├── Doxyfile
│ ├── examples
│ │ └── example_1
│ │ ├── example_1.svg
│ │ ├── example_1.tex
│ │ └── filter.conf
│ ├── getting_started.rst
│ ├── index.rst
│ ├── installation.rst
│ ├── Makefile
├── icons
│ └── logo.svg
├── ohmcha.pro -- Qt project file
├── resources.qrc -- Qt resource file
└── src
├── fileio -- File IO
│ ├── xml.cpp
│ └── xml.h
├── main.cpp
├── model -- Low-level mathematical model
│ ├── component.cpp
│ ├── component.h
│ ├── graph.cpp
│ ├── graph.h
│ ├── kirchhoff.cpp
│ └── kirchhoff.h
├── program -- CLI module
│ ├── program.cpp
│ └── program.h
├── test
│ ├── test.cpp
│ └── test.h
└── ui -- GUI
├── circuitview.cpp
├── circuitview.h
├── component_preview.cpp
├── component_preview.h
├── component_preview.ui
├── graphic_component.cpp
├── graphic_component.h
├── mainwindow.cpp
├── mainwindow.h
└── mainwindow.ui
Model
- src/model/
Low-level mathematical model of electrical circuits and algorithms. It does not depend on any GUI representations and doesn’t use the Qt framework.
File IO
- src/fileio/
Anything that is related to reading from and writing to files. This module uses the Qt framework, but it is completely decoupled from the GUI.
UI
- src/ui/
The user interface.
Program
- src/program/
Implementation of the Command Line Interface.
Test
- src/test/
Any tests or examples. These are mostly used to test if a new feature has broken existing features.
Note
The above components correspond to the directory structure inside src/