26 lines
1.9 KiB
Markdown
26 lines
1.9 KiB
Markdown
# Solutions for the UiO course FYS4150
|
|
Written by Lars Bogner
|
|
|
|
-------
|
|
|
|
## Prerequisites
|
|
- All python packages are managed by the fantastic package manager [uv](https://github.com/astral-sh/uv). For an optimal experience: Install uv and initialize the virtual environment using `uv init`.
|
|
- All GNU/Linux commands have been tested on Fedora 41. Check for version incompatibilities on errors.
|
|
- The C++ source code has been tested using the G++ compiler in the version `g++ (GCC) 15.2.1 20250808 (Red Hat 15.2.1-1)`.
|
|
|
|
## Structure of the Projects
|
|
- All stuff related to the LaTeX report is in the root directory `projects/`. The corresponding reports are then part of the child directories `project*/`. The main tex-File is part of each directory.
|
|
- Source Code for the generation of results is saved to `src/project*/`. The code is structured depending on the main programming language in use. Mostly it is divided into two C++ folders, namely `src/` and `include/`. In the `python/` directory you can find python3 Code used e.g. for plotting.
|
|
|
|
|
|
## Usage
|
|
### Project 1
|
|
Run `src/project1/generate_results.sh` to compile all binaries and automatically create all output plots. The table of relative errors is saved to `rel_errors.txt`.
|
|
|
|
|
|
### Project 2
|
|
Run `src/project2/generate_results.sh` to compile all binaries and automatically create all output plots.
|
|
|
|
|
|
### Project 3
|
|
Run `src/project3/generate_results.sh` to compile all binaries and automatically start the simulations. Afterwards, to create all output plots, run `src/project3/python/generate_plots.sh`. If you don't have `pueue` available, change the variable `PUEUE` to false in all bash scripts. To create all simulations it takes about 2 hours. To evaluate the run time of the different algorithms, you can run `src/project3/python/performance_analysis.py`. All python scripts use `typer` to make a straightforward usage possible. Run `python script.py --help` to see all available options. |