The project is aimed to develop a C++ emulator for plasma physics calculations. And now, it is still in the early stage of development.
- C++20 compiler
- vcpkg
- Addtionally, if you want to use Intel MKL, you need to install it and set the environment variable
MKLROOT
to the installation directory. And setUSE_MKL_BACKEND=ON
in cmake file (default isOFF
).
- chempars
- core
- common
- fmt (from vcpkg)
- core
- units (from vcpkg)
- eigen3 (from vcpkg)
- intel-mkl (from vcpkg, optional)
- rapidcsv (from vcpkg)
- parallel
- cutlass (from vcpkg, optional)
a C++ library for parsing chemical equations and performing chemical calculations (only plasma, electrolysis).
In academia, we usually need to analyze particle reaction equations like this
The number after the formula refers to the threshold of the reaction.
the chemical equation displayed format is usually in the form of
e + Ar^+ -> Ar^*, excitation , 4.0e-13 1/(cm^3 * s)
the text is part of file like toml
, yaml
or json
usually.
a C++ library for common data structures and algorithms. This library can be regarded as a submodule of the core.
now it contains:
- log
- config file parser
- config argument data structure
- some utils functions
The core library is the core of the emulator. It contains the basic data structures and algorithms for plasma physics calculations.
now it contains:
- a basic units system
- a basic vector and matrix library based on Eigen3
- a basic plasma physics equation solver (TODO)
a basic parallel library based on CUTLASS (optional).
The main goal of the library is to provide faster speed than Eigen3 with Intel-MKL backend in situations where data is particularly large.