lindeboge 发表于 2011-8-17 09:00:57

自编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为算完初始应力后保存的文件

chunlei0715 发表于 2011-8-17 12:25:35

厉害,顶你!

xiangyiming 发表于 2011-8-18 14:48:04

牛人啊,给我很多帮助,学习一下!

faye100 发表于 2011-8-18 15:42:20

顶~~
~~
~~
~~


~

binggehaoyang 发表于 2011-10-2 13:08:41

看来牛人确实很多啊都懂编程有目标了

pindar99 发表于 2011-11-17 01:01:43

顶,好东西!!

adejoey 发表于 2012-3-13 07:45:40

好东西,谢谢分享。

aaclee 发表于 2012-3-14 16:17:47

很好的思路

sdjzuzdh 发表于 2012-3-14 17:58:52

不错,学习学习

87642189 发表于 2012-3-16 20:49:03

把应力换成位移命令流是什么样的呢?

smartfly 发表于 2012-3-22 10:17:38

请问lz怎样计算地震作用下的安全系数,怎么提取每个时刻的应力?有没有可参考的程序?

wangyin114 发表于 2012-4-12 14:51:39

向师傅学习

w511967305 发表于 2012-5-28 12:35:38

好东西,顶一个!

anonymous 发表于 2012-6-2 16:48:52

顶!!!
页: [1]
查看完整版本: 自编FLAC3d程序,用于自编强度折减法的初始应力的读取和写入