121 lines
2.6 KiB
Markdown
121 lines
2.6 KiB
Markdown
# Penning trap simulation
|
|
|
|

|
|
|
|
[Repo](https://github.uio.no/FYS3150-G2-2023/Project-3)
|
|
|
|
[Documentation](https://pages.github.uio.no/FYS3150-G2-2023/Project-3/)
|
|
|
|
## Requirements
|
|
|
|
### Operating systems
|
|
|
|
- Linux
|
|
- Has been tested on [Fedora 38](https://fedoraproject.org/)
|
|
- Will most likely work on other Linux distributions
|
|
- MacOS
|
|
- Might work, but hasn't been tested
|
|
- Windows
|
|
- Will most likely not work
|
|
|
|
### Tools
|
|
|
|
- Profiling
|
|
- [gprof](https://ftp.gnu.org/old-gnu/Manuals/gprof-2.9.1/html_mono/gprof.html)
|
|
- [scalasca](https://www.scalasca.org/)
|
|
- [scorep](https://www.vi-hps.org/projects/score-p)
|
|
|
|
### Libraries
|
|
|
|
- Python
|
|
- [matplotlib](https://matplotlib.org/)
|
|
- [numpy](https://numpy.org/)
|
|
|
|
- C++
|
|
- [openmp](https://www.openmp.org/)
|
|
- [armadillo](https://arma.sourceforge.net/)
|
|
|
|
|
|
## Compiling
|
|
|
|
Compiling is as easy as running this command while being inside the src directory:
|
|
|
|
```shell
|
|
make
|
|
```
|
|
|
|
## Running programs
|
|
|
|
### C++ binaries
|
|
|
|
To run **main** or **test_suite**, just run this command while being inside src:
|
|
|
|
```shell
|
|
./<program-name>
|
|
```
|
|
|
|
### Python scripts
|
|
|
|
#### Install libraries
|
|
|
|
Before running the scripts, make sure that all libraries are installed.
|
|
Using pip, you can install all requirements like this:
|
|
|
|
```shell
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
This recursively install all the packages that are listed in **requirements.txt**.
|
|
|
|
#### Running scripts
|
|
|
|
For the Python scripts, run them from the src directory like this:
|
|
|
|
```shell
|
|
python scripts/<script-name>
|
|
```
|
|
|
|
If you have any problems running the scripts, you might have to run this instead:
|
|
|
|
```shell
|
|
python3 scripts/<script-name>
|
|
```
|
|
|
|
## Performance
|
|
|
|
This section aims to give an idea to the time it takes for the program to
|
|
run so that you know a bit what to expect if you decide to run it for
|
|
yourself.
|
|
|
|
### CPU
|
|
|
|
The times mentioned here are times achieved on a computer with these
|
|
specifications:
|
|
|
|
- CPU model
|
|
- Intel i7-9850H
|
|
- Threads
|
|
- 12
|
|
- Clock speed
|
|
- 4.6GHz
|
|
|
|
### Times
|
|
|
|
All times mentioned use the **evolve_RK4** method.
|
|
|
|
Running a simulation with 100 particles without particle interactions over
|
|
40000 steps takes around 1.8 seconds. With particle interactions, it takes
|
|
around 4.8 seconds.
|
|
|
|
**potential_resonance_wide_sweep** takes around 56 seconds to complete.
|
|
|
|
**potential_resonance_narrow_sweep** takes around 172 seconds to complete.
|
|
|
|
**potential_resonance_narrow_sweep_interaction** takes around 936 seconds to
|
|
complete.
|
|
|
|
## Credits
|
|
|
|
The Doxygen theme used here is
|
|
[doxygen-awesome-css](https://github.com/jothepro/doxygen-awesome-css).
|