三维水动力数值模拟系统的开发

2016-02-13 05:57艾丛芳
水道港口 2016年6期
关键词:模拟系统流场数值

张 南,金 生,艾丛芳

(大连理工大学海岸和近海工程国家重点实验室,大连116024)

三维水动力数值模拟系统的开发

张 南,金 生,艾丛芳

(大连理工大学海岸和近海工程国家重点实验室,大连116024)

利用面向对象的程序设计方法、数据库存储以及新一代的图形平台(WPF),以多种三维计算模型为基础,集成前处理、后处理子系统,开发实现了三维水动力数值模拟系统(HydroInfo)。该系统具有基础资料输入快速、建模过程自动化程度高、计算方法高效高精度、流场数据表现丰富以及辅助工具简单实用等特点。而且搭建了快速的三维图形系统,实现了欧拉以及拉格朗日两种方式呈现三维流场。在计算过程中能够分析实时计算结果,避免无效计算,提高了工作效率。以长江斗湖堤河段为例,对建模、计算及数据后处理各模块进行验证。

三维水动力;数值模拟;可视化

近年来,随着计算机的发展和水流数值模型领域的扩展和研究水平的不断深入,数值模拟越来越成为研究水流、水沙、水环境等要素变化的主要方法和重要手段[1]。特别是三维水流的数值模拟在解决实际工程应用中发挥着越来越重要的作用。目前,国外已经开发了一系列比较成熟的水流数值模拟商用软件,如丹麦的Mike软件、荷兰的Delft3D和美国的SMS、Ansys等。这些软件都集成多种数值模型并且具有强大的前后处理功能,但是缺少计算结果数据的实时处理及显示功能。国内也涌现出很多优秀的数值模拟系统[2-6],但是可视化程度不高,数值模型不够先进,特别在三维可视化方面显得尤为不足。鉴于此,开发了一套集成前处理、计算和后处理等子系统于一体的三维数值模拟系统(HydroInfo)。该系统采用高效、准确的数值方法能够模拟多种水流的运动状态,例如常规河流、弯道水流、溃坝等流动。并且能够输出全部节点的数据并实时查看计算结果。特别在三维可视化方面,以WPF图形平台为基础,实现了三维流场的多种显示。该系统从底层开发,不借助其它的软件包接口进行二次开发,具有自主的知识产权。

1 系统软件开发环境及工具

图形系统开发平台选择Microsoft Visual Studio 2010。它具有用户界面友好、支持面向对象的编程、支持WPF技术开发和易学易于实现等特点。

数值计算开发语言选择FORTRAN。它最大特性是接近数学公式的自然描述,可以直接对矩阵和复数进行运算,在计算机里具有很高的执行效率。最重要的是原来已经积累了大量高效而可靠的源程序。

对于C#和FORTRAN之间的相互调用,采用文本文件或者自定义的数据文件的方式。

数据库选择Microsoft SQL Server 2008关系数据库。该数据库能提供超大型系统所需的数据库服务。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。

三维图形平台选择WPF。选择WPF这一个新的编程模型作为图形系统能够产生更好的视觉效果,同时避免绘制复杂图形时占用大量CPU,消耗大量内存,导致界面失去响应的现象发生。更为重要的是在三维图形系统方面,WPF是基于向量的呈现引擎,并且与分辨率无关,相对于DirextX是图形硬件的底层接口,WPF提供的是上层抽象描述了场景(scene),只要硬件支持,它就会找出最好的呈现方法。

2 系统设计

2.1 系统总体结构设计

系统的设计采用如图1所示的三层架构,从底层到顶层分别为数据层、逻辑层以及交互层。

数据层的数据库提供整个系统的数据支持,包括图形、建模、计算、水文数据等。逻辑层主要由水动力数值模型、离散方法、文件系统以及数据库引擎组成,它是系统的核心部分。系统通过进行逻辑组织生成各种客户应用层。逻辑层的存在使系统的可扩充性和可维护性得到了极大的提高。交互层即应用的客户端部分,它负责与用户打交道。交互层分为三部分:建模部分、二维流场显示、三维模型显示。主要提供水动力数值模拟建模、数值模型设置、模拟结果统计分析、流场分析等功能。

