I am running an ANSYS 11.0 contact analysis with plasticity on a LINUX 64-bit machine and am getting the error "oops - nrow, ncol, lpan, lpanel = ..." (see below). Why ??? I have been told that the undocumented command options: BCSOPT,,OPTI and EQSLV,SPARSE,1.0e-5,-1 may help, but EQSLV,,TOLER is not documented for the sparse solver and BCSOPT,,OPTI is not documented at all. What do these options mean?

*** WARNING *** CP = 53790.602 TIME= 09:59:25
There are 10 small equation solver pivot terms.
EQUIL ITER 2 COMPLETED. NEW TRIANG MATRIX. MAX DOF INC= -0.1695E-03
LINE SEARCH PARAMETER = 1.000 SCALED MAX DOF INC = -0.1695E-03
6 CONTACT POINTS HAVE CHANGE OF CONTACT STATUS
FORCE CONVERGENCE VALUE = 21.79 CRITERION= 8.572
MOMENT CONVERGENCE VALUE = 0.3063E-07 CRITERION= 0.5312E-04 <<< CONVERGED

*** WARNING *** CP = 53843.523 TIME= 10:01:02
The calculated reference MOMENT CONVERGENCE VALUE = 1.367118957E-08 is less than 1E-2 a threshold zero, A value of 1E-2 or specified MINREFis used. Check results carefully.

oops - nrow, ncol, lpan, lpanel = 9815 58724039642440396423


Development noted that BCSOPT,,OPTI is documented in 12.0 and commented on the error:

This is an internal error message from the original Boeing sparse solver code (not added by ANSYS). It only comes out when a front goes out of core.

The sparse solver slices the matrix into pieces called fronts. Also, the sparse solver has 3 memory modes. Incore means allocate enough memory to hold all fronts in memory, so it does no I/O. Opti means allocate enough memory to hold the biggest front in memory, so it processes one front in memory and writes it to disk. Mini means allocate the least amount of memory and cannot hold the biggest front(s) in memory, so itprocesses most fronts in memory except for the biggest front(s) which are processed out of core and thus this mode does the most amount of I/O.

So the user would have to be running the minimum memory mode and be processing a front out of core to even have a chance to hit this error. We never recommend running in this mode, but in past releases it was possible to get there automatically. At v12, the user can only force that mode using BCSOPTION command, but again it is not recommended (only there for users pushing limits of machine and who can tolerate really bad performance).

The workaround for v11 would be to use BCSOPT,,OPTI or to use a large enough -m value to make sure the solver can allocate more memory and not get caught in the minimum memory mode. The former would be the easiest workaround.

Concerning the TOLER field on the EQSLV command, the tolerance can be used for a pivot tolerance. The fourth field being -1 makes sure that the user meant to do what they are doing. The reason is that the third field is a tolerance that is usually reserved for iterative solvers. So we want to make sure when using a direct solver like sparse AND when a tolerance is input that it is indeed a pivot tolerance and NOT a leftover iterative solver tolerance. Hence the -1 in the4th field.

So this would set the pivot tolerance to 1.0e-5. Most analyses don't set a pivot tolerance. Certain options like U/P formulation, some contact/EMAG elems, etc.. will activate pivoting. It should only be used by a user who is aware of what it will do. That is why it is still undocumented.





Show Form
No comments yet. Be the first to add a comment!