发明名称 复杂边界及实际地形上溃坝洪水的自适应模拟方法
摘要 一种复杂边界及实际地形上溃坝洪水的自适应模拟方法,该方法包括对于变形后的偏微分方程的GRP格式和基于变分原理的自适应网格移动。前者通过在边界法向解一个广义黎曼问题,使得对于变形后的PDE的数值通量中包含了河床底部的影响,中心离散的源项也包含了流场的影响,在非结构三角形网格上精确保证静态流。后者实现网格位置的调整,在新网格上实现物理量的守恒性插值,不仅提高了非结构三角形网格对物理量的逼近程度,也能保证静态流。本发明开发的方法在模拟浅水波时能有效提高数值解的分辨率、计算精度和计算效率,可为溃坝洪水的水动力及富营养化过程模拟提供了一种新的技术方案。
申请公布号 CN102436550B 申请公布日期 2014.08.13
申请号 CN201110349538.X 申请日期 2011.11.07
申请人 武汉大学;北京大学 发明人 陈国贤;周丰
分类号 G06F19/00(2011.01)I 主分类号 G06F19/00(2011.01)I
代理机构 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 代理人 薛玲
主权项 一种复杂边界及实际地形上溃坝洪水的自适应模拟方法,其特征在于:将待模拟区域按网格进行处理,每个网格是一个三角形单元,通过守恒型的物理量U反映每个网格上水量信息,物理量U的向量形式如下,<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>U</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>h</mi><mo>+</mo><mi>b</mi></mtd></mtr><mtr><mtd><mi>hu</mi></mtd></mtr><mtr><mtd><mi>hv</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000484565180000011.GIF" wi="239" he="233" /></maths>其中,h表示水深,b表示河床底部高程,u表示坐标轴x方向的流速,v表示坐标轴y方向的流速;按网格处理的具体实现包括以下步骤,步骤1,根据待模拟区域,输入物理区域的初始网格和逻辑区域的初始网格;在时刻t<sub>n</sub>,物理区域中第i个三角形单元E<sub>i</sub>所在网格记为<img file="FDA0000484565180000012.GIF" wi="68" he="62" />物理区域中第i个三角形单元E<sub>i</sub>上物理量U的积分平均值记为<img file="FDA0000484565180000013.GIF" wi="81" he="58" />令n=0,计算在初始时刻t<sub>n</sub>=t<sub>0</sub>的积分平均值<img file="FDA0000484565180000014.GIF" wi="155" he="65" />步骤2,进行移动网格,调整物理区域上的网格位置,移动任一网格<img file="FDA0000484565180000015.GIF" wi="52" he="62" />的具体实现包括以下步骤,步骤2.1,令迭代步数ν=0,ν=0时网格<img file="FDA0000484565180000016.GIF" wi="60" he="66" />等于当前时刻t<sub>n</sub>的网格<img file="FDA0000484565180000017.GIF" wi="76" he="62" />ν=0时积分平均值<img file="FDA0000484565180000018.GIF" wi="71" he="66" />等于当前时刻t<sub>n</sub>的积分平均值<img file="FDA0000484565180000019.GIF" wi="84" he="60" />步骤2.2,计算表征物理量变化梯度大小的控制函数ω<sub>i</sub>,计算公式如下,<maths num="0002" id="cmaths0002"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>&omega;</mi><mi>i</mi></msub><mo>=</mo><msqrt><mn>1</mn><mo>+</mo><mi>&alpha;</mi><msubsup><mover><mi>&omega;</mi><mo>~</mo></mover><mi>i</mi><mn>2</mn></msubsup><mrow><mo>(</mo><mi>&beta;</mi><mo>,</mo><mi>h</mi><mo>+</mo><mi>b</mi><mo>)</mo></mrow></msqrt></mtd></mtr><mtr><mtd><msub><mover><mi>&omega;</mi><mo>~</mo></mover><mi>i</mi></msub><mrow><mo>(</mo><mi>&beta;</mi><mo>,</mo><mi>h</mi><mo>+</mo><mi>b</mi><mo>)</mo></mrow><mo>=</mo><mi>min</mi><mo>{</mo><mn>1</mn><mo>,</mo><mo>|</mo><msub><mo>&dtri;</mo><mi>&xi;</mi></msub><mrow><mo>(</mo><mi>h</mi><mo>+</mo><mi>b</mi><mo>)</mo></mrow><msub><mo>|</mo><mi>i</mi></msub><mo>/</mo><mi>&beta;</mi><munder><mi>max</mi><mi>i</mi></munder><mo>|</mo><msub><mo>&dtri;</mo><mi>&xi;</mi></msub><mrow><mo>(</mo><mi>h</mi><mo>+</mo><mi>b</mi><mo>)</mo></mrow><msub><mo>|</mo><mi>i</mi></msub><mo>}</mo></mtd></mtr></mtable></mfenced>]]></math><img file="FDA00004845651800000110.GIF" wi="1397" he="244" /></maths>其中算子▽<sub>ξ</sub>表示在参考坐标下的梯度,参考坐标为逻辑区域的坐标;h表示水深,b表示河床底部高程,α和β为正参数;步骤2.3,根据步骤2.2所得控制函数ω<sub>i</sub>,通过以逻辑区域作为中间变量,移动网格<img file="FDA00004845651800000111.GIF" wi="61" he="66" />至新的位置,新的位置记为网格<img file="FDA00004845651800000112.GIF" wi="98" he="66" />步骤2.4,在网格<img file="FDA0000484565180000021.GIF" wi="82" he="66" />上更新迭代到第v+1步时的积分平均值<img file="FDA0000484565180000022.GIF" wi="110" he="80" />包括通过守恒型插值公式得到积分平均值<img file="FDA0000484565180000023.GIF" wi="112" he="66" />守恒型插值公式如下,<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mo>|</mo><msubsup><mi>E</mi><mi>i</mi><mrow><mo>[</mo><mi>v</mi><mo>+</mo><mn>1</mn><mo>]</mo></mrow></msubsup><mo>|</mo><msubsup><mi>U</mi><mi>i</mi><mrow><mo>[</mo><mi>v</mi><mo>+</mo><mn>1</mn><mo>]</mo></mrow></msubsup><mo>=</mo><mo>|</mo><msubsup><mi>E</mi><mi>i</mi><mrow><mo>[</mo><mi>v</mi><mo>]</mo></mrow></msubsup><mo>|</mo><msubsup><mi>U</mi><mi>i</mi><mrow><mo>[</mo><mi>v</mi><mo>]</mo></mrow></msubsup><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mn>3</mn></munderover><mover><mi>F</mi><mo>^</mo></mover><mrow><mo>(</mo><msubsup><mi>U</mi><mi>ij</mi><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>U</mi><mi>ij</mi><mi>R</mi></msubsup><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000484565180000024.GIF" wi="1005" he="134" /></maths>其中,<img file="FDA0000484565180000025.GIF" wi="125" he="66" />表示第v+1步时三角形单元E<sub>i</sub>的测度,<img file="FDA0000484565180000026.GIF" wi="106" he="62" />表示第v步时三角形单元E<sub>i</sub>的测度,通量<img file="FDA0000484565180000027.GIF" wi="184" he="79" />采用如下的迎风格式<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mover><mi>F</mi><mo>^</mo></mover><mrow><mo>(</mo><msubsup><mi>U</mi><mi>ij</mi><mi>L</mi></msubsup><mo>,</mo><msubsup><mi>U</mi><mi>ij</mi><mi>R</mi></msubsup><mo>)</mo></mrow><mo>=</mo><mi>max</mi><mo>{</mo><mo>|</mo><msub><mi>D</mi><mi>ij</mi></msub><mo>|</mo><mo>,</mo><mn>0</mn><mo>}</mo><msubsup><mi>U</mi><mi>ij</mi><mi>L</mi></msubsup><mo>+</mo><mi>min</mi><mo>{</mo><mo>|</mo><msub><mi>D</mi><mi>ij</mi></msub><mo>|</mo><mo>,</mo><mn>0</mn><mo>}</mo><msubsup><mi>U</mi><mi>ij</mi><mi>R</mi></msubsup></mrow>]]></math><img file="FDA0000484565180000028.GIF" wi="1245" he="107" /></maths>其中,<img file="FDA0000484565180000029.GIF" wi="65" he="70" />和<img file="FDA00004845651800000210.GIF" wi="62" he="70" />是由单元平均值<img file="FDA00004845651800000211.GIF" wi="72" he="65" />利用SGM方法重构出来的边l<sub>ij</sub>的左右极限值,|D<sub>ij</sub>|是网格<img file="FDA00004845651800000212.GIF" wi="63" he="66" />移动到网格<img file="FDA00004845651800000213.GIF" wi="84" he="66" />时边l<sub>ij</sub>所扫过区域D<sub>ij</sub>的测度,边l<sub>ij</sub>表示三角形单元E<sub>i</sub>的边;步骤2.5,判断是否满足预设的迭代结束条件,如果是则迭代结束,更新在下一时刻t<sub>n+1</sub>的网格<img file="FDA00004845651800000214.GIF" wi="64" he="66" />位置到网格<img file="FDA00004845651800000215.GIF" wi="100" he="66" />更新当前时刻t<sub>n</sub>的积分平均值<img file="FDA00004845651800000216.GIF" wi="204" he="66" />转入步骤3;否则令迭代步数ν=ν+1,转步骤2.3;步骤3,根据步骤2的移动网格结果,求取下一时刻t<sub>n+1</sub>的网格<img file="FDA00004845651800000217.GIF" wi="66" he="66" />和积分平均值<img file="FDA00004845651800000218.GIF" wi="96" he="66" />包括以下步骤,步骤3.1,在网格<img file="FDA00004845651800000219.GIF" wi="66" he="66" />上,以步骤2更新的积分平均值<img file="FDA00004845651800000220.GIF" wi="57" he="63" />作为初始值,求取下一时刻t<sub>n+1</sub>的积分平均值<img file="FDA00004845651800000221.GIF" wi="78" he="66" />的近似解;步骤3.2,如果下一时刻t<sub>n+1</sub><TSTOP,TSTOP为预设的停止时刻,则令n=n+1,以下一时刻为当前时刻返回执行步骤2,否则输出下一时刻t<sub>n+1</sub>的网格<img file="FDA00004845651800000222.GIF" wi="69" he="66" />所在位置和积分平均值<img file="FDA00004845651800000223.GIF" wi="70" he="66" />作为模拟结果。
地址 430072 湖北省武汉市武昌区珞珈山武汉大学