图1 总体结构设计Fig.1 Design of the whole structure

2.2 软件系统的功能设计

根据HydroInfo系统的整体结构,将系统的主要功能划分为如图2所示的子系统及功能模块。系统的设计遵循模块独立性原则,满足了模块内高内聚,模块间低耦合的软件工程要求。

(1)问题设定子系统的主要功能是设置计算的问题类型和设置计算的输运量。主要的问题类型包括三维自由水面模拟、潮流波浪模拟等。输运量包括泥沙、盐度、温度、输运量、COD、BOD等。每一种输运量需要设置特定的选项,例如泥沙的设置中就包括悬移泥沙、推移泥沙、混合全沙、异重流泥沙。

(2)前处理子系统主要的功能是为模型建立提供数据,前处理子系统主要由以下几个功能模块组成:

1)计算域获取:包括AutoCAD文件导入计算域和界面录入计算域两种方法。AutoCAD文件中用封闭的多段线(PolyLine)表示计算域边界,其中外边界为逆时针,内边界为顺时针。

2)初始条件设置:初始条件数据包括水位初值、流量初值以及输运量初值等。可以通过直接输入,粘贴输入或者文件导入等方式将初始条件数据输入到系统中。

3)边界条件设置:边界条件的设置相对复杂。第一设置边界节点号,第二设置边界条件类型,包括水位边界、流量边界、流速边界、水位-流量关系边界、四点潮位过程边界等。第三设置时间单位,包括分、小时、日和月等。第四设置物理量随时间的变化过程,与边界条件类型相对应。在系统中有简单的操作界面,使添加、修改、删除边界条件等操作变得很方便。

4)地形数据获取:描述地形数据的文件很简单,包括三个属性(x,y,z),但是地形数据量通常很大而且多数的工程计算中地形数据都是以AutoCAD文件的方式提供的,所以在系统中提供读取DXF文件地形数据的功能。同样的地形数据也可以通过文本文件导入或者粘贴数据获取。

图2 HydroInfo软件体系结构Fig.2 Architectural structure of HydroInfo

5)网格生成:采用基于Bowyer⁃Watson逐点插入法进行Delaunay网格生成,网格过渡均匀,能够满足实际工程计算域的网格划分。在系统中,通过设置不同边界点的网格尺度可以方便的生成均匀网格、加密网格、渐变网格等。

6)AutoCAD接口:主要是同DXF文件的交互。包括读取DXF文件中的点、线、多段线等数据和将计算的数据导出为DXF文件等操作。

(3)模拟计算系统主要的功能是完成数值模拟计算,所包含的数值模型主要包括以下几种:

1)三维自由水面模型:采用分层Euler⁃Lagrange计算模式建立了平面上非结构化网格,垂向分层动网格的三维自由水面模型计算模型。可以在保证计算精度的条件下采用很少的垂向网格,提高了计算效率。模型包括静水压强与动水压强两种计算模式,其中三维动水压强模型可模拟粘性流体下的波浪传播与变形。

2)N-S方程计算模型:包括二维与三维,恒定流与非恒定流,可压流与不可压流。可以应用VOF方法模拟自由水面问题,并包含了传热与自然对流、相变(结冰与融化)等专门问题。3)波浪模型:采用缓坡方程计算波浪的传播变形与绕射反射。(4)后处理子系统主要功能是显示计算的结果。

1)水力要素查询:能够以数据和折线图两种方式输出每个节点和单元的水力要素过程(水位、流量、流速以及计算过程所涉及的输运量),并且能够输出计算值与实测值的比较。同时具有灵活的统计功能。例如按时间步、按分辨率或者按某一个具体位置(x,y)统计水力要素过程。还可以统计剖面上平均量随时间的变化。以及对于某个节点,水力要素以及输运量垂向的变化等。系统能够输出Excel,文本,tecplot数据格式。

2)二维流场分析:能够显示网格,按分辨率绘制平面流场以及标量场,同时能够进行流场的动画模拟。

3)三维显示:提供了多种三维模拟数据的后处理方法,包括三维地形曲面显示、三维网格显示、欧拉法表面流场显示、多个置于原三维模型的截面流场显示,截面叠加标量场显示以及拉格朗日法示踪球显示,迹线显示等,还具有流场、标量场等动画显示功能。

