QuickStart#
Install dependencies#
We use Intel Compiler and MKL library for our matrix operations.
intel-oneapi-mkl-develandintel-oneapi-compiler-dpcpp-cppare these two packages for this purpose. GCC and Clang also works fine but we anyway need MKL for lapack. If you prefer not to use MKL then comment MKL #include part in the qmatrix.hpp file and uncomment the lapacke part.
We use HDF5 (
libhdf5-dev) for our to read and write data. We can also fully save the NRG iteration state into a hdf5 file and load the NRG state to continue the caculation. This usefull for during the calculation of the static and dynamic quantities.To generate the documentation we need few more python packages. Install these packages if you want to generate the documentation.
sphinx-doc doxygen graphvizsphinx-rtd-theme breathe sphinx-sitemap sphinx exhale
Ubuntu/Debian based Linux OS#
Here is a list commands for to install the dependencies.
sudo apt-get update sudo apt-get install sphinx-doc doxygen graphviz libhdf5-dev --yes pip3 install sphinx-rtd-theme breathe sphinx-sitemap sphinx exhale wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list sudo apt update sudo apt install intel-oneapi-mkl-devel intel-oneapi-compiler-dpcpp-cpp --yes source /opt/intel/oneapi/setvars.sh # We should add this line to the end of our ~/.bashrc line
Other Linux OS#
We can use the currect package manager for to configure
the repository for intel-mkl.
https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-download.html
We can use pip3 to install python Packages.
How to Build a Model#
Clone the nrgplusplus repo.#
[optional] Create a new folder.
mkdir test_nrg; cd test_nrgClone the repo.
git clone https://github.com/srbhp/nrgplusplus.git
Examples#
examples directory contains examples of different Models.
Copy a folder here from
examplesto start woking on a specific model.- Edit
CMakeLists.txtto add the model folder. for example
add_subdirectory(ExampleModel)to the end of theCMakeLists.txtfile.
- Edit
- build the project by invoking make.
create a build directory and invoke cmake from there
mkdir build ; cd build ; cmake .. ; makeif we manage to compile the project, then the executable will be in the
build/ExampleModel/directory.