ACCELERATING LATTICE BOLTZMANN METHOD SIMULATION TIME ON PYTHON

The Lattice Boltzmann Method (LBM) is a powerful approach for simulating fluid flow. LBM has gained increasing popularity over time due to its simplicity, efficiency, and its capability to handle complex geometries. This undergraduate thesis focuses on developing a computation prototype using LBM...

Full description

Saved in:
Bibliographic Details
Main Author: Vito Agata, Pramudya
Format: Final Project
Language:Indonesia
Subjects:
Online Access:https://digilib.itb.ac.id/gdl/view/84762
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Institut Teknologi Bandung
Language: Indonesia
Description
Summary:The Lattice Boltzmann Method (LBM) is a powerful approach for simulating fluid flow. LBM has gained increasing popularity over time due to its simplicity, efficiency, and its capability to handle complex geometries. This undergraduate thesis focuses on developing a computation prototype using LBM, specifically for simulating 1D transient heat diffusion, 2D Poiseuille flow, and 2D flow over a circular cylinder. The primary goal of this project is to develop and validate the LBM solver, with a special emphasis on using Python for its implementation. Python was chosen as programming for developing the LBM solver because of its ease of development, its ability to create prototypes quickly, and its userfriendly syntax. Although Python has a slower execution speed compared to other programming languages, it supports various acceleration methods, such as array vectorization and Just-In-Time (JIT) compilation, making it an excellent choice for rapid prototyping of an LBM solver. This study shows that, although using loops in Python may not be efficient, JIT compilation can significantly improve the performance of the LBM program, speeding up its execution time by hundreds to thousands of times. This thesis highlights Python’s potential for creating efficient LBM prototypes and emphasizes the importance of selecting the right approach to accelerate the solver based on computation demands.