找回密码
 注册
Simdroid-非首页
查看: 743|回复: 17

[命令/FISH] 我编的一个求MC模型单元安全度的FISH程序

[复制链接]
发表于 2007-10-3 21:37:23 | 显示全部楼层 |阅读模式 来自 北京
我编的一个求MC模型单元安全度的FISH程序,欢迎大家调试,并提出意见和建议!!

gen zone brick  &
p0 0 0 0 p1 2 0 0 p2 0 1 0 p3  0 0 2 &
size 2 1 2

config zextra 1
def saf
p_z=zone_head
loop while p_z # null
s1=z_sig1(p_z)
s3=z_sig3(p_z)
ALFA1=z_prop(p_z,'fri')
c1=z_prop(p_z,'coh')
shang=s1-s3
xia=2* c1*cos(alfa1*pi/180)-(s1+s3)*sin(alfa1*pi/180)
f1=shang/xia
z_extra(p_z,1) = f1
pnt=z_next(p_z)
endloop
end

odel mohr
prop density = 2000.0 bulk = 1.0E8 shear = 3.0E7 coh 12380  tens 0 &
friction = 20 dilation = 20
fix x y z range z -0.1 0.1
fix y range y -0.1 0.1
fix y range y 0.9 1.1
set gravity 0,0, -10.0

saf
pl con zextra 1
solve

[ 本帖最后由 ssw1216 于 2007-10-7 00:34 编辑 ]
发表于 2007-10-6 20:20:41 | 显示全部楼层 来自 上海
Simdroid开发平台
原帖由 ssw1216 于 2007-10-3 21:37 发表
我编的一个求MC模型单元安全度的FISH程序,欢迎大家调试,并提出意见和建议!!

def saf
    p_z=zone_head
    loop while p_z # null
        s1=z_sig1(p_z)
        s3=z_sig3(p_z)
        ALFA1=z_prop(p_z,'fri')
        c1=z_prop(p_z,'coh')
        shang=s1-s3
        xia=2* c1*cos(alfa1*pi/180)-(s1+s3)*sin(alfa1*pi/180)
        f1=shang/xia
        z_extra(p_z,1) = f1
        pnt=z_next(p_z)
   endloop
end
saf
pl con zextra 1



1.死循环,将pnt改为p_z
2.将后两句放到step 或solve的后面

[ 本帖最后由 mathing 于 2007-10-6 20:21 编辑 ]
回复 1 不支持 0

使用道具 举报

 楼主| 发表于 2007-10-3 21:39:52 | 显示全部楼层 来自 北京
如果太慢,可以把调整模型单元的数量!
回复 不支持

使用道具 举报

 楼主| 发表于 2007-10-6 19:09:25 | 显示全部楼层 来自 北京
