benjackxu 发表于 2006-6-23 21:40:43

妙用IMPGRID和EXPGRID命令进行不连续网格单元分组

前些天因为正在做的分析涉及到做类似研究骨料在混凝土中随机出现的问题,所以才有了这个发现。以一个简单实例说明:
n
gen zone brick &
p0 0 0 0 p1 add 10 0 0 p2 add 0 10 0 p3 add 0 0 0.2 &
size 5 4 1
plot block group id on

比如我要将编号为1,10,12,16,20的单元指定为骨料。通常的做法是采用命令:
group guliao range id 1
group guliao range id 10
group guliao range id 12
group guliao range id 16
group guliao range id 20

[ 本帖最后由 benjackxu 于 2006-6-23 22:10 编辑 ]

benjackxu 发表于 2006-6-23 22:01:04

但是如果这些不连续编号数量十分多时,数字又不连续,还按照上述做法,工作量实在太大。今天我看IMPGRID 和EXPGRID我发现可以有效的解决这个问题。仍然以上述模型为例。采用EXPGRID将单元节点信息导出,存为11(文件名)

n
gen zone brick &
p0 0 0 0 p1 add 10 0 0 p2 add 0 10 0 p3 add 0 0 0.2 &
size 5 4 1
plot block group id on
expgrid 11

然后用记事本打开,显示内容为:
* FLAC3D grid produced by FLAC3D
* GRIDPOINTS
G 1 0.000000000e+000 0.000000000e+000 0.000000000e+000
G 2 2.000000000e+000 0.000000000e+000 0.000000000e+000
G 3 0.000000000e+000 2.500000000e+000 0.000000000e+000
G 4 0.000000000e+000 0.000000000e+000 2.000000000e-001
G 5 2.000000000e+000 2.500000000e+000 0.000000000e+000
G 6 0.000000000e+000 2.500000000e+000 2.000000000e-001
G 7 2.000000000e+000 0.000000000e+000 2.000000000e-001
G 8 2.000000000e+000 2.500000000e+000 2.000000000e-001
G 9 4.000000000e+000 0.000000000e+000 0.000000000e+000
G 10 4.000000000e+000 2.500000000e+000 0.000000000e+000
G 11 4.000000000e+000 0.000000000e+000 2.000000000e-001
G 12 4.000000000e+000 2.500000000e+000 2.000000000e-001
G 13 6.000000000e+000 0.000000000e+000 0.000000000e+000
G 14 6.000000000e+000 2.500000000e+000 0.000000000e+000
G 15 6.000000000e+000 0.000000000e+000 2.000000000e-001
G 16 6.000000000e+000 2.500000000e+000 2.000000000e-001
G 17 8.000000000e+000 0.000000000e+000 0.000000000e+000
G 18 8.000000000e+000 2.500000000e+000 0.000000000e+000
G 19 8.000000000e+000 0.000000000e+000 2.000000000e-001
G 20 8.000000000e+000 2.500000000e+000 2.000000000e-001
G 21 1.000000000e+001 0.000000000e+000 0.000000000e+000
G 22 1.000000000e+001 2.500000000e+000 0.000000000e+000
G 23 1.000000000e+001 0.000000000e+000 2.000000000e-001
G 24 1.000000000e+001 2.500000000e+000 2.000000000e-001
G 25 0.000000000e+000 5.000000000e+000 0.000000000e+000
G 26 2.000000000e+000 5.000000000e+000 0.000000000e+000
G 27 0.000000000e+000 5.000000000e+000 2.000000000e-001
G 28 2.000000000e+000 5.000000000e+000 2.000000000e-001
G 29 4.000000000e+000 5.000000000e+000 0.000000000e+000
G 30 4.000000000e+000 5.000000000e+000 2.000000000e-001
G 31 6.000000000e+000 5.000000000e+000 0.000000000e+000
G 32 6.000000000e+000 5.000000000e+000 2.000000000e-001
G 33 8.000000000e+000 5.000000000e+000 0.000000000e+000
G 34 8.000000000e+000 5.000000000e+000 2.000000000e-001
G 35 1.000000000e+001 5.000000000e+000 0.000000000e+000
G 36 1.000000000e+001 5.000000000e+000 2.000000000e-001
G 37 0.000000000e+000 7.500000000e+000 0.000000000e+000
G 38 2.000000000e+000 7.500000000e+000 0.000000000e+000
G 39 0.000000000e+000 7.500000000e+000 2.000000000e-001
G 40 2.000000000e+000 7.500000000e+000 2.000000000e-001
G 41 4.000000000e+000 7.500000000e+000 0.000000000e+000
G 42 4.000000000e+000 7.500000000e+000 2.000000000e-001
G 43 6.000000000e+000 7.500000000e+000 0.000000000e+000
G 44 6.000000000e+000 7.500000000e+000 2.000000000e-001
G 45 8.000000000e+000 7.500000000e+000 0.000000000e+000
G 46 8.000000000e+000 7.500000000e+000 2.000000000e-001
G 47 1.000000000e+001 7.500000000e+000 0.000000000e+000
G 48 1.000000000e+001 7.500000000e+000 2.000000000e-001
G 49 0.000000000e+000 1.000000000e+001 0.000000000e+000
G 50 2.000000000e+000 1.000000000e+001 0.000000000e+000
G 51 0.000000000e+000 1.000000000e+001 2.000000000e-001
G 52 2.000000000e+000 1.000000000e+001 2.000000000e-001
G 53 4.000000000e+000 1.000000000e+001 0.000000000e+000
G 54 4.000000000e+000 1.000000000e+001 2.000000000e-001
G 55 6.000000000e+000 1.000000000e+001 0.000000000e+000
G 56 6.000000000e+000 1.000000000e+001 2.000000000e-001
G 57 8.000000000e+000 1.000000000e+001 0.000000000e+000
G 58 8.000000000e+000 1.000000000e+001 2.000000000e-001
G 59 1.000000000e+001 1.000000000e+001 0.000000000e+000
G 60 1.000000000e+001 1.000000000e+001 2.000000000e-001
* ZONES
Z B8 1 1 2 3 4 5 6 7 8
Z B8 2 2 9 5 7 10 8 11 12
Z B8 3 9 13 10 11 14 12 15 16
Z B8 4 13 17 14 15 18 16 19 20
Z B8 5 17 21 18 19 22 20 23 24
Z B8 6 3 5 25 6 26 27 8 28
Z B8 7 5 10 26 8 29 28 12 30
Z B8 8 10 14 29 12 31 30 16 32
Z B8 9 14 18 31 16 33 32 20 34
Z B8 10 18 22 33 20 35 34 24 36
Z B8 11 25 26 37 27 38 39 28 40
Z B8 12 26 29 38 28 41 40 30 42
Z B8 13 29 31 41 30 43 42 32 44
Z B8 14 31 33 43 32 45 44 34 46
Z B8 15 33 35 45 34 47 46 36 48
Z B8 16 37 38 49 39 50 51 40 52
Z B8 17 38 41 50 40 53 52 42 54
Z B8 18 41 43 53 42 55 54 44 56
Z B8 19 43 45 55 44 57 56 46 58
Z B8 20 45 47 57 46 59 58 48 60
* GROUPS

对上述命令流稍加编辑,添加少许内容
zgroup 1
1 10 12 16 20

保存,然后用IMPGRID命令导入,用
plot block group id on
就查看附图所显示的效果。

benjackxu 发表于 2006-6-23 22:10:15

FLAC里好像有个函数可以产生随机数,具体怎么用,高手可否讲解一下。我使用EXCEL产生的随机数,想来两者的原理都应该是一样的吧。

benjackxu 发表于 2006-6-27 19:36:06

这是我用元胞自动机考虑漂砾的团聚特性后,导入数据到FLAC3D里实现的模型。

sunxinpo 发表于 2011-5-17 12:54:02

学习了,很好,谢谢
页: [1]
查看完整版本: 妙用IMPGRID和EXPGRID命令进行不连续网格单元分组