这个月导师的课题要结题,需要做很多的Abaqus模拟分析。在做结构的屈曲线性摄动分析时,最后得到的每一帧的特征值在Result->Step/frame中得到,可是在abaqus.rpy中没有对应查看的Python命令,也无法输出特征值数据,难道要我每一个模型自己去记录特征值?在查找Abaqus Scripting Reference之后,原来对应每一帧有一个OdbFrame对象,可以通过Odb.getFrame(int frameNum)得到每一帧对象。该对象具有很多成员,而特征值在成员Description。OdbFrame对象数据如下:
({'associatedFrame': None, 'cyclicModeNumber': None, 'description': 'Mode 10: EigenValue = 1.4657', 'domain': MODAL, 'fieldOutputs': 'Repository object', 'frameId': 1, 'frameValue': 10.0, 'frequency': None, 'incrementNumber': 1, 'isImaginary': False, 'loadCase': None, 'mode': 10})
所以,使用python进行处理如下:
eval(Odb.getFrame(10).discription.split("=").strip())
最后得到每一帧对应的特征值。
还有另外一种方法,就是解析dat文件,在dat文件的最后面,直接有每一帧的序号和特征值。
总体而言,这两种方法都略显笨重,没有美感和简洁性可言。如有其他简洁的方法,烦请告知,不胜感激。哈哈。