(5)常用计算工具模块主要功能是封装一些辅助计算的小工具。1)插值工具:具有一阶插值、拉格朗日插值等基本的插值算法。

2)地形修改工:具有灵活的地形修改工具,方便在工程中挖航槽,建立护坡、护岸等地形修改。

图3 数据库设计Fig.3 Design of database

2.3 数据库设计

HydroInfo系统采用数据库的方式管理模型数据。将系统的数据库分为4个基本的子数据库,图形数据库、基本信息数据库、建模数据库和计算数据库。图形数据库中主要存储跟图形相关的数据包括背景图、卫星图、光栅图以及矢量图;基本信息数据库存储水文的测量数据(水位、流量、含沙量等),用来对模型的参数进行率定及结果验证;建模数据库存储水动力数值模拟的前处理的数据,计算数据库主要存储离散后的计算域数据和计算结果数据。各个子数据库表的结构及表之间的约束关联如图3所示。

3 系统开发与实现

3.1 前处理子系统的开发

在前处理过程中与AutuoCad的交互通过DXF文件的方式实现。而DXF格式文件的读取,则是利用StreamReader.ReadLine()函数读取内容,并判断是否为标识字符串(BLOCK、POINT、TEXT、LINE、POLYLINE、LAYER)。如果是,则将相应信息记录到相应的变量中,否则继续读取文件,直至到达文件末尾为止。记录信息时,可根据图元所在的图层进行对象性质的判别,完成建模元素不同类别信息的对应存储。DXF文件中的图层名称、图层中图元的特性及数据含义如表1所示。

导入计算域后,将用户设定的各个边界节点附近的网格尺度,更新到存储区域边界线的hashtable中。以Delaunay方法完成网格划分。网格生成的具体方法参见文献[7]。网格生成后,将地形、糙率、水位初值等原始数据通过插值算法插入到网格节点上。保存所有计算参数,输出自定义格式文件(*.dat)供Fortune计算程序调用。

表1DXF文件中的图层内容Tab.1 Content of layers in the DXF file

3.2 模拟计算子系统的开发

根据计算参数的设定将计算参数保存在文件中,C#以可执行程序的方式调用Fortran计算程序。Fortran程序会将计算结果保存到文件中。C#读取计算结果文件,获取计算进度及计算的部分结果。此时可以对这部分结果进行分析,不用等全部结束以后查看结果,从而提高了工作效率。同时通过当前计算步,总计算步数,当前计算耗时,能够估算计算的完成时间。界面可以直观的显示计算进度等相关信息。计算结束后通过数据转换模块将计算数据保存到数据库中。数值模型的计算方法参见文献[8-9]。

图4 实测断面位置Fig.4 Position of measured section

3.3 后处理子系统的开发

后处理子系统的开发主要涉及以下四方面内容:

(1)水力要素过程显示:以DataGrid控件作为数据显示的载体,Chart控件作为多种统计图的载体。

(2)二维图形绘制:涉及到边界(多段线PolyLine)、网格和流场(直线Line)以及地形和标量场(形状Fig⁃ure)等。采用WPF绘制图形有很多类,最节省内存的,响应最快的是DrawingVisual类。使用DrawingVisual首先需要创建一个容器(从FrameworkElement继承)和全局可视对象的集合(VisualCollection)。其次初始化一个DrawingVisual类,使用RenderOpen()获取其DrawingContext对象,DrawingContext提供了一些绘图方法例如DrawLine,DrawRectangle等。这里使用DrawGeometry方法,将所有的图形转换为一个对象统一呈现。绘制完成以后调用Close方法。另外WPF提供了方便使用的Transform类来进行坐标变换,例如平移(Trans⁃lateTransfrom)、缩放(SacleTransfrom)以及旋转(RotateTransform3D)。灵活的坐标变换配合鼠标动作可以更方便的分析流场。

