Documentation/UserGuide/Outputs with SMR

With SMR, most aspects of data output are similar to the single grid version (see the User Guide for more on outputs in Athena). For example, all the same output file formats can be used, with each output type specified through a separate <output> block in the input file.

However, there are some important differences in outputs with SMR, as noted below:

Output directories

With SMR, output files at different levels of refinement are written to different directories. All output associated with the root (level=0) Domain is written to the current directory (or the directory specified by the -d command line option). However, for levels>0, a new subdirectory with name levN, where N is the level number, is created at run time, and all output associated with Domains at each level is written into the corresponding subdirectories.

Specifying levels and domains for Outputs

The default behavior of Athena is to generate separate outputs for each level, and each Domain, in a SMR hierarchy. However, sometimes it is useful to generate output only on a specific level, or only from a specific Domain on a specific level. The parameters level and domain in the <output> blocks allow a specific level or Domain to be set for each different output. See the Output Blocks section in the User Guide for more details.

Output filenames

For output from the root (level=0) Domain, the filenames are unchanged from the single grid version. Thus, output from the level=0 Domain follows the normal convention

basename-id#.dumpid.outid.type

For output from all levels>0, the filenames have the level (and possibly the Domain) number included. For the first (domain number zero) Domain at each level, the filenames become

basename-id#-lev#.dumpid.outid.type

If there is more than one Domain at any given level, the filenames also include the Domain number:

basename-id#-lev#-dom#.dumpid.outid.type

Recall from above that the files from levels>0 will be output to separate directories named by level number.

With MPI, the directories created by each processor (and named idN, where N is the rank of the process) takes precedence. Thus, with SMR and MPI, the idN directories will be created in the current directory, and each of these will contain levM directories for all the M levels in the calculation. Note that these directories are created by all processes, even if that process does not have data (and therefore will not create output files) on a particular level and/or Domain.

History Files

With SMR, each Domain outputs a separate history file. The root Domain writes the file in the current directory, while all Domains with level>0 write the file in the levN directory. With MPI, the file is always written in the levN directory associated with parent (rank=0) process for that Domain.

The history file for the root Domain contains data which is volume averaged over the whole region of the computation. For all other Domains, the corresponding history files contain data averaged over the volume of that Domain. This is useful for keeping track of how much mass, momentum, and energy enters or leaves a refined region of the grid. However, these quantities in general are not conserved on refined regions.

Slicing with SMR

When output files are created using the slice operator (see Specifying Slices for Outputs), then no output will be generated by Domains (or Grids on a given Domain) that do not intersect the volume of the slice.