# Penning trap simulation

![](./images/100_particles.gif)

[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

### 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>
```


## Credits

The Doxygen theme used here is 
[doxygen-awesome-css](https://github.com/jothepro/doxygen-awesome-css).
