-
This is the main repository for my master thesis, on using the lattice Boltzmann method to simulate bloodflow using the LBM package waLBerla.
-
Due to a missing feature in waLBerla's code generation, one of the generated files has to be manually adjusted when newly generated. To circumvent this, this file is already in the git repo. After running the instructions below, you can simply use
git checkout .
and the proper file will be there.
- Make a new directory build and cd into that directory
cmake ..
(You may have to manually specifiy the location of waLBerla on your system)- Be sure to turn on code_gen and openmesh via e.g. ccmake, turn off tutorials/benchmarks/showcases
make -j number_of_cores
git checkout .
(To get the proper DynamicUBB.h header again)
- You can run the application with a certain configuration file (
config.prm
) in the following ways:
./aneurysm_model config.prm
mpirun -np $NUM_PROCESSES --bind-to core aneurysm_model config.prm
(with OpenMPI)
- Every heart beat cycle is 1 second physical time
- The number of timesteps depends on the physical
dx
dt
scales asO(dx^3)
, so the number of timesteps per heart beat cycle grows very quickly with finer meshes- Disable OpenMP for better performance (
export OMP_NUM_THREADS=1
also works) - The output files quickly become huge, the
resolution
variable can be used to control this
You can use Paraview to look at the results.
- A massive thank you to Markus Muhr (TUM) and Christoph Schwarzmeier (FAU) for their suggestions and improvements!