Я пытаюсь вычислить площадь поверхности на определенной 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)