基于Fluent的城市街区大气污染扩散仿真

【www.zhangdahai.com--其他范文】

孙豪宇,邬群勇*

(1. 福州大学空间数据挖掘与信息共享教育部重点实验室,福建 福州 350108;
2. 卫星空间信息技术综合应用国家地方联合工程研究中心,福建 福州 350108;
3. 数字中国研究院(福建),福建 福州 350108)

近年来,城市空气污染问题愈演愈烈[1],直接影响到人们的身体健康[2]。研究城市街区大气污染源扩散规律,进而预防或者减少城市中大气污染物,对于改善和保护人类的生存环境具有重要意义。

随着计算机技术的迅猛发展,计算流体动力学(Computa-tional Fluid Dynamics,CFD)技术得到飞速进步与成熟[3]。Fluent是一款国际流行的商用CFD软件包,在流体、热传递和化学反应等领域有广泛的应用。Fluent对污染物传输和扩散有较好的模拟能力[4-6],但是,Fluent为适应各个领域的需求,设计了复杂的面板参数,计算中需要用户输入的操作较多且专业要求较高,导致操作困难。因此,研究人员基于Fluent软件扩展衍生了针对于不同领域的易于操作和理解的仿真平台。如李湘平等[7]实现电磁轨道发射弹丸内部磁场仿真;
宋先知等[8]开发热力射流调制与流场计算分析软件;
李慧等[9]研发地铁通风系统;
郑朝亮等[10]实现装甲车辆红外仿真程序;
Mengqi Li等[11]实现油罐车流场分析及仿真;
Qiang Liu等12]研发板坯连铸机二冷系统的凝固与优化研究平台。这些仿真平台主要是对Fluent最基本的日志文件或者用户自定义函数进行简单修改操作,并未真正实现基于Fluent二次开发的接口,因此,软件的功能可扩展和维护性较差。

本文的创新在于提出GUI命令流参数化设计方法及TUI命令流封装方法,解决了Fluent命令编写困难,复杂和可读性差的问题,为不同领域Fluent定制开发提供统一接口。城市街区大气污染扩散仿真软件(PSDS)具有参数设置少,功能可扩展,操作简单,良好维护性等特征,可以简单快速的实现城市街区大气污染扩散仿真。

Fluent仿真首先需要解析以网格划分文件(.msh)形式存储的计算几何模型,获取边界条件等计算几何模型参数信息,其次根据Fluent提供的GUI和TUI两种命令流设置模拟参数[7]。本文解析计算几何模型文件,研究GUI命令流参数化设计方法及TUI命令流封装方法,实现对Fluent二次开发的仿真简化方法。

2.1 计算几何模型文件解析

计算几何模型文件(.msh)是Fluent进行计算的基础和前提,也是获取计算几何模型信息的必要途径。计算几何模型文件实质上是以.msh为后缀的文本文件,按照lisp语句的结构进行组织。表1是计算几何模型文件的数据类型和组织格式。

计算几何模型文件主要是由维度、节点、面、单元和区域构成,节点组成面,面围成单元,单元组成区域。通过表1数据类型及组织格式对文件进行读取,可以获取计算几何模型的边界条件等信息,为Fluent计算模型的封装提供必要输入。

