Abstract

The lattice Boltzmann method (LBM) is known for its capability to model complex fluid systems. Python is becoming one of the most valuable tools for scientific programming and prototyping of commercial software. In parallel, there is nearly no information on LBM simulation libraries in Python. The current study addresses the issue of Pythonbased LBM simulations. We have developed and tested the serial and two concurrent approaches (multiprocessing and multithreading) through 7 different versions of the LBM solvers for a range of the various numbers of nodes. Parallelization is also defined for three individual levels of domain decomposition, and RunTime profile data for entire solvers have been discussed comparatively in detail. Apart from the implementation strategy, a preliminary comparison is made between two data storage styles to investigate the effect of data shape on RunTime. In contrast with the literature, serial processing provides the fastest results for task execution of LBM simulation in Python due to the strengths of Python in data manipulation. One version of multithreaded solver also provides the same results with serial implementation; however, in conclusion, and due to the ease of serial programming, serial implementation of LBM in Python is defined as the most practical candidate.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call