How Much Memory is Required to run US3D?
The amount of memory that is required to run US3D varies depending on a lot of different factors including such things as:
- Grid size, topology, and structure
- Gas chemistry model used (perfect gas, 5-species, 11-species, etc.)
- Features activated: chemistry, turbulence, higher-order time integration
- Solver parameters: line solves and line length
- Many other factors
In order to test memory usage, we ran a number of cases using a simple box grid created with the built-in SIMPLE_GRIDS module giving all-hex grids. The number of grid points in each i,j,k direction was varied to give a grid of the desired size. A single wall zone was used with a line length of 150, and implicit DPLR time integration (impl=1) for the first two tests. Decoupled chemistry with line integration was also tested. The flow was set to laminar with chemistry and vibration turned off, but chemistry and vibration on or off does not generally affect memory usage. All other parameters were left at the typical default values.
The solver was run on a single 64-core AMD-based node using 64 processors for each test. The node had 256GB of RAM and baseline memory usage without US3D running was approximately 630MB. Memory used during the solver run was recorded and the baseline OS memory usage was subtracted to obtain the amount of memory required for the solver to run.
In the memory usage results, notice how much memory usage increase with the number of species in the gas model, if you run in fully-coupled mode. However, if you are able to run in decoupled mode, then the memory usage with increased number of chemical species is just a little bit more than it is for single-species air. This means that the decoupled code can run much larger problems (more grid points) for the same amount of memory usage. It also has the advantage of being faster than the fully-coupled solver. In cases where the decoupled solver works and converges well, it has several advantages compared to the fully-coupled solver.