6.3 有沉积剥蚀¶
6.3.1 流程解析¶
警告
此节仅为了帮助用户理解应力应变计算过程,用户仍需要 Slurm 作业调度系统( Slurm 作业调度系统 )提交计算,具体方法见 实例 。
初始目录结构:
|-- ex_strain_stress
|-- push_add_del.py
push_add_del.py
见 实例
如果有沉积剥蚀过程,需要仔细选择沉积剥蚀的临界文件,详细的流程如下:
所有操作均在 ex_strain_stress 目录下操作
zdem push_add_del.py
计算完成,将生成
./data
文件夹。目录结构如下:|-- ex_strain_stress |-- push_add_del.py |-- data |-- all_0000000000_ini.dat |-- ... |-- all_0000005000.dat |-- all_0000058000_ini.dat |-- all_0000108000.dat
zdem2jpg --dir=./data
生成jpg,生成计算过程图.注意:这里,只需指定
--dir
,不加其它任何参数.目录结构如下|-- ex_strain_stress |-- push_add_del.py |-- data |-- all_0000000000_ini.dat |-- all_0000000000_ini.jpg |-- ... |-- all_0000005000.dat |-- all_0000005000.jpg |-- all_0000058000_ini.dat |-- all_0000058000_ini.jpg |-- all_0000108000.dat |-- all_0000108000.jpg
- 新建datass文件夹,根据jpg挑选需要计算应力应变的.dat文件,复制到datass文件夹中。
这里,挑选原则如下:
- 刚沉积完,并给定颜色,准备挤压的初始模型,必须。all_0000006000_ini.dat
- 刚剥蚀完,准备挤压的模型,必须。all_0000036000_ini.dat
- 沉积稳定,准备挤压前的模型。all_0000058000_ini.dat
沉积过程不要,其它的可酌情选取。
目录结构如下
|-- ex_strain_stress |-- push_add_del.py |-- data |-- all_0000000000_ini.dat |-- all_0000000000_ini.jpg |-- ... |-- all_0000005000.dat |-- all_0000005000.jpg |-- all_0000058000_ini.dat |-- all_0000058000_ini.jpg |-- all_0000108000.dat |-- all_0000108000.jpg |-- datass |-- all_0000006000_ini.dat |-- all_0000026000.dat |-- all_0000036000_ini.dat |-- all_0000056000.dat |-- all_0000058000_ini.dat |-- all_0000078000.dat |-- all_0000108000.dat
zdem --xmove -1000.0 --ymove -1000.0 --addball --delball -s ./datass
计算应力和应变。基于步骤2,我们知道
--xmove --ymove
应该设置为-1000.0
, 并且有沉积--addball
和剥蚀--delball
过程。备注
zdem
命令详解见 zdem ,或者输入zdem -h
查看帮助文档。计算完成,将生成
./datass/ss/data/*.out
,供GMT绘图用。目录结构如下|-- ex_strain_stress |-- push_add_del.py |-- data |-- all_0000000000_ini.dat |-- all_0000000000_ini.jpg |-- ... |-- all_0000005000.dat |-- all_0000005000.jpg |-- all_0000058000_ini.dat |-- all_0000058000_ini.jpg |-- all_0000108000.dat |-- all_0000108000.jpg |-- datass |--ss |-- data |-- *.out |-- all_0000006000_ini.dat |-- all_0000026000.dat |-- all_0000036000_ini.dat |-- all_0000056000.dat |-- all_0000058000_ini.dat |-- all_0000078000.dat |-- all_0000108000.dat
zdemss --dir ./datass --addball ON --delball ON --xmax 40.0 --ymax 10.0 --maxstress 250.0
使用GMT绘制应力应变。zdemss
将会读取zdem
生成的应力应变数据./datass/ss/data
,生成应力应变云图到./datass/ss/*jpg
。设置x轴最大值 40.0 km,设置y轴最大值 10.0 km,设置颜色条应力最大值250 MPa。备注
zdemss
命令详解见 zdemss ,或者输入zdemss -h
查看帮助文档。运行完成之后,目录结构:
|-- ex_strain_stress |-- push_add_del.py |-- data |-- all_0000000000_ini.dat |-- ... |-- all_0000005000.dat |-- all_0000058000_ini.dat |-- all_0000108000.dat |-- datass |-- ss |-- data |-- *.out |-- ps |-- *.ps |-- tmp |-- *.grd |-- *.jpg |-- all_0000006000_ini.dat |-- all_0000026000.dat
./datass/ss/data/*.out
zdem 输出的颗粒位置和(假)应力的原始数据./datass/ss/data2ps/*.out
(真)应力应变数据,用于绘制应力应变图(ps),用户可以用于定量分析./datass/ss/ps/*.ps
输出的应力应变图(矢量图)./datass/ss/Tmp/*.grd
计算应力应变产生的中间数据./datass/ss/*.jpg
输出的应力应变图(位图)
6.3.2 实例¶
sbatch jobs1.sh
提交,将完成 流程解析 1和2此步最关键! 新建datass文件夹,将需要处理的dat复制到datass文件夹,完成 流程解析 3。完成此步后,目录结构:
|-- ex_strain_stress |-- job1.sh |-- job2.sh |-- push_add_del.py |-- data |-- all_0000000000_ini.dat |-- all_0000001000.dat |-- ... |-- all_0000005000.dat |-- all_0000005000_ini.dat |-- all_0000006000.dat |-- all_0000006000_ini.dat |-- all_0000016000.dat |-- all_0000026000.dat |-- all_0000036000.dat |-- all_0000036000_ini.dat |-- all_0000046000.dat |-- all_0000056000.dat |-- all_0000056000_ini.dat |-- all_0000056100.dat |-- ... |-- all_0000057900.dat |-- all_0000058000.dat |-- all_0000058000_ini.dat |-- all_0000068000.dat |-- all_0000078000.dat |-- all_0000088000.dat |-- all_0000098000.dat |-- all_0000108000.dat |-- datass |-- all_0000006000_ini.dat |-- all_0000026000.dat |-- all_0000036000_ini.dat |-- all_0000056000.dat |-- all_0000058000_ini.dat |-- all_0000078000.dat |-- all_0000108000.dat
sbatch jobs2.sh
提交,将完成 流程解析 4和5。等待计算完成,生成的应力应变图见./datass/ss/*jpg
。
job1.sh
job2.sh
push_add_del.py
文件内容:
job1.sh
#!/bin/bash
#SBATCH --job-name=core12
#SBATCH --partition=v6_384
#SBATCH -n 1
#SBATCH -c 12
#SBATCH -t 1440
#SBATCH --output=%j.out
#SBATCH --error=%j.err
source /public1/soft/modules/module.sh
source /public1/soft/other/module_zdem.sh
module load zdem2.0
source /public1/soft/modules/module.sh
source /public1/soft/other/module_GMT.sh
module load GMT_5.4.5
export PATH=/public1/home/sc80502/bin:$PATH
time srun -n 1 zdem push_add_del.py
time srun -n 1 zdem2jpg --dir=./data
job2.sh
#!/bin/bash
#SBATCH --job-name=core12
#SBATCH --partition=v6_384
#SBATCH -n 1
#SBATCH -c 12
#SBATCH -t 1440
#SBATCH --output=%j.out
#SBATCH --error=%j.err
source /public1/soft/modules/module.sh
source /public1/soft/other/module_zdem.sh
module load zdem2.0
source /public1/soft/modules/module.sh
source /public1/soft/other/module_GMT.sh
module load GMT_5.4.5
export PATH=/public1/home/sc80502/bin:$PATH
time srun -n 1 zdem --xmove -1000.0 --ymove -1000.0 -j 12 --addball --delball -s ./datass
time srun -n 1 zdemss --dir ./datass --xmax 40.0 --ymax 10.0 --maxstress 250.0 --addball ON --delball ON
push_add_del.py
######################################
# title: 一个实例学会VBOX 加入剥蚀 沉积 演示应力应变处理过程
# date: 2020-06-28
# authors: 李长圣
# E-mail: sheng0619@163.com
# www.geovbox.com
#######################################
#程序初始化
START
#颗粒设为球,计算颗粒体积用4/3*pi*r^3计算
set disk off
#设置研究范围
BOX left 0.0 right 42000.0 bottom 0.0 height 12000.0 kn=0e10 ks=0e10 fric 0.00
#设置挡板墙,这里模型采用hertz接触模型,挡板墙的kn ks无效,计算时取颗粒的参数
WALL ID 0, NODES ( 1000.0 , 1000.0 ) ( 41000.0 , 1000.0 ), kn=0e10 ks=0e10 fric 0.0 COLOR black
WALL ID 1, NODES ( 1000.0 , 10000.0 ) ( 1000.0 , 1000.0 ), kn=0e10 ks=0e10 fric 0.0 COLOR blue
WALL ID 2, NODES ( 41000.0 , 1000.0 ) ( 41000.0 , 10000.0 ), kn=0e10 ks=0e10 fric 0.0 COLOR red
#在矩形范围内生成颗粒
GEN NUM 100000.0 rad discrete 60.0 80.0, x ( 1000.0, 41000.0), y ( 1000.0, 10000.0), COLOR black GROUP ball_rand
#设置颗粒的微观参数
PROP DENSITY 2.5e3, fric 0.0, shear 2.9e9, poiss 0.2, damp 0.4, hertz
#设置时间步及重力加速度
SET DT 5e-2, GRAVITY 0.0, -10.0
#设置每1000步保存一次ps格式的计算结果
SET ps 1000
#设置每1000步保存一次dat格式的计算结果
SET print 1000
#沉积,计算5000步
CYC 5000
#删除4000米以上的颗粒
DEL RANGE y 4000.0 999000.0
#平衡,计算1000步
CYC 1000
#输出包含颗粒的[x y r]信息的初始模型 init_xyr.dat
EXP init_xyr.dat
#设置bond粘结,使颗粒具有粘聚力
PROP ebmod 2e8 gbmod 2e8 tstrength 2e7 sstrength 4e7 fric 0.3
#给地层赋上颜色
PROP COLOR lg range y 1000.0 1500.0
PROP COLOR green range y 1500.0 2000.0
PROP COLOR yellow range y 2000.0 2500.0
PROP COLOR red range y 2500.0 3000.0
PROP COLOR black range y 3000.0 3500.0
PROP COLOR mg range y 3500.0 4000.0
PROP COLOR blue range y 4000.0 4500.0
PROP COLOR gb range y 4500.0 5000.0
PROP COLOR violet range y 5000.0 5500.0
#设置挡板墙摩擦系数
WALL id 0 fric 0.3
WALL id 1 fric 0.3
WALL id 2 fric 0.3
#设置墙的挤压速度 x方向速度为2.0
WALL id 1 xv 2.0
#设置墙的挤压量x方向推进3000.0,每挤压2000.0保存一次计算结果
IMPLE wall id 1 xmove 3000.0 save 2000.0 print 1000.0 ps 1000.0
##################################### 剥蚀 #####################################
# 删除4000米以上的颗粒
DEL RANGE y 4000.0 999000.0
################################################################################
#设置墙的挤压量x方向推进3000.0,每挤压2000.0保存一次计算结果
IMPLE wall id 1 xmove 2000.0 save 2000.0 print 1000.0 ps 1000.0
##################################### 沉积 #####################################
#停止挤压,墙的x方向速度改为0.0
WALL id 1 xv 0.0
#沉积。在挤压前端12000~40000.0上方,沉积约 1 km 颗粒。y的范围需要设置为4000-6000。
#经验:颗粒充填满2km范围,沉积之后的地层厚度约为1km
GEN NUM 100000.0 rad discrete 60.0 80.0, x ( 10000.0, 41000.0), y ( 4000.0, 6000.0), COLOR gb GROUP sed
#设置沉积颗粒 GROUP=sed 的微观参数
PROP DENSITY 2.5e3, fric 0.3, shear 2.9e9, poiss 0.2, damp 0.4, hertz range GROUP sed
#每 100 步输出一次计算结果
SET print 100
#计算2000步,让颗粒沉积下来
CYC 2000
################################################################################
#设置墙的挤压速度 x方向速度为2.0
WALL id 1 xv 2.0
#设置墙的挤压量x方向推进3000.0,每挤压2000.0保存一次计算结果
IMPLE wall id 1 xmove 5000.0 save 5000.0 print 1000.0 ps 1000.0
#计算停止
STOP