三维对称溃坝数值

发表时间:2019-03-16 17:19

三维对称溃坝数值模拟

1.案例介绍

本计算实例采用Massflow软件计算验证一个三维溃坝的问题。计算模型及尺寸见下图1和2。底面地形高度设为0;x方向长度为3m,x坐标小于0的流体高度为0.5m,其它地方流体高度为0;边界条件设置如图3所示;基底模型采用曼宁模型,相应曼宁系数设为0.02。土压力系数设为常数1。

2.操作步骤

第一步新建一个文件夹,命名为case9,将程序执行文件Massflow.exe和dll_custom文件夹拷贝到该文件夹目录下。第二步:进行计算前的一些设置准备。包括基本参数设置、模型导入以及分析步设置等。针对计算案例的初始流体高度和边界条件,用户可在dll_custom文件夹下自行修改相应的代码,通过Microsoft Visual Studio(VS)编译的动态链接库dll_custom.dll文件拷到当前工作文件夹目录下。通过用户自定义构建模型需要在create_h_custom.f90进行的设置如下:
do i=1-mbc,nx+mbc
do j=1-mbc,ny+mbci
f(x(i,j)<=0)then
q(1,i,j)=0.6
else
q(1,i,j)=h_dry
endif
enddo
enddo
如果通过命令创建模型,则可在命令流文件中直接输入相关命令,忽略此步骤。通过用户自定义构建边界条件需要在create_bound_custom.f90进行的设置如下:
bound_type1(1-mbc,:) = 1
bound_type3(nx+mbc,:) =1
bound_type2(1:54,1-mbc) = 1
bound_type2(55:nx,1-mbc) = 2
bound_type4(1:54,ny+mbc) = 1
bound_type4(55:nx,ny+mbc) = 2
bound_type1(52,1:40) = 1
bound_type1(52,62:ny) = 1
bound_type1(54,1:41) = 1
bound_type1(54,61:ny) = 1
bound_type3(51,1:41) =1
bound_type3(51,61:ny) =1
bound_type3(53,1:40) =1
bound_type3(53,62:ny) =1
bound_type2(51:54,41) = 1
bound_type2(52:53,62) = 1
bound_type4(52:53,40) = 1
bound_type4(51:54,61) = 1
如果通过命令创建模型,则可在命令流文件中直接输入相关命令,忽略此步骤。该案例地形高程信息采用默认,z=0。其他模型参数直接在命令流文件input.txt中输入。
第三步:所有参数设置完成后,双击执行文件Massflow.exe运行。
第四步:测点计算值与理论值对比为了验证Massflow计算结果的准确性,将本案例计算的H值随时间变化情况与实验结果进行对比,选取若干个监测点,本次列出了Po、P4、P-5A、PC和P8A的计算值和实验值,测点布置见下图13,对比图见14。  

通过图14中将计算值与实验值对比可以发现,Massflow计算得到的各测点结果均与实验值吻合的非常好,仅有局部细小误差。因此,通过本案例计算结果,可以证明Massflow软件的计算结果是可靠的。  

3.本计算实例的命令流文件—input.txt

命令流1:通过读取文件的方式设置地形和流体高度
*type,1
*erosion,0
*density,0
*nregions,1
*ndim,2
*mbc,0
*remesh,0
*parallel,0
*create,grid,file,dem,all,z.txt
*create,topo,file,dem,all,z.txt
*create,h,file,dem,all,h.txt
*create,bound,custom,all
*material,1,density,1000
*material,1,friction,1,0.145
*material_assign,1,0,1
*time,1,200,0.05,0.25
*output,1,tecplot,1,all,1,4


分享到:
QQ交流群
微信公众号