24小时热门版块排行榜    

查看: 872  |  回复: 0
【悬赏金币】回答本帖问题,作者小刘的学习将赠送您 5 个金币

小刘的学习

新虫 (初入文坛)

[求助] 在FLAC3D5.0中,加入自定义本构模型后,动力计算出错

在FLAC3D中,桩土模型,土使用的自定义的循环软化模型,进行位移加载,然后出现“fool==dfool” 错误,这是模型哪里出错了吗?
命令流如下:

new
config dyn
set dyn off
config cppudm
model load  UWmodel.dll
gen zone radcyl p0 0 0 0 p1 20 0 0 p2  0 0 -6  p3  0 15 0 &
                         p4 20 0 -6 p5 0 15 -6 p6 20 15 0 p7 20 15 -6 &
                         p8 0.15 0 0 p9 0 0.15 0 p10 0.15 0 -6 p11 0 0.15 -6 &
                         size  3 15 15 15  ratio 1 1 1 1.15
group clay1 range z 0 -1.3
group clay2 range z -1.3 -6
gen zone reflect dd 270 dip 90
gen zone reflect dd  0 dip 90

interface 1 face range cylinder end1 (0,0,0)  end2 (0 ,0 ,-6.1) radius 0.16 &
                              cylinder end1 (0,0,0) end2 (0,0,-6.1) radius 0.14 not

gen zone cyl p0 0 0 7.2 p1 0.15 0 7.2 p2 0 0 1.2 p3 0 0.15 7.2 &
                    p4 0.15 0 1.2 p5 0 0.15 1.2 size 2 15 15
gen zone cyl p0 0 0 7.8 p1 0.15 0 7.8 p2 0 0 7.8 p3 0 0.15 7.8 &
                    p4 0.15 0 7.2 p5 0 0.15 7.2 size 2 10 15
gen zone reflect dd 270 dip 90 range z 1.2 7.8
gen zone reflect dd  0 dip 90 range z 1.2 7.8
group pile range z 1.2 7.8
ini z add -7.2 range group pile

range name=clay1 group clay1
range name=clay2 group clay2
range name=pile group pile

model  mohr range clay1
prop shear 2.04e7 bulk 4.42e7 range clay1
prop coh 28200 fric 2.9 range clay1

model  mohr range clay2
prop shear 2.04e7 bulk 4.42e7 range clay2
prop coh 28200 fric 2.9 range clay2

model  elastic range pile
prop bulk 4.42e7 shear  2.04e7 range pile

model mech null range z -0.1 0.61

interface 1 prop kn 1e7 ks 1e7 fric 1.5 coh 14100

fix x range x -20.1 -19.9
fix x range x 19.9 20.1
fix y range y -15.1 -14.9
fix y range y 14.9 15.1
fix x y z range z -6.1 -5.9

set grav 0 0 -10

water density 1000
water table origin 0,0,-1.3 normal 0 0 -1

ini dens 1570 range clay1
ini dens 1570 range clay2  
ini dens 1570 range pile

solve

model  elastic range pile
prop bulk 1.09e8 shear 8.17e7 range pile
ini dens  2500 range pile

solve

model UWmodel range clay1
prop Gmax 20400000 p0 45510  mm 0.5 PR 0.30 CC 28200 Fai 2.9 bb 432 nn 3.44 Rf 0.9 range clay1
prop TauRef 0.8 A0 0.05 Stpp 1 range clay1
prop dens 1570 range clay1

model UWmodel range clay2
prop Gmax 20400000 p0 45510  mm 0.5 PR 0.30 CC 28200 Fai 2.9 bb 432 nn 3.44 Rf 0.9 range clay2
prop TauRef 0.8 A0 0.05 Stpp 1 range clay2
prop dens 1570 range clay2

solve

set dyn on

ini state 0
ini  xv 0 yv 0 zv 0 xdisp 0 ydisp 0 zdisp 0

sel beam id=1 begin=(0,0,0.6) end=(0,0, 0) nseg=10
sel beam id=1 begin=(0,0,0) end=(0,0,-6) nseg=15
sel beam id=1 prop  emod=3.8964e10 nu=0.2 dens=2500 &
  xcarea=7.1e-2 xcj=3.976e-4 xciy=3.976e-4 xciz=0 &
pmoment=51200


sel node fix x y z xr yr zr range id=12

def xf_p1
      local ad = top_head
      local xftot = 0.0
      loop while ad # null
         local gp_pnt = mem(ad+1)
         local xf = gp_xfunbal(gp_pnt)
         xftot = xftot + xf
         ad = mem(ad)
      endloop
     xf_p1 = xftot
end

fix x range z 0.55 0.61 group pile

def init_ramp
   global udapp=0
   global udmax=2.5e-2
end
@init_ramp

def ramp
     while_stepping
     if dytime < 1 then
        udapp=udmax
         else
         if dytime>1
           if dytime<3 then
            udapp=-udmax
             else
             if dytime>3
                if dytime<5 then
                udapp=udmax
                  else
                  if dytime>5
                     if dytime<7 then
                         udapp=-udmax
                           else
                           if dytime>7
                              if dytime<8 then
                                   udapp=udmax
                              endif
                           endif
                     endif
                  endif
               endif
             endif
         endif
       endif
    endif
    local ad = top_head
     loop while ad # null
         local gp_pnt = mem(ad+1)
                 gp_xvel(gp_pnt) = udapp
                 ad = mem(ad)
     endloop
end

def find_add
       global top_head = null
       loop foreach local gp_pnt gp_list
               if gp_zpos(gp_pnt) > 0.59 then
                     local mem_head = get_mem(2)
                     mem(mem_head) = top_head
                     mem(mem_head+1) = gp_pnt
                     top_head = mem_head
                endif
        endloop
end
@find_add

hist add fish @xf_p1
hist add gp  xdisp 0 0 0.6
hist add gp xvel 0 0 0.6
set mech damp comb
set dyn multi on

solve age 28
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小刘的学习 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
信息提示
请填处理意见