PDA

View Full Version : Handling solution dependent arrays in abaqus umat



tapan
2007-07-19, 10:36
Hi,
I am developing a UMAT subroutine in ABAQUS for polyurethane foams using a micromechanics based approached wherein at each Gauss point a microstructure of the foam is solved for to obtain the stress response and jacobian. In this approach I need to store several arrays related to the microstructure such as the current nodal coordinates of the microstructural mesh, current forces and orientations of the elements etc. Since the arrays are pretty large, I cannot use the STATEV capability to keep track of these quantities. Currently Im using external files for each gauss point wherein i write my data at the end of each increment and read back the data at the beginning of the next increment. However this approach is only suitable when i have a very few number of elements. Any ideas of a better way to keep track of such arrays.

Thanks,
Tapan

Jorgen
2007-07-25, 07:27
I have seen that type of approach before - it is quite interesting!

I don't quite understand, however, your statements regarding the "state variables" for the sub-model.

If you have the required RAM memory then you should be able to store all info that you need in the statev vector. That will certainly give you the best computational performance.

If you don't have enough RAM memory, then you need to rely on external files. Why don't you simply create a separate file for each gauss point? That will require lots of files, but hard drive space if cheap these days...

Jorgen

tapan
2007-07-25, 17:27
Thanks for the response. The reason for non using statev is that my arrays are slightly large ( I have some 3D arrays of size 12 x 12 x 8 ) . So it would require some bookkeeping to keep track of where the array elements are in statev. Also since I am still in the early stages of developing my model my array sizes keep changing as I change the size of my micromechanical model mesh.
Anyway I think I have a workaround which might not be very efficient but its relatively clean. Instead of using one external file for each gauss point as you suggested, I am using direct access external files. So my number of files are equal to my number of arrays to be stored. For a given element number NOEL and gauss point NPT I get a unique record number which gives me the exact location in a file where the data corresponding to that gauss point is stored.

Tapan

Jorgen
2007-07-28, 15:31
Sounds like a great plan.

Best of luck,
Jorgen

evd75
2013-04-27, 16:52
Hi Tapan,

I know we're in 2013 so it's a bit late to ask you something but I try even though!
I just wanna know if you succeded in writting your subroutine? If yes, I'm interested to see what you've done... Because I'm working on a study into Abaqus of the same kind as yours.
Thanks in advance if you see this message.

Guillaume