Add to Technorati Favorites

Subscribe by Email

Your email:

Alignex Mechanical Division Technical Blog

Current Articles | RSS Feed RSS Feed

Mixed Meshing in SolidWorks Simulation - Maximizing RAM and solving "Out of Memory" issues. (Part 4 of 5) by Brian Zias

Submit to Digg digg it | Submit to Reddit reddit | Add to delicious delicious | Submit to StumbleUpon StumbleUpon 
In Part One, I mentioned how important it was to keep an eye on your system resources, since those directly limit the size and scope of model that you can mesh and run. This blog will focus on how the Simulation mesh uses RAM. If you've seen my blog about system resources in windows, then you'll already know the basics of the Performance Monitor tool in Windows.

The amount of system memory in your workstation will correlate directly into the number of nodes you can squeeze into your model. The more components you have, and the more complex their features, the more nodes required to capture that geometry properly. By properly I mean an element with an aspect ratio less than 3. As an example, let's take a 1" x 1" x 1" cube, and see how many high-quality tetrahedral nodes we can generate before running out of memory:

Meshing 4-1

Notice that moving the slider from ‘default' to ‘fine' size will cut the global mesh size in half. You can input a smaller global size (or use mesh controls that are much smaller) as long as you have the RAM to complete that mesh. But, you can see the relationship is power-based between global size and nodes created. By cutting the mesh size in half, you more than double the number of nodes in the mesh. As a general reference, a 32-bit Windows XP machine with 4GB RAM, running a 3GB switch, can get about 1 million nodes out of a part while an 8GB RAM, x64 machine can get about 3.5 million.

In general, the mesh will use roughly one-third of the available memory before it gives the "Out of Memory" warnings. This is because the mesh needs to reserve the remaining RAM for other operations. Using a screen capture of Performance Monitor, here's how mesh RAM usage is broken down:

Meshing 4-2

I run a 32-bit Dell laptop with 4GB RAM installed. In the above figure, I have about 2900 MB of RAM on my system when I boot up "clean" with the 3GB switch. I look at the ‘Available Mbytes' counter to see if it dips below about 1900 MB. At that point I will receive the out of memory warnings from the mesh, even though I'm not actually out of Windows memory yet.

So how can we maximize our available RAM to get the most nodes? I have several suggestions:

  1. Try a Fresh Reboot. This often goes over-looked. Rebooting your PC regularly clears out the memory. I've had models that would mesh after a clean reboot, but later would not due to lack of memory. When doing a great deal of Simulation, Windows needs to be refreshed regularly so the memory is clear.

  2. Fix meshing issues at the source instead of trying to use smaller element sizes. Use functions such as Tools > Check and SolidWorks Utilities > Geometry analysis. This will identify problem areas, and also allow you to see how many edges might be shorter than the smallest mesh size you can achieve. This will typically need to be resolved before meshing.

  3. Use proper modeling techniques; idealize and simplify as needed. Shells, de-featuring, mixed meshing, that is the first place to go to reduce the node count.

  4. Try the Curvature-based mesh. This is a new meshing technology introduced in SolidWorks Simulation 2008 that I believe is underutilized. You can switch to this mesh in the ‘Create Mesh' dialog. This works wonders for parts with varying magnitudes of feature sizes, such as castings or molds with very small fillets or faces that cannot be de-featured. It also appears capable of creating more nodes with the same amount of memory.

  5. For 32-bit systems with 4GB of RAM, use the 3GB switch. This is outlined in detail on Microsoft tech forums. Quite simply you add the parameter ‘/3GB' onto your boot.ini line item for Windows. What that accomplishes is to allow Windows to dip into your 3rd gigabyte of RAM (it can never access the fourth). Warning: If you use the stock ‘/3GB' this will sometimes lead to system instabilities, including graphics turning black in applications, sluggish behavior, and overall slowdown of the system. Check this link for some detailed information.

    The best advice that I can give is using the USERVA modifier, so the boot.ini switch looks like: ‘/3GB /Userva=2400'. This allows applications to use 2400 MB, but not dip too much into Window's resources. Make this a second boot option, and only boot into this when you need that extra RAM.

  6. Try an MSCONFIG startup cleanup routine. From the Start menu, do a Run command and type in ‘msconfig'. This utility lets you choose what items are loaded next time you boot Windows. If you disable everything in the ‘Startup' tab you'll prevent most of the applications that show up in the system tray (far bottom right, near the clock on the Start menu) from loading. This saves me about 300 MB when I need that extra bit of memory.

  7. Finally, if you continue to have RAM issues, it may be time to consider upgrading to a x64-based computer. These have different architectures which allow the user to have 8, 12, 16, or even more gigabytes of RAM.

If you have not already done so, please take a look at my previous blog articles on Meshing in SolidWorks Simulation.

Meshing Advice in SolidWorks Simulation (Part 1 of 5)
Mixed Meshing in SolidWorks Simulation - (Part 2 of 5)
Mixed Meshing in SolidWorks Simulation - Contact Sets (Part 3 of 5)


Comments

Currently, there are no comments. Be the first to post one!
Post Comment
Name
 *
Email
 *
Website (optional)
Comment
 *

Allowed tags: <a> link, <b> bold, <i> italics

Receive email when someone replies.