3.1. The Standard Output
The Standard Output (or stdout) is a running log of things an ARMI run prints out as it executes a case. It shows what happened during a run, which inputs were used, which warnings were issued, and in some cases, what the summary results are. Here is an excerpt:
=========== Completed BOL Event ===========
=========== Triggering BOC - cycle 0 Event ===========
=========== 01 - main BOC - cycle 0 ===========
[impt] Beginning of Cycle 0
=========== 02 - fissionProducts BOC - cycle 0 ===========
=========== 03 - xsGroups BOC - cycle 0 ===========
[xtra] Generating representative blocks for XS
[xtra] Cross section group manager summary
In a standard run, the various interfaces will loop through and print out messages according to the verbosity setting. In multi-processing runs, the stdout shows messages from the primary node first and then shows information from all other nodes below (with verbosity set by the branchVerbosity setting). Sometimes a user will want to set the verbosity of just one module (.py file) in the code higher than the rest of ARMI, to do so they can set up a custom logger by placing this line at the top of the file:
runLog = logging.getLogger(__name__)
These single-module (file) loggers can be controlled using a the moduleVerbosity setting. All of these logger verbosities can be controlled from the settings file, for example:
branchVerbosity: debug
moduleVerbosity:
armi.reactor.reactors: info
verbosity: extra
If there is an error, a useful message may be printed in the stdout, and a full traceback will be provided in the associated stderr file.
Some Linux users tend to use the tail command to monitor the progress of an ARMI run:
tail -f myRun.stdout
This provides live information on the progress.