QuaCa stands for Quantum / Casimir Friction and is a numerical framework to calculate just that.
QuaCa requires:
Furthermore we use:
- Armadillo: wrapper for linear algebra (uses LAPACK and BLAS)
- Catch2: unit testing
- docsify: documentation
Those prerequisites can easily be installed via apt install
via the following command
sudo apt-get update && sudo apt-get install libblas-dev liblapack-dev cmake make g++ libboost-filesystem-dev libboost-program-options-dev
or with conda:
conda env create --file environment.yml
conda activate quaca-env
We currently do not support installation on Mac or Windows.
To obtain the source code type
git clone https://github.com/QuaCaTeam/quaca.git
into the console
Then to build the code type inside the project directory (if you use conda
please activate quaca-env
)
$ cd quaca
quaca $ mkdir -p build
quaca $ cd build
quaca/build $ cmake .. -DCMAKE_PREFIX_PATH=$CONDA_PREFIX #or just cmake .. if you don't use conda
quaca/build $ make
Two executables called Friction
and Decay
should now have been build and can be found in the quaca/bin
directory.
For now we do not upload the documentation anywhere, so it can only be viewed locally using the following command from the command line
quaca $ cd docs && python -m SimpleHTTPServer 3000
quaca $ cd docs && python -m http.server 3000
You can then see the documentation in your browser at the address http://localhost:3000/
.
Employing test-driven development, we are using Catch2 for our unit and integrated testing. To build and run all implemented test use
quaca/build $ make test_quaca_unit
quaca/build $ make test_quaca_integrated
and afterwards run the tests from the bin/
directory
quaca/bin $ ./test_quaca_unit
quaca/bin $ ./test_quaca_integrated
More detailled information is given in the section Testing.
For a benchmark we used a Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz and Intel(R) Core(TM) i9-10900K CPU @ 3.70GHz and ran the tutorial configuration with
quaca/bin $ ./Friction --file ../data/.tutorial.json --threads {threads}
and obtain following results
Threads | max. 2.7GHz | max. 3.7GHz |
---|---|---|
1 | 1477 s | 623 s |
2 | 995 s | 319 s |
3 | 703 s | 222 s |
4 | 555 s | 170 s |
Please read CONTRIBUTING.md for details on how you can become a part of this project.
- Marty Oelschläger
- Simon Hermann
- Christoph Egerland
- Daniel Reiche