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

[命令/FISH] FLAC3d中非线性边界条件的施加

[复制链接]
发表于 2012-11-27 15:06:42 | 显示全部楼层 |阅读模式 来自 湖北武汉
本帖最后由 pqt01 于 2012-11-27 15:08 编辑

各位大牛,在FLAC3D里怎么施加非线性边界条件(含根号),比如

SXX=11+ 0.033*H + 0.509*H^(1/2) +0.000415*H^2     (H为垂直深度)

程序代码怎么编写呢?
许多书籍里只提到线性边界条件的施加,如apply sxx -2.892e7 grad 0 0 0.024e6 range x -0.1 0.1
对于非线性边界,如何设置呢?谢谢!
 楼主| 发表于 2012-11-28 09:30:45 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
怎么没有回复?
回复 不支持

使用道具 举报

发表于 2012-11-28 10:35:34 | 显示全部楼层 来自 上海
好像真没有这样的功能,我看了一下命令参考,apply的关键词里没有直接实现非线性边界的关键词。不知道新的版本里有没有。可能你得尝试用fish实现这个功能。
回复 不支持

使用道具 举报

 楼主| 发表于 2012-11-28 14:03:04 | 显示全部楼层 来自 湖北武汉
本帖最后由 benjackxu 于 2012-12-19 13:06 编辑

def stress_boundary
    pnt = gp_head
    loop while pnt # null
    H=gp_zpos(pnt)
    ax=11+ 0.033*H + 0.509*H^(1/2) +0.000415*H^2
         command
         apply sxx ax ran x ym1_a ym1_b
         apply sxx ax ran x ym2_a ym2_b
         endcommand
    endloop
end
stress_boundary
fish语句实现的是对每个节点赋值,遍历整个模型。边界荷载是在边界小范围内施加的。fish语句还是有些困难


回复 不支持

使用道具 举报

发表于 2012-12-19 11:41:25 | 显示全部楼层 来自 北京
太厉害了,学习了!
回复 不支持

使用道具 举报

发表于 2012-12-19 13:06:55 | 显示全部楼层 来自 云南昆明
pqt01 发表于 2012-11-28 14:03
def stress_boundary
    pnt = gp_head
    loop while pnt # null

加个if语句限定边界范围就可以实现了
回复 不支持

使用道具 举报

 楼主| 发表于 2012-12-19 21:45:42 | 显示全部楼层 来自 湖北武汉
按楼上的意见,代码如下:
def stress_boundaryxx
    pnt = gp_head
   
        loop while pnt # null
        xx=gp_xpos(pnt)
        if xx>ym1_a
          if xx<ym1_b
                H=gp_zpos(pnt)
                     ax=11+ 0.033*H + 0.509*H^(1/2) +0.000415*H^2
        endif
        endif
        command
              apply sxx ax ran x ym1_a ym1_b z H
            endcommand
        pnt=gp_next(pnt)
    endloop
end
stress_boundaryxx
还是有问题,主要的问题在下面的ran范围上
            command
              apply sxx ax ran x ym1_a ym1_b z H
            endcommand
如何将某深度处的应力施加到同一深度处的单元上?
回复 不支持

使用道具 举报

发表于 2016-8-1 16:28:07 | 显示全部楼层 来自 中国
pqt01 发表于 2012-12-19 21:45
按楼上的意见,代码如下:
def stress_boundaryxx
    pnt = gp_head

回复楼主,将z的范围调整一下,就可以了
command
     apply sxx ax ran x ym1_a ym1_b z H Hmax(Hmax模型最高高度)
endcommand
回复 不支持

使用道具 举报

发表于 2016-8-1 16:28:52 | 显示全部楼层 来自 中国
pqt01 发表于 2012-11-28 14:03
def stress_boundary
    pnt = gp_head
    loop while pnt # null

高手啊,学习了,谢谢
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-7 23:32 , Processed in 0.043584 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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