Skip to main content

Abaqus Python : reading odb file for field frame data

Submitted by sidd04mech on

Hi,

I am running a python script to do some post processing on Abaqus odb file. While running it on Abaqus/Explicite output file I found it was taking more than usual time. And after timing the run I got the surprise that the most time consuming thing what just to read the time value for each frame. I have the script below.

def main():

odb=openOdb('F:/Scripting/.../.../Example.odb') 

stkeys=odb.steps.keys()

stp=odb.steps[stkeys[-1]]

frms=stp.frames

frm_T=[(i,x.frameValue) for i,x in enumerate(frms)]

if __name__ == "__main__":

main()

 

For a perticular odb file (size 50MB) with 50 output frames. it takes about 9~10 sec just to read the "frameValue" for each frame. I have a very fast processor with 64GB memory so that is not a concern as well. But it takes time in I/O and every time I have to get a frameValue it seems to extract the data again and spends same amount of time.

 

I have tried many versions of this code but that doesn't make any difference. Even if I try just "print frms" it takes same amount to time.  I need to solve this problem. And I can see other software such as Hypermesh, FE-SAFE reads this ODB file completely in 10 sec. with data of each node and element. And also it is just 50MB file so there must be something I can do to get information in memory rather than spending time in I/O.

 

Your help is really appreciated

 

Siddharth