As I stepped into my sophomore year of college, completing two projects in Computational Fluid Dynamics (CFD) ignited a burgeoning interest in the field. I initiated my first research project under the esteemed guidance of Dr. Arumuga Perumal. Embracing the role of a student researcher in the CFD lab at my university, my enthusiasm to satiate curiosity was palpable.
Assigned to develop a computational model of the lid-driven cavity with obstacles using the Lattice Boltzmann method, I faced the formidable challenge of my Python code's unexpectedly lengthy runtime. I wondered if this Python script could run as efficiently as a C code. The quest for a solution led me to Cython, a mysterious intersection of C and Python, accompanied by scarce documentation. Undeterred, I embarked on a few weeks of immersive research, losing track of time as I successfully transformed the entire Python script into Cython. Driven to enhance the code's efficiency further, I recalled my recent participation in a hackathon on GPU Parallelism. The idea of implementing Parallel Computing using OpenMP dawned on me, bringing a broad smile to my face. By the end of these actions, I achieved a remarkable 84% speed gain. Later, we concluded the project by validating the Lattice Boltzmann Method (LBM) and a comparison with the Finite Difference Method (FDM) and Finite Volume Method (FVM).
This journey was like a much-needed adventure to challenge myself and get into my comfort zone—the realm of challenges. Converting to Cython was tough, and doubts about its suitability crept in. But the thrill of doing something new kept me going. A year into this journey, it shifted from "Let's stick with this Python code" to a joyful "Bingo! Look at that speed-up!" Along with sharpening my technical know-how, this project taught me that hard work, staying consistent, and believing in oneself make a person stand out. There are plans to publish this work.
One of the results of the lid-driven cavity without obstacles (Re = 1000) is shown below. Similarly, simulations for different Reynold's numbers and number of obstacles have been performed, and the results are compared with FVM and FDM. All simulation results are not displayed since it is still in the publication stage.