我已经在这个问题上研究了一段时间了。我有一个要从中提取信息的Abaqus odb文件。我需要的信息是与称为“乳胶”的集合相关的有限元区域。此信息将用于确定集合“ mastic”中其损坏变量“ SDV81”超过某个限制(0.3)的所有元素的时间累积累积量(时间=模拟中的帧数)。将绘制累积面积与时间的关系图。
我还有与模型关联的孤立网格,也可以用来确定区域(因为它们仍然相同),但是我只是不知道该怎么做。如果有任何编码方法,请告诉我。您的帮助将不胜感激。
以下是我到目前为止所写的内容:
from abaqus import *
from abaqusConstants import *
from odbAccess import *
import cPickle
import time
import sys
import regionToolset
import math
import sketch, part, material, section, assembly, mesh, load, job
import step, interaction, regionToolset, visualization
from abaqus import *
from abaqusConstants import *
from caeModules import *
from driverUtils import executeOnCaeStartup
from Tkinter import Tk
from tkFileDialog import askopenfilename
mdb.openAuxMdb(pathName='G:/My Drive/Aimane/TRB paper/AbaqusOutputs/Circular
shapes_Lognormal Distribution/10 percent/1427_10th model_1427voids/Cae
File/10_percent_1427voids.cae')
mdb.copyAuxMdbModel(fromName='10_percent_1427voids',
toName='10_percent_1427voids')
mdb.closeAuxMdb()
odb = session.openOdb(name='D:/Temp/10_percent_1427.odb')
session.viewports['Viewport: 1'].setValues(displayedObject=odb)
session.viewports['Viewport: 1'].odbDisplay.display.setValues(plotState=(
CONTOURS_ON_DEF, ))
session.viewports['Viewport: 1'].odbDisplay.commonOptions.setValues(
visibleEdges=FEATURE, deformationScaling=UNIFORM, uniformScaleFactor=0)
session.viewports['Viewport: 1'].odbDisplay.commonOptions.setValues(
visibleEdges=EXTERIOR)
session.viewports['Viewport: 1'].viewportAnnotationOptions.setValues(
legendNumberFormat=FIXED)
a = mdb.models['10_percent_1427voids'].parts['PART-1-1']
element_objects = a.sets['MASTIC'].elements
element_labels = [element.label for element in element_objects]
values_area =[] (# size: number of frames x 1, where the cumulative area
#corresponding to each frame of analysis is stored in the column cell
#associated with the row frame number)
for fr in odb.steps['Step-1'].frames:
for el in element_labels:
value = odb.steps['Load'].frames[fr].fieldOutputs['SDV81'].values[el].data
if value >= 0.3
## code.. (get area for this element and add it to the cumulative area for
## this frame)
print (values_area)