Скрипт Abaqus для вычисления площади поверхности для заданного c набора с условием - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь вычислить площадь поверхности на определенной c поверхности в моей модели. часть, называемая «вода», и общая поверхность, называемая стеной, и специфическая область c, которая меня интересует, называется «КРИТЕРИИ». Я хочу извлечь площадь поверхности давления, которая меньше 0,01 в области критериев.

как изменить следующий скрипт, чтобы сделать это за меня и найти его для каждого кадра.

from odbAccess import openOdb
import odbAccess
import time
import numpy  as np 
start = time.time()
odb=openOdb('Job-1.odb')
criteria=odb.rootAssembly.nodeSets['CRITERIA']
Time= open('Time.txt','w') 
EE=odb.steps['Step-1']

# Inputs --------------------
cavlimit=0.01

nframe=101 #overall number of frames
inc=1     # incements between frames
st=0      # start frame
#----------------------------

def writefile(dd, ii):
  file='p'+str(ii)+'.txt'
  #file='p{}.txt'.format(str(ii))
  print (file)
  F = open(file,'w') 
  for v in dd: 
    F.write( "%f\n" %  v.data)
F.close()
return 


def  callframe(jj):
  f1=EE.frames[jj]
  t=EE.frames[jj].frameValue
  Time.write('%f12\n' % t)
  p1=f1.fieldOutputs['PABS']
  #dd=odb.rootAssembly.nodeSets.keys()  
  pw=p1.getSubset(region=criteria)
return pw

for ii in range(st,nframe,inc): 
    pw=callframe(ii)
    writefile(pw.values,ii)
Time.close()
end = time.time()
print(end - start)
...