From 72107c944d452eb284971234dbdf524c1f789c85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20L=C3=BCbke?= Date: Wed, 6 Sep 2023 14:21:22 +0200 Subject: [PATCH] Add readme --- naaice/README.org | 72 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 naaice/README.org diff --git a/naaice/README.org b/naaice/README.org new file mode 100644 index 0000000..658eb12 --- /dev/null +++ b/naaice/README.org @@ -0,0 +1,72 @@ +#+title: NAAICE Benchmark + +This directory contains a concise benchmark designed for validating FPGA +offloading of the Thomas algorithm, primarily employed for solving linear +equation systems structured within a tridiagonal matrix. + +* Benchmark Setup + +The benchmark involves a domain measuring $0.5 \text{cm} \times 1 \text{cm}$, +divided into a grid of dimensions $10 \times 5$. Each grid cell initially +contains a specific concentration. The concentration in the first half along the +x-dimension is set at $6.92023 \times 10^{-7}$, while in the second half, it's +$2.02396 \times 10^{-8}$, creating a concentration gradient along the y-axis at +the center of the grid. + +To achieve concentration equilibrium, we employ a simulation based on a +heterogeneous 2D-ADI BTCS diffusion approach, detailed in the [[file:../doc/ADI_scheme.pdf][ADI_scheme.pdf]] +file. In the x-direction, diffusion coefficients range from $\alpha = 10^{-9}$ +to $10^{-10}$, while in the y-direction, a constant value of $5 \times 10^{-10}$ +is applied. A closed boundary condition is implemented, meaning concentrations +cannot enter or exit the system. The diffusion process is simulated for a single +iteration with a time step ($\Delta t$) of 360 seconds. + +* Setup + +To generate new makefiles using the =-DTUG_NAAICE_EXAMPLE=ON= option in CMake, +compile the executable, and run it to generate the benchmark output, follow +these steps: + +1. Navigate to your project's build directory. +2. Run the following CMake command with the =-DTUG_NAAICE_EXAMPLE=ON= option to + generate the makefiles: + + #+BEGIN_SRC sh + cmake -DTUG_NAAICE_EXAMPLE=ON .. + #+END_SRC + +3. After CMake configuration is complete, build the =naaice= executable by running =make=: + + #+BEGIN_SRC sh + make naaice + #+END_SRC + +4. Once the compilation is successful, navigate to the build directory by =cd + /naaice= + +5. Finally, run the =naaice= executable to generate the benchmark output: + + #+BEGIN_SRC sh + ./naaice + #+END_SRC + +** Output Files + +*** =Thomas_.csv= + +These files contain the values of the tridiagonal coefficient matrix $A$, where: + +- $Aa$ represents the leftmost value, +- $Ab$ represents the middle value, and +- $Ac$ represents the rightmost value of one row of the matrix. + +Additionally, the corresponding values of the right-hand-side vector $b$ are +provided. + +Since the 2D-ADI BTCS scheme processes each row first and then proceeds +column-wise through the grid, each iteration is saved separately in +consecutively numbered files. + +*** =BTCS_5_10_1.csv= + +The result of the simulation, *separated by whitespaces*!