CFD Online Discussion Forums

CFD Online Discussion Forums (
-   CFX (
-   -   estimating RAM (

Farid August 12, 2002 07:43

estimating RAM
Hello CFX familly

I ve read that 1 Mo RAM is necessary evry 1 k Cells for a computation with standard k-e model.

How can memory be estimated more precisely ? For instance, function of number of solved equation, simple or double precision, and so on...


Robin August 12, 2002 09:36

Re: estimating RAM
Hi Farid,

The amount of memory required for a given run will depend on many factors: boundary conditions, physical models, advection scheme, element type and connectivity, etc., so it is impossible to know exactly how much memory is required until the assembly is done. But there are a few rules of thumb you can use to get an estimate.

For one, if you run a predominantly tetrahedral element mesh, you will require ~3x more RAM than for a hex mesh with the same number of nodes. This is related to the increased connectivity between nodes in a tet mesh.

If you have a look near the top of your .out file, you will see that the solver reports detailed information regarding memory allocation in the section titled Memory Usage Information. The primary number you want to concern yourself with is the number of words per node (1 word = 4 bytes). A typical value for a tet mesh with second order high resolution advection scheme and the k-e turbulence model is about 125 words/node, which translates to 500 bytes/node or .5 MB/1k nodes. For a given selection of physics and models, and a specific type of mesh, this will remain constant and can provide a means for estimating memory usage.

Keep these things in mind as you run the solver and you should bcome familiar with the memory requirements.

Regards, Robin

Astrid August 12, 2002 16:25

Re: estimating RAM

I have a related question. I have a grid that consists of a tetmesh (3.5M elements), a hex mesh (1.2 M elements), a tet mesh (1.4 M elements), and finally a hex mesh (0.28 M elements). All connected with 3 GGI's.

I use CFX 5.5.1 for this, with air as an ideal gas, two equation turbulence model, starting with upwind, nothing fancy yet. The case starts and gives a list for memory requirements. A total of 1.4Gb is required. Then I get an memory allocation error.

I start the case on a P4-WinNT with 1Gb memory and 1 Gb virual memory. The PC is supposed to be the master in a parallel run with 4 similar PC's. Thus total 5 Gb. That should be sufficient, shouldn't it, or is the 1 Gb of the master limiting in this case? Or is it related to the use of hex meshes? In other words, can CFX 5 run in parallel with Hex meshes? I suppose so.


Robin August 12, 2002 17:06

Re: estimating RAM
Hi Astrid,

There are no specific parallel limitations regarding mesh type or GGI. All of these should work just fine.

When you run the job, the first memory requirements reported are for the partitioner, which is run in serial on the master. After the partioner is run, you should get memory allocation information for each partition on each system.

Did the memory error occur in the partioner or the solver?


Astrid August 12, 2002 18:00

Re: estimating RAM
The error occured in the partitioner. Apparently for that serial process not enough memory is available. Do you have any suggestion for the advanced memory allocation during partitioning?

I have just ran it on a Pc with 2Gb RAM, same error.......


Robin August 13, 2002 10:24

Re: estimating RAM
Hi Astrid,

You have a couple options:

1) Reduce the memory allocation to try and fit into what you have by setting the Allocation Multiplier to a value less than 1 (try 0.9). Typically, it will try to allocate more memory than it actually needs (just to be safe), so you may get just be able to fit it in. Note: this only works when the memory error reports that the memory could not be allocated. If it reports that not enough memory was allocated, you will need to increase the allocation multiplier instead.

2) Use a different partitioning algorithm. The MeTiS algorithm is the default and generates optimum partitions. However, it also requires the most RAM. If you switch to User Specified Direction, the partitioner will simply divide the mesh into roughly equal partitions along the direction you specify. This algorithm requires very little RAM.

3) If you have another system available which has more RAM, you can do a Partitioner Only run to get a par file, then use this to start your parallel run on the Windows systems.

Let me know what works.

Regards, Robin

Farid August 14, 2002 02:22

Re: estimating RAM
Dear Astrid & Robin,

Thank you for your answers.


Michael August 14, 2002 10:02

Re: estimating RAM
More info is provided in the 5.5.1 doc under Master Contents > CFX-5 Solver Manager > Managing Your CFD Run > Memory and CPU Requirements

Hope this helps.

Astrid August 14, 2002 15:50

Re: estimating RAM

I have noticed this info. However, no absolute numbers about memory are provided, only relative (Hex versus Tet etc.).


Neale August 14, 2002 16:43

Re: estimating RAM
The problem with quoting absolute numbers is that they are both mesh (size and element types) and problem setup (physics and boundary conditions) dependent. So, no single absolute number applies. I think Robin already mentioned this, and quoted some reasonable numbers for one particular, yet simple, setup.


Astrid August 19, 2002 07:37

Re: estimating RAM

On your request I get back on your posting. Unfortunately there were negative volumes in my hex mesh. So it stopped there. I am still working on it....


All times are GMT -4. The time now is 13:10.