armi package¶
Welcome to the Advanced Reactor Modeling Interface (ARMI).
This module initializes the ARMI platform. The bootstrap process is broken into several phases:
Import fundamental dependencies in Python library and some third-party libs
Investigate environment: Check Python version, check code version, check MPI situation, check for TTY/GUI/interactivity,
Set up temp dirs
Set up printout table formats (in preparation of logging info)
Initialize all possible nuclide objects in the nuclide directory
Discover and register available built-in
plugins
(custom ones registered after input available)Discover and define all potential configuration settings from available plugins
Read input files
Update
nuclide directory
with depletion info based on configDiscover and define all state
Parameters
on data model (possibly dependent on config)Discover
Entry points
from pluginsChoose entry point based on user command
If using the run
entry point, additional work is done:
Build
reactor model
based on inputBuild
operator object
with specific calculation loopBuild ordered interface stack based on configuration settings
Begin looping over interface stack, operating upon data model according to operator design
Loop until complete
Wrap up
Quit
- armi.disableFutureConfigures()[source]¶
Exposed function to ensure armi.configure() isn’t called more than once
- armi.isStableReleaseVersion(version=None)[source]¶
Determine if the version should be considered a stable release
- armi.init(choice=None, fName=None, cs=None)[source]¶
Scan a directory for armi inputs and load one to interact with.
- Parameters
Examples
>>> o = armi.init()
- armi.getDefaultPlugins() List[Type[armi.plugins.ArmiPlugin]] [source]¶
Return a list containing the default set of ARMI Framework plugins.
This is useful for an application to fold all of the ARMI Framework’s capabilities into its own set of plugins.
- armi.getDefaultPluginManager() armi.pluginManager.ArmiPluginManager [source]¶
Return a plugin manager containing the default set of ARMI Framework plugins.
This is useful when using standalone facilities of ARMI without a specific application.
- armi.getPluginManager() Optional[armi.pluginManager.ArmiPluginManager] [source]¶
Return the plugin manager, if there is one.
- armi.getPluginManagerOrFail() armi.pluginManager.ArmiPluginManager [source]¶
Return the plugin manager. Raise an error if there is none.
- armi.getApp() Optional[armi.apps.App] [source]¶
- armi.configure(app: Optional[armi.apps.App] = None, permissive=False)[source]¶
Set the plugin manager for the Framework and configure internals to those plugins.
- Parameters
app – An
armi.apps.App
instance with which the framework is to be configured. If it is not provided, then the default ARMI App will be used.permissive – Whether or not an error should be produced if
configure
is called more than once. This should only be set toTrue
under testing or demonstration purposes, where the contents of otherwise independent scripts need to be run under the same python instance.
Important
Since this affects the behavior of several modules at their import time, it is generally not safe to re-configure the ARMI framework once it has been configured. Therefore this will raise an
RuntimeError
if such a re-configuration is attempted, unlesspermissive
is set toTrue
.Notes
We are planning on encapsulating much of the global ARMI state that gets configured with an App into the App object itself (with some other things going into the Case object). This will provide a number of benefits, the main one being that it will become trivial to re-configure the framework, which is currently not possible.
- armi.applyAsyncioWindowsWorkaround() None [source]¶
Apply Asyncio workaround for Windows and Python 3.8.
This prevents a NotImplementedError on Windows with Python 3.8 his error showed up during jupyter notebook built-tests and documentation. See https://bugs.python.org/issue37373
Subpackages¶
- armi.bookkeeping package
- armi.cases package
- armi.cli package
- Subpackages
- Submodules
- armi.cli.checkInputs module
- armi.cli.cleanTemps module
- armi.cli.clone module
- armi.cli.compareCases module
- armi.cli.database module
- armi.cli.entryPoint module
- armi.cli.gridGui module
- armi.cli.migrateInputs module
- armi.cli.modify module
- armi.cli.reportsEntryPoint module
- armi.cli.run module
- armi.cli.runSuite module
- armi.materials package
- Subpackages
- Submodules
- armi.materials.air module
- armi.materials.alloy200 module
- armi.materials.b4c module
- armi.materials.be9 module
- armi.materials.caH2 module
- armi.materials.californium module
- armi.materials.concrete module
- armi.materials.copper module
- armi.materials.cs module
- armi.materials.custom module
- armi.materials.graphite module
- armi.materials.hafnium module
- armi.materials.hastelloyN module
- armi.materials.ht9 module
- armi.materials.inconel module
- armi.materials.inconel600 module
- armi.materials.inconel625 module
- armi.materials.inconel800 module
- armi.materials.inconelPE16 module
- armi.materials.inconelX750 module
- armi.materials.lead module
- armi.materials.leadBismuth module
- armi.materials.lithium module
- armi.materials.magnesium module
- armi.materials.material module
- armi.materials.mgO module
- armi.materials.mixture module
- armi.materials.molybdenum module
- armi.materials.mox module
- armi.materials.nZ module
- armi.materials.potassium module
- armi.materials.scandiumOxide module
- armi.materials.siC module
- armi.materials.sodium module
- armi.materials.sodiumChloride module
- armi.materials.sulfur module
- armi.materials.tZM module
- armi.materials.tantalum module
- armi.materials.thU module
- armi.materials.thorium module
- armi.materials.thoriumOxide module
- armi.materials.uThZr module
- armi.materials.uZr module
- armi.materials.uranium module
- armi.materials.uraniumOxide module
- armi.materials.void module
- armi.materials.water module
- armi.materials.yttriumOxide module
- armi.materials.zincOxide module
- armi.materials.zr module
- armi.nucDirectory package
- armi.nuclearDataIO package
- armi.operators package
- armi.physics package
- armi.reactor package
- Subpackages
- Submodules
- armi.reactor.assemblies module
- armi.reactor.assemblyLists module
- armi.reactor.assemblyParameters module
- armi.reactor.blockParameters module
- armi.reactor.blocks module
- armi.reactor.composites module
- armi.reactor.flags module
- armi.reactor.geometry module
- armi.reactor.grids module
- armi.reactor.reactorParameters module
- armi.reactor.reactors module
- armi.reactor.systemLayoutInput module
- armi.reactor.zones module
- armi.scripts package
- armi.settings package
- armi.tests package
- Submodules
- armi.tests.mockRunLogs module
- armi.tests.refSmallReactorShuffleLogic module
- armi.tests.test_apps module
- armi.tests.test_armiTestHelper module
- armi.tests.test_cartesian module
- armi.tests.test_interfaces module
- armi.tests.test_lwrInputs module
- armi.tests.test_mpiActions module
- armi.tests.test_mpiFeatures module
- armi.tests.test_notebooks module
- armi.tests.test_plugins module
- armi.tests.test_runLog module
- armi.tests.test_tests module
- armi.tests.test_user_plugins module
- Submodules
- armi.utils package
- Subpackages
- Submodules
- armi.utils.asciimaps module
- armi.utils.codeTiming module
- armi.utils.customExceptions module
- armi.utils.densityTools module
- armi.utils.directoryChangers module
- armi.utils.directoryChangersMpi module
- armi.utils.dochelpers module
- armi.utils.dynamicImporter module
- armi.utils.flags module
- armi.utils.gridEditor module
- armi.utils.hexagon module
- armi.utils.iterables module
- armi.utils.mathematics module
- armi.utils.outputCache module
- armi.utils.parsing module
- armi.utils.pathTools module
- armi.utils.plotting module
- armi.utils.properties module
- armi.utils.reportPlotting module
- armi.utils.textProcessors module
- armi.utils.triangle module
- armi.utils.units module