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/