User login

Navigation

You are here

ABAQUS: "illegal floating point operation" when using finer mesh localy.

Hello.

I am new in both iMechanica and ABAQUS and I would need help:

I am working on a drop weight impact on a composite plate made either of 10 woven laminae or 20 unidirectional laminae (oriented 0/90). I built my model using continuum shell elements and including cohesive elements between layers to simulate decohesion. I used a user defined material through a vumat subroutine. The material properties and the subroutine containing failures criteria are not from me (I got them back to a completed PhD study) and are supposed to be good. I managed to obtain pretty correct results using a simple mesh (using only hex elements, same size everywhere). The problem is that it takes several hours to complete the job with the woven composite (10 laminae) and about 2 days to complete the job with unidirectional laminae (20 laminae). When I try to refine the mesh under the impact zone using partitions ABAQUS send me back the error "illegal floating point operation" before the first increment. To mesh, I used the sweep technique with Hex-dominated elements and the advancing front algorithm (with mapped meshing). I built my model in abaqus cae 6.8 (in windows environment) but because I can't compile the subroutine I have to send the job via ssh to an other computer using abaqus 6.6 (linux environment). Does anyone could help me to fix this problem?

Thanks

Adrien

Free Tags: 

 

Adrian,

 

The subroutine you are using is causing the illegal floating point operation.  It is usually caused when a function inside the subroutine is being divided by a really small number.  My guess is that when you lower your mesh size, your stresses get small and a function tries to divide by those values, which gives you the floating point error.

 

Hope this helps.

 

Kyle

Thanks for your help Kyle. 

I thought about that however the error occurs even when I use a coarse mesh (as long as the mesh density is variable). A regular mesh, even with very small elements,  doesn't induce this error. But I will check again the subroutine. Do you have any other idea about what could cause this error?

Thank you

Adrien

 

 HI~. I think your question has been ansered by Kyle. In the explicit code, the time increment is determine by the elemene size and the density of the model material, the time increment decreases as you use finer meshes. Thus, you should check the denominator in the subroutines.

 regards,

 Sangyul Ha

 

Hey again,

The problem is almost definitely with the subroutine.  If you have not found the problem in it, you can use print statements to determine the values or functions that are causing the problem.  For example, in the subroutine you can type 'print*, value' where value can be the value that you would like to know (stressNew(k,1) for stresses in the 1 direction, dt for the time increment, etc.).  Then, run the simulation and check either the .msg, .log, or .dat file for the values (I think the .log file prints the values, but I'm not sure at the moment).  This can also help you to track down how long the simulation runs before it gives you the error.

I'm not an expert programmer so this may not be the best way to find the problem, but it works for me.

Good luck,

Kyle

tuhinsinha.25's picture

In your job settings, are you using single or double precision output? I had faced a similar error using explicit which was resolved when I used single precision output.

Hope that helps..

 

Thanks for your help everybobdy,

tuhinsinha.25: I have read some things about the error using double precision so I use single precision.

 

I have fix the problem, the error came from a wrong setting in the number of depvar defined in the material definition.

Thank you.

Subscribe to Comments for "ABAQUS: "illegal floating point operation" when using finer mesh localy."

More comments

Syndicate

Subscribe to Syndicate