短短几行,请版主看下,到底出了什么问题,几个单元也运行的机子直“冒烟”? :'( :'( :'( :'( :'(
回复 不支持

使用道具 举报

 楼主| 发表于 2007-10-6 23:47:21 | 显示全部楼层 来自 北京
谢谢,我后来发现了,呵呵
现在可以运行了,但是感觉不合逻辑,mathing你帮我看下,这个边坡的结果啊
回复 不支持

使用道具 举报

 楼主| 发表于 2007-10-6 23:54:09 | 显示全部楼层 来自 北京
怎么大的那么大,小的那么小。
最安全的地方最危险?
最危险的地方很安全?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2007-10-9 08:59:39 | 显示全部楼层 来自 湖北武汉
1.sig1,sig3均为负
2.sig3是最大主应力
这两个因素你考虑一下!
回复 不支持

使用道具 举报

 楼主| 发表于 2007-10-9 09:07:29 | 显示全部楼层 来自 北京
谢谢,不过附件里面考虑了,都乘了负号
_sig3=-z_sig1(p_z)
_sig1=-z_sig3(p_z)
ALFA1=z_prop(p_z,'fri')
c1=z_prop(p_z,'coh')
aa=_sig1-_sig3
bb=2* c1*cos(alfa1*pi/180)-(_sig1+_sig3)*sin(alfa1*pi/180)
f1=aa/bb
z_extra(p_z,1) = f1
p_z=z_next(p_z)  ;p_z怎么会忘了改
endloop
end
回复 不支持

使用道具 举报

发表于 2007-10-9 10:20:43 | 显示全部楼层 来自 江苏南京
把修改好的发上来一份好么!楼主!
回复 不支持

使用道具 举报

发表于 2007-11-21 16:26:53 | 显示全部楼层 来自 重庆沙坪坝区
顶呱呱
回复 不支持

使用道具 举报

发表于 2007-11-23 09:46:41 | 显示全部楼层 来自 北京
楼主的安全度公式的分子和分母搞反了,另,按莫尔库仑准则定义的单元安全度好像不是这么简单,没考虑受拉破坏情况
回复 不支持

使用道具 举报

发表于 2007-11-25 09:42:47 | 显示全部楼层 来自 重庆沙坪坝区
原帖由 wolf2005 于 2007-11-23 09:46 发表
楼主的安全度公式的分子和分母搞反了,另,按莫尔库仑准则定义的单元安全度好像不是这么简单,没考虑受拉破坏情况

那该怎么办啊,希望能够继续补充啊。
回复 不支持

使用道具 举报

 楼主| 发表于 2007-11-26 21:58:20 | 显示全部楼层 来自 北京
谢谢wolf2005,我把修改好的发上来。哪里有这方面的各种模型的安全度定义资料,推荐一下
谢谢

config zextra 1
def saf
p_z=zone_head
   loop while p_z # null
       s1=-z_sig3(p_z)
       s3=-z_sig1(p_z)
      ALFA1=z_prop(p_z,'fri')
      c1=z_prop(p_z,'coh')
     xia=s1-s3  ;;;改了
     shang=2* c1*cos(alfa1*pi/180)-(s1+s3)*sin(alfa1*pi/180)  ;;改了
        f1=shang/xia
       z_extra(p_z,1) = f1
       p_z=z_next(p_z)
   endloop
end
回复 不支持

使用道具 举报

 楼主| 发表于 2007-11-26 22:02:20 | 显示全部楼层 来自 北京
贴张计算结果
感觉不错
不过的确没考虑抗拉

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2008-2-12 13:34:46 | 显示全部楼层 来自 湖南长沙
还可以!!!!!!!!!!!!!!!!
回复 不支持

使用道具 举报

发表于 2011-3-27 00:24:12 | 显示全部楼层 来自 四川成都
;FLAC常用FISH函数2—单元安全系数计算   Post By:2010-8-25 22:03:17
;限于MC模型,且考虑抗拉安全系数:

config zextra 1
def _strength
  p_z = zone_head
  if z_model(p_z) = 'mohr' then
        _fric = z_prop( p_z, 'friction' )
        _coh = z_prop( p_z, 'cohesion' )
        _ten = z_prop( p_z, 'Tension' )
        _sinfric = sin( _fric/180.0 * 3.1415927 )   ;= sin(phi)
        _cosfric = cos( _fric/180.0 * 3.1415927 )  ;= cos(phi)
        _c_cosfric = _coh * _cosfric     ;= coh * cos(phi)

;压为正,拉为负
        if  z_sig3(p_z) > 0 then
             _sig3 = -z_sig3(p_z)
        else
             _sig3 = abs(z_sig3(p_z))
        endif
        if  z_sig1(p_z) > 0 then
             _sig1 = -z_sig1(p_z)
        else
             _sig1 = abs(z_sig1(p_z))
        endif

        _sig_avg = ( _sig1 + _sig3 )/2.0        ; = (sig1 + sig3)/2
        _sig_rad = ( _sig1 - _sig3 )/2.0         ; = (sig1 + sig3)/2
        ;;抗剪强度应力比
        z_extra(p_z,1)= ( _c_cosfric + _sig_avg * _sinfric)/_sig_rad
        ;;抗拉强度应力比
        ;if _sig3 < 0 then        ;;_sig3 < 0则说明最大主应力方向受拉
        ;_fos_ten = _ten/ abs(_sig3)   ;;抗拉强度比
        ;;获得剪切、拉强度比最小值
        ;z_extra(p_z,1) = min(z_extra(p_z,1) ,_fos_ten)
        ;endif
      else
  endif
end

;solve
_strength
回复 不支持

使用道具 举报

发表于 2013-11-14 20:27:49 | 显示全部楼层 来自 湖南长沙
强大的神人,谢谢了。
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-7 23:07 , Processed in 0.056045 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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