|
SunriseOverview
An overview of how to use Sunrise to process snapshots from hydro simulations.
UserGuide IntroductionThe original purpose of Sunrise was to be able to calculate images and spectra of simulated galaxies in a hydrodynamic simulation. Since this represents a standard work flow that must be repeated hundreds of times to follow a simulation in its evolution, this process has been fairly streamlined. (The alternative is if you want to use Sunrise to do something arbitrary, in which case you need to write code, see SunriseSpecialOccasions.) After reading this overview, you can check out Fabio's SunriseBootCamp, which features a more tutorial-style example they use at UW. When using Sunrise to process Gadget or Gasoline snapshots, three "standard executables" are invoked in order:
Each of these executables take a configuration file as the argument. These configuration files contain keyword-value pairs that completely specify the problem. The keywords recognized in these files are described in the wiki pages above (SfrhistConfigAndOutputFileFormat, McrxConfigAndOutputFileFormat, and BroadbandConfigAndOutputFileFormat). Because one generally runs a series of snapshots from the same run, it's useful to collect the settings that are common to all snapshots in a configuration "stub" file, which then can be included by all the config files for the specific snapshots. In this way, the config files pretty much only contain the names of the input and output files. For example, a typical sfrhist config file might look like: include_file sfrhist.stub snapshot_file snapshot_010 output_file grid_010.fits use_counters false The parameters for all the snapshots can then be collected in the sfrhist.stub file. (In addition, there are scripts to manage the submission of all these to the batch system, see below.) sfrhist detailsThere are three main sets of parameters for sfrhist: Two are general: stellar population model and grid creation ones. The third only pertains to Gadget simulations that are started with initial galaxies (i.e., not cosmological runs) and determine the age and metallicity distributions in the initial galaxies. The stellar population model keywords determine which SED grid is used for the stellar populations and also parameters that determine the use of the MAPPINGS subresolution models for star-forming regions. The grid creation keywords set the size of the base grid, the maximum level of refinement, and the criteria used to determine whether a grid cell should be further refined or unified. For an overview of the heuristic used for this, see Jonsson 06 and Jonsson, Groves & Cox 10. The initial conditions parameters are only used when the initial conditions contain stars or nonzero metallicity gas, and determine metallicity gradients (which are applied equally to both stars and gas), and the star-formation histories of the pre-existing bulge and disk stars. In order for sfrhist to be able to determine where the stars started out, you need to also specify snapshots to the isolated initial galaxy (or galaxies, if there are more than one). For detailed info about these keywords, see SfrhistConfigAndOutputFileFormat. mcrx detailsThe radiation transfer calculation proceeds in several stages and has many tunable parameters, so there are many keywords in the mcrx parameter file. For detailed info, see McrxConfigAndOutputFileFormat:
broadband detailsBroadband is pretty simple. The only parameters specify the filter bands you want the magnitudes in and where to find the filter definition files. Parameter setsAs a starting point, you can use the parameters from the "Sbc-example" available in the downloads. Note however that this can only be a starting point, as different simulations have different resolutions and characteristics that may require different parameters. You are strongly encouraged to read ConvergenceTests at this point. PerformanceUnlike most of the hydro codes, Sunrise does not use MPI. It uses threads to parallelize the calculation. This means that you can only run it on one node, so a good machine to run Sunrise on has many processors and a lot of memory on one node. The memory issue in particular makes many of the supercomputers unusable, because they have too little memory on the nodes. (Note that system descriptions often quote the memory per core, which is an irrelevant quantity. What you care about is total addressable memory from one process.) To be able to run reasonably large calculations, you need 32GB of total memory. For high-density, bright starbursts, you need so many grid cells to be converged that you really need 64 or more GB, though this depends strongly on the wavelength resolution you want. DisclaimerWhen Sunrise starts, it prints: "This program comes with ABSOLUTELY NO WARRANTY." This is not a joke. While I am relatively confident that there are no major bugs in the radiation transfer calculation, the outputs from Sunrise are only as good as the parameters used. It is the responsibility of each and every user to perform adequate testing to convince themselves that their results are correct in their situation. |