OpenSEES后处理,场地分析,Paraview,PVD recorder
最近大论文评审,有一个评审专家说:”小伙子,你用OpenSEES做场地分析,怎么不给个云图啊?” 成,这就给!
这次我们还是分析个二维场地模型,先做个重力分析(包含平衡地应力),再加个地震波震一震。其中,地应力平衡用的命令,大概长这样,详情请见官网。
nDMaterial InitialStateAnalysisWrapper 201 101 2
本期的关键在于讨论如何实现这个场地变形云图。OpenSEES中在Record中有个 PVD recorder 的子类,它的功能是记录分析过程中模型信息,供后处理软件Paraview使用。Paraview是一个可以进行后处理的软件,是免费的,下载地址如下:
https://www.paraview.org/download/
以前,我们都是用tcl语言进行建模,现在OpenSEES也可以放在python中了。在python语言中,有很多比较成熟的包供使用者运用。下面这张贴图,是OpenSEESpy官网上关于PVD recorder命令的解读。Recorder后加上文件名,即记录专用的文件夹,可以自己定义名称,在模型分析前应予以设置。后面是记录精度,杨师叔喜欢设置6,他说可以满足精度要求。之后,dT代表记录间隔,如果硬盘装的下,我建议保持与地震动间隔一致,之后就是具体的记录变量,如位移,速度,加速度等。
有些同学对python语言不熟,还是习惯用tcl语言进行建模,下面是tcl语言中PVD recorder的示范:
recorder PVD pvdfile -precision 10 -dT 0.02 disp vel accel
记录好文件后,我们看看如何在 paraview 中予以使用。 Pvdfile 中的文件大概长这样:之后,在paraview中打开这些vtu文件,在Pipeline Browser中选择期望的时刻文件。
之后,在Properties 中选择之前定义好的物理量,如位移,加速度和速度等。之后即可绘制出对应的云图。
这个云图属实有点丑陋,想看更好看的图,更好的挖掘Paraview的使用功能,请参考ParaViewTutorial-5.8.1。网页版教程如下;
https://docs.paraview.org/en/latest/UsersGuide/introduction.html
再说一个小细节,如果想要应变或者应变,该如何设置呢?
recorder PVD pvdfile -precision 10 -dT 0.02 disp vel accel eleResponse material 1 strain
在使用EleResponse command时,需要说明的是,不同单元对应recorder 命令格式不同。假如大家使用的是其他单元,recorder的格式可以参考源代码。以大家最熟悉的DispBeamColumn为例:
Trunk/SRC/element/dispBeamColumn/DispBeamColumn2d.cpp,查找如下函数:
Response*DispBeamColumn2d::setResponse
其中,argv[0]中存储的是单元关键词,代表了输出内容的具体含义。如-1,即单元全局坐标下的力;如-2,即单元局部坐标下的力。
通过阅读源代码,即可分清楚不同单元对应 recorder 命令的细节。关于这部分内容可以参考古泉老师的书《 OpenSees实用教程》 。