乐于分享
好东西不私藏

FLAC3D提取应力数据导出到excel文件

FLAC3D提取应力数据导出到excel文件
    本文以一个10×10×10的模型为例,将其自重计算完成的竖向应力导入到table中并进行导出,随后即可在excel中读取该数据以实现在origin等软件作图的需求。
代码如下:
model newzone create brick size 10 10 10zone face skinzone face apply velocity-normal 0 range group 'South' or 'North'zone face apply velocity-normal 0 range group 'East' or 'West'zone face apply velocity-normal 0 range group 'Bottom'zone cmodel assign mohr-cozone property young 1e8 poisson 0.2 density 2e3 fric 30 cohesion 20e3model gravity 0 0 -10model solve elasticmodel save 'ini.sav'model newmodel restore 'ini.sav'zone gridpoint initialize displacement (0,0,0)zone initialize state 0fish define Data    g_1=zone.near(5,5,0)    g_1_z=zone.stress.zz(g_1)    g_2=zone.near(5,5,2)    g_2_z=zone.stress.zz(g_2)    g_3=zone.near(5,5,4)    g_3_z=zone.stress.zz(g_3)    g_4=zone.near(5,5,6)    g_4_z=zone.stress.zz(g_4)    g_5=zone.near(5,5,8)    g_5_z=zone.stress.zz(g_5)    table.create('tiqu1')    table('tiqu1',1)=g_1_z    table('tiqu1',2)=g_2_z    table('tiqu1',3)=g_3_z    table('tiqu1',4)=g_4_z    table('tiqu1',5)=g_5_zend[Data]table 'tiqu1' export 'tiqu1'
读取上述命令后,可见工程文件中会出现一个后缀为tab的tiqu1文件,可用记事本打开,其中内容如下,随后可以在excel中以外部数据的形式导入至excel文件。
同时简单解释一下该提取代码:
g_1=zone.near(5,5,0)g_1_z=zone.stress.zz(g_1)
上述代码为获取单元体中心坐标5,5,0的单元体指针并赋予给g_1,然后采用zone.stress.zz(pnt)代码获取g_1的竖向应力数据,然后赋予给g_1_z,其余原理类似。
table.create('tiqu1')table('tiqu1',1)=g_1_z
上升代码为首先创建一个名字为tiqu1的table文件(格式为txt),第二行代码中的1代表常规意义上的x值,而g_1_z代表y值,此时g_1_z中已经存在了g_1的竖向应力数据了,这样x和y值就形成了对应,也可以理解为是一组映射关系,依次类推,其余应力数据也可生成,类似的也可以采用其他fish关键词来获取其他数据,如:
zone.pp(pnt);水压zone.temp(pnt);温度zone.pos.z(pnt);竖向位移
Help文档中table的解释如下: