海到尽头天作岸,山临绝顶我为峰!

利用Sufer和FISH进行复杂地形建模

上一篇 / 下一篇  2007-02-01 18:42:24

查看( 388 ) / 评论( 94 )
应斑竹君之枫的邀请,偶也来班门弄斧,谈谈复杂地形建模的一些方法。今天,仔细看了starsmoon大牛的《FLAC中关于曲面的生成》,很受启发,用Sufer来建模,是一个比较容易的方法。由于Sufer生成的是规则的网格,所以用程序实现是比较方便的。鉴于利用FISH进行二次开发是很好的主意,我就在starsmoon编的fish程序的基础上,稍微改进一下,让其可以支持多个地层的建模(程序中只考虑两个地层soil和rock,多个地层可以修改程序加入),在FLAC3D中把四棱柱改成了三棱柱。同时也加入了ANSYS 和 3DEC的建模模块。ANSYS中采用六面体,3DEC中采用三棱柱体。SimWe个人空间bF7V~ Y4x+B0qyA|
       仿真论坛上有不少大牛在建模上都很有一套,比如starsmoon,君之枫,SCH等等。在三维地质建模计算机辅助系统板块上就更多了。我这里只是介绍一些简单实用的方法,供大家参考吧。程序中应用了starsmoon的程序和例子,在此表示感谢。SimWe个人空间U!kilb7o.j9[8O
SimWe个人空间ipr ObA`
starsmoon的链接地址:http://www.simwe.com/forum/viewt ... 2%26filter%3Ddigest
r,TR4e ^tl&LN6q0
LVe#U*}_h0 本例子采用starsmoon的例子,并分为两层,第一层为地表面,第二层为soil和rock的分界面(可以是曲面,用sufer插值生成,但是注意网格要对应。)。FLAC3d中在z方向剖分为2个单元,x,y方向剖分为1个单元。这些在command.txt中可以修改。详细设置见命令流。下面贴出生成的模型的图片。
D7M }mQ F0

d1m+s9Y+f,v(n0Sufer_Modeling.rarSimWe个人空间 br5dnAi(s
(2007-02-01 18:42:24, Size: 16.1 kB, Downloads: 21)

:x9qJc#O4`!F0

TAG:

尘埃落定 haitang 发布于2007-02-01 18:45:13
sufer的使用
sufer的使用,读入数据,生成图形。SimWe个人空间,JY*N_uz
这个系统挺麻烦的,我想在回复中贴图片,还得等2分钟阿。
示图1.jpg

示图1.jpg

示图2.JPG

示图2.JPG

尘埃落定 haitang 发布于2007-02-01 18:49:45
用kriging法建出的地表模型。
用kriging法建出的地表模型。如下所示。
\0e
J.i]L5dJ[SimWe个人空间
第二个为Nod.grd。存储了插值后网格点的高程信息。
示图3__Sufer模型.jpg

示图3__Sufer模型.jpg

尘埃落定 haitang 发布于2007-02-01 18:53:41
再贴grd图形
呵呵。仿真对字数有限制,不达到字数还不给回复。e.simwe.com]&y1WbT\ U9e(w
下一张为生成的flac3d模型
示图41.JPG

示图41.JPG

示图4_Flac3d模型.JPG

示图4_Flac3d模型.JPG

尘埃落定 haitang 发布于2007-02-01 18:56:16
再贴两张
再贴两张ansys和3dec的模型效果图。详细可以用flac3d执行命令流command.txt,即可生成flac3d,ansys和3dec的模型的命令流。
Y&HbS5`/U@M&De.simwe.comcE#Tl'fm4S
[ 本帖最后由 haitang 于 2007-2-1 18:58 编辑 ]
示图4_Ansys模型.JPG

示图4_Ansys模型.JPG

示图4_3DEC模型.JPG

示图4_3DEC模型.JPG

君之枫(benjackxu)的个人空间 benjackxu 发布于2007-02-01 19:24:46
haitang (海棠) ,you are knight-errant and a strong man here.
君之枫(benjackxu)的个人空间 benjackxu 发布于2007-02-01 19:27:14

QUOTE:

原帖由 haitang 于 2007-2-1 18:42 发表仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,c#N7VG|/mdE
应斑竹君之枫的邀请,偶也来班门弄斧,谈谈复杂地形建模的一些方法。今天,仔细看了starsmoon大牛的《FLAC中关于曲面的生成》,很受启发,用Sufer来建模,是一个比较容易的方法。由于Sufer生成的是规则的网格,所 ...
仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM+n8b.}*s(mU$r^
H*x!Y0Y"N*J
三棱柱代替四棱柱,好想法,我以前研究top.fis时,没想到这个,呵呵,学习了
sch的个人空间 sch 发布于2007-02-01 22:35:14
海棠写fish很强啊!生成楔形体单元不错!
W&I7s
O5Zg|Simwe.com|仿真|设计|有限元|虚拟仪器
如何在建好的地形上建一个建筑物例如拱坝,还请海棠fish高手设计一下如何解决。如果能够解决这个问题,那么就不用再通过ansys进行建模了,生成网格单元计算精度也就提高了!
尘埃落定 haitang 发布于2007-02-02 09:37:10
呵呵。双曲拱坝用fish实现比较难,用ansys比较方便。SimWe个人空间@.~4ll!aqFX
多个地层的曲面插值数据放在Sufer_Data.dat中。e.simwe.com/wJNy&c        ?
X,Y, Z1, Z2, ... Zn|Simwe.com|仿真|设计|有限元|虚拟仪器R} ]:z7N {6~lE7r
0,0,5.2109784409276,2.210978441
+WW.A[0pn|Simwe.com|仿真|设计|有限元|虚拟仪器2,0,5.2530368758511,2.253036876|Simwe.com|仿真|设计|有限元|虚拟仪器YVq
xUcq8N

4,0,5.2963541616273,2.296354162|Simwe.com|仿真|设计|有限元|虚拟仪器z0l{&~[7G7c
6,0,5.3423741282441,2.342374128
        `iDT0@+es8,0,5.3926157829582,2.392615783
2qc l u%RsSimWe个人空间10,0,5.4485340056776,2.448534006
)['pM.q-R*@仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent我这里只是简单把第一层减去3m。其实也可以用单独的曲面。但是用对应相同的x,y来插值。
flywing140发布于2007-02-02 11:52:52
用surfer导到flac3d里面的模型好像不能进行划分group的操作,导入flac后就是一个整体,请教诸位,可有办法解决啊?
尘埃落定 haitang 发布于2007-02-02 12:12:44
命令流中考虑到了,不同的地层划分为不同的group,这个例子中分成两个group。soil和rock。详细请看命令流。
flywing140发布于2007-02-02 12:56:37
请教haitang (海棠)老师,您是在命令流中控制了地层的划分,可是若该层面很复杂,或者层面起伏很大,该怎么做啊?还有就是断层,以及开挖面应该怎样做进去啊?
尘埃落定 haitang 发布于2007-02-02 13:24:26
由于用三棱柱生成单元,所以在复杂的地层都可以模拟的很好,只是增加了单元数。我觉得可以将三棱柱和四棱柱结合起来,用四个顶点的相差容许度来判断是否生成四棱柱。如果地形扭曲较大,则拆分成两个三棱柱。e.simwe.com!v+g7?4~-D6@x
对于断层和开挖面的模拟。程序中生成了ANSYS模型的命令流,这一步可以在ansys中处理。利用工作平面切割。是一个好办法,可参鉴君之枫。如果用3dec,开挖和断层处理就更方便了,详细看3dec的帮助文件。
紫水晶发布于2007-02-02 22:24:40
我想问一下楼主,我如果想借用一下你开发的fish程序建立三维模型,是不是把sufer里面的点坐标改成自己的就能用啊?
尘埃落定 haitang 发布于2007-02-03 10:05:58
FISH程序说明
new
TWM_%i~Y'hL[SimWe个人空间def para_set
Y        wf"h}(AW
{$Y仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM
suferfile = 'Sufer_Data.dat'   ;File from Sufer which contains the layers' coords.仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluentc-c$}WY)o.i
Tablefile = 'Table_data.dat'   ;File which contains the table.
0nAn:f ?SimWe个人空间 AnsysFile = 'Ansys_Model.dat'  ;Ansys  Model
-ED
^y7s|Simwe.com|仿真|设计|有限元|虚拟仪器
D3DECFile = 'D3dec_Model.dat'  ;3dec   Model仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent0m
Mk+s_s%x

FlacFile  = 'Flac3D_Model.dat' ;Flac3D Model q*kV5{ c
Col_Num   = 36           ;Sufer中插值网格X方向上的插值点个数
kE)C+y[){P!O YSSimWe个人空间 Row_Num   = 26         ;Sufer中插值网格Y方向上的插值点个数
:A6qx0Y*U&T4\仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent dx_size   = 2            ;X方向上的单元的大小(m)
W5Psmou6D o7oa仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM dy_size   = 2            ;Y方向上的单元的大小(m)仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent$M)y"]k`4O1J
z_base    = 0.0        ;模型z方向底座高程     
!r,SIBGA#}'N仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM xor       = 0.0          ;模型左下角的x坐标

]U
w3T
M3USimWe个人空间
yor       = 0.0          ;模型左下角的y坐标|Simwe.com|仿真|设计|有限元|虚拟仪器 V0f{b3Lk3\YaQ&m
n_zon_col = Col_Num - 1        SF&QQD$dd)qd
n_zon_row = Row_Num - 1
"ej3RsgN xdiv      = 1              ;flac模型中每个单元在x方向上的剖分个数
{qBTWL仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent ydiv      = 1             ;flac模型中每个单元在y方向上的剖分个数仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent0Y:b1t~|g4c:|
zdiv      = 2            ;flac模型中每个单元在z方向上的剖分个数
;P;GHu4R}2B-?R3A \e.simwe.comend
+tv1oc'_9lT1`7zxP仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluentpara_set

RZ7Q
r&_N2ke.simwe.com
仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent U2ix
D%MndRT

构建的sufer插值数据文件如下:
? S+?AUkcVU-----------------------
^jBg%JDPU仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAMx坐标,y坐标,第一层插值高程,第二层插值高程。
;Wz0k#~,g仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM0,0,5.2109784409276,2.210978441仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluento8J
n6w)s X

