Cavitating bubbly flows are encountered in many engineering problems involving propellers, pumps, valves, ultrasonic biomedical applications, … etc. In this contribution an OpenMP parallelized Euler-Lagrange model of two-phase flow problems and cavitation is presented. The two-phase medium is treated as a continuum and solved on an Eulerian grid, while the discrete bubbles are tracked in a Lagrangian fashion with their dynamics computed. The intimate coupling between the two description levels is realized through the local void fraction, which is computed from the instantaneous bubble volumes and locations, and provides the continuum properties. Since, in practice, any such flows will involve large numbers of bubbles, schemes for significant speedup are needed to reduce computation times. We present here a shared-memory parallelization scheme combining domain decomposition for the continuum domain and number decomposition for the bubbles; both selected to realize maximum speed up and good load balance. The Eulerian computational domain is subdivided based on geometry into several subdomains, while for the Lagrangian computations, the bubbles are subdivided based on their indices into several subsets. The number of fluid subdomains and bubble subsets are matched with the number of CPU cores available in a share-memory system. Computation of the continuum solution and the bubble dynamics proceeds sequentially. During each computation time step, all selected OpenMP threads are first used to evolve the fluid solution, with each handling one subdomain. Upon completion, the OpenMP threads selected for the Lagrangian solution are then used to execute the bubble computations. All data exchanges are executed through the shared memory. Extra steps are taken to localize the memory access pattern to minimize non-local data fetch latency, since severe performance penalty may occur on a Non-Uniform Memory Architecture multiprocessing system where thread access to non-local memory is much slower than to local memory.
This parallelization scheme is illustrated on a typical non-uniform bubbly flow problem, cloud bubble dynamics near a rigid wall driven by an imposed pressure function.