Hi Josef,
Great, I can help you. The solution sequence you are using is SOL 103.
There are 2 parts to my answer, one about memory which are general remarks for all solution sequences (SOL 101, SOL 103, SOL 108,...) and the other specific to normal modes (SOL 103). I will answer the SOL 103 specific issues in a separate post.
In the following, I will assume you are running MSC Nastran on Windows, not Linux.
First, memory. MSC Nastran requires you to define the maximum amount of memory it is allowed to grab for a job. It may not use all the memory, but it has to know how much it is allowed to take right at the start; it will check if it can allocate this amount of memory and insult you if there is not enough.
When you install MSC Nastran, you get asked what you want to define for the default run parameters, and one of the questions is "do you want to run with mem=max?". If you accepted this, then each time you run MSC Nastran it will request the maximum amount of memory it is allowed to which is defined by another parameter (more on this in a moment). If you answered no and set some constant value for mem=, then that value will be used for every job you run unless you define another setting for mem= at runtime (using the command line keyword mem=xxx).
If you are like me, and don't remember your response to some weird question when you installed MSC Nastran months ago, you can see what you did by looking at the system wide configuration file. Now because I don't know where you have installed MSC Nastran, I am going to give you a relative path description as to where this file can be found. Let <install.dir> be the directory in which you installed MSC Nastran. There will be a subdirectory under <install.dir> called <install.dir>/conf - in this directory you will see a file called NAST20200.rcf. If you have administration privileges on the machine, or if you installed MSC Nastran as a user, you can edit this text file.
Look for the line in NAST20200.rcf that states:
memory=max
or perhaps
mem=max
If the line states something else, like
memory=200M
of some other constant, then that is how much memory MSC Nastran is allowed to use. You can change this, and I recommend you use
memory=max
Now, even though you set memory=max, the maximum amount of memory MSC Nastran is allowed to use is set by another parameter called memorymax. By default, memorymax is set to
memorymax=0.5*physical
and physical is the amount of RAM installed in the machine - in your case, physical=32Gb. So, memorymax will have a ceiling of memorymax=0.5*32Gb = 16Gb. There is a good reason for this. Most of the time, MSC Nastran is being run on a machine shared by other processes which also require memory. If you are the only user of the computer, you can set memorymax=0.85*physical or even memorymax=0.95*physical to the ceiling is higher. I don't recommend using memorymax=physical or Windows will go mad and run out of memory. You can set this in the file NAST20200.rcf with a new line or on the command line as you wish.
Now when you use memory=max, MSC Nastran will be allowed to allocate more memory.
Just because things were not complicated enough, there is another aspect to consider. When you run MSC Nastran with memory=max, it does its best to figure out how much memory it is going to need for solution of the equations but it also sets aside some memory into a disk cache called buffer pooling or BPOOL for short. In my experience, it does not do a great job of estimating the balance between memory for equation solution and memory for BPOOL especially for SOL 103. In this case, also define bpool=4Gb or something reasonable like this, but only for your SOL 103 jobs.
So to summarize:
In NAST20200.rcf, set
memorymax=0.95*physical (or whatever you decide)
memory=max
On the command line of your SOL 103 job, set
bpool=4Gb (or whatever you decide)
With these settings, your job would have 26.4Gb of memory for equation solution and 4Gb for BPOOL to use a total of 30.4Gb memory leaving some dust for the operating system.