2.6 数值分析方法的相关理论
数值分析方法的特点是,分析结果不能表达为一个明确的函数形式而是一系列离散数值。它被广泛用于拉普拉斯方程所描述的各类数学物理问题,适用于具有复杂边界条件以及不规则复杂区域问题的求解。最为常用的数值分析方法包括有限元法、有限差分法、有限体积法。有限差分法的优点是直观,但不易处理复杂的求解域问题,且对网格及解的连续性要求较高。有限体积法一般用于CFD领域。在不规则区域的计算中,有限体积法的适应性较差。有限元法能够处理复杂区域的计算,且计算精度可自动调节,但计算量较大。随着电子计算机技术的发展,当前采用有限元计算方法的商业软件已经成为数值仿真研究的主流平台,例如Comsol、Ansys等。
2.6.1 有限元分析法[67-73]
有限元分析方法(finite element analysis, FEA)最初起源于土木工程和航空工程中的弹性结构分析问题的研究。
这些先驱者使用的方法具有共同的本质特征:利用网格将一个连续区域转化为一族离散的子区域,这些网格通常叫作“元”。大多数实际问题难以得到准确解,而有限元方法不仅计算精度高,还能适应各种复杂形状,因而成为行之有效的工程分析手段。
有限元方法的核心思想是结构的离散化,即将实际结构假想地离散为有限数目的规则单元组合体,通过对离散体进行分析,得出满足工程精度的近似结果来替代对实际结构的分析,解决很多实际工程需要解决而理论分析又无法解决的复杂偏微分方程问题。在解偏微分方程的过程中,主要的难点是如何构造一个方程来逼近原方程,并且该过程还需要保持数值稳定性。FEA将微分方程转化为代数方程组(稳定情形);或将偏微分方程(组)改写为逼近其的常微分方程(组),可以用标准的数值技术(例如欧拉法,龙格-库塔法等)求解。
对于不同物理性质和数学模型的问题,使用有限元方法求解问题的基本步骤是相同的,只是具体公式推导和运算求解不同。该方法求解问题的基本步骤如下。
①问题求解域定义。根据实际问题近似确定求解域的物理性质和几何区域。
②求解域离散化。将求解域近似为由不同大小和形状,且彼此相连的有限个单元组成的离散域,以上过程习惯上称为有限元网格划分。显然,单元越小(网格越细)则离散域的近似程度越好,计算结果也越精确,但计算量及误差也将随之增大,因此求解域的离散化是有限元法的核心技术之一。
③确定状态变量及控制方法。一个具体的物理问题通常可以用一组包含问题状态变量边界条件的微分方程式表示,为适合有限元求解,通常将微分方程化为等价的泛函形式。
④单元推导。对单元构造一个适合的近似解,即推导有限单元的列式,其中包括选择合理的单元坐标系,建立单元式函数,以某种方法给出单元各状态变量的离散关系,从而形成单元矩阵,为保证问题求解的收敛性,单元推导有许多原则要遵循。对工程应用而言,重要的是注意每一种单元的解题性能与约束。例如,单元形状应以规则为好,畸形单元不仅计算精度低,而且有缺秩的危险,将导致无法求解。
⑤总装求解。将单元总装形成离散域的总矩阵方程(联合方程组),以反映对近似求解域的离散域的要求,即单元函数的连续性要满足一定的连续条件。
⑥联立方程组求解和结果解释。有限元法最终建立联立方程组,其求解可用直接法、选代法和随机法。求解结果是单元结点处状态变量的近似值。将计算结果与设计准则提供的允许值比较来评价计算结果的合理性,并确定是否需要重复计算。
从上述步骤来看,有限元分析法求解问题时可分成为前处理、处理和后处理三个阶段。前处理是建立有限元模型,完成单元网格划分;后处理则是采集处理分析结果,使用户能简便提取信息,了解计算结果。
2.6.2 多物理场耦合分析软件
Comsol Multiphysics以有限元计算方法为基础,通过求解偏微分方程(单场)或偏微分方程组(多场)来实现真实物理现象的仿真,是一款大型的高级数值以及多物理场耦合分析的仿真软件,广泛应用于各个领域的科学研究及工程计算,适用于模拟科学和工程领域的各种物理过程,在全球领先的数值仿真领域里得到广泛的应用[74-76]。
科研工作者需要仿真技术帮助他们精确地进行对象分析。在仿真分析中可以综合考虑现实世界中存在的多方面的影响因素,这是Comsol最突出于其他仿真产品的优势。除此之外,Comsol Multiphysics具有以下显著特点[77-78]。
①求解多场问题等价于求解方程组。只需选择或自定义不同专业的偏微分方程进行任意组合便可实现多物理场的直接耦合分析。
②完全开放的架构。可在图形界面中自由定义所需的专业偏微分方程。
③任意独立函数控制的求解参数,材料属性、边界条件、载荷均支持参数控制。
④专业的计算模型库,内置各种常用的物理模型,用户可轻松选择并进行必要的修改。
⑤内嵌丰富的计算机辅助设计(CAD)建模工具,用户可直接在软件中进行二维和三维建模。
⑥大规模计算能力,丰富的后处理功能。
本书对非绝缘管壁电磁流量传感器基础理论进行研究,其中涉及电磁学、流体力学等多种物理场的建模、求解与耦合问题。Comsol提供了静电场、静磁场、流场以及物理场的耦合,利用内置的有限元算法,结合相应的边界条件,就能够方便可靠地求解出相关偏微分方程的数值解。此外,Comsol提供了与Matlab的较完美接口。本书还应用了Comsol Multiphysics with Matlab对仿真数据进行处理,这为顺利完成研究工作打下了基础。
2.6.3 计算流体力学研究方法概述
CFD采用数值分析方法研究流体运动的基本物理特性,使流体研究得到了发展和完善。CFD的基本思想就是:把原来在时间域及空间域上连续的物理场,如速度场、压力场等,用一系列有限个离散点上的变量值的集合来代替,再通过一定的原则和方式建立起关于这些离散点上场变量之间关系的代数方程组,最后求解代数方程组获得场变量的近似值。CFD可以看作是在流动基本方程(包括质量守恒方程、动量守恒方程、能量守恒方程)控制下对流动的数值模拟。通过这种数值模拟,学者可以得到极其复杂问题的流场内各个位置上的基本物理量(如速度、压力、温度、浓度等)的分布,以及这些物理量随时间的变化情况,确定漩涡分布特性、空化特性及脱流区等。还可据此算出相关的其他物理量,如旋转式流体机械的转矩、水力损失和效率等。
CFD方法与传统的理论分析方法、实验测量方法组成了目前研究流体流动问题的完整体系,是研究流体运动规律的三种基本方法,它们之间的发展是依赖、促进的。CFD数值模拟可以形象地再现流动情景,达到实验所不能实现的效果,便于对流体流动过程的分析和研究。CFD与理论分析、实验测量三者各有各的适用场合,它们相互联系,相互促进,但不能完全替代。在实际工作中,需要注意三者有机的结合,争取做到取长补短。
采用CFD方法对流体流动进行数值仿真包括以下步骤。
①建立反映工程问题或物理问题本质的数学模型。具体地说就是要建立反映问题各个量之间关系的微分方程及相应的定解条件。
②寻求高效率、高准确度的计算方法。建立针对控制方程的数值离散化方法,如有限差分法、有限元法和有限体积法等。
③编制程序和进行计算。包括计算网格划分、初始条件和边界条件的输入、控制参数的设定等。
④显示计算结果。
1981年至今,出现了多个CFD商用软件,如Phoenics、CFX、Star-CD、FIDIP、Fluent和Ansys的Fluent模块等。CFD商用软件的特点如下。
①功能比较全面、实用性强,几乎可求解工程中的各种复杂流体流动问题。
②具有完备的前后处理系统和与其他CAD及CFD软件的接口。
③具有比较完备的容错机制和操作界面,稳定性高。
④可在多种计算机、多种操作系统,包括并行环境下运行。
2.6.4 多核并行计算原理
单核的CPU计算机硬件性能几乎已经达到了极限,而且CFD研究人员发现计算机硬件性能的提高随时会被无止境的需求所吞没,因此远远不能满足CFD模拟的需求,特别是大规模网格计算的需求。虽然学者们改进了串行程序使用的数值算法以提高计算效率,但计算的并行化几乎是唯一可以大幅度提高计算效率的手段。TOP500揭示着CFD高性能计算硬件的发展方向,而多核并行小型集群系统给广大CFD模拟应用提供了可行条件。2004年7月,英特尔公司宣布,由于能耗过大,发热量过高,CPU的时钟速度已难以提高,其4GHz单核奔腾4处理器无法推出。随后双核CPU投产,一块芯片上集成了两枚处理器,双核芯片在同一时间内可以运行多个任务,在主频不变的条件下,不仅有效地缓解了硬件功耗和散热等问题,还提高了软件的运行速率。目前,双核及四核处理器已经推出,但对于一个计算任务来说,强大运算能力要通过并行才能得到充分发挥。在多核时代下,并行计算软件的并行编程支持是需要解决的最重要的问题之一。如果软件程序不是并行运行的,那么我们将面临大量计算资源被闲置的情形。并行计算的时代已经来临,集群(cluster)是并行计算架构中性价比最高的,即使由单个性能不高的机器所构成的集群仍然可以获得良好的并行性能。
(1)多核高性能集群
目前主要的并行计算机系统有五种:并行向量机(PVP),对称多处理机(SMP),大规模并行处理机(MPP),工作站集群(COW),分布式共享存储多处理机(DSM)。
所谓的机群系统(cluster system)就是利用高速通用网络将一组高性能工作站或高档PC机,按某种结构连接起来,并在并行程序设计以及可视化人机交互集成开发环境支持下,统一调度,协调处理,实现高效并行处理的系统。从结构和计算结点间的通信方式来看,它属于分布存储系统,主要利用消息传递方式实现各主机之间的通信,由建立在一般操作系统之上的并行编程环境完成系统的资源管理及相互协作,同时屏蔽工作站及网络的异构性。对程序员和用户来说,机群系统是一个整体的并行系统。机群系统中的主机和网络可以是同构的,也可以是异构的。在很多情况下,机群系统是低成本的、可扩展的大规模并行处理机。其中单个的计算机就是集群的结点。如果结点计算机采用多个多核CPU,则构成多核高性能集群系统。
机群系统有如下特征。
①机群系统的每个计算节点可以是一个完整的工作站,也可以是一台普通的PC机或对称多处理机。
②机群系统的各个计算节点可以通过低成本的网络通信子系统进行互连。
③机群系统的各个计算节点可以有自己内存和外存(如本地磁盘等)。
④计算节点的网络接口是松耦合到I/O总线上的。
⑤一个完整的操作系统驻留在机群系统的每个计算节点上。
(2)并行计算环境
机群系统的并行计算环境建立在网络通信的基础上,为了协同工作和高效并行,除了通信协议与服务,还包含集群系统中间件以及消息传递接口(message passing interface, MPI)、并行虚拟机(parallel virtual machine, PVM)等并行编程环境。目前常用的并行程序设计方式主要有向量程序设计、共享存储并行程序设计、数据并行程序设计和消息传递程序设计4种。而基于消息传递的编程模型主要有两种,一种是PVM,另外一种就是MPI。
MPI是目前最重要的一种基于消息传递的并行程序设计的编程接口,它已经为并行算法的程序设计建立了一个实用的、可移植的、有效的和灵活的标准,具有可移植性好、功能强大、效率高等优点,已经是国际上应用最广泛和最稳定的并行程序设计技术。MPI目前支持Windows、UNIX和Linux等操作系统。它是一个消息传递接口的标准,用于开发并行程序,目的是为用户提供一个实际可用的、可移植的、高效的和灵活的消息传递接口库。MPI的并行编程主要通过调用消息传递库中的MPI函数来实现多处理器间的通信及数据交换。
2.6.5 控制方程的常用求解方法
在CFD中,流体力学运动模型常常是非线性抛物线形守恒律形式的微分方程组描述的。在方程的求解过程中,有三个重要阶段:首先是建立在理论基础上的方法,包括各种边界层方法;其次是建立微分方程在空间网格点上的离散代数方程组;最后是离散代数方程的求解。
所求解离散代数方程的形式可分为两大类:涡量的相关形式和原参数(速度-压力)形式。代数方程数值求解的方法可分为解耦迭代法和合耦直接解法。原参数形式代数方程的各种解耦迭代解法,方程形式简单,数值求解的边界条件直观,而且便于补充方程而无须改动算法程序,如压力耦合方程组的半隐式方法(SIMPLE算法)等,是目前求解不可压缩流应用最为广泛的方法,其不足是不可压缩条件只是近似满足,同时为了达到精度要求,需多次迭代修正才能获得收敛解。SIMPLE算法的基本思想是:首先确定合适的原参数初始化值,对于给定的压力或速度场,求解离散形式的动量方程,得出相应的速度或压力场。如果所得到的矢量场不能满足连续方程,则对给定的压力场进行修正。压力修正方程是动量方程和连续方程的派生物,故其边界条件也与动量方程的边界条件相联系。
根据方程离散的体系,求解流场问题的常用计算方法又可分为有限差分法、有限元法、有限体积法等。
(1)有限差分法
有限差分法是对方程的微分形式进行离散,由于形式简单、编程容易实现且计算速度快,因而被广泛地研究和应用,特别是对于多维问题其优点更加明显,适合求解比较规则的区域上的流动问题,不适合处理具有复杂几何外形的问题。
(2)有限元法
有限元法首先是在固体力学中发展起来的,而后才应用于流体力学,它的计算工作量要比有限差分法大。但它在处理复杂的几何边界时十分灵活方便,求解步骤规范化,易于编制通用程序。近年来,间断有限元方法已被成功地用于流体力学计算,它既保持了有限元方法和有限体积方法的优点,又克服了不足,不仅易于处理复杂边界和边值问题,而且具有灵活处理间断的能力。
(3)有限体积法
有限体积法又称控制体积法,是以积分型守恒方程为出发点,通过对流体运动的体积域进行离散来构造积分型离散方程,相比于有限差分法和有限元法,其物理意义更直接明晰。这种方法适用于任意形状非结构网格,因此可以对区域进行任意网格剖分,可根据实际需要加密和疏松网格,适合处理复杂的几何外形问题,对给定网格点,其控制体的形状和位置以及控制面上的通量计算方法有多种。由于计算时,有限体积法是对守恒律的积分形式进行直接离散,可保证离散方程质量、动量和能量的守恒。有限体积法自20世纪50年代末发展至今已取得很大进步,特别是近十余年来,非结构网格有限体积法已成为数值模拟复杂、高速流动的重要方法,目前在CFD领域得到了广泛应用,大多数商用CFD软件都采用这种方法,流场仿真软件Fluent就是应用了有限体积法生成离散方程组。