This project is a class assignment for the HPC course at ENSIIE. Our goal is to plot the local density of a nuclear system.
The goal of this project is to calculate the local density of a nuclear system using the following expression:
We can also express the wave functions as:
To make the calculations feasible, the basis set used will be truncated.
We had to plot the local density of a nuclear system. We plotted the local density of a nuclear system using povray.
We also had to optimize our code as much as possible. We used the following tools to do so:
- loop optimization 🔄
- precalculation of a matrix in a cube
- factorization ➗
Total optimization: ~x100 🚀
This project uses the following libraries:
- C++11
- armadillo (C++ library)
- cxxtest (C++ library)
- Python 3
- matplotlib (Python library)
- astyle (code formatter)
- doxygen (documentation generator)
- povray
For Debian distributions, you can install the libraries using the following command:
sudo apt-get install libarmadillo-dev cxxtest python3 python3-matplotlib build-essential astyle doxygen povray
We use the armadillo's library to do most of our calculations. This library is one of the fastest available to do linear algebra, it uses LAPACK, BLAS ...
See more here: http://arma.sourceforge.net/
Here are the main commands you can run using the makefile:
- Compile the entire project, including doxygen documentation:
make
- Compile the code only:
make code
- Compile the documentation only:
make doc
- View the result:
make pov
- Clean the project:
make clean
- Run tests before any commit:
make tests
- Format the code:
make style
- Run the benchmark:
make bench
We use astyle to format our code, you can find the configuration file in the makefile. See more: http://astyle.sourceforge.net/