通常情况下,有限元计算中场变量在结果文件(Abaqus中ODB文件)中的存储主要在单元积分点和节点这两处。应力等状态变量的存储在积分点,而节点存储了节点位移,温度等场变量。
(注:在默认的情况下,我们在Abaqus后处理界面看到的云图中的非节点变量都是经过插值到节点之后平滑处理显示的。)
图1 损伤变量(存储在积分点)与节点位移(存储在节点)
上一篇文章中介绍了在Abaqus后处理中采用Python编程mises应力的提取方式可点击如下链接访问《Abaqus-Python后处理Mises应力与应力提取》。
今天的文章主要介绍采用Python编程进行节点变量提取的基本方式。以节点位移量提取为例,具体代码如下。其他节点变量的输出类似,请自行修改实现。
# coding: utf-8
#微信公众号:ABAQUS二次开发
#author:阿信老师CAE
#email:axin_cae@163.com
#2024.4.13
############################
# 节点量的提取与计算 #
############################
from odbAccess import *
odbName = 'Job-1.odb'
#打开odb文件
odb = openOdb(odbName)
stepName = 'Step-1'
frameRepository = odb.steps[stepName].frames
#读取最后一帧
fVal = frameRepository[-1].fieldOutputs['U'].values
#遍历输出每一个节点的位移
for i in range(len(fVal)):
n_fVal = fVal[i]
n_U = n_fVal.data
print 'n_U =', n_U
odb.close()