From 3b8d320d789471f6e38a4b5c600ba473ea4d2761 Mon Sep 17 00:00:00 2001 From: adany292 <adany292@student.liu.se> Date: Sun, 3 Nov 2024 15:39:47 +0100 Subject: [PATCH] Improved README --- README.md | 63 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 4141dbf..45045d6 100644 --- a/README.md +++ b/README.md @@ -16,19 +16,50 @@ The following parameters control the fluid behavior: These values are adjustable within the code and can be fine-tuned based on desired fluid dynamics. -### Equations -The SPH fluid simulation relies on specific equations for density, pressure, and force calculations, leveraging smoothing kernels: - -1. **Density Calculation** - The Poly6 kernel is used to compute density based on particle distances: - $$ W_{\text{poly6}}(r) = \text{POLY6_CONST} \cdot (H^2 - r^2)^3 $$ - -2. **Pressure Force** - Pressure force between particles is calculated using the Spiky kernel gradient: - - $$ W'_{\text{spiky}}(r) = \text{SPIKY_GRAD_CONST} \cdot (H - r)^2 $$ - -3. **Viscosity Force** - The viscosity force is calculated with a Laplacian kernel: - - $$ \nabla^2 W_{\text{visc}}(r) = \text{VISC_LAP_CONST} \cdot (H - r) $$ \ No newline at end of file +## Compile & Run + + +### Dependencies + +* **CUDA Toolkit** – for CUDA language support, GPU parallelization, and CUDA/OpenGL interoperability +* **GLEW** – for OpenGL Extension Wrangler Library +* **freeGLUT** – for OpenGL windowing and event handling +* **GLM** – for vector and matrix math operations in OpenGL +* **Thrust** – for high-performance parallel algorithms (comes with the CUDA Toolkit) + + +### Build Instructions + +1. **Install Dependencies** + + On Ubuntu, you can install the required libraries using: + ```bash + sudo apt update + sudo apt install -y build-essential cmake libglew-dev freeglut3-dev libglm-dev + ``` + Install the **CUDA Toolkit** from NVIDIA’s official site [here](https://developer.nvidia.com/cuda-toolkit), which includes both CUDA and Thrust libraries. + ``` + +2. **Build the Project with CMake** + + Navigate to the project src folder and create a `build` folder: + ```bash + mkdir build + cd build + ``` + + Run CMake to configure and generate the makefiles, then compile the code: + ```bash + cmake .. + make + ``` + + This will produce an executable named `cuda_opengl_integration` in the `build` directory. + + +## Run + + From the `build` directory, run the executable: + ```bash + ./cuda_opengl_integration + ``` \ No newline at end of file -- GitLab