Computational fluid dynamics (CFD) is an important tool for the simulation of the cardiovascular function and dysfunction. Due to the complexity of the anatomy, the transitional regime of blood flow in the heart, and the strong mutual influence between the flow and the physical processes involved in the heart function, the development of accurate and efficient CFD solvers for cardiovascular flows is still a challenging task. In this paper we present lifex-cfd, an open-source CFD solver for cardiovascular simulations based on the lifex finite element library, written in modern C++ and exploiting distributed memory parallelism. We model blood flow in both physiological and pathological conditions via the incompressible Navier-Stokes equations, accounting for moving cardiac valves, moving domains, and transition-to-turbulence regimes. In this paper, we provide an overview of the underlying mathematical formulation, numerical discretization, implementation details and examples on how to use lifex-cfd. We verify the code through rigorous convergence analyses, and we show its almost ideal parallel speedup. We demonstrate the accuracy and reliability of the numerical methods implemented through a series of idealized and patient-specific vascular and cardiac simulations, in different physiological flow regimes. The lifex-cfd source code is available under the LGPLv3 license, to ensure its accessibility and transparency to the scientific community, and to facilitate collaboration and further developments.
翻译:计算流体动力学(CFD)是模拟心血管功能及功能障碍的重要工具。由于解剖结构的复杂性、心脏中血液流动的过渡流态,以及血流与心脏功能相关物理过程之间的强相互影响,开发针对心血管流动的精确且高效的CFD求解器仍是一项具有挑战性的任务。本文介绍了lifex-cfd,一款基于lifex有限元库、采用现代C++语言编写并利用分布式内存并行性的开源CFD心血管模拟求解器。我们通过不可压缩Navier-Stokes方程对生理及病理条件下血流进行建模,涵盖了运动心瓣、运动域及过渡湍流状态。本文概述了底层数学公式、数值离散化、实现细节,并提供了lifex-cfd使用示例。我们通过严格的收敛性分析验证了代码,并展示了其接近理想的并行加速比。通过一系列理想化及患者特异性血管和心脏模拟(涵盖不同生理流态),我们证明了所实现数值方法的准确性和可靠性。lifex-cfd源代码基于LGPLv3许可协议发布,以确保其面向科学界的可获取性和透明性,并促进协作与后续开发。