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 instructions for use of lifex-cfd. The code has been verified 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 有限元库的开源CFD求解器,采用现代C++编写并利用分布式内存并行计算。我们通过不可压缩Navier-Stokes方程对生理及病理条件下的血流进行建模,涵盖运动心瓣膜、运动域以及过渡湍流态。本文概述了其底层数学公式、数值离散化、实现细节及使用说明。该代码通过了严格收敛性分析验证,并展现出近乎理想的并行加速比。通过一系列理想化及患者特异性血管与心脏模拟在不同生理流态下的测试,我们证明了所实现数值方法的准确性与可靠性。lifex-cfd 源代码采用LGPLv3许可协议发布,以确保科学界的可访问性与透明度,并促进协作与后续开发。