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 求解器。我们通过不可压缩纳维-斯托克斯方程模拟生理和病理条件下的血流,并考虑运动心瓣膜、运动域以及过渡湍流态。本文概述了其数学公式、数值离散方法、实现细节,并提供了 lifex-cfd 的使用示例。我们通过严格的收敛性分析验证了该代码,并展示了其近乎理想的并行加速比。通过一系列涵盖不同生理流动状态下基于理想化模型和患者特异性血管及心脏模拟的算例,我们证明了所实现数值方法的准确性和可靠性。lifex-cfd 的源代码采用 LGPLv3 许可证发布,以确保科学界对其的可访问性与透明性,并促进合作与后续开发。