自编FLAC3d程序,用于自编强度折减法的初始应力的读取和写入
本帖最后由 lindeboge 于 2011-8-17 12:19 编辑在陈育民写的flac3d书中第十四章有自编强度折减法计算边坡安全系数。本人想用三维的计算,但里边自重应力场的求解在循环内,也就是每次循环都要一次自重应力的求解,而我的模型较大,每次自重求解就要3个小时,所以想编写此小程序段,将计算过的初始应力读取出来,在自编折减的循环里只写入应力状态即可,不必参与循环。此前leozhong大侠已经写过类似程序,但我认为自己这个更为简洁一些,所以也来发一下,欢迎大家提出宝贵意见。
n
rest elas
def get_initial_stress
array initial_stress(6,83700)
pnt=zone_head
loop while pnt # null
zone_id=z_id(pnt)
initial_stress(1,zone_id)=string(z_sxx(pnt))
initial_stress(2,zone_id)=string(z_syy(pnt))
initial_stress(3,zone_id)=string(z_szz(pnt))
initial_stress(4,zone_id)=string(z_sxy(pnt))
initial_stress(5,zone_id)=string(z_sxz(pnt))
initial_stress(6,zone_id)=string(z_syz(pnt))
pnt=z_next(pnt)
endloop
end
get_initial_stress
model null
model m
def write_initial_stress
pnt=zone_head
loop while pnt # null
zone_id=z_id(pnt)
z_sxx(pnt)=float(initial_stress(1,zone_id))
z_syy(pnt)=float(initial_stress(2,zone_id))
z_szz(pnt)=float(initial_stress(3,zone_id))
z_sxy(pnt)=float(initial_stress(4,zone_id))
z_sxz(pnt)=float(initial_stress(5,zone_id))
z_syz(pnt)=float(initial_stress(6,zone_id))
pnt=z_next(pnt)
endloop
end
write_initial_stress
pl con sxx
注解:elas为算完初始应力后保存的文件 厉害,顶你! 牛人啊,给我很多帮助,学习一下! 顶~~
~~
~~
~~
~ 看来牛人确实很多啊都懂编程有目标了 顶,好东西!! 好东西,谢谢分享。 很好的思路 不错,学习学习 把应力换成位移命令流是什么样的呢? 请问lz怎样计算地震作用下的安全系数,怎么提取每个时刻的应力?有没有可参考的程序? 向师傅学习 好东西,顶一个! 顶!!!
页:
[1]