terrapower.physics.neutronics.dragon.dragonInterface module

Triggers DRAGON input writing, execution, and output reading during an ARMI run.

class terrapower.physics.neutronics.dragon.dragonInterface.DragonRunner(objsToRun)[source]

Bases: MpiAction

Run a set of DRAGON runs, possibly in parallel.

MpiActions have access to the operator and the reactor and can therefore reach in as appropriate to select which blocks to execute on in a analysis-specific way.

Builds DragonExecuters to run each individual case.

invokeHook()[source]

Perform DRAGON calculation for the blocks assigned to this process.

class terrapower.physics.neutronics.dragon.dragonInterface.DragonInterface(r, cs)[source]

Bases: Interface

Schedules activities related to DRAGON during ARMI run.

Construct an interface.

The r and cs arguments are required, but may be None, where appropriate for the specific Interface implementation.

Parameters:
  • r (Reactor) – A reactor to attach to

  • cs (Settings) – Settings object to use

Raises:

RuntimeError – Interfaces derived from Interface must define their name

name: str | None = 'dragon'

The name of the interface. This is undefined for the base class, and must be overridden by any concrete class that extends this one.

function = 'latticePhysics'

The function performed by an Interface. This is not required be be defined by implementations of Interface, but is used to form categories of interfaces.

interactBOC(cycle=None)[source]

Run DRAGON on various representative blocks, producing microscopic cross sections.

selectObjsToRun()[source]

Choose blocks that will be passed for DRAGON analysis.