找回密码
 注册
Simdroid-非首页
楼主: benjackxu

[命令/FISH] 【原创】借用interface生成任意空间形状的弧形水面(修正版)

[复制链接]
发表于 2009-10-12 20:35:46 | 显示全部楼层 来自 江苏南京
非常不错~受教了,哈哈
回复 不支持

使用道具 举报

发表于 2009-10-12 22:38:45 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
我没有看懂21楼,男人的方法。基本就是把接触面放大点,再把模型四周删除一点,这样就可以做到接触面比模型大。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-10-14 15:35:13 | 显示全部楼层 来自 湖北武汉
42# cloud328

是用两套网格,一套用于生成水面之用,一套用于实际的分析,在这两个操作之后,生成水面,然后删除生成水面的那套网格。
回复 不支持

使用道具 举报

发表于 2009-10-14 16:58:59 | 显示全部楼层 来自 江苏南京
43# benjackxu

谢谢版主的解答。
我的问题是:版主的主要目的是为了建立复杂水面,而采用接触面的方法来做,但是这样做会出现在边角pp加不上的问题或是有奇异点。解决的方法如您和21楼“男人”所说,现在在同一个文件里面,建立两套网格,那复杂水面一定要用实际的网格才能生成。为什么21楼的男人说怎么简单怎么建呢?既然是简单的模型那又怎么能生成复杂的水面呢?那如果还是用计算的模型来生成水面的话,还是会出现上述问题。

当时我同学问我的时候,我第一个想法就是,既然边角只是局部没有加上,那我开始的时候就把网格模型取大点,比如水平我取21m,生成水面后,再把模型周围1m都删掉,这样不就解决了边界孔压施加不上的的问题了?

一点拙见,望版主解答。谢谢!
回复 不支持

使用道具 举报

 楼主| 发表于 2009-10-14 17:31:53 | 显示全部楼层 来自 湖北武汉
44# cloud328

见我在1楼发的修正版。
回复 不支持

使用道具 举报

发表于 2009-10-17 18:53:19 | 显示全部楼层 来自 北京
我们的做法是计算节点孔压直接赋值。
回复 不支持

使用道具 举报

发表于 2009-10-20 15:07:43 | 显示全部楼层 来自 重庆沙坪坝区
各位高手真是太厉害了!小弟不胜佩服!各位高手真是太厉害了!小弟不胜佩服
回复 不支持

使用道具 举报

发表于 2009-12-3 21:47:34 | 显示全部楼层 来自 广东江门
不错不错!!!强烈支持!!!
回复 不支持

使用道具 举报

发表于 2009-12-26 15:33:34 | 显示全部楼层 来自 湖南长沙
好贴
学习中
回复 不支持

使用道具 举报

发表于 2010-3-21 11:19:49 | 显示全部楼层 来自 广东广州
我用了楼主提供的命令流,在一个隧道的模型上加上水面;命令流如下:
new
;
gen zon cshell p0 0 0 0 p1 7 0 0 p2 0 51 0 p3 0 0 5.5 dim 5 5 5 5 size 2 51 10
group 'concrete liner'
;
;
gen zon cyl p0 0 0 0 p1 5 0 0
p2 0 51 0 p3 0 0 5 size 5 51 10

group tunnel range group 'concrete liner' not
;
;
gen zone brick p0 0 0 -4.5 p1 add 7 0 0 p2 add 0 51 0 p3 add 0 0 4.5 size 7 51 3

;
gen zone radcyl p0 0 0 0 p1 27 0 0 p2 0 51 0 p3 0 0 25 dim 7 5.5 7 5.5 size 5 51 10 8 rat 1 1 1 1.3
group one range group 'concrete liner'not group tunnel
not

;
gen zone brick p0 7 0 -4.5 p1 27 0 -15 p2 add 0 51 0 p3 7 0 0 p4 27 51 -15 p5 7 51 0 p6 27 0 0 p7 27 51 0 size 8 51 3 ratio 1.3 1 1
group two range group 'concrete liner'not group tunnel
not group one not

;
gen zone brick p0 0 0 -15 p1 add 27 0 0 p2 add 0 51 0 p3 0 0 -4.5 p4 27 51 -15 p5 0 51 -4.5 p6 7 0 -4.5 p7 7 51 -4.5 size 7 51 8 rat 1 1 0.7692307692307692
group three range group 'concrete liner'not group tunnel
not group two not

;
gen zone brick p0 0 0 25 p1 add 27 0 0 p2 add 0 51 0 p3 add 0 0 10 size 5 51 2
group four range group 'concrete liner'not group tunnel
not group one not group two not group three not

