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++编写并利用分布式内存并行技术。我们通过不可压缩纳维-斯托克斯方程,在生理及病理条件下模拟血流,并考虑运动心瓣膜、运动域及湍流转捩流态。本文概述了其数学公式、数值离散方法、实现细节及使用指南。该代码经过严格的收敛性分析验证,并展现出近乎理想的并行加速比。通过一系列理想化及患者特异性的血管和心脏模拟(涵盖不同生理流态),我们展示了所实现数值方法的精度与可靠性。lifex-cfd源代码在LGPLv3许可下公开,以确保科学界的可及性与透明性,并促进合作与后续开发。