岩体碎屑流数值模拟
1.案例介绍
本计算实例采用Massflow软件模拟一个边坡表面的碎屑流运动问题。计算模型及尺寸见下图1和2。底面地形高度设为0;x方向长度为2.5m,y方向高0.8m,底部设一个障碍物高3cm; 所有边界条件为默认设置,即墙边界条件;基底模型采用库伦摩擦模型,相应摩擦系数设为0.8。土压力系数设为常数1。


2.操作步骤
第一步:新建一个文件夹,命名为case3,将程序执行文件Massflow.exe和dll_custom文件夹拷贝到该文件夹目录下。
第二步:进行计算前的一些设置准备。包括基本参数设置、模型导入以及分析步设置等。针对计算案例的初始流体高度和初始地形,用户可在dll_custom文件夹下自行修改相应的代码,通过Microsoft Visual Studio(VS)编译的动态链接库dll_custom.dll文件拷到当前工作文件夹目录下。通过用户自定义构建模型需要在create_surface_custom.f90进行的设置如下:
do i=1-mbc,nx+mbc
do j=1-mbc,ny+mbc
if(i<=30.and.i>=10.and.z(i,j)<=0.7)then
q(1,i,j)=0.7
else
q(1,i,j)=h_dry
endif
enddo
enddo
如果通过命令创建模型,则可在命令流文件中直接输入相关命令,忽略此步骤。通过用户自定义构建地形需要在create_topo_custom.f90进行的设置如下:
do i=1-mbc,nx+mbc
do j=1-mbc,ny+mbci
f(i<=100)then
z(i,j)=(75-0.75*i)*0.01
elseif(i>=130)then
z(i,j) = 0.03
else
z(i,j) = 0
endif
enddo
enddo
如果通过命令创建模型,则可在命令流文件中直接输入相关命令,忽略此步骤。该案例的边界条件采用默认,即墙边界。其他模型参数直接在命令流文件input.txt中输入。
第三步:所有参数设置完成后,双击执行文件Massflow.exe运行。
3.本计算实例的命令流文件—input.txt
命令流1: 通过dll_custom.dll 设置地形和流体高度
*type,1
*nregions,1
*q1_flag,all,2
*grav_inertia,0
*erosion,0
*density,0
*ndim,2
*mbc,0
*remesh,0
*parallel,0
*create,grid,input,all,250,10,0,0,0.01,0.2
*create,topo,custom,all
*create,surface,custom,all
*create,bound,custom,1
*material,1,density,1000
*material,1,friction,1,0.8
*material_assign,1,0,1
*time,1,2,0.01,0.25
*output,1,tecplot,1,all,1,0.02
命令流2: 通过命令设置地形和流体高度
*type,1
*nregions,1
*q1_flag,all,2
*grav_inertia,0
*erosion,0
*density,0
*ndim,2
*mbc,0
*remesh,0
*parallel,0
*create,grid,input,all,250,10,0,0,0.01,0.2
*k,1,0,0,1
*k,2,1,0,0
*k,3,1,2,0
*k,4,0,2,1
*k,5,1.3,0,0.03
*k,6,2.5,0,0.03
*k,7,2.5,2,0.03
*k,8,1.3,2,0.03
*k,9,0.1,0,0.9
*k,10,0.3,0,0.9
*k,11,0.3,2,0.9
*k,12,0.1,2,0.9
*rect,1,1,2,3,4,1,topo
*rect,2,5,6,7,8,1,topo
*rect,3,9,10,11,12,1,surface
*create,topo,gui,1
*create,surface,gui,1
*create,bound,custom,all
*material,1,density,1000
*material,1,friction,1,0.8
*material_assign,1,0,1
*time,1,2,0.01,0.25
*output,1,tecplot,1,all,1,0.02