terrapower.physics.neutronics.dragon.dragonExecutor module

Write input and execute DRAGON given an ARMI object.

Currently limited to handling Blocks only.

This module makes no assumptions about where the block comes from or when the execution is to be performed.

Scheduling and choosing happens in terrapower.physics.neutronics/dragon.dragonInterface in default runs, or in other apps.

class terrapower.physics.neutronics.dragon.dragonExecutor.DragonOptions(label=None)[source]

Bases: armi.physics.executers.ExecutionOptions

Data structure needed to perform a DRAGON execution.

fromUserSettings(cs: armi.settings.caseSettings.Settings)[source]

Load settings from a case settings object

fromReactor(reactor)[source]

Set options from a particular reactor object.

fromBlock(block: armi.reactor.blocks.Block)[source]

Determine specific options from a particular block.

class terrapower.physics.neutronics.dragon.dragonExecutor.DragonExecuter(options: terrapower.physics.neutronics.dragon.dragonExecutor.DragonOptions, block)[source]

Bases: object

Execute a DRAGON case given a block.

Notes

DRAGON creates binary files during the run (for example _main001 and _DUMMY). These files have the same name regardless of input name or settings so if more than one run occurs simultaneously in a directory there will be naming collision issues. Therefore, to execute in parallel, the execution occurs in a temporary directory. After execution, the output file, and any ISOTXS files are copied to the location of the ARMI run (where an input file already resided). The temporary directory is also local to the machine, which can help for cluster execution speed. Before execution the temporary directory has the input, nuclear data, and executable copied over to it for fast execution.

run()[source]

Perform DRAGON calculation for the current input file.

_collectIONames()[source]
writeInput()[source]

Write the input file.

_execute()[source]

Execute the DRAGON input.

The nuclear data and input are now in current working directory.

Notes

This makes use of an output caching utility, which can make execution nearly instantaneously if the input has been executed before.