论文部分内容阅读
泊松-玻尔兹曼(Poisson-Boltzmann,PB)方程是描述离子溶液中的生物分子静电相互作用的隐式溶剂化模型。本文提出了基于高阶有限元方法(Finite Element Method,FEM)求解PB方程的几种数值算法。针对这几种复杂的数值算法,设计了更合理的软件架构,并在此基础上提出了新的并行模型,极大地提高了求解器的并行效率。 PB方程是一个非线性的椭圆型偏微分方程。由于椭圆型偏微分方程的求解难度较大,本文采用了通过加入人为的拟时间项将椭圆型偏微分方程转化为抛物型偏微分方程的方法。基于这种拟时间迭代法,本文开发了几种求解PB方程的新的有限元方法。PB方程在数值求解上存在三大挑战:强非线性、奇异源项和复杂分子表面的描述。针对方程中的指数非线性项,本论文采用直接解析积分方法,完全避开了非线性导致的不稳定性。针对奇异源项,本文采用了两种不同处理方法应对。第一种是非正则化方法,它直接求解静电势,奇异源项或者直接在网格上近似,或者在变分形式中直接采用狄拉克函数的定义进行积分计算。实验结果表明非正则化方法在采用一定的消去策略后,计算实际蛋白质分子的自由能可以达到较高的精度。另一种是正则化方法,它把静电势分裂成奇异项部分、协调项部分和正则项部分。这种方法避开了对狄拉克函数的数值近似,可以在没有消去策略的情况下计算得到较高精度的电势值。针对时间分裂后的亥姆霍斯方程,本文采用了间断伽辽金(Discontinuous Galerkin,DG)和连续伽辽金(Continuous Galerkin,CG)两种方法进行求解。其中间断伽辽金方法应用于求解三维PB方程在这一领域属于创新性的成果。间断伽辽金方法易于高效的进行并行计算,但由于采用了显式的欧拉时间积分格式,它需要较小的时间步长才能确保计算稳定。连续伽辽金方法采用了不同于这一领域内已有的线性化迭代方法,实现了隐式时间解析积分,可以无条件稳定的进行求解,完全避开了其他方法计算中出现的崩溃和溢出等问题。这是对以前有限元连续伽辽金方法的改进。为了采用有限元方法计算实际蛋白质系统中的生物大分子,本文在基于最小分子表面定义的新的四面体网格生成方法基础上,开发了并行剖分软件,使得大规模的数值计算成为可能。为了验证提出的基于高阶有限元的拟时间迭代方法的稳定性、高精度和健壮性,本文进行了充分的比较测试,计算了实际蛋白质分子的自由能并将结果和其他数值方法进行对比研究,由此验证了新方法的有效性和可靠性。 基于高阶有限元求解PB方程的无条件稳定方法需要求解大规模线性方程组,本文基于非结构的四面体网格设计并实现了基于代数分解的求解稀疏线性方程组的高效并行模型。单元矩阵和单元向量组装成局部几何子矩阵和局部几何子向量后,采用邻居通信模型把其转化成局部代数子矩阵和局部代数子向量。基于代数分解的子矩阵和子向量,线性方程组求解规模可扩展至6400CPU核,并行效率达到近86%。邻居通信模型只在相邻子区域间采用基于点对点的非阻塞通信传输交界点的局部量,相邻子区域使通信只在局部进行进而保证了并行可扩展,非阻塞隐藏了通信开销,只传输交界点的局部量将传输量降至最少。稀疏矩阵采用行压缩分布存储以节省内存和计算量。基于全局编号网格点的相关映射采用C++中map结构存储,以便快速查找。各子区域上单元刚度矩阵和单元质量矩阵按单元结构存储,其他各数据量采用C++中的vector结构按网格点存储。为了程序的模块化和可扩展,本文采用面向对象的C++类结构组织程序。大规模并行迭代求解线性方程组是计算科学领域的共性问题,它的高效并行实现不仅对实际生物分子静电分析提供了很好的基础,也可扩展至其他各应用领域。