Author Topic: Length allocation for:TANG1  (Read 27737 times)

Markus

  • New Member
  • *
  • Posts: 9
Length allocation for:TANG1
« on: August 06, 2012, 06:03:47 AM »
Hello,

I am trying to run FEAP v8.3. It is working well for smaller numbers of nodes, but if I try to compute more complex meshes (~90000 nodes), I get the following error message:

   *WARNING* Length allocation for:TANG1 Length = -1588289652

It appears at the first call of the TANG,,1 operator, both for my own user elements as for the feap solid element. Does someone have an idea where this might com from?

Thank you,
Markus

FEAP_Admin

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 997
Re: Length allocation for:TANG1
« Reply #1 on: August 06, 2012, 06:53:27 AM »
Your problem has exceeded the memory of your computer.  (The negative number is telling you that you have exceeded the size of a signed 32-bit integer, the number has wrapped aroung 2 billion.)

You have several options:

1) run OPTImization, which reorders the equations and can save you some space
  opti  ! only run once at the very beginning
  tang,,1
2) Try using DIREct,SPARse, which also can save a little bit of space (symmetric problems only)
  direct,sparse ! only run once at the very beginning
  tang,,1
3) Try using ITERative, to use an iterative method to solve the equations (make sure to select a pre-conditioner)
  iters,bpcg ! selects block jacobi PC, only run once
  tang,,1

4) Buy a bigger machine

Markus

  • New Member
  • *
  • Posts: 9
Re: Length allocation for:TANG1
« Reply #2 on: August 06, 2012, 07:39:05 AM »
Thank you for fast and detailed answer. Actually, I am running my files on a pretty big cluster, so I should be able to avoid the last point. :) I thought I had excluded the point of having not enough memory by reserving a rather big amount of it.

Is there an option of FEAP, where one can see how many memory FEAP is trying to allocate?

FEAP_Admin

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 997
Re: Length allocation for:TANG1
« Reply #3 on: August 06, 2012, 03:39:26 PM »
When you first fire up the code (in interactive mode) it prints something like:

 E q u a t i o n / P r o b l e m   S u m m a r y:

       Mesh dimension  (ndm) =         2 :  Number nodes     =           49877
       Number dof/node (ndf) =         1 :  Number elements  =           99423
       Element eqs.   (nadd) =         0 :  Number materials =               1
       Number rigid bodies   =         0 :  Number equations =           49877
       Number joints         =         0 :  Number tang terms=        15049840

(this information also goes to the output file).
From 'Number tang terms' you can estimate the memory requirements for the tangent by multiplying by 8 bytes/term.  This gives the amount of memory needed for the factored tangent which is the largest thing in the solution.  If this term is already negative then it is already larger than 2 billion terms!  (opti is a good way to fix this, in your case taking it down to 15 million terms).

Markus

  • New Member
  • *
  • Posts: 9
Re: Length allocation for:TANG1
« Reply #4 on: August 07, 2012, 06:53:21 AM »
Thanks again. The OPTI command resolved the problem. Strangely, the problem needed only about 0.5GB after using the OPTI command.
Now, for my own user element, I am using the partition command to split residual and tangent into three different parts. It seems now as if I had to call the OPTI command for every time that I switch the partiton vi a PART,,1 2 or 3 (which happens at least three times for every time step). It is running this way, but might produce a large number of unnecessary steps during the solution procedure. Is there a better way to use the command?


FEAP_Admin

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 997
Re: Length allocation for:TANG1
« Reply #5 on: August 07, 2012, 09:37:03 AM »
Try the following:

1) run OPTI
2) run OUTMesh

This should produce an optimized version of your mesh that you can then use.  See the manual for detail on OUTMesh.