15 | | where ''N,,auxvars,,'' is nonzero only with MHD, in 2D (5 extra variables) or 3D (12 extra). ''N,,qvars,,'' represents the state variables--in hydro there are 4 in 2D & 2.5D and 5 in both 2.5D+angular momentum and 3D; in MHD there are always 8 plus 5 or 12 aux fields in 2D & 3D, respectively--as well as any tracer variables. |
| 15 | where ''mx,my,mz'' are the number of zones in each direction, ''N,,qvars,,'' is the number of variables in the q-array (that is, the state variables of the fluid), and ''N,,auxvars,,'' is the number of "auxillary" variables, that is variables initialized for MHD simulations. The q-array contains the cell-centered quantities, and the aux-array contains face and edge centered quantities. Each cell contains a q-array and an aux-array, therefore the total number of cells x the total variables x 8 bytes gives you the total memory you are expected to allocate for the physical domain (not including the ghost cells or any other redundant calculations). We find that the total memory calculated this way is usually off by a factor of 10 from what astrobear actually uses (as given in the standard out, on the global info allocations line). This is likely due to ghost cell calculations. '''Therefore for all memory estimates, you should multiply your number by 10 to get a truer estimate.''' |
| 16 | |
| 17 | For hydro simulations, ''N,,auxvars,, = 0'', so only need to count up the total ''N,,qvars,,''. In 2D there are 4 hydro q variables: density, x-momentum, y-momentum, energy. There are also 4 in 2.5D. In 3D, there are 5: density, x-momentum, y-momentum, z-momentum, and energy. There are also 5 in 2.5D with angular momentum. |
| 18 | |
| 19 | The situation is a little different for MHD simulations, where now each component of the momenta is coupled to the equations. Therefore, ''N,,qvars,,'' now contains all 8 state variables regardless of the dimension of the simulation: density, 3-momenta, E, Bx, By, Bz. In addition to these 8 q-variables, there are additional variables initialized in MHD, these are called the auxiliary variables. These include the B-fields on the faces of the cells as well as the EMFs from the edges of the cells. We also store parent-child EMFs. Therefore in 2D, ''N,,auxvars,, = 5'', which are: Bx, By, Ez, Ez_child, and Ez_parent. In 3D, ''N,,auxvars,, = 12 '', which are: Bx, By, Bz, Ex, Ey, Ez, Ex_child, Ey_child, Ez_child, and Ex_parent, Ey_parent, and Ez_parent. |
| 20 | |
| 21 | For both hydro and MHD simulations, you must also add to the total number of variables, the total number of tracers you are using, as this will be initialized in the q-array. |