Hello,
I'm working on a large project and my .fil file is ~5.5 GB. I am unable to extract it in Matlab - Matlab will usually just crash on me, or I get an error based on memory. I have successfully done this on 0.7 GB files. I'm wondering what the limit is on the .fil file size is for bringing into Matlab, or if there is a workaround to this problem? I extract COORD, S, and POR for my post-processing. I was thinking that instead of calling all 3 in the .inp file I could just call one at a time to lower the size of my .fil file[s]? That may only get me so far.
Any advice would be helpful!
Thanks,
Ryley
Dear Ryley,
The limit on the .fil file size depends on many factors, such as the capacity of the running PC, the version of Matlab that is used, etc.
You can proceed according to the following suggestions:
1. Minimize the size of the fil file that is generated by Abaqus, in the following ways:
1.1. In the data lines of the *EL FILE or *NODE FILE options, please specify as few output variable identifiers as possible i.e. remove redundant results of the Abaqus analysis. Keep only COORD, S, and POR.
1.2. Include the INTERNAL parameter in all *NSET and *ELSET options that appear in the Abaqus input file. For example, replace the following option:
*ELSET,ELSET=yourElsetName <data lines>
with the following:
*ELSET,ELSET=yourElsetName,INTERNAL <data lines>
1.3. Redefine your Abaqus model in terms of a single part/instance. For this purpose, you can remove all *PART, *END PART, *INSTANCE, *END INSTANCE, *ASSEMBLY and *END ASSEMBLY options from inside the Abaqus input file, by properly renumbering the nodes and elements of the various parts/instances (if more than 2). For example, replace the following options:
*PART,NAME=PART-1 *NODE 1,0,0,0 2,1,0,0 *ELEMENT,TYPE=B31 1,1,2 ... *END PART *PART,NAME=PART-2 *NODE 1,0,1,0 2,1,1,0 *ELEMENT,TYPE=B31 1,1,2 ... *END PART *ASSEMBLY,NAME=ASSEMBLY1 *INSTANCE,NAME=PART-1-1,PART=PART-1 *END INSTANCE *INSTANCE,NAME=PART-2-1,PART=PART-2 *END INSTANCE ... *END ASSEMBLY ...
with the following:
*NODE 1,0,0,0 2,1,0,0 3,0,1,0 4,1,1,0 *ELEMENT,TYPE=B31 1,1,2 2,3,4 ...
1.4. Use the *FREQUENCY,SIM=NO option and not the *FREQUENCY option
2. Read the fil file into a number of chunks, instead of loading at once all of its contents in memory. Read the segments of the fil file one by one in a for loop. This can be done with simple programming in Matlab.
3. Switch from fil files to odb files. Try to extract COORD, S, and POR from the odb file instead of the fil file, and see if this is faster. If postprocessing of the odb files is faster, then remove the option *FILE FORMAT, ASCII from the Abaqus input file.
4. Try the latest version of fil2Matlab, which is part of Abaqus2Matlab v.3.0. This is soon to be released officially, but I can send it to you if this helps.
Best regards,
George