(3)三维图形绘制:涉及到边界、网格和流场(三维线段),三维地形、标量场、剖面场(三维曲面)等。将绘制三维线段的方法封装在ScreenSpaceLines3D类中,在绘制的时候给ScreenSpaceLines3D类的Points Thickness,Color属性赋值,WPF自动创建三维线段对象。同样的将所有线段作为一个三维对象呈现在三维场景中,用以节省系统的开销。绘制三维曲面的时候,需要将待绘制的曲面划分成若干小三角形。将节点和连接关系信息赋值给Positions和TriangleIndices属性,WPF会自动创建MeshGeometry3D对象,然后附上常用的DiffuseMaterial材质作为纹理映射。只需要将MeshGeometry3D类转换为ModelVisual3D即可通过view⁃port3D类呈现三维曲面。通过Transform3DGroup对象对三维曲面进行三维坐标变换平移(TranslateTrans⁃from3D)、缩放(SacleTransfrom3D)以及旋转(RotateTransform3D)来获得更好的观察视角。

图5 Hydroinfo系统建模显示Fig.5 Modeling interface in HydroInfo

图6局部网格Fig.6 Interface of local grid

图7 长江斗湖堤河段模拟计算界面Fig.7 Simulated interface of Douhudi reach in Yangtze River

图8 各断面不同起点距的垂向流速实测与计算值对比验证Fig.8 Comparison between measured value and calculated value of vertical velocity distribution at different section

(4)动画显示:定义一个委托delegate用来实现绘制某一时刻流场,采用Dispatcher.BeginInvoke()方法异步执行该委托,按计算的时间顺序呈现不同时刻的流场就完成了流场的动画显示。

4 工程应用实例

以长江斗湖堤河段为例说明HydroInfo系统模拟实际工程的能力。计算域上游起始于郑江市,下游至朱家湾,计算域内6个测量断面的具体位置如图4所示、地形建模如图5所示及局部网格如图6所示。采用40 m的网格边长,将计算域划分为66 474个三角形单元,33 822个网格节点,垂向分10层,局部网格如图6所示。计算步长为1 000,时间步长0.002 h。进口给定恒定流量为6 197 m3/s,作为入流边界条件,出口边界按照实测的水位-流量关系控制。计算界面及流场的三维显示如图7所示。通过对各断面的实测数据与模型计算所得到的数据对比验证如图8所示,说明了HydroInfo系统能够对实际工程的水流状态进行模拟,对工程应用具有十分重要的指导意义。

5 结语

采用先进的图形平台及面向对象编程技术,开发了具有自主知识产权的、界面简单实用以及功能完善的三维水流数值模拟系统(HydroInfo)。该系统通过DXF文件与AutoCAD软件进行交互,包括获取计算域,输出网格文件等。通过基于Bowyer⁃Watson逐点插入算法进行Delaunay网格剖分的方法,对任意给定边界的区域按照需求进行加密网格。通过读取部分计算结果文件的方式,可以边计算边分析实时计算结果。系统中集成多种三维数值模型,计算方法高效稳定,精度高,满足了普通计算机上进行大型的数值模拟的需求。而且具有多种方式的结果展示功能,例如水力要素随时间的变化,流场显示以及三维流场模拟等。通过对长江斗湖堤河段的模拟说明了HydroInfo具有较强的实用性。

HydroInfo系统虽然在算法上具有一定的先进性,但是水流的运动过程是复杂的多维过程,仍需要在算法的多样化和模拟的精度上不断完善。另外GIS技术在数值模拟可视化过程中的应用越来越广泛,如何将GIS的优势应用到现有的系统中是以后研究的重要方面。

[1]张明进,张华庆,白玉川.我国河流水流泥沙数值模拟技术进展与应用[J].水道港口,2010,32(5):329-335. ZHANG M J,ZHANG H Q,BAI Y C.Development and applications of simulating technology for river flow and sediment in water transport engineering domain of China[J].Journal of Waterway and Harbor,2010,32(5):329-335.

[2]张华庆,吕忠华,沈汉堃,等.珠江河口水沙数值模拟系统[J].水道港口,2002,23(2):51-54. ZHANG H Q,LV Z H,SHEN H K,et al.A Numerical Model of Current and Sediment in Pearl River Estuary[J].Journal of Water⁃way and Harbor,2002,23(2):51-54.