作为设置边界条件的输入参数,需要自动获取计算几何模型中各种边界类型的边界名,基于以上对于.msh文件的解析,边界在.msh文件中的组织类似(45 (7 pres-sure-outlet outlet1)()),其中45为标识数、7为边界id、pressure-outlet为边界类型、outlet1为边界名。因此,本文提出逐行读取文件流,对文件中以(45开头的行字符串进行截取,得到计算几何模型的边界类型及边界名。伪代码如下:

streamReader获取逐行读取网格文件流

While(line为空)

if(line的开头字符串为:”(45”)

boundary[0]赋值边界类型

boundary[1]赋值边界名

将boundary二维数组添加到boundarys列表

表1 计算几何模型文件数据类型及组织格式

2.2 GUI命令流参数化设计方法

Fluent GUI(Graphical User Interface)脚本命令流可以通过两种方式获得。一是通过操作Fluent软件,而生成记录每一步操作的日志文件(Journal File),这种方式可以方便的获取脚本命令流,但因Fluent软件的复杂性,对其进行修改非常繁琐;
二是使用文本编辑器用Scheme语言编写,这种方式编写脚本命令工作量巨大且复杂。本文研究GUI命令流参数化设计方法,通过界面编程的方式自动编写脚本命令,既解决脚本命令编写复杂,又能解决脚本命令修改困难的问题。

Fluent GUI以命令流的形式将计算过程中的每一步操作记录在日志文件中(.jou),通过研究Fluent生成的日志文件,其命令流组织规则如下:

第一,每种操作函数的第一个参数为文本类型的参数,这个参数用于指定操作位置。

第二,每条操作函数命令后有一条激活函数命令(cx-gui-do cx-activate-item)。

第三,操作函数中若是有列表类型的参数,且列表参数值为索引号,那么可以用对应的实际名称替换该索引号。

基于GUI命令流组织规则,搭建交互窗口进行参数传递,通过文件流写入方式实现journal文件的参数化自动生成。如对于稳态计算中迭代步数设置的脚本命令,可以利用上述方法思想编写伪代码如下:

streamWriterLine("(cx-gui-do cx-set-integer-entry "Run Calculation*Table1*IntegerEntry10(Number of Iterations)" "+numberOFIterations+")");

streamWriterLine ("(cx-gui-do cx-activate-item "Run Calculation*Table1*IntegerEntry10(Number of Iterations)")");

其中streamWriterLine为文件流写入方法,numberOFIterations为传入的迭代步数参数,这就是将参数化思想融入脚本命令编程的体现。

2.3 TUI命令流封装方法

通过GUI命令流参数化设计方法可以实现对GUI脚本命令进行参数化编程,进而开发出符合针对各领域的仿真平台。但是,GUI命令流组织比较松散,很难将其封装为可以通用的方法模块进行调用,而且GUI命令需要调用窗口显示,执行效率相对较低。Fluent TUI(Text-based User Interface)命令可以直接在Fluent的控制台(Console)窗口中输入并执行,也可以在文本编辑器中编写命令代码并保存为日志文件(.jou),由Fluent读取日志文件来执行文件中的命令,可以很好的解决GUI存在的以上问题。

TUI脚本命令由目录和命令组成,即首先选择目录,然后执行该目录下相应的命令,Fluent TUI提供了14大类一级目录,分别对应功能如表2。

表2 Fluent TUI一级目录命令

本文提出将TUI命令封装为一系列简单易用的方法模块,解决TUI命令可读性差且编写复杂的问题。TUI命令由目录和目录下的命令函数以及命令函数的输入参数值三个部分组成,输入参数值最常用的有yes(缩写y),no(缩写n)和文本,yes和no用于询问是否选择某操作(方法),文本用于设置实数值等。参照表2以及TUI命令的组成规则,可以得到Fluent功能对应的TUI命令。如定义边界条件的目录为/define/boundary-conditions/,定义速度入口边界条件的命令函数为velocity-inlet,命令函数需要的输入参数根据模型选择的不同而不同,如湍流模型选择层流,其它模型方程全部关闭,则需要输入的参数有边界名、速度方法(三种)、参考框架(两种)、速度大小和初始表压。如果设置边界名为inlet1的速度入口边界条件,速度方法选择第三种,参考框架选择第一种,速度大小为10m/s,初始表压为101325pa,则对应的参数为inlet1 n n y y n 10 n 101325。因此完整的TUI命令为:/define/boundary-conditions/ velocity-inlet inlet1 n n y y n 10 n 101325。

通过以上研究发现对于TUI命令的使用有两个主要的难点:一是参数非固定,根据不同情况会发生相应的变化;
二是参数多用n y这样的值,可读性差,不利于理解和编写。本文提出利用面向对象方法实现TUI脚本命令的封装,将各功能的TUI命令流封装为简单易用的功能对象。具体封装流程为:根据封装的功能对象所包含的方法设计各接口类,逐一实现各接口中的方法,形成实现类;
将接口中各方法复杂的输入参数封装为参数类,便于方法调用,最后得到继承于实现类的功能对象类,该类中方法的参数为便于调用的参数封装类。

以设置边界条件TUI命令的封装过程为例阐述以上封装方法,封装流程如图1。城市街区污染扩散仿真涉及能量方程模型、湍流模型、辐射模型、组分模型四种模型,根据对Fluent TUI命令的研究,共需要设计十个接口;
边界条件涉及速度入口(velocity-inlet)、压力入口(pressure-inlet)、质量流入口(mass-flow-inlet)、压力出口(pressure-outlet)、质量流出口(mass-flow-outlet)五种边界类型,对应需要在上面十个接口下分别设计五个方法。接口设计完成后,提供一个实现类实现所有接口。但是,由于Fluent软件操作的复杂性,实现类中的每个方法涉及参数众多,导致开发者调用这些方法仍然比较复杂,因此,对每个方法的参数进行封装形成参数类。最后设计一个最终对开发者开放的边界条件设置类对象(BoundaryConditionSet)。该对象简单明了,易用理解和调用,可以非常简单的返回所需边界条件设置的TUI命令。如选择湍流模型为层流时,获取设置速度入口的边界条件TUI命令伪代码为:

图1 边界条件TUI封装流程

创建边界条件设置类对象BoundaryConditionSet BCS

创建参数封装类对象BCP_OFFOFF.VI vi

输入vi成员变量值

输出TUI命令字符串TUI=BCS.Set_OFFOFF(vi:
vi)

依据上述设计思路,完成边界条件设置的TUI命令流封装,为Fluent提供简单易用的二次开发库,解决Fluent TUI脚本命令可读性差,难以编写的难题。最后可以利用文件流的方式实现TUI命令的写入,灵活方便的得到自组织的Fluent脚本命令流日志文件(.jou)。对于得到的命令流日志文件(.jou)可以后台调用Fluent进行执行。后台执行Fluent日志文件的命令格式为fluent x1d -g -tx2-i journal,其中x1取值为2或3,代表计算模型的维度;
x2取值为处理器个数,即并行核数;
journal为日志文件(.jou)路径;
-g代表Fluent后台运行。

利用上文研究的GUI命令流参数化设计方法及TUI命令流封装方法,采用VS2015开发平台,基于.NET Framework技术开发城市街区大气污染扩散仿真平台(PSDS)。该平台源码已上传至GitHub托管平台:https:∥github.com/Mekeater/PSDS。PSDS仿真操作流程如图2所示。

图2 仿真操作流程

3.1 模拟参数设置

通过简单界面交互而实现自动组织和生成复杂的脚本命令日志文件(.jou)。模拟参数设置包括两种模式,一种是简要模式,交互界面如图3,该模式所需参数设置较少,根据常规污染源扩散模拟计算的参数设置经验[13-14],对专业性参数进行了默认设置,如物理模型选择能量方程,标准k-ε双方程湍流模型以及组分运输方程等,该模式简单易操作,适合没有太多流体力学基础的用户,可以快速对污染扩散进行计算模拟;
另一种是专家模式,交互界面如图4,适合有较强流体力学基础的用户,可以进行更多模拟参数的设置,专家模式相比简要模式开放了更多的参数设置,可以由用户根据情况选择和设置更多合适的参数,共包括八大模块。两种模式的交互界面如图3。模型参数设置完成后生成脚本命令日志文件(.jou)。

图3 简要模式交互界面

图4 专家模式交互界面

3.2 模拟计算求解

生成的日志文件(.jou)需要后台调用Fluent执行文件中的脚本命令内容,首先自动获取模拟参数设置所生成的日志文件(.jou),然后,后台调用Fluent执行该日志文件中的脚本命令,交互界面如图5。ANSYS Fluent具有成熟的并行策略[7],PSDS计算求解模块可以选择并行或者串行执行脚本命令,通过并行的方式调用Fluent执行脚本命令,可以很大程度上提高计算效率,使得计算时间大大缩短。

图5 计算求解交互界面

3.3 计算结果存储管理

模拟计算求解完成后会自动生成整个模型和指定模型截面处的相关计算值存储于文本类型文件中,生成文件存储内容包括节点数、xyz坐标值,以及坐标值处对应的压力值、速度大小值、速度角度值以及各个组分质量分数值。同时将利用Fluent后处理生成的整个模型以及指定模型截面处的压力云图和矢量图,速度大小云图和矢量图,以及各个组分质量分数的云图和矢量图以图片的形式存储。文本数据用作污染扩散分析的基础数据,图片用作对计算结果的基础可视化和分析。

数据采用本地文件目录树的方式进行存储管理,如图6所示。根目录下包含以模拟计算工程名为名称的子目录,即每次模拟计算都会自动在根目录创建一个子目录,该子目录的名称以工程名命名,同时会自动在子目录下再创建三个子目录用以存储日志文件(.jou)、整个模型以及指定模型截面处的计算值文本文件和图片文件。对于整个模型的图片命名规则为“工程名_Body_2个整数组合_time”,指定模型截面处的图片命名规则为“工程名_截面名_2个整数组合_time”,2个整数组合为n行2列的二维网格的索引号,如图7所示,time为时间值,对于稳态计算time取值为空,对于瞬态计算time代表时间值。如test_Body_10_0001.jpg为test模拟计算工程中在1秒时的速度云图;
test_y26_01_为test稳态模拟计算工程中在截面y26处的压力矢量图。该命名规则可以在程序中快速的调用所需的图片进行展示。

图6 数据存储目录树

图7 二维网格索引号

影响城市大气污染扩散的因素主要包括泄漏源(形态、位置、泄漏气体密度等)、气象条件(风向风速、湿度、大气稳定度等)以及地表情况等[15]。利用PSDS软件进行城市街区氯气扩散仿真,验证依据论文提出的Fluent二次开发技术方法研发的PSDS平台,简单易用,可以快速实现城市街区大气污染扩散的仿真。根据仿真结果分析风速以及污染源释放的质量通量大小对于氯气扩散的影响。研究区域为简化城市街区,街区内有大小不一的建筑楼,污染源为持续释放氯气污染物的简化立方体。模拟区域示意图如图8所示。

本文采用ANSYS集成到Workbench中的DesignModeler进行几何建模,采用Meshing软件对几何模型进行非结构化网格划分。模型选择能量方程、标准k-ε双方程湍流模型以及组分运输方程,考虑重力且重力方向为Z轴方向,重力大小为-9.81m/s2。利用基于压力基求解器的非稳态流算法,速度压力用SIMPLE法耦合,在时间方向上采用二阶隐式格式离散。左侧面(left)和前方面(front)设置为速度入口边界条件;
右侧面(right)和后方面(behind)设置为出流边界条件;
污染源(pollution)设置为质量流入口边界条件;
剩余研究区域的上方和下方以及建筑物设置为无滑移壁面。以上设置既可以通过PSDS软件的专家模式进行设置,也可以通过PSDS软件的简要模式进行快速设置,本实验采用简要模式进行参数设置。

图8 模拟区域示意图

4.1 不同风速下氯气扩散仿真

设置污染源以6kg/m2-s的质量通量释放氯气,分别对速度入口风速为6m/s、9m/s、12m/s的氯气扩散情况进行快速仿真。

仿真结果在建筑物的水平截面处,时间分别为5s、10s、20s、30s、40s五个时刻的氯气扩散情况对比如图9所示。由图分析可得到以下氯气扩散规律:①氯气整体向下风方向扩散,且在扩散初始时间段,风速越大向下风向的扩散范围越大,但污染源周边的高浓度范围越少。这是因为较小的风速导致氯气扩散速度较慢,使得大多氯气集中在污染源周边形成高浓度区域,而较大的风速导致氯气扩散速度快,使得污染源周边的氯气快速向远处扩散,进而污染源周边高浓度区域越少,下风向的氯气扩散范围越大。②随着扩散时间的增加,风速越小下风向氯气范围越大且浓度越高。这是因为风速越大氯气就被越快的吹散,扩散范围及浓度增长速度较慢,而风速越小氯气就有更多的时间积累,扩散范围及浓度增长速度较快。③建筑物对于氯气扩散具有明显的阻挡作用。由图可明显看出污染源所在街道的氯气经过第一排建筑物的阻挡后,在第二条街道浓度骤减。

由以上分析可以证实风速以及建筑物在城市污染源扩散中的重要作用,合理的规划城市建筑,建造具有更好通风效应和建筑物布局的城市街区对于污染扩散具有重要的意义。

图9 不同风速氯气扩散仿真

4.2 不同质量通量下氯气扩散仿真

设置速度入口风速为6m/s,分别对污染源释放质量通量为3kg/m2-s和6kg/m2-s的氯气扩散情况进行快速仿真。

仿真结果在建筑物的水平截面处,时间分别为5s、10s、20s、30s、40s五个时刻的氯气扩散情况对比如图10所示。由图中可以看出污染物整体向下风向扩散,在同一时间,污染源处质量通量越大,下风向污染范围越大浓度越高,随着时间的增加,下风向污染扩散范围不断增加。这是因为污染源质量通量越大,每一时刻就有更多的氯气被风带到下风向,使得下风向污染范围越大浓度越高,随着时间的增加,污染物持续向下风向扩散,导致下风向污染扩散范围不断增加。

图10 不同质量通量氯气扩散仿真

本文提出GUI命令流参数化设计方法及TUI命令流封装方法,研发了城市街区大气污染扩散仿真软件(PSDS),实现了城市街区氯气扩散的仿真,主要结论如下:

1) 通过界面编程的方式自动编写脚本命令,实现了GUI命令流参数化设计方法,解决了GUI命令编写困难和修改复杂的问题。

2) TUI命令流封装方法将TUI命令封装为一系列简单易用的方法模块,解决了TUI命令可读性差且编写复杂的问题,为Fluent扩展定制开发提供统一接口。

