- 积分
- 0
- 注册时间
- 2009-2-14
- 仿真币
-
- 最后登录
- 1970-1-1
|
本人最近在计算一个沉井的实验模型,整个计算过程运算一遍的话需要3天。现在想采取一些办法缩短计算时间,这里我一方面适当减少了网格的数量,另一方面想改变加载的方式,运用table命令加载。下面先说明一下我之前的加载方法:
def load_level
;沉井顶部截面面积0.189m2
;沉井底部截面面积0.2466m2
area_up=0.189
;每级荷载大小0.5吨
add_load=0.5*10*1000
;总荷载
sum_load=0
;荷载级数
level=10*3
;加载位置
load_pos=caisson_pos(1)-ini_h
load_pos_up=load_pos+0.1
load_pos_down=load_pos-0.1
pnt=gp_near(0,0,0.27)
loop n(1,level)
sum_load=sum_load+add_load
;竖直向下载荷应力
stress=-sum_load/area_up
;保存文件名
file_name='load_level_'+string(n)+'.sav'
command
apply nstress stress range z load_pos_down load_pos_up group caisson
solve rat 5e-6
save file_name
endcommand
xtable(1,n)=0.5*(n-1)
ytable(1,n)=gp_zdisp(pnt)
endloop
end
通过一个函数 load_level来实现逐级加载,然后在每次计算结束后把监测点对应载荷和位移记录在table中,这样后处理时,就可以直接显示出荷载跟位移的关系曲线。这个方法的计算代价很大。
后面通过在手册上查询,知道加载的方式可以影响求解速度。手册上讲了两种方法,一种是运用函数,另一种就是运用table,我自己简单的测试了,的确速度会有提高。下面是我运用table后的加载方式:
先定义一个表,用来存放荷载级数和荷载的大小;
def load_table
loop n(1,30)
xtable(1,n)=0.5*n
ytable(1,n)=0.5*10000*n/0.189
endloop
end
下面是用来加载的函数
def load_level
;加载位置
load_pos=caisson_pos(1)-ini_h
load_pos_up=load_pos+0.1
load_pos_down=load_pos-0.1
command
hist gp zdisp 0 0 0.27
apply nstress -1.0 hist table 1 range z load_pos_down load_pos_up group caisson
solve rat 5e-6
endcommand
end
我的问题是,计算结束了后处理显示荷载位移曲线有点困难,我不知道怎么处理。plot hist 1 显示的是位移跟求解步数的曲线。希望各位高人伸出援手啊!这个是比较实际的问题了,国家支撑项目的实验部分。谢谢! |
|