Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

can I calculate the memory requirements for Sparse/Direct solver?

Status
Not open for further replies.

coteesh

Mechanical
Apr 12, 2002
17
0
0
CA
I have a problem with about 200,000 elements (SOLID186 I believe) in ANSYS Workbench v10, and has about 330,000 nodes. There are only 2 main bodies in contact with each other, however, there are nearly 100 frictional contacts occurring in the model (it's a spline shaft inside of a female spline, assembly). My computer has 3 GB of memory, 2 CPU's, and ANSYS Direct solver tries to find a solution, but looking at Windows Task Manager, it appears ANSYS tries to allocate too much RAM memory about an hour into the solution, and a fatal error occurs after it cannot get enough RAM it appears. (I look at memory in task manager, and just before fatal error it tries to allocate more than 3 gigs and fails) I've tried increasing the windows page file and that doesn't seem to help, it looks like it's trying to grab more physical ram that it cannot obtain.

I've tried using the iterative solver on smaller spline problems even, and it NEVER converges, even after 3 or 4 days, it fails miserably to converge. So I'm stuck with Direct solver here. Direct solver can solve much simpler spline problems no problem. Problem is my assembly problems are getting bigger at 200,000 elements or higher due to complexity of models.

I've seen -m commands, do you think I might be able to tweak the memory settings a bit and get it to solve? or do I need more RAM and can you calculate how much I will need? Thanks.

here is some pictures showing what the model looks like:

Here is a bit of output from the ANSYS solver...


SPARSE MATRIX DIRECT SOLVER.
Number of equations = 971529, Maximum wavefront = 496
Memory available for solver = 375.71 MB
Memory required for in-core = 9661.24 MB
Optimal memory required for out-of-core = 1137.84 MB
Minimum memory required for out-of-core = 76.67 MB

*** NOTE *** CP = 329.641 TIME= 11:22:55
Sparse Direct Solver is using the least out-of-core memory.
For better CPU performance increase memory by 762 MB using -m option
(refer to the Basic Analysis Procedures Guide, Ch. 19).
curEqn= 280732 totEqn= 971529 Job CP sec= 2492.875
Factor Done= 26% Factor Wall sec= 2703.274 rate= 570.2 Mflops
curEqn= 339993 totEqn= 971529 Job CP sec= 2564.844
Factor Done= 27% Factor Wall sec= 2740.434 rate= 581.4 Mflops
curEqn= 342208 totEqn= 971529 Job CP sec= 2701.531

,..............(etc etc....).......

curEqn= 971529 totEqn= 971529 Job CP sec= 8541.109
Factor Done= 100% Factor Wall sec= 11076.728 rate= 527.8 Mflops
EQUIL ITER 1 COMPLETED. NEW TRIANG MATRIX. MAX DOF INC= 0.3082E-01

...... etc.....

*** FATAL *** CP = 8796.594 TIME= 14:34:05
Insufficient memory error during solution. Please reduce your problem
size or increase your system swapped space (refer to the Basic
Analysis Procedures Guide, Ch. 19).

ALL CURRENT ANSYS DATA WRITTEN TO FILE NAME= ansabort.db
FOR POSSIBLE RESUME FROM THIS POINT
 
Replies continue below

Recommended for you

Hi,
first of all, verify you have the /3GB switch in the boot.ini.
If already so, then try the Ansys command
BCSOPTION,,default,2500,,,performance

where "2500" is the solver's workspace you want to specify to Ansys (you may need to adjust it following your possibilities, i.e. to the max RAM available before launching the job - see Task Manager), and "performance" is a key to enable additional diagnostic messages.

However, the problem size (9661.24 MB...) is such as to let forecast memory problems at some stage of the solution process...

Hope it helps some way...

Regards
 
Just wondering if it wouldn't be a help switching to other elements for your model, if it's correct that your model is meshed with SOLID186. That is a 20-node brick element, but by looking at the picture of your spline I surmise it's meshed with tetrahedra - I guess it could be worthy changing your element type to some tethahedral, 10-nodes element (depending on your necessities, SOLID92 or SOLID187).

Doing so you can probably save quite some substantial amount of memory, computational time and disk space.
 
It sounds like your model is made of SOLID187's now from your node/element numbers given. Why do you want to use the sparse solver for this? In my experience with running models with a high count of solid elements iterative solvers are much fasters. I would use the pcg solver for this. It is nearly as robust as the sparse solver, typically converges in significantly fewer iterations, and uses less memory. I would insert the following commands under solution:

eqslv,pcg
pcgopt,auto

I think the PCG should want to allocate about 1.5 GB or thereabouts to this type of job.

Good luck,
-Brian

 
Hi,
it seems this is one of these cases for whom the Ansys Manual itself (Contact Technology Guide) suggests to use direct solvers instead of iterative. In fact, in particular cases of contact problems, iterative solvers can become extremely unefficient or even not converge at all...
The suggestions about changing elem type are probably the best way to go.

Regards
 
Hi,
coteesh, WB doesn't provide any direct way to change element types. You will have to use a Commands snippet in the Environment of the solution, incorporating something like that:
/PREP7 !accesses the pre-processor
ET,<num>,SOLID92,<keyoptions> !where <keyoptions> have to be specified following your needs, see the Help for SOLID92.
TCHG,SOLID187,SOLID92,<num>
/SOLU

If the TCHG doesn't work, you can try this:
/PREP7
ET,<num1>,SOLID95,<keyopt1>
ET,<num2>,SOLID92,<keyopt2>
ESEL,s,ENAME,SOLID187 !this is in order to select only solid elements, disregarding contacts/targets
EMODIF,all,TYPE,<num1> !change SOLID187 to SOLID95: they are 100% identical in the topological definition
TCHG,SOLID95,SOLID92,<num2>
/SOLU

Hope this helps

Regards
 
Status
Not open for further replies.
Back
Top