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, skipInspection=False)[source]
Scan a directory for armi inputs and load one to interact with.
- Parameters:
choice (int, optional) – Automatically run with this item out of the menu that would be produced by the existing YAML files.
fName (str, optional) – The path to a settings file to load: my_case.yaml
cs (Settings, optional) – If supplied, this CS object will supercede the other case input methods and use the object directly.
skipInspection (bool, optional) – Whether or not the inputs should be checked for valid settings. Default is False.
Examples
>>> o = armi.init()
- armi.getDefaultPlugins() List[Type[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() 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[ArmiPluginManager] [source]
Return the plugin manager, if there is one.
- armi.getPluginManagerOrFail() ArmiPluginManager [source]
Return the plugin manager. Raise an error if there is none.
- armi.configure(app: Optional[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
BookkeepingPlugin
- Subpackages
- Submodules
- armi.cases package
- armi.cli package
EntryPointsPlugin
ArmiParser
ArmiCLI
splash()
- 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
setMaterialNamespaceOrder()
importMaterialsIntoModuleNamespace()
iterAllMaterialClassesInNamespace()
resolveMaterialClassByName()
- 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.migration package
- armi.nucDirectory package
- Elements
- Nuclide Bases
- Subpackages
- Submodules
- armi.nucDirectory.elements module
- armi.nucDirectory.nucDir module
- armi.nucDirectory.nuclideBases module
NuclideInterface
NuclideWrapper
INuclide
IMcnpNuclide
NuclideBase
NaturalNuclideBase
DummyNuclideBase
LumpNuclideBase
initReachableActiveNuclidesThroughBurnChain()
isotopes()
getIsotopics()
fromName()
isMonoIsotopicElement()
where()
single()
changeLabel()
getDepletableNuclides()
imposeBurnChain()
factory()
addNuclideBases()
readMCCNuclideData()
updateNuclideBasesForSpecialCases()
addGlobalNuclide()
destroyGlobalNuclides()
- armi.nucDirectory.thermalScattering module
- armi.nucDirectory.transmutations module
- armi.nuclearDataIO package
- armi.operators package
- armi.physics package
- armi.reactor package
ReactorPlugin
- Subpackages
- Submodules
- armi.reactor.assemblies module
- armi.reactor.assemblyParameters module
- armi.reactor.blockParameters module
- armi.reactor.blocks module
- armi.reactor.composites module
- armi.reactor.cores module
- armi.reactor.excoreStructure module
- armi.reactor.flags module
- armi.reactor.geometry module
- armi.reactor.reactorParameters module
- armi.reactor.reactors module
- armi.reactor.spentFuelPool module
- armi.reactor.systemLayoutInput module
- armi.reactor.zones module
- armi.settings package
- armi.tests package
getEmptyHexReactor()
getEmptyCartesianReactor()
Fixture
fixture()
requires_fixture()
ArmiTestHelper
rebaselineTextComparisons()
- 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_context module
- armi.tests.test_interfaces module
- armi.tests.test_lwrInputs module
- armi.tests.test_mpiActions module
- armi.tests.test_mpiFeatures module
- armi.tests.test_mpiParameters 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
- armi.utils package
getFileSHA1Hash()
getPowerFractions()
getCycleNames()
getAvailabilityFactors()
getStepLengths()
getCycleLengths()
getBurnSteps()
hasBurnup()
getMaxBurnSteps()
getCumulativeNodeNum()
getCycleNodeFromCumulativeStep()
getCycleNodeFromCumulativeNode()
getNodesPerCycle()
getPreviousTimeNode()
tryPickleOnAllContents()
doTestPickleOnAllContents2()
MyPickler
tryPickleOnAllContents3()
classesInHierarchy()
slantSplit()
prependToList()
capStrLen()
list2str()
createFormattedStrWithDelimiter()
plotMatrix()
userName()
MergeableDict
safeCopy()
safeMove()
- 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.dynamicImporter module
- armi.utils.flags module
- armi.utils.gridEditor module
- armi.utils.hexagon module
- armi.utils.iterables module
- armi.utils.mathematics module
average1DWithinTolerance()
convertToSlice()
efmt()
expandRepeatedFloats()
findClosest()
findNearestValue()
findNearestValueAndIndex()
fixThreeDigitExp()
getFloat()
getStepsFromValues()
isMonotonic()
linearInterpolation()
minimizeScalarFunc()
newtonsMethod()
parabolaFromPoints()
parabolicInterpolation()
relErr()
resampleStepwise()
rotateXY()
- 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.tabulate module
- armi.utils.textProcessors module
- armi.utils.triangle module
- armi.utils.units module
Submodules
- armi.apps module
- armi.conftest module
- armi.context module
- armi.interfaces module
STACK_ORDER
STACK_ORDER.BEFORE
STACK_ORDER.AFTER
STACK_ORDER.PREPROCESSING
STACK_ORDER.FUEL_MANAGEMENT
STACK_ORDER.DEPLETION
STACK_ORDER.FUEL_PERFORMANCE
STACK_ORDER.CROSS_SECTIONS
STACK_ORDER.CRITICAL_CONTROL
STACK_ORDER.FLUX
STACK_ORDER.THERMAL_HYDRAULICS
STACK_ORDER.REACTIVITY_COEFFS
STACK_ORDER.TRANSIENT
STACK_ORDER.BOOKKEEPING
STACK_ORDER.POSTPROCESSING
TightCoupler
Interface
Interface.getDependencies()
Interface.getInputFiles()
Interface.name
Interface.function
Interface.Distribute
Interface.nameContains()
Interface.distributable()
Interface.preDistributeState()
Interface.postDistributeState()
Interface.attachReactor()
Interface.detachReactor()
Interface.duplicate()
Interface.getHistoryParams()
Interface.getInterface()
Interface.interactInit()
Interface.interactBOL()
Interface.interactEOL()
Interface.interactBOC()
Interface.interactEOC()
Interface.interactEveryNode()
Interface.interactCoupled()
Interface.getTightCouplingValue()
Interface.interactError()
Interface.interactDistributeState()
Interface.isRequestedDetailPoint()
Interface.workerOperate()
Interface.enabled()
Interface.bolForce()
Interface.writeInput()
Interface.readOutput()
Interface.specifyInputs()
Interface.updatePhysicsCouplingControl()
InputWriter
OutputReader
getActiveInterfaceInfo()
isInterfaceActive()
InterfaceInfo
- armi.meta module
- armi.mpiActions module
- armi.pluginManager module
- armi.plugins module
ArmiPlugin
ArmiPlugin.exposeInterfaces()
ArmiPlugin.defineParameters()
ArmiPlugin.afterConstructionOfAssemblies()
ArmiPlugin.onProcessCoreLoading()
ArmiPlugin.beforeReactorConstruction()
ArmiPlugin.defineFlags()
ArmiPlugin.defineBlockTypes()
ArmiPlugin.defineAssemblyTypes()
ArmiPlugin.defineBlueprintsSections()
ArmiPlugin.defineEntryPoints()
ArmiPlugin.defineSettings()
ArmiPlugin.defineSettingsValidators()
ArmiPlugin.defineCaseDependencies()
ArmiPlugin.defineGuiWidgets()
ArmiPlugin.getOperatorClassFromRunType()
ArmiPlugin.defineParameterRenames()
ArmiPlugin.mpiActionRequiresReset()
ArmiPlugin.getReportContents()
ArmiPlugin.defineSystemBuilders()
ArmiPlugin.getAxialExpansionChanger()
UserPlugin
getNewPluginManager()
collectInterfaceDescriptions()
PluginError
- armi.runLog module