[3]罗秋实,朱进星,刘士和.河流数值模拟系统的开发与应用[J].武汉大学学报:工学版,2009,42(1):69-72. LUO Q S,ZHU J X,LIU S H.Development of a river numerical simulation system and its application[J].Engineering Journal of Wuhan University,2009,42(1):69-72.

[4]汪荣胜,宋立松,张泽锋.二维水流数值模拟系统研制与应用[J].水电能源科学,2010,28(10):118-121. WANG R S,SONG L S,ZHANG Z F.Application and Developing on 2D River Numerical Simulation System[J].Water Resources and Power,2010,28(10):118-121.

[5]叶荣辉,宋志尧,沈正,等.珠江口风暴潮数值模拟系统的设计与实现[J].河海大学学报:自然科学版,2013,41(3):260-264. YE R H,SONG Z R,SHEN Z,et al.A visualization system for numerical simulation of storm surges in Pearl River Estuary[J]. Journal of Hehai University:Natural Sciences,2013,41(3):260-264.

[6]冯利军,李竞生,郭晓山.地下水数值模拟系统的设计与实现[J].煤田地质与勘探,2004,32(3):33-35. FENG L J,LI J S,GUO X S.The design and realization of groundwater numerical modeling system[J].Coal Geology&Explora⁃tion,2004,32(3):33-35.

[7]柏禄海,金生.带有干湿界面的MUSCL型有限体积法[J].水动力学研究与进展:A辑,2008,23(6):639-645. BAI L H,JIN S.MUSCL⁃type finite⁃volume algorithm for shallow⁃water flow with wetting and drying[J].Chinese Journal of Hydro⁃dynamics,2008,23(6):639-645.

[8]AI Cong⁃fang,XING Yan,JIN Sheng.A higher⁃order non⁃hydrostatic model for simulating wave propagation over irregular bottoms [J].Journal of Hydrodynamics,2011,23(5):589-593.

[9]班胭胭,金生,丁伟业.河道三维水流数学模型计算及应用[J].水利与建筑工程学报,2013,11(4):153-156. BAN Y Y,JIN S,DING W Y.Calculation and application of mathematical model for three⁃dimensional river flow[J].Journal of Wa⁃ter Resources and Architectural Engineering,2013,11(4):153-156.

Development of 3D hydrodynamic numerical simulation system

ZHANG Nan,JIN Sheng,AI Cong⁃fang
(State Key Laboratory of Coastal and Offshore Engineering,Dalian University of Technology,Dalian 116024,China)

Three⁃dimensional hydrodynamic numerical simulation system(HydroInfo)with a variety of three⁃dimensional numerical model,pre⁃processing and processing subsystem was developed based on object⁃oriented programming,database storage and a new generation of graphics(WPF).It had several characteristics such as basic data input quickly,modeling process automatically,high efficiency and high precision numerical method,flow field with multiple performances and simple and practical assistant tool,etc.High⁃efficiency 3D graphics system had been set up,so that Eulerian and Lagrangian 3D flow field had been achieved.Real⁃time calculation results could be analyzed in the process of calculation avoiding useless computing,so the working efficiency was improved.Sever⁃al models of the HydroInfo system such as modeling,calculation and data processing had been verified according to the application of Douhudi at the Yangtze River.

3D hydrodynamic;numerical simulation;visualization

TP 311.52

A

1005-8443(2016)06-0651-06

2016-03-14;

2016-05-10

张南(1983-),女,辽宁省人,博士研究生,主要从事数值模拟和流场仿真模拟研究。

Biography:ZHANG Nan(1983-),female,doctor student.

猜你喜欢
模拟系统流场数值
数值大小比较“招招鲜”
大型空冷汽轮发电机转子三维流场计算
基于STM32单片机的微电网模拟系统设计
基于HYCOM的斯里兰卡南部海域温、盐、流场统计分析
基于ARM和Zigbee 的变压器试验培训模拟系统
基于Fluent的GTAW数值模拟
基于瞬态流场计算的滑动轴承静平衡位置求解
虚拟现实焊接培训模拟系统在焊工培训中的应用
基于MATLAB在流体力学中的数值分析
基于国外两款吸扫式清扫车的流场性能分析