海到尽头天作岸,山临绝顶我为峰!
利用Sufer和FISH进行复杂地形建模
查看( 388 ) /
评论( 94 )
TAG:
-
haitang 发布于2007-02-01 18:45:13
-
sufer的使用
sufer的使用,读入数据,生成图形。
这个系统挺麻烦的,我想在回复中贴图片,还得等2分钟阿。
-
haitang 发布于2007-02-01 18:49:45
-
用kriging法建出的地表模型。
用kriging法建出的地表模型。如下所示。
第二个为Nod.grd。存储了插值后网格点的高程信息。
-
haitang 发布于2007-02-01 18:53:41
-
再贴grd图形
呵呵。仿真对字数有限制,不达到字数还不给回复。
下一张为生成的flac3d模型
-
haitang 发布于2007-02-01 18:56:16
-
再贴两张
再贴两张ansys和3dec的模型效果图。详细可以用flac3d执行命令流command.txt,即可生成flac3d,ansys和3dec的模型的命令流。
[ 本帖最后由 haitang 于 2007-2-1 18:58 编辑 ]
-
benjackxu 发布于2007-02-01 19:24:46
-
haitang (海棠) ,you are knight-errant and a strong man here

.
-
benjackxu 发布于2007-02-01 19:27:14
-
QUOTE:
原帖由 haitang 于 2007-2-1 18:42 发表
应斑竹君之枫的邀请,偶也来班门弄斧,谈谈复杂地形建模的一些方法。今天,仔细看了starsmoon大牛的《FLAC中关于曲面的生成》,很受启发,用Sufer来建模,是一个比较容易的方法。由于Sufer生成的是规则的网格,所 ...
三棱柱代替四棱柱,好想法,我以前研究top.fis时,没想到这个,呵呵,学习了
。
-
sch 发布于2007-02-01 22:35:14
-
海棠写fish很强啊!生成楔形体单元不错!
如何在建好的地形上建一个建筑物例如拱坝,还请海棠fish高手设计一下如何解决。如果能够解决这个问题,那么就不用再通过ansys进行建模了,生成网格单元计算精度也就提高了!
-
haitang 发布于2007-02-02 09:37:10
-
呵呵。双曲拱坝用fish实现比较难,用ansys比较方便。
多个地层的曲面插值数据放在Sufer_Data.dat中。
X,Y, Z1, Z2, ... Zn
0,0,5.2109784409276,2.210978441
2,0,5.2530368758511,2.253036876
4,0,5.2963541616273,2.296354162
6,0,5.3423741282441,2.342374128
8,0,5.3926157829582,2.392615783
10,0,5.4485340056776,2.448534006
我这里只是简单把第一层减去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
-
由于用三棱柱生成单元,所以在复杂的地层都可以模拟的很好,只是增加了单元数。我觉得可以将三棱柱和四棱柱结合起来,用四个顶点的相差容许度来判断是否生成四棱柱。如果地形扭曲较大,则拆分成两个三棱柱。
对于断层和开挖面的模拟。程序中生成了ANSYS模型的命令流,这一步可以在ansys中处理。利用工作平面切割。是一个好办法,可参鉴君之枫。如果用3dec,开挖和断层处理就更方便了,详细看3dec的帮助文件。
-
紫水晶发布于2007-02-02 22:24:40
-
我想问一下楼主,我如果想借用一下你开发的fish程序建立三维模型,是不是把sufer里面的点坐标改成自己的就能用啊?
-
haitang 发布于2007-02-03 10:05:58
-
FISH程序说明
new
def para_set
suferfile = 'Sufer_Data.dat' ;File from Sufer which contains the layers' coords.
Tablefile = 'Table_data.dat' ;File which contains the table.
AnsysFile = 'Ansys_Model.dat' ;Ansys Model
D3DECFile = 'D3dec_Model.dat' ;3dec Model
FlacFile = 'Flac3D_Model.dat' ;Flac3D Model
Col_Num = 36 ;Sufer中插值网格X方向上的插值点个数
Row_Num = 26 ;Sufer中插值网格Y方向上的插值点个数
dx_size = 2 ;X方向上的单元的大小(m)
dy_size = 2 ;Y方向上的单元的大小(m)
z_base = 0.0 ;模型z方向底座高程
xor = 0.0 ;模型左下角的x坐标
yor = 0.0 ;模型左下角的y坐标
n_zon_col = Col_Num - 1
n_zon_row = Row_Num - 1
xdiv = 1 ;flac模型中每个单元在x方向上的剖分个数
ydiv = 1 ;flac模型中每个单元在y方向上的剖分个数
zdiv = 2 ;flac模型中每个单元在z方向上的剖分个数
end
para_set
构建的sufer插值数据文件如下:
-----------------------
x坐标,y坐标,第一层插值高程,第二层插值高程。
0,0,5.2109784409276,2.210978441
2,0,5.2530368758511,2.253036876
4,0,5.2963541616273,2.296354162
6,0,5.3423741282441,2.342374128
8,0,5.3926157829582,2.392615783
... .... ... ...
这个例子中,只有考虑两层,第一层为地貌,第二层为基岩分界面。如果要多考虑几个地层,可以构建sufer数据文件
x坐标,y坐标,第一层插值高程,第二层插值高程,第三层插值高程,... ... ...
相应的在程序中要加入第三层的fish模块,参照第二层的做法复制代码即可。
多层地层插值信息在flac中的table存储格式在Table_data.dat,请自行查看。
-
benjackxu 发布于2007-02-03 12:41:21
-
其实这个方法与手册中FISH LIB中的那个TOPO.FIS的思路如出一辙:思路就是沿x、y向采用条柱不停的循环累加而成。手册中的只不过是只能考虑单一地层,haitang进行了进一步的开发,拓展到了能考虑两层、三层,甚好,学习一下。这个对编程基础好的朋友来说看懂不是难事,我由于编程能力太差,对于两层的问题没法解决,所以最后才转求ANSYS的。
-
ansys2007发布于2007-02-03 13:48:43
-
超级棒!!!!!狠顶!!!!!!!!
但想问一下就象这个图,那个Z=0平面以下如果是基岩,Z以上的隆起都是堆沙,想把他们分成两组,他们带自然休止角的过渡隆起的地方如果将那地方的柱体也分几个Z_size的话会造成单元十分紧密。。。。。请问这个问题有没有什么办法解决呀,十分头痛。。。
是不是要用IF一下,如果高度太下就让他一个,达到一定高度就可以多分,,,是这样吗?我编程太菜了,,,唉```````
-
benjackxu 发布于2007-02-03 14:15:13
-
QUOTE:
原帖由 ansys2007 于 2007-2-3 13:48 发表
超级棒!!!!!狠顶!!!!!!!!
但想问一下就象这个图,那个Z=0平面以下如果是基岩,Z以上的隆起都是堆沙,想把他们分成两组,他们带自然休止角的过渡隆起的地方如果将那地方的柱体也分几个Z_size的话会造 ...
你这个问题以前我建模的时候也有这个疑惑,由于在竖直方向上,模型等分为一样的份数,这样如果地形本身起伏比较大的话,会造成有些地方网格很密,虽然大多数情况下,这种网格密集地区与力学分析时应力集中地带相一致,满足网格细化加密的要求,但感觉不是很通用。因此,如果要有更好的网格,且相邻网格大小比较协调的话,这种问题还是在其它有限元软件里解决为好。如果FLAC3D的建模顺序是先建几何实体模型,然后再划分网格的话,相信他的应用领域和人群会扩大很多。估计这和FLAC3D初期研发的定位有关系,记得它早起版本是以隧道网格为图标的,可能先前是应用隧道等地下工程领域的吧。我也实在搞不明白,手册中出现的gen surface之类的用来建空间曲面的命令有什么用,想来是留待以后进一步开发的吧。
-
newbamor发布于2007-02-04 11:00:08
-
z_size = 10 代表什么意思?具体修改程序对于初学者有点难度,楼主能不能修改一下程序,能应用于多个地层,这样更加具有通用性!
-
chunhuo420 发布于2007-02-05 08:15:54
-
这么好的帖子加5分都不为过,嘎嘎。。。。。。。。。。。
-
chunhuo420 发布于2007-02-05 21:34:47
-
请问如何控制小数点后的位数
如:生成的Flac3D_Model.dat中
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 &
p4 0.0000e+000 2.0000e+000 5.2461e+000 p5 2.0000e+000 0.0000e+000 5.2530e+000 size 1 2 1
小数点后的位数韦4位,能不能控制为2位或者其他的,谢谢。。。??









