Я работаю над этим вопросом некоторое время.У меня есть файл Abaqus odb, из которого я хочу извлечь информацию.Информация, которая мне нужна, это области конечных элементов, связанные с набором, который я назвал «мастикой».Эта информация должна использоваться для определения совокупной площади во времени (время = количество кадров в симуляции) для всех элементов в наборе "мастика", чья переменная повреждения "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)