2,0,5.2530368758511,2.253036876
/T        ]T7rAw1_&d?V仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM4,0,5.2963541616273,2.296354162
:X;f-_%@2cQQe.simwe.com6,0,5.3423741282441,2.342374128
\XV \l%l|Simwe.com|仿真|设计|有限元|虚拟仪器8,0,5.3926157829582,2.392615783

n mWMA9S!W仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent
... .... ... ...e.simwe.com"t
t:g1T#wZ
lr

这个例子中,只有考虑两层,第一层为地貌,第二层为基岩分界面。如果要多考虑几个地层,可以构建sufer数据文件
z,?4^]!c+ae.simwe.comx坐标,y坐标,第一层插值高程,第二层插值高程,第三层插值高程,... ... ...
"JQ9oS.U
O Y|Simwe.com|仿真|设计|有限元|虚拟仪器
相应的在程序中要加入第三层的fish模块,参照第二层的做法复制代码即可。|Simwe.com|仿真|设计|有限元|虚拟仪器%Y*B)? u9Ju
仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluento.l3t&{3}#Fm}9M
多层地层插值信息在flac中的table存储格式在Table_data.dat,请自行查看。
君之枫(benjackxu)的个人空间 benjackxu 发布于2007-02-03 12:41:21
其实这个方法与手册中FISH LIB中的那个TOPO.FIS的思路如出一辙:思路就是沿x、y向采用条柱不停的循环累加而成。手册中的只不过是只能考虑单一地层,haitang进行了进一步的开发,拓展到了能考虑两层、三层,甚好,学习一下。这个对编程基础好的朋友来说看懂不是难事,我由于编程能力太差,对于两层的问题没法解决,所以最后才转求ANSYS的。
ansys2007发布于2007-02-03 13:48:43
超级棒!!!!!狠顶!!!!!!!!
Z        pv
a5R"_|Simwe.com|仿真|设计|有限元|虚拟仪器
但想问一下就象这个图,那个Z=0平面以下如果是基岩,Z以上的隆起都是堆沙,想把他们分成两组,他们带自然休止角的过渡隆起的地方如果将那地方的柱体也分几个Z_size的话会造成单元十分紧密。。。。。请问这个问题有没有什么办法解决呀,十分头痛。。。仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAMB6o8p$?9P"Q'STq
是不是要用IF一下,如果高度太下就让他一个,达到一定高度就可以多分,,,是这样吗?我编程太菜了,,,唉```````
{5389ADB4-5957-4B2A-A112-6E97AEF9F800}.JPG

{5389ADB4-5957-4B2A-A112-6E97AEF9F800}.JPG

君之枫(benjackxu)的个人空间 benjackxu 发布于2007-02-03 14:15:13

QUOTE:

原帖由 ansys2007 于 2007-2-3 13:48 发表
S&^)@%b t/b)N+@仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM超级棒!!!!!狠顶!!!!!!!!
5{Q7g#e?(A8yw8RO仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM但想问一下就象这个图,那个Z=0平面以下如果是基岩,Z以上的隆起都是堆沙,想把他们分成两组,他们带自然休止角的过渡隆起的地方如果将那地方的柱体也分几个Z_size的话会造 ...
i9Tck&y8j
*l9}'`p9F Xr仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM你这个问题以前我建模的时候也有这个疑惑,由于在竖直方向上,模型等分为一样的份数,这样如果地形本身起伏比较大的话,会造成有些地方网格很密,虽然大多数情况下,这种网格密集地区与力学分析时应力集中地带相一致,满足网格细化加密的要求,但感觉不是很通用。因此,如果要有更好的网格,且相邻网格大小比较协调的话,这种问题还是在其它有限元软件里解决为好。如果FLAC3D的建模顺序是先建几何实体模型,然后再划分网格的话,相信他的应用领域和人群会扩大很多。估计这和FLAC3D初期研发的定位有关系,记得它早起版本是以隧道网格为图标的,可能先前是应用隧道等地下工程领域的吧。我也实在搞不明白,手册中出现的gen surface之类的用来建空间曲面的命令有什么用,想来是留待以后进一步开发的吧。
newbamor发布于2007-02-04 11:00:08
z_size    = 10 代表什么意思?具体修改程序对于初学者有点难度,楼主能不能修改一下程序,能应用于多个地层,这样更加具有通用性!
chunhuo420的个人空间 chunhuo420 发布于2007-02-05 08:15:54
这么好的帖子加5分都不为过,嘎嘎。。。。。。。。。。。
chunhuo420的个人空间 chunhuo420 发布于2007-02-05 21:34:47
请问如何控制小数点后的位数
J'E n,N,r
k*?2@m#P仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM
如:生成的Flac3D_Model.dat中仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM8fJ6gDp'Iz.tE
gen zon wedge p0  0.0000e+000  0.0000e+000  4.3060e+000 p1  0.0000e+000  2.0000e+000  2.2110e+000 p2  0.0000e+000  0.0000e+000  5.2110e+000 p3  2.0000e+000  0.0000e+000  4.3657e+000 &
!J3Zy-@~MB'~+phKOc p4  0.0000e+000  2.0000e+000  5.2461e+000 p5  2.0000e+000  0.0000e+000  5.2530e+000 size 1 2 1         Q ARF;R6P

8cQ7a{1|1@ S)@"J|Simwe.com|仿真|设计|有限元|虚拟仪器小数点后的位数韦4位,能不能控制为2位或者其他的,谢谢。。。??
我来说两句

(可选)

日历

« 2009-01-08  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 2400
  • 日志数: 7
  • 图片数: 1
  • 文件数: 1
  • 建立时间: 2006-06-09
  • 更新时间: 2007-02-03

RSS订阅

Open Toolbar