3) PSDS软件操作简便,易于理解,解决Fluent软件操作复杂,专业理论知识要求过高等问题,可为城市街区大气污染扩散模拟提供简单易用的研究工具。

猜你喜欢脚本氯气边界条件酒驾作文小学中年级(2022年11期)2022-11-25一类带有Stieltjes积分边界条件的分数阶微分方程边值问题正解应用数学(2020年4期)2020-12-28安奇奇与小cool 龙(第二回)课堂内外(小学版)(2020年11期)2020-12-04带有积分边界条件的奇异摄动边值问题的渐近解数学物理学报(2020年5期)2020-11-26黎曼流形上具有Neumann边界条件的Monge-Ampère型方程数学年刊A辑(中文版)(2020年3期)2020-10-27氯气的制备实验探究中学生数理化·高一版(2020年2期)2020-04-21快乐假期中学生(2017年19期)2017-09-03小编的新年愿望中学生(2017年1期)2017-03-24低浓度氯气综合利用的探讨中国氯碱(2014年11期)2014-02-28优化氯处理工艺,提高氯气质量中国氯碱(2014年8期)2014-02-28

推荐访问:大气污染 街区 扩散

本文来源:http://www.zhangdahai.com/shiyongfanwen/qitafanwen/2023/0916/654896.html

  • 相关内容
  • 热门专题
  • 网站地图- 手机版
  • Copyright @ www.zhangdahai.com 大海范文网 All Rights Reserved 黔ICP备2021006551号
  • 免责声明:大海范文网部分信息来自互联网,并不带表本站观点!若侵害了您的利益,请联系我们,我们将在48小时内删除!