Как я могу получить области конечных элементов, которые связаны с определенным набором из odb в Abaqus? - PullRequest
0 голосов
/ 27 августа 2018

Я работаю над этим вопросом некоторое время.У меня есть файл 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)
...