论文部分内容阅读
心脑血管疾病(简称心血管疾病)是危害全人类生命和财产安全的重大疾病,目前仍然是致死率最高的疾病,防治心血管疾病是一项重要而又刻不容缓的工程。而由动脉粥样硬化引起的缺血性心血管疾病占大多数,其产生和发展都与人体血流动力学密切相关,目前对心血管疾病的诊断和治疗问题也主要集中在血液流体动力学方面。随着计算机技术的发展,使用数值计算来解决与血流动力学相关的问题逐渐成为热门研究内容。数值模拟血流动力学问题与医学诊治心血管病变相结合,不仅为医生提供了科学客观的病理评判依据,在预测预防重大疾病上也发挥了十分重要的作用。在人体血流动力学方面,目前很多研究都是基于血管壁为刚性壁的假设,并且研究模型也大多是简单理想模型。国外有不少研究是将血管壁考虑为弹性壁,并提出了相应的流固耦合高性能算法,但很多研究都是基于结构化网格,而结构化网格对复杂的血管几何模型和物理过程来说不具有较高的适用性,实现人体血流动力学的真实高效快速模拟极具挑战性。国内的蔡小川等人提出了基于非结构化网格的全耦合Newton-Krylov-Schwarz(NKS)算法,对于处理血流流固耦合模型具有很好的效果,但是其算法不能直接应用于真实脑血管模型的问题求解。针对真实人体脑血管流固耦合数值模拟问题,本文研究了基于非结构网格的全隐全耦合高可扩展并行算法,主要包括以下三个方面的内容:1.研究了基于人体血流动力学的流固耦合数学模型和离散格式。人体血流动力学模型除了最重要的血液流体区域之外,还有线性弹性血管壁固体区域,以及用于移动网格分析的动网格部分。流固耦合交界面起着变量传递和数据映射的作用,针对整个流固耦合模型,建立了拉格朗日参考系下处理固体部分的线弹性方程,ALE参考系下的处理流体的不可压缩NS方程以及流体网格移动调和方程。流固耦合数学模型中优化了固体线弹性方程,强调了粘弹性阻尼系数对正确计算真实脑血管模型的作用。本文所研究的流固耦合是与时间有关的瞬态问题,需要同时在空间和时间上离散。通过使用空间上的有限元和时间上的二阶隐式离散方法,构造了全隐式的离散方程形式,这十分有利于求解长时间跨度的非稳态问题。2.研究了求解大规模非线性方程组的参数化的NKS算法。离散后的流固耦合数学模型构成了大规模的稀疏非线性的方程组,针对大型稀疏非线性方程组,研究了经典迭代法和现代同伦延拓法和人工智能法以及他们的变形等求解方法。本文选择使用一类不精确Newton求解方法,这类算法由于存在双层迭代以及很方便地使用预条件算子求解,因此有很多不同的组合算法,本文主要考虑Newton-Krylov-Schwarz(NKS)算法求解非线性方程组。并在此算法的基础上对算法做了粘弹性阻尼系数的修正和收敛条件的改进,使之能够适应面向真实模型和边界参数下的人体血流流固耦合模型的快速高性能求解。3.研究了用于加速线性迭代的Schwarz并行算法和总体软件实现流程。本文所求解的问题模型经过离散后,其未知量的个数达到了上百万的规模,因此必须采用结合多核处理器的并行方法才能够有效地求解。在paraNKS算法中,用于加速子空间迭代收敛的Schwarz算法是一种重叠型的区域分解方法,Schwarz算法固有的并行性使得其非常适于构造面向大规模超级计算机的并行算法。本文处理的数据来源一般为CT/MRI医学影像数据,通过图像分割软件Mimics抽取血管三维模型,通过商业软件ANSYS中的ICEM进行非结构网格划分,划分后的计算网格在求解器中调用ParMETIS进行区域剖分,计算获得的结果通过Paraview软件进行数据结果的后处理。将上述并行算法用于真实的人体脑血管三维数值模拟,通过真实的血流边界条件对模型进行计算分析。结果表明本文给出的方法对于难解的病态非线性系统具有良好的数值收敛性。在天河2号上并行性测试表明,本文提出的算法具有良好的并行可扩展性,使用8192个处理器核求解规模超过两千万个网格单元的脑血管流固耦合模型时,仍然具有接近40%的并行效率。同时,物理模型接近刚性壁时,具有良好的数值收敛性。