openfoam怎样降低水的粘度输出粘度场

导读:在手册其他部分:,}在手册其他部分:为清楚起见并节省空间,文件头,包括显线及FoamFile子目录,将会在引用实例文件时全部省去。文件首先指定块顶点坐标,然后通过顶点标号和单元个数定义块(此处仅有一个),最后,它定义边界块。建议用户查阅5.3节了解blockMeshDict文件中输入项的含义。在blockMeshDict文件上运行blockMesh生成网格。在这个实例目录中} 在手册其他部分:
为清楚起见并节省空间,文件头,包括显线及FoamFile子目录,将会在引用实例文件时全部省去。
文件首先指定块顶点坐标,然后通过顶点标号和单元个数定义块(此处仅有一个),最后,它定义边界块。建议用户查阅5.3节了解blockMeshDict文件中输入项的含义。
在blockMeshDict文件上运行blockMesh生成网格。在这个实例目录中,做到这一点,只需在终端输入:
终端窗口产生blockMesh运行状态报告。任何blockMeshDict文件的错误都会被blockMesh挑出来,所产生的错误信息直接引导用户到文件中产生问题的所在行。在该阶段不应该有错误。 2.1.2 边界和初始条件
完成网格生成,用户可以看看为这个案例设置的初始场文件。案例设置开始时间t = 0 s,所以初始流场数据被设置在cavity目录下面的名字为0的子文件夹里。文件夹0里包括两个文件,p和U。每个压力(p)和速度(U)的初始值和边界条件都必须设置。让我们来检验下文件p:
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
movingWall
fixedWalls
frontAndBack
//空边界条件,说明求解是二维流动,这个在openFOAM是独有的,如果遇到该类边界,该边界不参与方程//离散,也就是什么都不做。 36
} 38 39// ************************************************************************* //
流场数据文件有3个主要的输入: dimensions:指定流场尺度(单位的指数),这里的运动学压力,即m2s-2(0 2 -2 0 0 0 0 )(见第4.2.6节获取更多信息); internalField:其内部文件数据可以是统一的,由单一值确定;不均匀时,流场所有值必须指定(详细信息见 4.2.8节 ); boundaryField:边界的流场数据,包括边界条件和及所有边界块的数据(详细信息见4.2.8节)。
对于这个腔体例子,边界仅由壁面组成,分为两种边界:(1)fixedWall:固定墙包括侧墙和低墙(2) movingWall :移动墙的顶盖。作为壁面,两者的P文件都是 zeroGradient边界条件,即“压力垂直梯度为零”。frontAndBack代表二维情况下的前后两个块,因此必须设置为empty。
该实例中,正如大多数我们遇到的情况一样,初始场被设置为是均匀的。在这里,压力是运动学上的压力,作为一种不可压缩的情况,其绝对值是不相关,因此为方便起见设置为uniform 0。(为什么跟绝对值不相关?)
用户可用同样的方式检测0 / U文件中的速度场。dimensions为对速度所期望的因次,内部流场初始化为uniform zero ,在这个例子里速度场必须由由3个矢量表示,即均匀的(0 0 0)见第4.2.5节获取更多信息)。
对frontAndBack块,速度边界流场要求相同的边界条件。其他方向都是墙:固定墙需要假定无滑移条件,因此fixedValue 条件其值为统一(0 0 0)。顶面以1米每秒的速度沿x方向移动,因此也需要fixedValue条件,但为统一(1 0 0)值。
2.1.1.3物理特性
实例的物理属性存储在后缀为.....Properties的文件里,放在Dictionaries目录树。对于这个icoFoam例子,唯一必须指定的运动粘度是存储在transportProperties目录中。用户可以检查运动粘度是否正确设置,通过打开transportProperties目录来查看或编辑的入口。运动粘度的关键字是nu,在方程中用同音的希腊字母ν代表。最初,例子运行时雷诺数为10,其中雷诺数定义为:
式中,d和1U1分别为特征长度和特征速度,ν为运动粘度。此处d=0.1m,1U1=1m/s,所以Re=10时,ν=0.01m2 s?1 。因此正确的动力粘度文件入口指定为: 2.1.1.4
与时间控制、解数据的读取与存储相关的输入数据都是从controlDict目录读入的。读者应看看这个文件;作为实例控制文件,他放在system目录中。
运行的开始/结束时刻及时间步长必须设置。 4.3节详细介绍了OpenFOAM提供的度够灵活的时间控制。在这个教程我们设置开始运行时刻从t=0开始,这意味着of需要从文件夹0读取流场数据,更多案例文件结构信息见4.1小节。因此我们设置startFrom关键词为startTime 并指定关键词startTime 为0。
对于结束时间,我们希望获得流动绕空腔循环(即稳定)时的稳态解。一般而言,层流中,流体通过该区域10次才能达到稳态。在这个例子里,流动没有通过该区域,因为这里没有进口也没有出口。取而代之,设盖子穿过腔体10次为结束时间,即1s;事实上,事后发现0.5s就足够了,因此应采用该值。指定stopAt关键词为endTime,并赋值0.5
现在我们需要设置时间步长,由关键词 deltaT 代表。运行icoFoam时为达到瞬时精确及数值稳定,要求Courant 数小于1。对于一个单元Courant 数定义如下:
δ t是时间步长,|U|是通过单元的速度大小,δ x是该速度方向上的单元尺寸。流速在穿过区域时是变化的,必须确保任何地方的Co<1。因此我们以最糟的状况选择δ t的取值:Co的最大值必须与大尺度流速和小的单元尺度联合的效果相一致。这里,这个整个区域的单元尺寸固定,所以Co的最大值发生在紧挨着盖子的地方,这里速度接近1米每秒。单元尺寸为:
因此为了达到全部区域内Co<=1,时间步长deltaT 的设置必须小于等于:
作为模拟进程,我们希望能写下每隔一段时间的结果,这样我们就能在后处理包里查看结果。关键词writeControl表示设置输出结果时刻的一些可选项。这里我们选择timeStep 选项:每隔n次时间步长输出一次结果,n值由关键词writeInterval指定。假设我们要设置在时刻0.1, 0.2,. . . , 0.5 s输出结果,时间步长是0.005s,因此是每20次步长输出一次结果,故给writeInterval赋值20。
Of会根据当前时间创建一个新的目录,例如0.1s,在每个时刻输出一系列的数据,在4.1章节有具体介绍。在icoFoam求解器输出的每个流场信息U 和 p放在时间目录里。对于这个例子,在controlDict中的输入如下:
2.1.1.5 离散和线性求解器设置
用户可以在system目录下 fvSchemes文件中指定选择有限体积离散法。用户线性方程求解器规范、限差和其他算法控制。用户可以自由的查看这些库类,但是在它们的入口函数中我们目前只需要fvSolution中PISO 目录下的pRefCell 和pRefValue。在封闭系统如腔体内,用的是相对压力:是压力范围而不是绝对值。在这种情况下,求解器在pRefCell 单元中通过pRefValue 设置一个相对值,在该实例中都设为0。改变其中任何一个的值都会改变绝对压力场只改变绝对压力场,而不会改变相对压力场或速度场。 2.1.2查看网格
在实例运行前,最好查看一下网格以检查是否有错。网格在OpenFOAM 提供的后处理工具paraFoam中查看,通过在终端在案例目录下 (ying@ying-desktop:~$ cd
/home/ying/RUN/tutorials/incompressible/icoFoam/cavity回车)输入:
paraFoam 来启动paraFoam后处理。
也可以通过另一个目录位置执行:
paraFoam -case $FOAM RUN/tutorials/incompressible/icoFoam/cavity
从而打开了ParaView窗口如图6.1所示。在Pipeline Browser,用户可以看到ParaView已经打开了cavity案例模块:cavity.OpenFOAM 。在点击Apply按钮前, 用户需要从Region Status 和面板上选择一些几何结构。因为该案例很小, 通过检查Region Status 面板标题相邻的box可以很容易地选择所有的数据,这可以自动检查各个面板中的所有独立部件。然后用户可以点击Apply按钮将几何结构加载到ParaView中。6.1.5.1节中介绍了一些常用设置,请查阅该章节中的相关设置。
之后用户应该打开Display面板,其控制着所选模块的可视化重现。在Display面板中,用户应该做如下工作,如图2.3所示:(1)设置Color为Solid Color ;(2)点击Set Solid Color 选择适当的颜色,如黑色(对于白色背景);(3)在Style面板,从Representation 菜单选择Wireframe 。背景颜色可以在顶部菜单面板的Edit中选择View Settings... 来设置。
尤其是第一次启动ParaView,必须如6.1.5节描述的一样操作。特殊的,由于这是一个2D的情况,要求在Edit菜单中选择View Settings窗口,在General 面板必须选择Use Parallel Projection 。在Annotation 窗口Orientation Axes可以勾选或不宣,或通过鼠标拖曳来移动。
2.1.3 运行应用程序
正如一切UNIX/Linux可执行软件,OpenFOAM应用程序可以按以下两种方式包含总结汇报、文档下载、教学研究、IT计算机、办公文档、计划方案、人文社科、经管营销、党团工作以及OpenFOAM使用手册(中文翻译版)等内容。本文共7页
相关内容搜索当前位置: >>
基于开源软件OpenFOAM的数值波浪水槽建立及应用
天津大学 硕士学位论文 基于开源软件OpenFOAM的数值波浪水槽建立及应用 姓名:徐少鲲 申请学位级别:硕士 专业:港口、海岸及近海工程 指导教师:张庆河
摘要波浪现象是港口海岸工程研究的重要问题之一,理论分析、原型观测、物理 模型实验、数值模拟是研究波浪问题的主要方法。其中,数值模拟方法由于节省 人力物力,不受实验场地和观测仪器影响,同时实验条件和参数容易进行控制和 改变,能模拟多种因素在复杂条件下的物理过程,而得到广泛应用。基于此,本 文建立了一个三维数值波浪水槽,对波浪的传播变形及其与建筑物的相互作用进 行研究。 在开源软件包opeIlFO―~M的基础上,本文建立了一个基于非结构化网格利 用有限体积法求解N.S方程的三维数值波浪水槽模型。模型采用VoF法追踪自 由表面,并有多种紊流模拟方式可供选择,具有较高的精度,能很好地模拟波浪的传播变形。此外,程序按脚I标准编写,可以应用并行计算提高计算效率。采用本文建立的模型,选用IⅢG良一s模型针对高桩墩式结构影响下的波浪特性进行了二维数值模拟,计算分析了不同淹没深度、不同宽度的墩台影响下的 波浪传播特性,以及墩台侧面和底面受波压力的变化情况,探索了不同尺度墩台 结构与波浪相互作用的规律。通过对原型尺度算例的模拟,分析了波浪作用下高 桩墩式结构稳定性的主要影响因素。 通过采用LES,本文对潜堤附近波浪场及其流动特性进行了三维模拟,并与PⅣ实验结果进行了对比。计算分析了潜堤结构附近涡的尺度、生成机理和运动变化特征,并得出了潜堤附近波浪运动的三维特性及紊动特征。 针对数值波浪水槽的波高衰减问题,本文提出了相应的解决方案,同时,针 对并行环境下的数值计算,本文通过对计算日志的分析探讨了计算网格划分、计 算任务设置与计算效率之间的关系,得出了一些有意义的结论。关键词:数值波浪水槽有限体积法openFoAM并行计算 AB STRACTWavessillmlationhave received considerable attemion iIl the rese踟.ch of pon and coaStal observatio玛t11eoretic analysis aIld numericalengiIle痂g.Exp甜mems,proto咖earemajormetllods in theresearch,锄ongStw11ich,munerical simulation inhas become more a11d more popular because of itswide印plicatio玛conVeIlieIlceadjus缸nent,good compatibilitytowith conlplexenViromem aIldlower costs corllparcdme eXperimems.h order to snldy the propagation a11d iIlteraction with strIlcture ofonme waVe,a munerical waVe taI山basedA three diIIleIlSionalopen source soRware was built.num甜calonwave model which solVes NaVie卜Stokes equationonus崦fiIlite voluIIle me廿lodopensourceuIls仃uctured mesh was built basedopenFoAM,ancomputational fluidavailable.Vol啪ed”锄icstoolbox,wim seVeral turbulence modelsof nuid me廿lod was employed to c印ture the 6.ee surface of theawave.The modelreaChescomparatively Iligh accuracy,basedcanonwhjch propagationtoa11d defonTlation of the wavebe welldescribed.MPl was also eInployedproVide good conlpatibility with parallel computation. Baseontlle model,the 2D waves aromld pier strIlcture was siIllulated usingto waVeRNG忌一£model.The砌uencesubmerged d印也and width丘。ont and bottom of thepropagation by pierS with diff.erentwere eValuated and the were alsov撕ationof waVe pressureonthepierpresemed.The interaction be铆een tlle waVeaIld鲫rLlcture was discussed.Factors af.fectiI培the stability of me high pile pierstnlcture were also discussed witllaproto帅e siIImlation.A submerged dike was also simulated usiI坞large eddy siIImlation a11d the results were compared toaflow field PIV expeIlimem.The generation and deVelopment ofeddies around me dike was discussed and the three dinlensional characteristic of the velocity and turbulence field waS involved wim a11alysis t0 the cross-section of the tank.Waveheight dissipation in卜rWT was discussed and resolVed.The computational of thischaract嘶sticNWTwas alsod耐ved矗omlog files ofcases.RelationShipbet、ⅣeeIl coⅡ1putation speed,mesh Some baSicqual时aIldcomputation settings was discussed.p血ciples of impr0ViIlg stabilit),and emciency were concluded.Wavc Tank,FVM,opellFOAM,Parallel1娅Y WoRDS:N啪ericalConlputation 独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得墨壅态堂或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。学位论文作者签名:I如签字日期:6s,年;月纠日学位论文版权使用授权书本学位论文作者完全了解墨鲞盘堂有关保留、使用学位论文的规定。特授权苤洼盘鲎可以将学位论文的全部或部分内容编入有关数据库进行检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 (保密的学位论文在解密后适用本授权说明)学位论文作者签名:幻砒导师签名:签字日期:口穸年g月叫日签字日期:嘭哞厂碉≥扣 第一章绪论第一章绪论1.1研究目的与研究意义波浪现象作为海洋中的普遍现象,是港口海岸工程关注的焦点之一,也是将 此学科区别于建筑工程领域其他学科的重要特点。在港口海岸工程研究的各个领 域,所要考虑的很重要的一个方面即海洋上的波浪对岸线、航道、建筑物等产生 的影响。因此对波浪的产生、传播及作用特性的研究是港口海岸工程问题研究中 非常重要的一个方面。 几百年来,人们通过对流体特性由浅入深的研究,已经对水的各种运动形式 有了越来越系统、越来越接近本质的认识。得益于这些研究,对波浪现象的认识 也越来越趋于事物的本质。尽管如此,由于水流流动的复杂性,使得计算流体的 流动成为了一项异常艰巨的任务。因此,即使求解流体的数学方法研究已经达到 了较高的水平,实验作为对客观现象最真实的反映手段,仍然在港航工程研究中 占据着不可动摇的地位。但近年来随着计算机技术的飞速发展,采用计算机对流 体运动进行模拟的数值实验越来越受到研究者的关注,并逐渐开始在波浪研究领 域中发挥作用。 在波浪研究领域中,实验、理论和数值模拟一直是无法相互替代并共同发展 的三种研究手段。实验是反映自然规律最真实可信的手段,是一切抽象化方法的 基础,但其受实验资源的约束使得通过实验方法进行的研究需要大量资金支持。 理论研究是当人们积累足够多的实践经验和数据之后,对实验结果进行的总结分 析。依据完善的数学解析式进行的计算精确、稳定,各种变量清楚明确,解的形 式也很直观,能够快速返回生产实践。但事物运动规律是非常复杂的,而很多时 候研究者必须要面临的问题是即便获得了描述各物理量关系的微分方程,也未必 能够获得相应的解析解。流体力学领域中的Navier-Stokes方程作为描述粘性牛 顿流体的非线性微分方程,自问世以来的150年间都没有获得通解的表达式,现 有的70多个特解相对于工程所面对的情况来说显然是远远不够的。 数值计算作为伴随着计算机技术发展而逐渐普及的研究手段,已经逐渐成熟 并投入了流体动力学计算领域的应用。数值计算方法是理论与实验方法的结合, 所解决的是通过数学手段将无法获得解析解的事物规律用微分线性化逼近的方 法获得近似解。在波浪现象模拟方面,对流体波动特性进行描述的计算程序即数 值波浪水槽。1997年的ISOPE【lJ对数值波浪水槽给出了一个比较全面的定义:数 值波浪水槽是一种计算机的仿真模拟程序,其目的是用来尽可能逼真地模拟真实 第一章绪论的实验波浪水槽的各种功能,并最终能够替代实验波浪水槽完成相应的科学研究 及工程设计等任务。从这个定义可以得知数值波浪水槽所要达到的终极目标即通 过对水流运动规律的准确描述,采用计算的方式来获取在这些规律控制下水的运 动形式,进而通过数值实验的方式获得工程所关心的各个问题的解答。 建立数值波浪水槽依据的是描述流体规律的偏微分方程。相比于实验波浪水 槽,数值波浪水槽的优势是非常突出和无法比拟的。现实中实验波浪水槽需要的 大量的空间和昂贵的设备,而这对于数值波浪水槽来说只不过是计算机中的一片 存储空间和程序代码而已,因此能源、人力、资金等对于实验波浪水槽来说难以 逾越的障碍对数值波浪水槽来说都不是问题。对数值模拟近百年的理论积累和算 法创新已经为数值计算的高效进行打好了基础。如今限制数值波浪水槽的广泛应 用的主要因素是所拥有计算资源的多少,其次就是目前数值波浪模拟计算领域内 的技术壁垒。 本文的研究意义即在于通过对数值波浪水槽建立技术的探索和研究,充分利 用开源软件开放和自由的编程模式,在已有的采用C++语言编写的开源流体力学 库OpellFOAM的基础上,开发基于面向对象编程思想的高效、开源数值波浪水 槽,并将其投入波浪现象的研究。同时,在这个水槽基础上,后续的研究者可以 根据各自的研究需要对水槽进行设置和应用,并可以对水槽不完善之处进行修补、 丰富。另外,通过本文的实践,也可以从应用层面为开源数值波浪水槽的计算工 作提供优化经验。1.2国内外研究进展1.2.1CFD程序的发展与现状本文所讨论的数值波浪水槽从本质上说是计算流体动力学程序在港口工程 中的应用特例。计算流体动力学作为统领流体计算研究领域的核心,已经经历过 了漫长的发展。伴随其发展涌现的大批商业软件和各种计算程序现在已经在空气 动力学、燃烧分析等领域发挥着巨大的作用。港口工程中对数值计算的需要也使 得这些软件在近岸波浪场分析、结构受水流作用力计算、泥沙冲刷淤积预测中得 到了广泛的应用。自1981年以来,出现了如PhoeIlics、CFx、St扑CD、Fluent等太量功能强大的CFD软件。尽管它们基于不同的算法,但大都提供了良好的前后处理工具,‘ 并支持多种多样形式的网格。同时因软件而异,它们提供了多种多样的紊流模型 以及离散格式供选择。对于港口海岸工程研究主体之一的不可压粘性流体的运动, 这些商业软件提供了大量的计算解决方案。 第一章绪论20世纪80~90年代,这些软件的产生促进了流体数值模拟的普及,伴随着 个人计算机性能的提升,流体计算不再是大型计算机的专属品。90年代中期至 21世纪初,随着计算机的飞速发展以及新理论新算法的出现,这些原有软件越 来越向大型、综合的方向发展,同时它们也开始更注重用户对程序的要求和扩展。 在这一时期内,出于对大区域场模拟的需要,又涌现出了基于平面二维近岸水流 模拟方程的水动力计算软件如SMS、Mil∞系列等。而近年来,随着CPU频率提 升遭遇到微电子技术发展的瓶颈,多核心和小规模并行计算开始普及,与之适应 地,现代CFD软件基本都能很好的支持多核处理及并行计算。 在各个发达国家中,英国的CFD研究水平一直较高,以上提到的软件中 Star.CD、CFX、Phoellics、Fluent等都是始于英国的。这些商业化软件曾经因各 自独特的特点而分别适合于不同的计算,但随着软件越来越走向综合和同一化, 各个软件的特点不再像之前那样明显,软件之间的差异性也越来越小。作为商业 化的产品,它们的提升和维护变得越来越困难,这直接导致了许多软件品牌的被 收购、延缓开发甚至消失。前面提到的CFX以及Fluent现在都已经划归之前一 直关注结构有限元计算的ANSYS公司旗下。 商业软件之所以能走进世界各地的计算机系统,与其丰富的功能与良好的易 用性是分不开的。但作为流体力学计算软件,其商业化也为数值波浪水槽等流体 模拟技术的应用带来了很多不便。 首先,商业化决定了想要使用这些软件必须要付出高昂的费用并遵守软件用 户许可协议。这就意味着数值计算的成本仅在软件层面就要提高很大一个档次, 从而将许多资金受限的用户拒之门外。而绝大多数的软件许可协议都声明软件发 行商不对软件造成的任何损失承担责任,因此遵守协议也就同时意味着用户使用 软件计算所造成的风险必须完全承担,用户不会因为付出资金而在安全性上获得 比自身编写程序更多的保障。 其次,商业软件的源代码多半是不公开的,因此用户无从得知软件最核心的 算法以及数据处理方式。而当用户需要获得更高的数据精度或者需要自己定义离 散格式的时候,只能在软件提供的有限的几种之间选择。虽然现在诸如F1uent 等软件也提供了很强大的用户接口,但其核心部分由于商业化的原因始终无法为 用户所接触到。 再次,商业软件的设计理念侧重操作的一体化及软件界面的美观,使得它们 所适用的平台很少,同时计算效率也难于保证。而当今无论是在城市、大学的计 算中心还是在研究所的高性能机群上,绝大多数使用的是更为安全、高效,并且系统核心更加稳定和适于并行计算的Linux或者UNⅨ操作系统,因此一旦牵扯到较大规模的并行计算,商业软件就往往显得力不从心。 第一章绪论开源软件 正是因为这些原因,许许多多免费、开源的计算流体动力学软件受到了研究 人员的欢迎。相对于商业化软件,开源软件不再有用户的概念,任何人只要感兴 趣,可以从作者的主页上下载到软件的源代码,而软件的研发不再是几个人的事 情,所有的使用者,包括作者本身都可以通过网络社区、讨论组或者其他共享信 息的方式对软件的编写、架构、编译和使用出谋划策并提出建设性的意见。与传统的软件商――用户的方式不同,所有使用者的地位都是等同的,从科学研究的角度来说,这种方式更接近于学术研究共享成果、共同进步的理念。同时,作为 要将这些软件应用于科学计算和研究的研究者,所拥有的计算资源是不同的,源 代码的发行方式使得他们可以根据自身的条件来在各自不同的系统上采用针对 不同CPU进行优化的编译器进行编译,从而获得最优的计算效率。相对于商业 软件按可执行文件发行来说这又是一项优势。 在这些开源软件中,最近出现的由英国帝国理工大学的HeIuy WeIler等开发的OpellFo―蝴因为其强大的功能、层次分明的架构、良好的拓展性以及统一的程序书写格式而受到各国研究人员的关注。OpenFO剐Ⅵ的前身是FOAM(Field0Iperation andManipulation),最初整合于Nabla公司的商业软件中发售,2004年脱离Nabla,由OpenCFD“d.按通用软件发布协议(GPL)发布为包含预编好大量求解器和实用前后处理程序的软件包,并更名为卸e11FoAM,从此走向开源化。严格意义上讲,openFOAM并不算是完备的CFD软件,而是一个采用C抖语言按照面向对象方式编写的开源流体力学计算工具箱,它包含大量的可以自由组合的C++模块和类如张量、矢量容 器【2】、紊流模型、网格剖分模块、有限体积法离散模块、误差控制与分析模块【3儿41、 计算自动控制模块【5】等等。利用这些模块,可以很方便的编制出可以用于模拟包 含化学反应、流体紊动和热传导在内的复杂流体运动的求解器。它其中的许多组 件甚至可以应用于编写固体动力学[6】、电磁学甚至金融定价的程序。目前基于此 开源软件的研究已经开展,Liu(2006)【7J在此基础上对海床冲刷变形进行了研究。 如今,不论是商业还是开源的计算流体动力学软件都已经在港口海岸工程领 域数值模拟上取得了令人瞩目的成就。尤其在工程方案可行性研究、极端不利环 境承载力计算以及大范围水动力模拟等方面已经逐渐开始取代传统的试验方法。 而开源软件正因其自身独特的优势处于不断的飞速发展当中。1.2.2数值波浪模拟研究进展具体到应用计算流体动力学软件进行波浪数值模拟,由于数值模拟本身的优 点和广阔的发展前景,国内外研究人员都致力在已有软件基础上于开发符合各自 不同需求的数值波浪水槽。这些水槽尽管功能各异、计算方式不同、适用于不同4 第一章绪论的波浪和地形条件,但它们的本质都是具有模拟造波和消波功能,能够模拟流体 在各种不同边界条件下运动的求解程序。 1.2.2.1控制方程 在对流体的描述方面,数值波浪水槽采用的控制方程随着计算机的发展经历 了由简化向复杂的转变。 尽管能够精确阐述流体运动的方程和相应的算法早已给出,但受制于计算机 的运算速度,上个世纪中叶对于流体数值模拟的研究大多是集中在简化公式的基 础之上的。由于这一时期电子计算机的发展刚刚起步,因此尽管数学上已经取得 了很大的进步,对于流体的数值计算却仍然只能停留在一维或者二维小规模的程 度。不考虑流体粘性和涡旋的势流理论建立的拉普拉斯方程在此阶段被广泛应用 于波浪的模拟。随着计算机技术的发展,计算能力的提高使得整合非线性边界条 件的势流方程得到了广泛应用【8】,这一时期内配合边界元等求解方法,利用数值 波浪水槽进行的波浪模拟【9】【lo】取得了较高的精度。 在上个世纪90年代前后,计算机计算能力的大大增强使得更精确的控制方 程应用成为可能,这一时期求解N.S方程的数值波浪水槽开始出现,研究成果仍 然以二维为主,但相比之前模拟精度已经大大提升,破碎和涡的产生等现象也得 以更真实地模拟。进入2l世纪后,计算机处理器和并行技术的发展与普及使得 数值波浪水槽实际应用中计算能力又获得了进一步的提高。在丰富计算资源的保 证下,包含紊流模型的复杂求解三维N―S方程的数值波浪水槽也开始广泛的出现, 现代数值波浪水槽对流体的模拟的准确度已经越来越高。 1.2.2.2离散方法 在数值波浪水槽的数值方法方面,对于所要求解的描述流体的偏微分方程, 由于现阶段暂时没有获得解析解,所以只能按照计算流体力学离散的基本思想, 将网格点上的所要求解的因变量值作为基本未知量,来建立一组离散方程求解。 对因变量分布的假设不同直接导致了最终数值结果精度的差异【111。有限差分法、 有限体积法、有限元法等多种数值离散方法因为其各自的优势与劣势而分别在数 值计算的各个应用领域中被采用。一有限差分方法是数值波浪水槽建立时最早采用的方法,最大特点就是概念清 晰易于理解,目前已经发展到非常成熟的阶段,有限差分法的求解精度依赖于网 格的划分精度,在解势流方程的数值波浪水槽中应用较广泛【l2I,在N.S方程求 解中也有少量应用【l3I。有限单元法是对求解的微分方程通过引入近似解产生余量, 然后通过在计算域的每个子区域上迫使令余量加权积分为0的来获得设定的近 似解的未知数的方法。有限单元法的精度较高,对于复杂的几何及物理边界条件 第一章绪论也能很好的适应,因此尽管由于计算速度较慢,有限元法【14J在仍然在波浪研究的 部分领域中仍有所应用。Ma(2001)【15】等利用有限元求解非线性势流运动方程来分 析圆柱与波浪的作用。C11i和L6hner(2005)【16】也采用有限元方法建立的水槽对三 维水流自由表面的剧烈运动进行了模拟。边界元法是一种采用积分方程求解的方 法,它以定义在边界而不是计算域内部的上的边界积分方程为控制方程,通过对 边界分元插值离散,化为代数方程组求解。自1976年为Longuet-Higgins和 Cokelete【17】提出和采用,经历了很长的发展时间,已经非常成熟,相比于经典的 有限差分法和有限元法,这种方法计算量小,计算效率高,目前基于这种方法建 立的数值波浪水槽已经有很好的模拟效果。由于其关注的重点是计算域边界上的 计算,相当于大大降低了问题的维数,因此不需要解大量的未知数和方程,具有运算速度快的天然优势。Pozril(idis(2000)【18】、Cheng(2000)【19】、Grilli(2001)刚、等都建立了基于边界元方法的水槽对各种波浪现象进行了模拟。 有限体积法【21】【4】的基本思路与有限单元法一样是基于划分好的网格的,与有 限差分法和有限元法不同的是,有限体积法关注的是每个网格点周围互不重复的 一个个控制体积。如果要采用有限体积法解决问题,首要步骤就是在划好的网格 的网格点所在的这每个控制体积内,对待解的微分方程积分,从而得出一组离散 方程。而这组方程所要求解的未知量即是网格点上的因变量西。同时为了求出此 积分,还需要假定网格点之间西的变化规律[捌。与有限单元法不同的是,这个变 化规律(即插值函数)仅在计算控制体积积分时使用,因而对于微分方程中不同 的项,可以采用不同的插值函数。相比于其他方法,有限体积法的最大优势在于 计算的焦点集中在控制体积上就可以了,而不需要扩展到整个计算域。这是因为 咖的积分守恒对每个控制体积满足,而计算域不过是有限个控制体积的集合,因 此在整个计算域上也必然满足积分守恒。同时,有限体积法的计算效率较高,相 比其他方法更加适用于大计算量的流体动力学计算,因此是CFD软件中最常采 用的一种离散化方法。 1.2.2.3紊流模型 在数值波浪水槽采用的紊流模型方面,各种各样的紊流模型伴随着计算流体 动力学发展的同时也在数值波浪模拟中得到了广泛的应用。在各种紊流求解方式 中,直接求解N.s方程的DNS方法由于其过大的计算量而无法应用于实践研究。 基于雷诺平均的R ANS[23】和大涡模拟LES【24】随着模型的成熟和计算机技术的发 展而越来越多的被应用于波浪模拟。但研究发现,现有的二维LES模型在无数 值耗散的理想状况下,会得出紊动动能由小尺度涡传向大尺度涡的不合理解【2 5l, 因此LES在二维波浪模拟方面应用甚少。从研究破碎波的紊动特性来说,LES 方法尽管有模型简单的优势,却由于求解过程中无法直观的得出诸如紊动动能等6 第一章绪论研究所重点关注的数据而无法很方便地对数据进行分析和处理。而&~NS方法 通过封闭与紊动速度成比例的雷诺应力项求解,因其直观的紊动动能表示在二维 数值波浪水槽中得到了更为广泛的应用。 1.2.2.4造波方法 在数值波浪水槽造波方法方面,最早出现的速度入口法因为其概念易懂、编 程简单、计算效率高以及良好的适应性而沿用至今。而模拟造波机原理的运动边 界/网格变形法也得益于实验造波机理论的发展而很快应用到了数值波浪模拟当 中。为了克服造波边界的反射问题,Milgram(1970)、Gilbert(1978)及Bullock(1989) 提出的吸收式造波机【26】理论也可以很方便的应用于数值计算。由于吸收式造波机 仍旧是通过造波板工作的,因此面对不规则实验建筑物产生的反射效果仍然不够 理想,Liu【2 7】对于源项造波的应用研究使得源函数造波法受到了广泛的关注,但 这种方法对消波边界也同时提出了更高的要求。 1.2.2.5消波方法 相对于比较成熟的造波理论,如何在数值波浪水槽中很好的消波是目前研究 的难点。关于常用的造波方法,Givoli(1991)【28】对吸收边界条件的进行了总结, Ibmate(1992)【29】对自由表面波的吸收做了专题的讨论。辐射边界条件中Somme疵ld条件是目前应用最广泛的一种辐射边界条件,最早由O订ansl(i(1976)【30】应用于数值波浪水槽,但由于这种边界条件对非线性波及随机 波浪的消波效果一般[3J】,所以往往与其它消波方式结合使用。Skourup(1997)【32J 最早提出了主动消波法,这种方法在消波端设立做造波板,根据探测到的消波端 波高来控制造波板的位移从而达到吸收波浪的能量目的。阻尼消波区最早在二维 边界元模式中引入,它在自由面的运动边界条件和动力边界上同时加入耗散项, 以对水位和势函数的变化进行阻尼,构成一个“海绵层(Sponge Layer)”来吸收波浪能量,取得了比较好的效果。Cl锄ond等p剀在其研究中对这种方法进行了发展并提出了新的海绵层消能方法。但Cao等【34】的研究表明这种方法易导致水 槽内的体积不守恒。同时,阻尼消波意味着要增加足够长的阻尼区,将直接导致 数值波浪水槽计算量的增大,同时,对波长超过阻尼区的波浪它的消波效果很不 理想。尽管如此,阻尼消波的思想仍然给研究人员以启发,其后出现的速度衰减区Ⅵ辽(Veloc耐Reduction Zone)以及数值岸坡(Numerical Beach)等都借鉴了这种思想,同时计算速度的提高使得计算量增大的劣势不再是决定性因素。因 此阻尼消波与其他消波边界的组合仍然被广为使用。 第一章绪论1.2.2.6自由表面追踪除对流体的计算外,数值波浪水槽对液面的捕捉常常需要借助于自由表面追踪方法。 自由表面追踪方法主要分拉格朗日法和欧拉法。拉格朗日法关注的重点在液体自由面粒子的运动上,代表方法是H砌ow&welch(1965)恻提出的MAC(MarkaIldCell)法。而欧拉法则关注计算域内固定点上液体“密度”的变化,代表方法是Hin&Nicholas(1 98 1)‘36】的VOF(Volulne of Fluid)o引J法。 在这些方法中,MAC法【38】不适应非均匀流场的液面捕捉,容易造成液面失 真。与之相比VOF法虽然比较耗费计算资源,但在自由面捕捉思想上其更切合N.s方程的求解思路,因此现在已经成为波浪数值模拟㈣【40】[41】中普遍使用的一种方法。 在voF法计算中,对于每一个单元内在计算步完成后液面的重构质量是模 拟效果好坏的决定性因素。Hirt和Nichols(1981)在提出VoF法之初就提出施 主、受主的概念,这被作为VOF法计算并重构液面【421的基本思想沿用至今。其 后的无论是Ashgriz(1991)的FLAIR【43】方法、Youngs(1982)的PLIC【44】方法都是基 于这个思想并在自由面法向计算格式、F值的求解等方面提出改进。Ubbilll(和 Issa(1999)提出的CICSAM【45】方法控制体内流体体积为连续流构造的流通量和可压缩性思想构造的流通量的平均值,利用精细网格内界面的迁移方法得到界面在网格内的运动位置和法向不用分裂算子就可以很方便地将算例扩展至多维。 1.2.2.7研究应用 在数值波浪水槽的应用方面,各国研究者利用设置各异的数值波浪水槽在波 浪破碎模拟、建筑物附近流场形态、波浪与建筑物的作用等多方面都进行了大量 研究。Chen等(1999)【46】采用DNS对波浪卷破进行了模拟,Lemos(1992),Lin& Liu(1998)[47】【481则分别提出了基于RANS方法的不同模型来模拟波浪破碎。 Jansen(2003)【491利用非线性模型对畸形波进行了模拟。Li&Lin【24】利用三维数值波 浪水槽研究了方柱的绕射,Xiao(2008)[23】采用二维数值波浪水槽研究了破碎波浪 爬升对海滩上房屋的影响。除此之外,在波浪研究领域的其他方面,研究人员也 利用各种基于不同控制方程、离散方法和自由表面追踪方法的数值波浪水槽进行 了大量的研究,.在此不再赘述。 第一章绪论1.3本文的研究工作本文充分利用了0IpeIlF0―~M现有的有限体积法求解模块、紊流模型模块及 前后处理器,基于面向对象编程的思想,建立了一套高效并行的数值波浪水槽系 统,利用该系统针对波浪与高桩墩台的相互作用及潜堤附近涡的特性进行了研究。 论文第二章论述了波浪数值水槽系统的理论基础,首先介绍了波浪运动控制 方程、自由表面处理方法和紊流模拟方式等,然后论述了求解控制方程所采用的 数值方法、离散格式以及流场求解的格式。 论文第三章对建立的波浪数值水槽系统进行了说明,简要介绍了系统组织结 构,论述了边壁处理方法、数值造波方法、消能结构消波方法等,重点探讨了波 浪数值水槽普遍存在的波高衰减问题,提出了相应的解决方案。然后,对建立的 水槽系统的造波和消波效果进行了验证,验证结果说明建立的数值波浪水槽可以 较好地模拟波浪水槽的基本特性。 第四章利用建立的数值波浪水槽,采用RNG良一£紊流模型,在二维情况下, 针对高桩墩式结构附近波浪的传播特性进行了模拟,通过模拟不同淹没深度、不 同宽度的墩台与波浪的相互作用,分析了墩台侧面和底面受波压力的变化规律, 以及这种规律受墩台相对宽度的影响。另通过对一现场尺度算例的模拟,分析了 高桩墩式结构墩台承受波压力的分布和影响墩台稳定性的主要因素。 第五章介绍了数值波浪水槽的三维特点,利用建立的数值波浪水槽,采用LES模拟紊流,在三维情况下,研究了潜堤附近涡的产生、发展机理,并通过断面分析讨论了紊动动能分布在水槽中所表现出的三维特性及其影响因素。 第六章中,本文首先结合研究过程中积累的数值实验记录分析了数值波浪水 槽的计算时间特性和计算效率影响因素,然后介绍了并行计算的概念以及数值波 浪水槽并行化方法,最后结合经验提出了保证计算稳定性前提下,可能提高计算 效率的网格划分及并行分块的原则,以及合理设置并行参数的方法。 最后一章对本文的研究结论做了总结,提出了当前存在的问题并对未来此开 源数值波浪水槽的应用作了展望。9 第二章数值波浪水槽理论基础第二章数值波浪水槽理论基础数值计算的核心在于对所要描述的物质运动规律的准确表达。对应于研究波 浪的数值波浪水槽,其本质是不可压粘性流体的流体动力学计算。因此所有工作 的理论基础即是如何按照计算流体动力学的思想对所要求解的问题建模并进行 离散,使其能被计算机所理解和执行。2.1波浪运动控制方程数值波浪水槽是计算流体动力学(ConlputationalFluidDynaIIlics)的一个应用特例,是通过计算机数值计算和图像显示,对波浪的传播现象及与建筑物的作 用进行分析。其基本思想可以归结为:把原来在时间域及空间域上符合一定控制 方程的连续的物理量的场,用一系列有限个离散点上的变量值的集合来代替,通 过一定的原则和方式建立起关于这些离散点上场变量之间的关系的代数方程组, 然后求解代数方程组获得场变量的近似值。 波浪是不可压粘性流体的运动,描述其基本规律的控制方程即连续性方程和 纳维埃.斯托克斯方程的表达式为:竺:o:二=O d托【Z‘l J (2.1)瓦+叶面2万瓦均+石商 等+叶筹=丢笔+9+丢骞对于牛顿流体来说有:№%’ c2也,其中,u£代表速度分量,p为流体密度,z£』为切应力,p为压力,目为重力加速度,%=2弘otj其中p为动力粘滞系数,吼J为液体微团上的正应力一。 本文中考虑流体均为牛顿流体。(2-3) 第二章数值波浪水槽理论基础2.2自由表面的模拟波浪模拟很重要的一个环节就是对自由表面的模拟,只有获得波浪自由表面 的具体信息,才有可能准确描述波浪传播、变形、破碎及其与建筑物相互作用等 波浪现象。早期基于边界元方法的数值波浪水槽由于无法处理波面破碎所产生的 水体不连续而不能适应现代波浪计算的需要,因此近年来出现的数值波浪水槽基 本都采用了自由表面追踪方法来配合有限体积法等构建水体的基本运动特性。在 自由表面追踪方法选择上,本文采用VoF方法来实现自由表面的追踪。 现实流体在波动的过程中,其自由面本质上讲即水和空气的交界面,在讨论 波浪的平缓传播问题的时候空气对水的影响可以忽略不计,但当波浪发生破碎等 具有不连续现象时,空气可能会较大影响水的运动,而实验结果也证明对于卷破 波和白浪,卷入空气是决定它们作用和能量耗散特性的主要影响因素【5 01。对于空 气的处理应用最为广泛的即两相流模型,这种模型考虑计算域内充满密度、粘性 不同的两种流体,同时定义了两种流体间相互作用的各种参数,在每一步计算时 都考虑这两种流体的综合作用,从而获得不同时刻两种流体的运动特性。对于与 数值波浪水槽,即将空气和水作为相互作用的两种流体来考虑。 VOF法的基本思想是设立一个体积分数R在无流体的点内设其为O,充满 流体的点设为l,在每一个网格单元内,取全体F的平均值,来获得一个大于等 于O小于等于1的体积分数。则整个计算区域内为水和空气两种流体的混合物, 即采用两相流模型表示。在自由界面上,其控制方程为:。 .害怕要=o 瓦札‘瓦刮Ⅲ’ (2-4)其中,uf为速度分量,xf代表三个方向,p为当前网格内混合流体的密度。 本文建立的数值波浪水槽在求解中,采用y来表示这个体积分数,因此,y=O 的网格为充满空气的网格,y=1的网格为充满水的网格。0<y<1的网格即为 水气交界面上的网格。在程序计算出整个计算域内各个网格内的Y值(为配合程 序说明以下均用gamma代替)后,再通过每个网格内自由面的重构即可还原所 计算出的波面形状。重构技术采用了weller提出的重构技术,相比于CICSAM, weller【5l】【52】的重构技术可以更好的解决原有格式在较高表面张力下的失真。但由 于自由面的重构并不属于最终求解结果,因此在程序所输出的gamma文件并不 包含自由面的精确位置。对于包含gamma的单对流输运方程,本文采用软件包 中的MULES(Multidimensional 求解。UIliversal Limiter wi也ExplicitS01mion):进行限制 第二章数值波浪水槽理论基础2.3紊流的模拟绝大多数水流的流态是复杂的,具有极强随机性的非恒定现象,称之为紊流。 除了少数波动现象水流属于层流流态之外,大部分工程研究的现场尺度波浪中的 水流都是紊流。从微观角度看,紊流包含着大大小小的旋转流动,这些随机的涡 的整体特征决定了紊流脉动、能量消耗的特性,因此,数值波浪水槽对真实波浪 的精确模拟能力取决于能否较好地模拟水体的紊动特性。2.3.1紊流模拟方式描述紊流瞬时运动可以通过求解不可压N.S方程来实现,理论上讲无论多么 复杂的紊流运动都可以通过直接求解N.S方程来获得解。DNS求解方法即是直 接求解的计算方式,但实际上根据紊流的微观实验研究,发现紊流中的涡的尺度 大小不一且相差甚远,最小的甚至可以达到微米级别,因此如果要采用DNS的 话,数值计算的网格必须比紊流运动单元的尺度更小,这意味着超大的计算量和 存储量,即使是在计算机技术发展至此的今天这也是很难做到的,至少是非常不 经济不实用的。因此,在N.S方程的求解过程中必须对紊流的输运过程做各种简 化假设,采用非直接数值模拟的方法。非直接数值模拟的方法也有许多种,尽管 不同类型方法的机理和假设不同,但基本能在保证数值计算精度的前提下将计算 消耗降低到可以接受的程度。 不同的紊流模拟方法因其原理和简化假设不同而适应于不同类型的算例,现 代CFD领域中常用的两类非直接模拟方法是大涡模拟方法和雷诺平均法。? 大涡模拟方法(LES:LargeEddySiInulation)最早由Smago血sky053J提出,起初用于研究全球天气预报,后来由Deardor讯Ferziger、Leslie等发展到其他领域。LES方法沿用了DNS直接求解法的思路。考虑到DNS法的大量计算资源 消耗于小尺度涡的计算,对于大于网格尺度的紊流进行直接模拟,而对小于网格 尺度的微型涡通过近似模型来描述。这样可以保证在大于网格尺寸的尺度上可以 准确描述紊动中的涡特性。尽管原始对应的控制方程为三维,在二维情况下会导 致模拟不准确,但大涡模拟在三维流动的描述上也因此更为符合真实流体p4l。 雷诺平均法的思想则是将紊动中脉动的场量做时均化处理,来减小精确描述 这些变化所带来的计算消耗。因此这种方法求解的是时均化的N.S方程,即RANS:击(p"t)+告pu蝴=一毫+南(p等一JD弼)+最其中p为流体密度,p为压力,Ⅳ为运动粘滞系数,Sf为源项。(2-5) 第二章数值波浪水槽理论基础相比原有方程,式(2.5)中多出了与一p溺有关的项,使得方程的未知数增多,因此,为了封闭方程组,雷诺平均法还需要建立雷诺平均应力的表达式。由于现 有的理论研究无法给出特定的物理规律来精确描述这种脉动值与时均值的关系, 因此获得这些表达式需要大量的实验。这些根据实验经验提出的将紊动输运过程 中的物理量与时均流场联系起来的简化假设就是紊流模型【551。 紊流模型根据处理雷诺应力方式的不同又分为雷诺应力模型和涡粘模型。雷 诺应力模型对雷诺方程中的紊流脉动应力直接建立微分方程式求解,涡粘模型不 直接处理雷诺应力项,而是引入紊动粘度,通过确定这种紊动粘度来完成计算。 针对采用本文拟计算的算例,所建立的数值波浪水槽如果要描述波浪破碎, 需要模拟波浪破碎时表面的高应变率和不规则的流体运动,因此适合采用雷诺平 均的二方程模型中的RNG七一£模型进行模拟。考虑到七一s类两方程模型对于 雷诺应力各个分量的紊动粘性系数相同,即假设为各向同性的标量,可能会在三 维尺度上导致计算的不真实,因此LES也将用于三维模拟以做对比。2.3.2RNG七一s模型紊动粘度的提出来源于Boussinesq的涡粘假定,即认为:一p弼砘㈢+器)一吾(卅地期盈,动动能:陋6,其中,比即为需要确定的紊动粘度,盈,为克罗内克尔算子(心oneckerdelta),良为紊恐=型 R=下程模型即七一£模型。 标准的良一£模型中,定义紊动耗散率£为:\”7, (2.7)而将地与紊流时均参数联系起来的关系式即涡粘模型,目前应用最广泛的为两方£=箬∞(期则紊动粘度:陋8,心=pq等时需要考虑),模型【56】变为:(2?9)当不考虑源项的引入的时候(对于本文的数值波浪水槽,仅在采用源项造波 第二章数值波浪水槽理论基础掣+掣2球+丧)》铲胪掣+等笋=南(0+尝)考)+譬瓯一Q£p譬似。。、标准七一£模型在研究和工程中得到了广泛的应用,但实践发现在模拟强旋 流、回流及流线弯曲较大时,标准模型的各向同性假设会使得结果有比较明显的 失真,Yakhot及Orzag在1986年提出了一种重正化群的修正良一s模型【57】,即I玳G七一£模型。重正化群的思想即在传统的七一£模型中,通过修正粘度项体现小尺度的影 响,而使这些小尺度运动有系统地从控制方程中去除。所得的忌方程和£方程如下:掣+掣=南(刚e诺)峋叩 掣+等=杀(咄e,,渤+譬G七吨p譬 百+1F=瓦卜肛e厂厂瓦广T酞“2£pi―石F+―1&_一2瓦i\倪耙pe厂厂夏i7+“七一JD£式中:弘eff=p+弘t 尼2亿Ⅲ ∞㈦、‘“7毕。1纠%咆一帮比=pq了77=(2s∥而)吖2鲁I磊+蠢) 铲三(等+器)&-『=i通过公式的对比可以发现相比标准七一£模型(2.10),RNG七一£模型(2一l 1),(2-12)从公式上来看非常相像,最显著的即引入了时均应变率西。式中各系数根据现有研究文献中比较公认的值按表2.1取,对应地,将其传递到openFoAM 提供的mrbulellceModel/l(Epsilon类中。表2―1 RNG尼一£模型系数取值系数 取值c睫 O.0845ⅨIf倪£C、£ 1.42c2。。nn 1.68 4.38|B‘O.0121.39l-3914 第二章数值波浪水槽理论基础2.3.3大涡模拟七一£模型虽然应用广泛,但无法从根本上克服各向同性所带来的模拟困难, 因此,在三维波浪模拟领域,LES方法有着很好的适用性。 实验研究发现,运动流体中动量、质量、能量和其他物理量的输运主要受到 大尺度涡的影响,而大尺度涡的产生发展与几何及边界条件有这非常密切的关系。 与之相反,小尺度涡由于尺度小而基本不受边界条件限制,并且趋于各向同性。 因此在LES方法中,最基本的工作是需要对涡的大小进行界定,将小尺度涡从 紊流瞬态方程中过滤掉。实现这一目标的方法即是采用滤波函数。通过使用滤波函数,每一个变量(设为咖)可以分解为咖‘+西,若设D为计算区域,z7和石分别代表实际流动区域和滤波后的大尺度空间上的空间坐标。则 对应于有限体积法设滤波函数:G(x,x7,=(1乞y则滤波后的变量币可以表示为:三:主孑c2??3,西=上咖G(端z7)dz7=吾厶驴dx’(2-14)据此对瞬态N。S方程及连续方程做滤波处理即可建立LES使用的控制方程组:岳p瓯,+矗p瓯巧)=一笔+南@薏)一哥^ ^(2-15)警+矗㈣-o在这个控制方程中,衔接小尺度涡的项即警,其中的啊为亚格子尺度应力SGS(sub鲥d.scale s骶ss),表达式为:f“=p瓦了可一p瓯巧(2-16)而采用相关物理量来构建fu的代数表达式的过程即亚格子尺度模型。SGS模型的研究自Smago血sl(y提出LES方法后即受到广泛关注,在此基础上研究人员又提出了多种模型。Smagorinsky提出的基本的SGS模型如下:1啊一jTkk%=一2心毛其中亚格子尺度的紊动粘度:一(2―17)舻(G△)2厨(2―18) 第二章数值波浪水槽理论基础式中,石=三偿+器)△=(△x△y△z)1/j △f代表的是沿f方向的网格尺寸,从式中还可以看出,石的表达式与RNGJ;[一£模型中的时均应变率表达式很接近,只是对应的变量都是大尺度的平均分量。在这个模型中,Smago血sky常数G的确定是难点【58】,需要根据经验取值。本文采用的LES模型采用Sullivall等推荐的采用G和&表示的计算公式【59】:(2-19)G=厮在本文计算过程中,瓯取0.07,巳取1.05。 具体程序实现方面,对于RNG I|:c一£模型,在openFOAM中的具体实现为 将NwTFoam中加入turbulenceModel模块,同时参考已有的rasImerFoam求解器,在求解U的公式中加入紊动项,并在每一个mTilIle中执行t山.bulence类中对各个参数进行修正的co玎ect()操作。对于大涡模拟方式,则采用没有进行时均 化处理的速度求解公式,同时在求解器中加入滤波模块和亚格子尺度模型来完成 LES的求解循环。另外,为了与其他紊流模型在紊动状态表示上的统一,设有紊 动动能尼及SGS运动粘滞系数:七=2(警)△2lIDIl2、oP,(2-19)唯Gs=&、/k△ 其中,jEI=1/2 br口d(u)+夕r口d(£,)r】。(2―20)2.4数值离散过程对以上提到的所有控制方程进行离散化的目的即是通过假设因变量在网格 点之间的分布,来推导出一组离散方程并进行求解,也就是一种空间域离散(Spatialdiscretisation)。由于真实流体的流动是一个三维时空过程,因此这种离散不仅仅是针对空间的,还需要对时间也进行离散化处理,即时域离散(Tenlporal diScretisation)。 第二章数值波浪水槽理论基础2.4.1空间域离散根据有限体积法的离散思想,首先需要按照有限体积法的要求插值求出控制 体积界面上的物理量。不同的插值方式对应着对该物理量的不同程度的近似,即 离散格式。离散格式的选择对于数值计算的稳定性及最终结果有很大的影响。 由于openFOAM中所有方程的处理对应的均是三维的计算域,则设当前节 点的相邻节点为形、E、S、Ⅳ、B、乃在隐式积分方案下,离散方程可以如下表 示:F即≯P=2.%扫咖tlD+6其中,n6表示离散点相邻的节点,其他参数表示如下:(2.21)6=口品咖暑+&△y即=y‰扫+△F+邸一昂△矿 J‘一(2―22)口g=警其中, △F=层一%+昂一层+Fc一昂(2―23)对应每个R白=cp乱)n西A九扫,An扫代表改相邻节点与当前节点交界面面积,而 对应不同的格式系数%6有不同的表示方式。opellf’oAM中提供了中心差分(即线性Linear)、迎风格式(upw砌)等格式供选择,针对拟建数值波浪水槽的特征,在对偏微分方程各项离散的时候主要选用Line叭upwiIld等格式。中心差分格式采用线性插值公式计算界面上的物理量,研究表明,当数值计 算稳定的时候这种格式下的计算结果与精确解的吻合是较好的,这种格式的表示 方式比较简略明了,有较高的计算效率。迎风格式从物理意义上更符合流体的流 动特征,认为因对流造成的界面上的西值由迎风侧的节点主要影响,即界面的未 知量的取值根据界面上的流速,选取上游节点的值来确定。这种格式不会出现解 的震荡,但相较中心差分格式有更大的误差,对网格的提出了较高的要求。对应 于式(2―21),不同格式下的%b取值如表2.2。参数。口Ⅳ%%口Ⅳ%nrLinearDw+譬Dw De仉一譬+max(0,一最)Ds+孚Ds Dn%一譬+max(0,一晶)巩+譬Db Dt。。一譬+ma】((0,一R)Upwin d+ma】((0,凡)+max(O,乓)+ma)((0,巳) 第二章数值波浪水槽理论基础关于空间域的离散,0口enFOAM按照标准的有限体积法的思想.将求解域 划分为连续并且互相不重叠的区域,构成单个的控制体积。这种划分生成用于计 算的无结构化阿洛(如图2.I),但区域的形状和构成面数都没有限制,只需要封闭即可。对于每个控制体积(如图2-2),变量和属性值均对应在形心P上,图2.1 oDeⅡFOAM中的空河域划分每相邻的两个区域的接触面都采用其法向向量sf标识,定义P为此面的属主,而N为相邻体积。很显然,每一个内部的面(InteTllal血ce)都有两个控制体积 对应,相应的,仅有一个控制体积对应的面一定是边界面(Boundary矗ce)。由此,即可以将计算域的划分(mesh)由点(∞Ints)统一到边界面和内部面,然后再统一到每一个网格单元(celI),也即是控制体积。 为了方便不同类型的场的数据的存储和计算,op即FOAM提供了Llm(Type)的数组模板类,可以根据所需要存储的数据类型(如ve咖r、scal缸、teIlsor等)继承扩展成为vectorF瑚d、scaIarFidd、tensorFleld等。而对于划分好的网格的信息存储就是通过对应mesh的这许许多 多的Fldd完成的。 方程的离散化目的就在于将待解的 偏微分方程转化成代数方程组,在 o口mFOAM中偏微分方程的每一项都是’ , ‘&o一,j/、‘t。~采用其中定义的丘血tevol砌eM如d和 胁kvolumecal呐s类中的静态函数分别表示的,他们的n锄e辨ace标识分别V、、’为‰和~c,之所以做这样的区分是为F―一的函数与显式计算并返回geomo仃icField了将计算隐式导数并返回~Ma耐x类型―7图}2有限体积离散参数定义 第二章数值波浪水槽理论基础类型的函数分开。 通过这些函数,方程的每一项通过对控制体积的积分公式化,绝大多数空间 导数项的一次积分可以首先由高斯定理通过这步转换为围绕控制体积表面的面 积分:\v V★巾删=sS船★巾代数方程组投入计算。 对于不同的偏微分项,在控制体积上的积分和线性化如表2.3。表2.3(2―24)其中,S为表面向量,西可以代表任意张量场,★可代表任意张量积。然后,对应 每项的体积分和面积分通过不同的格式线性化。最后,偏微分方程被完全转化为不同偏微分方程项的离散化方式 积分及离散化后弋.1项 拉普拉斯原公式形式f矿.(厂矿咖)dy r矿.Cp£,咖)d矿艺哆母。(厂矿≯)厂t1对流 一阶时间导数 (向后差分) 二阶时间导数艺母。(pU)厂竹丢£p咖dI, 晏£p筹d矿f州y3‘pP币Py’n一4‘p墨丢;y’。+‘JDP妒P矿’。。∽椰叻k2。畚咿帕却朋00∑母竹梯度其中,对于对流项中办的估计可以通过中心差分格式、迎风格式等多种离散格式来实现。时间导数项中上标,z、D、DD分别代表当前时刻、上一时刻和前一时 刻。2.4.2时间域离散波浪的模拟属于瞬态问题,因此时间域的离散也必须给予考虑。若设空间项 为“咖(以为空间算子,如拉普拉斯算子等),则可以将瞬态偏微分方程积分如下:厂医p叭上删y卜。则此式中的两项分别可表示为:陋25, 厂甚扣十=厂丛芈出第二章数值波浪水槽理论基础=(pP咖Py)n一∽帖y)。(2―26)上。+4‘[£c忍咖dy】d£=上。+4么‘妒d亡=以+咖‘△亡Nich。ls。n离散取咖n、妒。或者e等竺)。2。5流场的求解数值波浪水槽求解的本质在于求 解特定边界条件下计算区域内的流场, 以及描述网格单元的gamma分布。但 在速度场未知的情况下,联立求解压力 和速度会导致巨大的计算消耗,仅仅通 过有限体积法及前文所提到的离散方 法很难求解整个流场,因此还需要引入 特定的算法来分步、有序的求解各个变 量的代数方程组,即压力修正法。目前 应用最广泛的是SIMPLE类的算法。2.5.1根据特定的方法修正压力值p’c2_27,根据时间积分离散的方式不同,咖可以根据欧拉隐式离散、显式离散或者Cralll(―. . . . .L“、V,W、、、、之:芝::岁/否获得修正后的“’、v’、w’的值盔SIMPLE算法p水槽中水体的运动是不可压粘性 流动,其控制方程N.S方程具有椭圆 型和抛物型的混合特性,因为同时求解 速度和压力的困难,采用预估.迭代方 法分别求解压力和速度场的压力修正 法得到了广泛的应用。 这种方法(如图2.3)在迭代开始求解离散方程南图2.3 sIMPLE算法流程图2()时先给出压力的初始近似p‘,然后用p’的值求解动量方程来获得"’、杪4、w+。这 样获得的速度场并不一定满足连续性方程,因此,需要用连续性方程构造压力修 第二章数值波浪水槽理论基础正量p’,将压力修正为p=p。+p7。将修正后的p代入,然后重复以上过程,直 到求得的速度满足连续性方程为止,这样就可以获得修正好的流场。 Patankar和Spalding在1972年16‘’J建立了压力耦合方程的半隐式算法,在过 去的几十年内的N.S方程数值求解领域得到了广泛的应用。这种算法的半隐式指 的就是在构建p7的过程中,通过将部分项假设为0,来获得物理上没有解释但是 数值计算上十分有利的p7表达式,从而使得压力修正公式中只出现计算节点相邻 五个点的压力修正。由于p’只是计算的中间修正量,最终获得的结果仍然是真实 可信的。 在SIMPLE的基础上,后来还提出了SIMPLER和SIMPLEC算法,他们与 SIMPLE的计算方法和步骤基本一致,仅是在压力修正过程中对系数的取值以及 对部分项的假设有所不同。2.5.2PIS0算法Implicit with Splittmg of Operators,即压力隐式PIS0算法的全称是Pressure算子分割算法,它也是SIMPLE算法的延伸和发展,但与SIMPLE的不同之处在于除了预测――修正之外,它还在计算步骤中再次添加了一个修正步来加快收敛的速度。 PISO算法的第一步与第二步与SIMPLE是相同的,都是给出一个猜测的压 力场,然后根据连续性方程进行第一步修正。以二维为例,第二步修正时动量离 散方程是(为区别第一步的各变量,所有第二步结果上标均多加一个,-c):t_1auu巧=>.%扫如扫+(p芷lJ―p筋)Au+6u(2-28)nu喵=∑‰嘞+(蝣一1一研)AJJ+6吖再次求解这个动量方程,可以得到两次修正的速度场u”‘和秒”。j"巧’="茹+圣!型掣+du(pj二1.,一p乃) 秒苈+=吒;+至王竺翌掣+d,√(p;二1J―pj-)2l(2―29)将其代入离散形式的连续方程(相应地以二维形式为例):【(JD以)i+1J一0谢)u】+[(p谢)u+1一(JD谢)u】-o即可得二次压力修正方程: a,.,p办=nf+】.,p;11.,+口,一1.,p二1.,+口f.,+】p;:,+】+口,.,一】p;!,一】+b;!,(2―30)(2-31) 第二章数值波浪水槽理论基础求解这个方程即可得到二次压力修正值p”。,进而求解式(2.31),即可得修 正的速度场。2.6本章小结本章中给出了所建立的数值波浪水槽的流体控制方程,说明了对波浪自由表 面的表征和计算方法VoF法。然后介绍了本文建立的不同数值波浪水槽采用的 RNG七一£紊流模型和大涡模拟紊流模拟方式,这些理论基础上,详细介绍了采 用的OpeIlFOAM模块中对控制方程中各个项的离散方法、空间域和时间域的离 散过程等。最后,详细阐述了用于流场求解的PISo算法。 基于这些理论基础,本章建立了用于数值波浪水槽的流体模型。 第三章数值波浪水槽的建立第三章数值波浪水槽的建立基于第二章中的理论基础,即可以利用openFO舢Ⅵ提供的计算流体力学库 来构建所需要的数值波浪水槽。3.1数值波浪水槽文件组织结构数值波浪水槽是一个抽象化的概念,从本质上来说,它不过是依据流体力学 理论编制的程序和数据文件的集合。一般来说,一个完整的数值文件组织结构包 含计算程序、输入文件和输出文件三要素。其中,输入文件又包括初始状态数据 文件和程序设置文件。对于本文要研究的数值波浪水槽求解器,所需要提供的输 入文件包括初始时刻的速度场、压力场、用于表征液面的galluna文件,以及对 边界类型、计算时间、输出格式等的设定。opellFOAM提供了简洁明了的文件 命名和组成方式,如图3.1,以便于装配不同计算参数的数值波浪水槽时使用。l国case』ame:啮。1.OI(B1.OI国喙jgam腑 酉gam腑.orIgin匿;pd 尚u二|芒苕consl:an£370。5髓 1.4髓 1.5娜 1,7燔 l。0鼯 1.O髓 3.8髓988 B:豳poIyMeshli bIockMeshDict}尚dvnamicMeshDictF≯envifDnnlentalProperties1.2髓 2.2髓 1.0髓l■I国图的nsportPrope瞄髓'国system 罱con咖lD融孓己decoH}p05eParl)ict 芦;~Scheme5再玉fvSolution1.3髓 1.5珏 1.6髓 1.2隅赫setFieIdsDict图3.1NWTFo锄求解器的算例目录结构对应提供的求解器,软件包中还同时提供了对应部分求解器的算例(case)。对于用作NwTFo锄开发基础的i11terFoam求解器,软件包中也提供了相应的教学算例。为了保持与其他求解器的相似性并确保后处理程序能够正常工作,本文 所使用的算例文件结构将都遵循这一目录标准。在图3.1所示的典型NWTFoam 第三章数值波浪水槽的建立文件组织结构中,0文件夹保存了初始时刻水槽内的速度、压力和g跗ma场的值;constant文件夹包含了保存波浪要素、重力加速度的enV衲memalPropenies、保存动态网格信息的dyllaIllicMesl山ict,以及对算例使用的紊流模型的设定文件 transponPropenies;在polyMesh文件夹中,包含了描述计算区域形状、大小、网 格剖分方法的b10ckMeshDict;而在system文件夹中则包含了记录全局控制信息 (计算起止时间、写入精度、计算步长控制等)的comrolDict、并行计算时用于 描述分块数量、方法及计算负荷分配的decomposeParDict,对初始场进行自动赋值的setFieldsDict以及描述差分格式和精度的~Scheme和~Sol蛳on。当计算开始后,程序即会在case目录下生成自起始时刻(图例为O)起按con们1Dict中的writeInterval为间隔生成的计算结果。3.2边壁的设定一般来说,建立数值波浪水槽的过程和建立实验波浪水槽的过程是相似的, 现实中通常采用强化玻璃作水槽壁,水泥抹面防渗底作水槽底部,其目的无非是 在于更真实的模拟波浪并有利于观察水槽中的波浪状况。单就这一方面来讲,数 值波浪水槽有很大的优势。对于流体底部与固体的接触面,数值波浪水槽可以很 容易的做到法向速度为O的墙面假设,即openFoAM中定义的zerogradiem:●2 0 dnaU(3-1)ODeIlFOAM中提供的wall边界类型即可以很好的处理墙面边界。由于数值 波浪水槽只是程序和数据的组合,因此不需要考虑便于观察的因素。所以,对于 三维的尤其是波浪水池等情况,只需要在blockMeshDict中将构成水槽的边壁也 设置成为wall类型即可。特别的,为了节省计算资源,wall边界还可以设置成 为slide属性,来构建比较短的波浪发展段,从而减小数值波浪水槽的必要长度。 对于二维情况,边界的设定需要有所改变。由于墙面附近的流体流动会形成 边界层,因此对于很薄的计算域采用zerogradient的墙面边界条件显然是不合适 的,对此opeIlFoAM中预编了enlpty类型的边界,在此边界上流体的流动不会受到边界层的影响,同时,opeIlFO舢Ⅵ的前处理工具和网格处理模块都将empt),边界的存在作为算例二维/三维的判定。本文所有的二维算例的边壁全部设置为 此类型。24 第三章数值波浪水槽的建立3.3造波与消波的实现3.3.1造波的实现当描述水槽内部流体的方程离散完成、紊流模型确定之后,即需要考虑水槽 造波方式的选择。本文研究进展部分已经讨论过了各种造波方法的优劣,对于模 拟造波板运动的方法,针对0IpenFOAM提供的扩展类,可以采用dyllarnicMesh 类的应用,通过网格的运动来实现边界的运动,即模拟造波板的运动。但面临的 问题也正如上一节中讨论过的那样,在编程过程中,需要将原先建立的普通Mesh转化为dynaIIlicMesh,同时在每一个彻1Tinle(在NWTFo锄中定义的时间步类的实例)中都要重新计算一次动边界的位移(meshMotion),与之对应的,在每 一个输入文件的文件夹内都要有cellMotionU文件来记录位移量的大小以便于做 后处理。除此之外,模拟造波板运动法最难以解决的问题在于当计算域扩展为三 维的波浪水池的情况下,对造波板运动的模拟变得异常困难。现实中应用于波浪 水池的造波机往往通过大量单个造波机的并联和协同工作来完成三维多向波的 造波,相应的在数值波浪水槽中就需要构建大量的动边界来模拟这种运动,对于 本来已经十分耗费计算资源的三维计算来说是很难实现的。基于以上原因,速度 入口法因为其简便易行且节省计算资源而被选用做本文数值波浪水槽的造波方 式。 在建立数值波浪水槽的编程过程中,构建一个简单的速度入口相对容易,只 需要在每个时间步开始之前,对速度边界上的值更新即可。对应于NwTFoam, 仅需要通过findCell()和findPatch()函数找到某单元的边界编号(PatchNumber)n 和单元编号(CellNuI】曲er)x,然后根据公式计算出的值对U.bouIlda巧Field(n)[x] 进行赋值即可。这种实现虽然简单,却并不符合面向对象的编程思想,建立出的 速度边界适用性差,当更换求解器或者算例的时候需要对程序做出修改重新编译。 作为完全面向对象编写的C++库,OpenFOAM提供了良好的程序架构和模板类, 因此拟在原有边界模板的基础上编写适应性强、结构明了的波浪速度入口。基于Eugene deVilliers的surf-aceWaveVeloc耐和和NielsGioel Jacobsen对于此边界干湿网格判断的扩展,本文编写了了基于FvPatchVectorField的扩展类waveInletFvPatchVectorField,其包含的protected及public成员见表3.1,工作基本流程如图3.2所示。表3一1 waveInletFvPatchVectorField类的组成巳翌!竺!旦曼deptll seaLeVel水槽水深 水面标高g waveHeight重力加速度 波高 第三章数值波浪水槽的建立waVePeriod waveAngle波浪周期 入射角度waVeLength waveType波长 造波类型构造函数,用于程序计算开始时波浪参数读waveInletFvPatchVectorFieldn ”取及初始化 用于每一时间步边界速度计算 判断时间步更新与否并将updateCoe行s()的updateCoe凰()eValua‘e()结果传递给主程序writef)将计算结果按主程序设定问隔写入文件相比于修改主程 序的方法,这种面向对 象的编程生成运行库libwaveInletFvPatchVectorField可以应用于 不同的求解器而不需 要在每次使用或者修 改参数的时候对求解 器重新编译。同时,对 每个单元排他考虑使 得速度入口不仅限于 左侧单个的边界,它可 以由多个不同网格剖 分密度的边界组成,大 大简化了建模时需要 考虑的因素。更加集成 化的,波浪的参数还与 原有的重力加速度g共 同放置在了/constant/enViromnelltProperties[互茎进入时间步:严≤多c1.col印∞锄“1)(当前面中心y坐标)Palch Faces(Number=0)I计算Face干湿比例<O毒 按相应波浪理论赋速度值>){【!:竺!二卜●中,以便对它们作出设置。由图3.2 waveIn】e正vPatchVectorField计算流程图 第三章数值波浪水槽的建立3.3.2数值消波方法对于一个可以用作无论是数值还是物理模型实验的水槽来讲,造波都是相对 容易的,而消波则相对困难。流体的流动性使得波浪在经过实验段后仍然会在水 槽内继续波动。由于反射波浪会显而易见地影响到实验的效果,因此消波效果的 好坏往往是决定一个水槽成败的关键。ISoPE在第一届数值波浪水槽研讨会上将 消波效果作为数值波浪水槽性能评分的首要因素。 从本质上讲,波浪水槽的消波过程就是将波浪的能量在其经过实验段后消除 的过程,即是一个消能过程。而剧烈的紊动可以使流体的能量迅速耗散,因此实 验波浪水槽中对水体的消能可以通过消能结构来进行的。无论是堆砌块石还是消 能栅,其目的都在于使水流过时发生剧烈的紊动。而这些简便易行又效果不错的 方式也成为了大多数实验波浪水槽的标准配置。 与实验波浪水槽相似,在数值波浪水槽中也可以设立相应的结构来达到消能 目的,但与实验水槽普遍采用这种方式完全不同的是,由于消能结构的建模非常 繁琐,使得建立这样的一个波浪水槽将消耗大量的时间和精力。同时最关键的一 点是,水流在消能结构内的紊动会大量增加计算量,使得计算的开销增大。So删ne疵ld提出的辐射边界条件可以部分解决波能辐射的问题,这种辐射边界条件认为在固体边界上:翌+c翌:o 一+1.一=I- a£。一an。(3.2)IJ‘‘,其中,妒为所要辐射的变量,在此即为速度U,C为波浪的速度,n为辐射边界的 法向向量。 这种边界条件在规则波波浪水槽中被证明有较好的效果,但由于C为固定的 常数,因此它只能针对某一类特定的波进行能量消除,故对不规则波和水槽中有 建筑物影响波浪特性的时候不适用,同时,这种消波方式消除波浪的同时没有考 虑严格的质量守恒,因此在计算步较多的算例中很容易导致水槽中水体的总质量 发生变化。温新刚(2007)【6lJ在其工作中尝试引入此边界条件,但没有取得很理 想的效果。王永学在其二维VoF法建立的数值波浪水槽中的应用表明线性辐射 条件适于小尺度线性波的消除【621,对应本文拟采用的方法和波浪尺度并不能令人 满意,因此本文不采用这种消波方式。 由于阻尼消波区对速度的直接衰减会导致质量不守恒。同时,由于本文研究 的波浪现象所要考察的现象的时间较短,因此对消波的要求并不苛刻。在验证水 槽中,本文设立的挑浪台加水箱的消浪结构形式(如图3.3)可以起到比较好的 消浪效果,验证结果详见3.8节。在本文第五章三维数值波浪水槽计算中将采用 这种消波结构。 冀雾霉隔溱酒■_第三章数值波浪水槽的建立粼榭溺黪辫静-一专兰兰兰二兰兰:圈3 3挑浪消渡结构形式罔3.4数值波浪水槽建立中遇到的问题 3.4.1波高衰减3.4.I.1波高衰减现象 在本文应用数值波浪水槽的过程中,观察到了波高衰减现象。具体的特征是, 在造波侧按照速度入口法生成的波浪,在某些数值波浪水槽中传播不远即发生持 续的严重的衰减。= l_!】釜罨=图3-4数值波浪水槽中的被高衰减如图3_4所示,在为本文第五章防渡堤前涡的特性研究而建立的长直的波浪=黔一水槽内,起始波浪要素为:波高爿=0 06m.周期r=1 5s.波长L=1 97m。水槽长l 7m,设造波端底部为坐标原点,水槽沿x轴正向布置,用来模拟港堤的建 筑物置放在x=12m处,图中红色点代表z=1m处的波高过程和绿色点代表r=4m处的波高过程,可以看出.波浪仅在传播了两个波长之后波高就衰减了近28%,这显然是不正常的。 第三章数值波浪水槽的建立刘加海在其采用商业软 件Fluent建立的数值波浪水 槽163J进行数值模拟的过程中 也发现了类似的现象。图3.5 即其在水深d=10m, r=2.91s,总长为100m的水 槽中采用不同造波板行程所 测得的结果,可以看出其模拟 的波高也在波浪造出不远后 发生较严重衰减。l 8 l I I 6‘2I I被■分帮曩C1I_2.姒)II一0.3 一O.35●^? --?.{.-墨懿l O 8O篓■I笾―}?-}?-:l-¨卜?’??,?4一l一¨..???一??一O.‘ ――-O.15--{??●…l I?‘‘o~●●●●■1、,O O 6●2 O-’}矗}‘‘f。‘∽?’I?‘●?’!=【。二-…一―、、一 ●o’i-一―一??●…●●’●●1…}‘。?‘t??一}¨}¨一{?-}一l。呻?‘,o?~}’.}“f..‘‘1。‘1’。1 。{..,..:l??'一'..●●一1-.’…;:--11.‘'‘啊._●●…r。。}...8R.奠R.7盂.●皈-JK.‘£―;强..复盂.1S-毒S图3.5刘加海实验中的沿程波高过程【63】3.4.1.2波高衰减的影响因素和改善措施 正常来说,在实验波浪水槽中,波浪随着传播距离的增大,由于粘性以及与 边界作用的能量损耗波高会自然减小,但由于水的粘性不大,因此尽管会有衰减, 但其幅度不会很大,所以数值波浪水槽中如前所述的波高衰减的现象是不正常的, 因而值得研究并给予重视。 刘加海的研究中采用Fluem建立的水槽采用模拟造波板运动法模拟波浪,因 此刘认为其波高衰减主要受到造波板造出的波浪中非传播项按指数衰减造成的, 但从其结果看该水槽的波面高度稳定性并不好,同时也没有严格遵守指数衰减的 规律,因此用来解释波高的衰减并不很令人信服。 在CFD中,流体中的能量在传播过程中衰减有很多因素,从原理上讲最直 接的导致能量耗散的原因即数值耗散。CFD程序在求解微分方程需要对其离散 化,数值离散的过程中采用离散方程来代替原方程求解,显然这是包含截断误差 的。而离散后的方程从本质上看可以看作是另一个微分方程的精确解,因此相比 原方程新的微分方程会多出形式类似于物理粘性耗散项但却没有实际物理意义 的高阶偏导数项,即通常所说的数值耗散或人工粘性。由于耗散项表达式的相近, 这种耗散与真实流体中粘性导致的耗散是相近的,因此会对流体的能量传递产生 影响,但从另一个角度说,人工粘性可以控制解的突变处产生的震荡,有助于获 得圆滑的解。数值耗散对流体能量的影响是轻微的,这种影响对数值波浪水槽来 说随着网格的加密而越来越小,并不会显著地影响波能的传递;另一方面,波浪 传播中波高因数值耗散而受到的影响应该是在波浪推进方向沿程平缓递减的,不 应当发生从波浪入口进入不久就严重衰减的情况。因此,数值耗散显然也不是本 文观察到的波高衰减的主要原因。 第三章数值波浪水槽的建立本文通过大量算例的实际计算发现,采用vOF法对数值波浪水槽造波进行 描述时,对波形的准确描述很大程度上依赖于网格的划分方式。且这种相关性并 非简单的线性关系。一般来说,波形的准确描述对垂向网格的密度要求较高,对 横向网格的密度要求较低。 如图3-6为本文计算中采用的与PIv实验比对的堤高为10cm时的二维数值波浪水槽的波高衰减图示,波浪要素为:水深O 02m,波长l 97m。不同颜色线对应的数字为在波高范围(即从波谷到波峰范围内)垂向划分的阿格数,从图中可以看出,垂向网格的细密程度直接显著影响了波形描述的准确程度,也就决定了波高描述的真实度。、=:一、之一一―――+一~一。一-嚣二=一~一一_、~~~~,~j=__:====二~一图3.6不同垂向阿格剖分精度下的渡高浩程衰减除垂向网格剖分精度之外,波高衰减现象也受其他一些因素的影响,如图3―7为对应图3.7中波高范围内等距剖分为60份的水槽中通过更改其他水槽要素 所获得的结果。可以看出,在相对较低的垂向剖分精度下,周期更长(相应地波 长也更长)的波渡高衰减的程度小很多。同时还可以发现,有限提高横向的网格 葙度(单个网格长度由原先的L/30提高到图3.7中L朗g山他6ned算例的L/50) 并不会带来波形描述精度的显著提升。DI§t…ea1…H…n1图3.7其他影响因素变化下的被高沿程衰减 第三章数值波浪水槽的建立通过对比可以发现某一特定波浪的外形特征与特定的网格划分是对应的,当网格划分出单元的长高比与波浪波陡相差较大时,由于单个网格描述的网格内液 体/气体体积不足以准确重建通过该网格处的波面形状,因此在相邻两个时间步g雅吼a的计算中原本描述流体的速度向量可能转而用于描述气体的运动,同时 液体的传递过程也无法准确的表达,从而导致较严重的能量虚假损耗。基于以上分析,可以得出初步结论:采用VoF法模拟自由表面时,网格的 密度和长度/高度比应因所要模拟的波浪的波陡而异。对于数值波浪水槽计算来 讲,想要输出自由表面附近精度较高的流场需要比较细密的网格,但同时应注意 横向划分的尺度不应与垂向剖分尺度相差太大。但在剖分网格的过程中还应注意 平衡计算的效率和准确度,不应一味增加网格数量。一方面,网格数目越多相应 地需要越高的计算能力和越大的存储空间。另一方面,为了防止网格尺寸突变和 单元过度畸化导致的计算不稳定,波高范围内单个网格高度的减小必然要使得相 邻区域的网格随之减小,从而增加网格划分的难度,并又间接地增大了计算量。 因此,本文推荐在网格划分过程中,垂向波高范围剖分为100个均匀单元为宣, 横向波长范围内根据波陡值取30~50}

我要回帖

更多关于 特性粘度是怎样测定的 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信