;
gen zone brick p0 27 0 25 p1 add 17 0 0 p2 add 0 51 0 p3 add 0 0 10 size 2 51 2 rat 2 1 1
group five range group 'concrete liner'not group tunnel
not group one not group two not group three not group four not

;
gen zone brick p0 27 0 -15 p1 add 17 0 0 p2 add 0 51 0 p3 add 0 0 40 size 2 51 8 rat 2 1 1
group six range group 'concrete liner'not group tunnel
not group one not group two not group three not group four not group five not

;
gen zone brick p0 27 0 -40 p1 add 17 0 0 p2 add 0 51 0 p3 add 0 0 25 size 2 51 2 rat 2 1 0.5
group seven range group 'concrete liner'not group tunnel
not group one not group two not group three not group four not group five not group six not

;
gen zone brick p0 0 0 -40 p1 add 27 0 0 p2 add 0 51 0 p3 add 0 0 25 size 7 51 2 rat 1 1 0.5
group eight range group 'concrete liner'not group tunnel
not group one not group two not group three not group four not
group five not group six not group


six not

;
;
group water_above range group four any group five any
group wate_below rang group water_above not
;

gen separate water_below
interface 1 wrap water_below water_above
set grav 0 9.81 0
water den 1000
;
;
def water_table
p_i=i_head
p_ie=i_elem_head(p_i)
loop while p_ie # null
;
;
P_gp1=ie_vert(p_ie,1)
P_gp2=ie_vert(p_ie,2)
P_gp3=ie_vert(p_ie,3)
;
x1=in_pos(p_gp1,1)-0.001)
y1=in_pos(p_gp1,2)-0.001
z1=in_pos(p_gp1,3)-0.001
x2=in_pos(p_gp2,1)+0.001
y2=in_pos(p_gp2,2)+0.001
z2=in_pos(p_gp2,3)+0.001

x3=in_pos(p_gp3,1)+0.001

y3=in_pos(p_gp3,2)+0.001
z3=in_pos(p_gp3,3)+0.001
command
water table face x1,y1,z1  x2,y2,z2  x3,y3,z3
endcommand
p_ie=ie_next(p_ie)( i$ j" X3 p/ E. c. n& Z: P
endloop
end


;

Model null range group water_below
Model null range group water_above
;
;
Attach face
Group a range group water_above
Group b range group water_below
;
Gen separate b
Interface 2 wrap b
Water_table

****bad pointer conversion 是怎么回事呢???
回复 不支持

使用道具 举报

发表于 2010-3-21 11:23:35 | 显示全部楼层 来自 广东广州
楼主:即便是用楼主提供的命令也是出现同样的问题
***bad pointer conversion
是怎么回事, 问题在哪里呢????
可能我对楼主的思路理解的不是很深吧
回复 不支持

使用道具 举报

发表于 2010-4-7 15:27:42 | 显示全部楼层 来自 湖南湘潭
都是高手啊,支持哦  顺便学习下啦
回复 不支持

使用道具 举报

发表于 2010-6-8 15:18:34 | 显示全部楼层 来自 浙江杭州
很强、很大!
回复 不支持

使用道具 举报

发表于 2010-7-31 18:57:20 | 显示全部楼层 来自 湖北武汉
请教,我用这种方法建立的水位面,如果是用比真实斜坡大点的模型生成水面,会因接触面只覆于模型局部(如地形较低的河流部位没有接触面),而使得模型的孔隙水压力不连续;若用简单模型——如六面体,那么生成水面的速度很慢,几乎是在真实模型生成水面速度的10倍。不知这是为什么?希望高手指导下!
回复 不支持

使用道具 举报

发表于 2010-8-10 09:16:16 | 显示全部楼层 来自 江西
非常有意义
回复 不支持

使用道具 举报

发表于 2010-8-26 15:34:45 | 显示全部楼层 来自 甘肃兰州
这个例子让我受益匪浅
回复 不支持

使用道具 举报

发表于 2011-7-25 16:25:10 | 显示全部楼层 来自 四川成都
学习。。。学习
回复 不支持

使用道具 举报

发表于 2011-8-3 11:39:25 | 显示全部楼层 来自 湖北武汉
学习了 很有帮助 谢谢楼主
回复 不支持

使用道具 举报

发表于 2011-8-4 10:54:24 | 显示全部楼层 来自 湖北武汉
感谢楼主辛苦的工作,谢谢分享
回复 不支持

使用道具 举报

发表于 2011-11-3 22:28:50 | 显示全部楼层 来自 陕西西安
学习一下

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-26 13:15 , Processed in 0.052893 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表