Clean and restructure code.
This is the repo for the fluid simulation lab in 2018 SS at RWTH, made by Chu-I Chao and Neng Qian. It has been tested on Linux(Ubuntu 16.04) and Mac OS. It includes PBF and WCSPH solvers, and a visualization program based on Merely3D and imgui. It applys Marching cubes to reconstruct fluid surface.
mkdir build
cd build
cmake ..
(make clean)
make
(Optional) Compile in Release mode to get the best performance
cmake .. -DCMAKE_BUILD_TYPE=Release
We will have 3 executables after the code is built.
./save_simulation
output the serialized simulation data
./save_fluid_mesh
take the output from above as input and outputs the serialized mesh data
./visualizer
visualize the serialized simulation data only, OR visualize the serialized simulation and mesh data at the same time. Inputting multiple sets of data is available.
add the flag below for more details
-h, --help
Two test programs will be also built.
./test_marching_cube
test the marching cube on some basic geometrical primitives
./kernel_test
unit tests for kernel functions
To reproduce the results we've mentioned in the final report, we suggest some terminal commands here. Here we assume that the program is built successfully and you are in the ./build directory.
Using WCSPH
./save_simulation -n 5 -m 4 -f 5000 -o <your_simulation_data_file> -c 0 -t 0.001 -z 10
./visualizer -s <your_simulation_data_file> -x 0
Using PBF
./save_simulation -n 5 -m 4 -f 500 -o <your_simulation_data_file> -c 1 -t 0.01 -z 1
./visualizer -s <your_simulation_data_file> -x 0
Using WCSPH
./save_simulation -n 1 -m 2 -f 3000 -o <your_simulation_data_file> -c 0 -t 0.001 -z 10
./visualizer -s <your_simulation_data_file> -x 0
Using PBF
./save_simulation -n 1 -m 2 -f 300 -o <your_simulation_data_file> -c 1 -t 0.01 -z 1
./visualizer -s <your_simulation_data_file> -x 0
Dropping a chunk of water inside a pillar (choose smaller n for shorter waiting time, n=5 for example)
Using WCSPH
./save_simulation -n 10 -m 8 -f 3000 -o <your_simulation_data_file> -c 0 -t 0.001 -z 10 -s 5000
./visualizer -s <your_simulation_data_file> -x 0
Using PBF
./save_simulation -n 10 -m 8 -f 300 -o <your_simulation_data_file> -c 1 -t 0.01 -z 1
./visualizer -s <your_simulation_data_file> -x 0
Using WCSPH
./save_simulation -n 10 -m 5 -f 30000 -o <your_simulation_data_file> -c 0 -t 0.001 -z 100
./visualizer -s <your_simulation_data_file> -x 0
Using PBF
./save_simulation -n 10 -m 5 -f 3000 -o <your_simulation_data_file> -c 1 -t 0.01 -z 10
./visualizer -s <your_simulation_data_file> -x 0
Using WCSPH
./save_simulation -n 10 -m 9 -f 3000 -o <your_simulation_data_file> -c 0 -t 0.001 -z 10
./visualizer -s <your_simulation_data_file> -x 0
Using PBF
./save_simulation -n 10 -m 9 -f 300 -o <your_simulation_data_file> -c 1 -t 0.01 -z 1
./visualizer -s <your_simulation_data_file> -x 0
Using WCSPH
./save_simulation -n 10 -m 10 -f 30000 -o <your_simulation_data_file> -c 0 -t 0.001 -z 50
./visualizer -s <your_simulation_data_file> -x 0
Using PBF
./save_simulation -n 10 -m 10 -f 3000 -o <your_simulation_data_file> -c 1 -t 0.01 -z 5
./visualizer -s <your_simulation_data_file> -x 0
Using WCSPH
./save_simulation -n 10 -m 12 -f 30000 -o <your_simulation_data_file> -c 0 -t 0.001 -z 50
./visualizer -s <your_simulation_data_file> -x 0
Using PBF
./save_simulation -n 10 -m 12 -f 3000 -o <your_simulation_data_file> -c 1 -t 0.01 -z 5
./visualizer -s <your_simulation_data_file> -x 0
-
Nadir Akinci et al. “Versatile rigid-fluid coupling for incompressible SPH”.
-
Markus Becker and Matthias Teschner. “Weakly compressible SPH for free surface flows”.
-
Miles Macklin and Matthias M ̈uller. “Position based fluids”.
-
Daniel J Price. “Smoothed particle hydrodynamics and magnetohydrodynamics”.
-
Merely3D (https://github.com/Andlon/merely3d)
-
Cereal (https://github.com/USCiLab/cereal)
-
CompactNSearch (https://github.com/InteractiveComputerGraphics/CompactNSearch)
-
Dear imgui (https://github.com/ocornut/imgui)