Skip to content

Commit

Permalink
Merge 25ad8c9 into 827d223
Browse files Browse the repository at this point in the history
  • Loading branch information
tp-pbritt-nuc authored Apr 2, 2024
2 parents 827d223 + 25ad8c9 commit 745fb28
Show file tree
Hide file tree
Showing 74 changed files with 218 additions and 0 deletions.
1 change: 1 addition & 0 deletions armi/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ def init(choice=None, fName=None, cs=None):
.. impl:: Settings are used to define an ARMI run.
:id: I_ARMI_SETTING1
:implements: R_ARMI_SETTING
:qualified_code: Nala
This method initializes an ARMI run, and if successful returns an Operator.
That operator is designed to drive the reactor simulation through time steps to
Expand Down
2 changes: 2 additions & 0 deletions armi/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ class App:
.. impl:: An App has a plugin manager.
:id: I_ARMI_APP_PLUGINS
:implements: R_ARMI_APP_PLUGINS
:qualified_code: Nala
The App class is intended to be subclassed in order to customize the functionality
and look-and-feel of the ARMI Framework for a specific use case. An App contains a
Expand Down Expand Up @@ -131,6 +132,7 @@ def getSettings(self) -> Dict[str, Setting]:
.. impl:: Applications will not allow duplicate settings.
:id: I_ARMI_SETTINGS_UNIQUE
:implements: R_ARMI_SETTINGS_UNIQUE
:qualified_code: Nala
Each ARMI application includes a collection of Plugins. Among other
things, these plugins can register new settings in addition to
Expand Down
5 changes: 5 additions & 0 deletions armi/bookkeeping/db/database3.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ class Database3:
.. impl:: The database files are H5, and thus language agnostic.
:id: I_ARMI_DB_H51
:implements: R_ARMI_DB_H5
:qualified_code: Nala
This class implements a light wrapper around H5 files, so they can be used to
store ARMI outputs. H5 files are commonly used in scientific applications in
Expand Down Expand Up @@ -234,6 +235,7 @@ def writeSystemAttributes(h5db):
.. impl:: Add system attributes to the database.
:id: I_ARMI_DB_QA
:implements: R_ARMI_DB_QA
:qualified_code: Nala
This method writes some basic system information to the H5 file. This is
designed as a starting point, so users can see information about the system
Expand Down Expand Up @@ -470,6 +472,7 @@ def writeInputsToDB(self, cs, csString=None, geomString=None, bpString=None):
.. impl:: The run settings are saved the settings file.
:id: I_ARMI_DB_CS
:implements: R_ARMI_DB_CS
:qualified_code: Nala
A ``Settings`` object is passed into this method, and then the settings are
converted into a YAML string stream. That stream is then written to the H5
Expand All @@ -479,6 +482,7 @@ def writeInputsToDB(self, cs, csString=None, geomString=None, bpString=None):
.. impl:: The reactor blueprints are saved the settings file.
:id: I_ARMI_DB_BP
:implements: R_ARMI_DB_BP
:qualified_code: Nala
A ``Blueprints`` string is optionally passed into this method, and then
written to the H5 file. If it is not passed in, this method will attempt to
Expand Down Expand Up @@ -710,6 +714,7 @@ def load(
.. impl:: Users can load a reactor from a DB.
:id: I_ARMI_DB_R_LOAD
:implements: R_ARMI_DB_R_LOAD
:qualified_code: Nala
This method creates a ``Reactor`` object by reading the reactor state out
of an ARMI database file. This is done by passing in mandatory arguements
Expand Down
1 change: 1 addition & 0 deletions armi/bookkeeping/db/databaseInterface.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ def prepRestartRun(self):
.. impl:: Runs at a particular timenode can be re-instantiated for a snapshot.
:id: I_ARMI_SNAPSHOT_RESTART
:implements: R_ARMI_SNAPSHOT_RESTART
:qualified_code: Nala
This method loads the state of a reactor from a particular point in time
from a standard ARMI
Expand Down
1 change: 1 addition & 0 deletions armi/bookkeeping/db/layout.py
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,7 @@ def writeToDB(self, h5group):
.. impl:: Write data to the DB for a given time step.
:id: I_ARMI_DB_TIME
:implements: R_ARMI_DB_TIME
:qualified_code: Nala
This method writes a snapshot of the current state of the reactor to the
database. It takes a pointer to an existing HDF5 file as input, and it
Expand Down
1 change: 1 addition & 0 deletions armi/bookkeeping/historyTracker.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ class HistoryTrackerInterface(interfaces.Interface):
than the database.
:id: I_ARMI_HIST_TRACK
:implements: R_ARMI_HIST_TRACK
:qualified_code: Nala
This is a special :py:class:`Interface <armi.interfaces.Interface>` that is
designed to store assembly and cross section data throughout time. This is done
Expand Down
1 change: 1 addition & 0 deletions armi/bookkeeping/snapshotInterface.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ class SnapshotInterface(interfaces.Interface):
.. impl:: Save extra data to be saved from a run, at specified time nodes.
:id: I_ARMI_SNAPSHOT0
:implements: R_ARMI_SNAPSHOT
:qualified_code: Nala
This is a special :py:class:`Interface <armi.interfaces.Interface>` that is
designed to run along all the other Interfaces during a simulation, to save off
Expand Down
2 changes: 2 additions & 0 deletions armi/cases/case.py
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,7 @@ def run(self):
.. impl:: The case class allows for a generic ARMI simulation.
:id: I_ARMI_CASE
:implements: R_ARMI_CASE
:qualified_code: Nala
This method is responsible for "running" the ARMI simulation
instigated by the inputted settings. This initializes an
Expand Down Expand Up @@ -568,6 +569,7 @@ def checkInputs(self):
.. impl:: Perform validity checks on case inputs.
:id: I_ARMI_CASE_CHECK
:implements: R_ARMI_CASE_CHECK
:qualified_code: Nala
This method checks the validity of the current settings. It relies
on an :py:class:`~armi.operators.settingsValidation.Inspector`
Expand Down
1 change: 1 addition & 0 deletions armi/cases/inputModifiers/inputModifiers.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class InputModifier:
.. impl:: A generic tool to modify user inputs on multiple cases.
:id: I_ARMI_CASE_MOD1
:implements: R_ARMI_CASE_MOD
:qualified_code: Nala
This class serves as an abstract base class for modifying the inputs of
a case, typically case settings. Child classes must implement a
Expand Down
1 change: 1 addition & 0 deletions armi/cases/suite.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ class CaseSuite:
.. impl:: CaseSuite allows for one case to start after another completes.
:id: I_ARMI_CASE_SUITE
:implements: R_ARMI_CASE_SUITE
:qualified_code: Nala
The CaseSuite object allows multiple, often related,
:py:class:`~armi.cases.case.Case` objects to be run sequentially. A CaseSuite
Expand Down
1 change: 1 addition & 0 deletions armi/cases/suiteBuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ class SuiteBuilder:
.. impl:: A generic tool to modify user inputs on multiple cases.
:id: I_ARMI_CASE_MOD0
:implements: R_ARMI_CASE_MOD
:qualified_code: Nala
This class provides the capability to create a
:py:class:`~armi.cases.suite.CaseSuite` based on programmatic
Expand Down
1 change: 1 addition & 0 deletions armi/cli/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ class ArmiCLI:
.. impl:: The basic ARMI CLI, for running a simulation.
:id: I_ARMI_CLI_CS
:implements: R_ARMI_CLI_CS
:qualified_code: Nala
Provides a basic command-line interface (CLI) for running an ARMI simulation. Available
commands can be listed with ``-l``. Information on individual commands can be obtained by
Expand Down
1 change: 1 addition & 0 deletions armi/cli/entryPoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ class EntryPoint:
.. impl:: Generic CLI base class for developers to use.
:id: I_ARMI_CLI_GEN
:implements: R_ARMI_CLI_GEN
:qualified_code: Nala
Provides a base class for plugin developers to use in creating application-specific CLIs.
Valid subclasses must at least provide a ``name`` class attribute.
Expand Down
3 changes: 3 additions & 0 deletions armi/interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ class STACK_ORDER: # noqa: invalid-class-name
.. impl:: Define an ordered list of interfaces.
:id: I_ARMI_OPERATOR_INTERFACES0
:implements: R_ARMI_OPERATOR_INTERFACES
:qualified_code: Nala
At each time node during a simulation, an ordered colletion of Interfaces
are run (referred to as the interface stack). But ARMI does not force the order upon the analyst.
Expand Down Expand Up @@ -90,6 +91,7 @@ class TightCoupler:
.. impl:: The TightCoupler defines the convergence criteria for physics coupling.
:id: I_ARMI_OPERATOR_PHYSICS0
:implements: R_ARMI_OPERATOR_PHYSICS
:qualified_code: Nala
During a simulation, the developers of an ARMI application frequently want to
iterate on some physical calculation until that calculation has converged to
Expand Down Expand Up @@ -259,6 +261,7 @@ class Interface:
.. impl:: The interface shall allow code execution at important operational points in time.
:id: I_ARMI_INTERFACE
:implements: R_ARMI_INTERFACE
:qualified_code: Nala
The Interface class defines a number methods with names like ``interact***``.
These methods are called in order at each time node. This allows for an
Expand Down
2 changes: 2 additions & 0 deletions armi/materials/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ def setMaterialNamespaceOrder(order):
of duplicates.
:id: I_ARMI_MAT_ORDER
:implements: R_ARMI_MAT_ORDER
:qualified_code: Nala
An ARMI application will need materials. Materials can be imported from
any code the application has access to, like plugin packages. This leads to
Expand Down Expand Up @@ -144,6 +145,7 @@ def resolveMaterialClassByName(name: str, namespaceOrder: List[str] = None):
.. impl:: Materials can be searched across packages in a defined namespace.
:id: I_ARMI_MAT_NAMESPACE
:implements: R_ARMI_MAT_NAMESPACE
:qualified_code: Nala
During the runtime of an ARMI application, but particularly during the
construction of the reactor in memory, materials will be requested by name. At
Expand Down
4 changes: 4 additions & 0 deletions armi/materials/material.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class Material:
.. impl:: The abstract material class.
:id: I_ARMI_MAT_PROPERTIES
:implements: R_ARMI_MAT_PROPERTIES
:qualified_code: Nala
The ARMI Materials library is based on the Object-Oriented Programming design
approach, and uses this generic ``Material`` base class. In this class we
Expand All @@ -49,6 +50,7 @@ class Material:
.. impl:: Materials generate nuclide mass fractions at instantiation.
:id: I_ARMI_MAT_FRACS
:implements: R_ARMI_MAT_FRACS
:qualified_code: Nala
An ARMI material is meant to be able to represent real world materials that
might be used in the construction of a nuclear reactor. As such, they are
Expand Down Expand Up @@ -121,6 +123,7 @@ def name(self):
.. impl:: The name of a material is accessible.
:id: I_ARMI_MAT_NAME
:implements: R_ARMI_MAT_NAME
:qualified_code: Nala
Every instance of an ARMI material must have a simple, human-readable
string name. And, if possible, we want this string to match the class
Expand Down Expand Up @@ -743,6 +746,7 @@ def linearExpansion(self, Tk=None, Tc=None):
.. impl:: Fluid materials are not thermally expandable.
:id: I_ARMI_MAT_FLUID
:implements: R_ARMI_MAT_FLUID
:qualified_code: Nala
ARMI does not model thermal expansion of fluids. The ``Fluid`` superclass
therefore sets the thermal expansion coefficient to zero. All fluids
Expand Down
1 change: 1 addition & 0 deletions armi/materials/void.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ class Void(material.Fluid):
.. impl:: Define a void material with zero density.
:id: I_ARMI_MAT_VOID
:implements: R_ARMI_MAT_VOID
:qualified_code: Nala
To help with expansion, it is sometimes useful to put a small section of void
material into the reactor model. This is not meant to represent a true void,
Expand Down
2 changes: 2 additions & 0 deletions armi/nucDirectory/elements.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
.. impl:: A tool for querying basic data for elements of the periodic table.
:id: I_ARMI_ND_ELEMENTS0
:implements: R_ARMI_ND_ELEMENTS
:qualified_code: Nala
The :py:mod:`elements <armi.nucDirectory.elements>` module defines the
:py:class:`Element <armi.nucDirectory.elements.Element>` class which acts as
Expand Down Expand Up @@ -171,6 +172,7 @@ def __init__(self, z, symbol, name, phase="UNKNOWN", group="UNKNOWN"):
.. impl:: An element of the periodic table.
:id: I_ARMI_ND_ELEMENTS1
:implements: R_ARMI_ND_ELEMENTS
:qualified_code: Nala
The :py:class:`Element <armi.nucDirectory.elements.Element>` class
acts as a data structure for organizing information about an
Expand Down
9 changes: 9 additions & 0 deletions armi/nucDirectory/nuclideBases.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
.. impl:: Isotopes and isomers can be queried by name, label, MC2-3 ID, MCNP ID, and AAAZZZS ID.
:id: I_ARMI_ND_ISOTOPES0
:implements: R_ARMI_ND_ISOTOPES
:qualified_code: Nala
The :py:mod:`nuclideBases <armi.nucDirectory.nuclideBases>` module defines
the :py:class:`NuclideBase <armi.nucDirectory.nuclideBases.NuclideBase>`
Expand Down Expand Up @@ -498,6 +499,7 @@ class NuclideBase(INuclide, IMcnpNuclide):
.. impl:: Isotopes and isomers can be queried by name and label.
:id: I_ARMI_ND_ISOTOPES1
:implements: R_ARMI_ND_ISOTOPES
:qualified_code: Nala
The :py:class:`NuclideBase <armi.nucDirectory.nuclideBases.NuclideBase>`
class provides a data structure for information about a single nuclide,
Expand Down Expand Up @@ -582,6 +584,7 @@ def getMcc2Id(self):
.. impl:: Isotopes and isomers can be queried by MC2-2 ID.
:id: I_ARMI_ND_ISOTOPES2
:implements: R_ARMI_ND_ISOTOPES
:qualified_code: Nala
This method returns the ``mcc2id`` attribute of a
:py:class:`NuclideBase <armi.nucDirectory.nuclideBases.NuclideBase>`
Expand All @@ -596,6 +599,7 @@ def getMcc3Id(self):
.. impl:: Isotopes and isomers can be queried by MC2-3 ID.
:id: I_ARMI_ND_ISOTOPES3
:implements: R_ARMI_ND_ISOTOPES
:qualified_code: Nala
This method returns the ``mcc3id`` attribute of a
:py:class:`NuclideBase <armi.nucDirectory.nuclideBases.NuclideBase>`
Expand All @@ -611,6 +615,7 @@ def getMcnpId(self):
.. impl:: Isotopes and isomers can be queried by MCNP ID.
:id: I_ARMI_ND_ISOTOPES4
:implements: R_ARMI_ND_ISOTOPES
:qualified_code: Nala
This method generates the MCNP ID for an isotope using the standard
MCNP format based on the atomic number A, number of protons Z, and
Expand Down Expand Up @@ -646,6 +651,7 @@ def getAAAZZZSId(self):
.. impl:: Isotopes and isomers can be queried by AAAZZZS ID.
:id: I_ARMI_ND_ISOTOPES5
:implements: R_ARMI_ND_ISOTOPES
:qualified_code: Nala
This method generates the AAAZZZS format ID for an isotope. Where
AAA is the mass number, ZZZ is the atomic number, and S is the
Expand Down Expand Up @@ -1195,6 +1201,7 @@ def addNuclideBases():
.. impl:: Separating natural abundance data from code.
:id: I_ARMI_ND_DATA0
:implements: R_ARMI_ND_DATA
:qualified_code: Nala
This function reads the ``nuclides.dat`` file from the ARMI resources
folder. This file contains metadata for 4,614 nuclides, including
Expand Down Expand Up @@ -1264,6 +1271,7 @@ def readMCCNuclideData():
.. impl:: Separating MCC data from code.
:id: I_ARMI_ND_DATA1
:implements: R_ARMI_ND_DATA
:qualified_code: Nala
This function reads the mcc-nuclides.yaml file from the ARMI resources
folder. This file contains the MC\ :sup:`2`-2 ID (from ENDF/B-V.2) and MC\ :sup:`2`-3 ID
Expand Down Expand Up @@ -1297,6 +1305,7 @@ def updateNuclideBasesForSpecialCases():
.. impl:: The special case name Am242g is supported.
:id: I_ARMI_ND_ISOTOPES6
:implements: R_ARMI_ND_ISOTOPES
:qualified_code: Nala
This function updates the keys for the :py:class:`NuclideBase
<armi.nucDirectory.nuclideBases.NuclideBase>` instances for Am-242m and
Expand Down
1 change: 1 addition & 0 deletions armi/nuclearDataIO/cccc/cccc.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
R_ARMI_NUCDATA_DIF3D,
R_ARMI_NUCDATA_PMATRX,
R_ARMI_NUCDATA_DLAYXS
:qualified_code: Nala
This module provides a number of base classes that implement general
capabilities for binary and ASCII file I/O. The :py:class:`IORecord` serves
Expand Down
1 change: 1 addition & 0 deletions armi/nuclearDataIO/cccc/dif3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ def readWrite(self):
.. impl:: Tool to read and write DIF3D files.
:id: I_ARMI_NUCDATA_DIF3D
:implements: R_ARMI_NUCDATA_DIF3D
:qualified_code: Nala
The reading and writing of the DIF3D binary file is performed using
:py:class:`StreamWithDataContainer <.cccc.StreamWithDataContainer>`
Expand Down
1 change: 1 addition & 0 deletions armi/nuclearDataIO/cccc/dlayxs.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,7 @@ def readWrite(self):
.. impl:: Tool to read and write DLAYXS files.
:id: I_ARMI_NUCDATA_DLAYXS
:implements: R_ARMI_NUCDATA_DLAYXS
:qualified_code: Nala
Reading and writing DLAYXS delayed neutron data files is performed
using the general nuclear data I/O functionalities described in
Expand Down
1 change: 1 addition & 0 deletions armi/nuclearDataIO/cccc/gamiso.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
.. impl:: Tool to read and write GAMISO files.
:id: I_ARMI_NUCDATA_GAMISO
:implements: R_ARMI_NUCDATA_GAMISO
:qualified_code: Nala
The majority of the functionality in this module is inherited from the
:py:mod:`~armi.nuclearDataIO.cccc.isotxs` module. See
Expand Down
1 change: 1 addition & 0 deletions armi/nuclearDataIO/cccc/geodst.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ def readWrite(self):
.. impl:: Tool to read and write GEODST files.
:id: I_ARMI_NUCDATA_GEODST
:implements: R_ARMI_NUCDATA_GEODST
:qualified_code: Nala
Reading and writing GEODST files is performed using the general
nuclear data I/O functionalities described in
Expand Down
1 change: 1 addition & 0 deletions armi/nuclearDataIO/cccc/isotxs.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,7 @@ def readWrite(self):
.. impl:: Tool to read and write ISOTXS files.
:id: I_ARMI_NUCDATA_ISOTXS
:implements: R_ARMI_NUCDATA_ISOTXS
:qualified_code: Nala
Reading and writing ISOTXS files is performed using the general
nuclear data I/O functionalities described in
Expand Down
1 change: 1 addition & 0 deletions armi/nuclearDataIO/cccc/pmatrx.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ def readWrite(self):
.. impl:: Tool to read and write PMATRX files.
:id: I_ARMI_NUCDATA_PMATRX
:implements: R_ARMI_NUCDATA_PMATRX
:qualified_code: Nala
Reading and writing PMATRX files is performed using the general
nuclear data I/O functionalities described in
Expand Down
1 change: 1 addition & 0 deletions armi/nuclearDataIO/xsCollections.py
Original file line number Diff line number Diff line change
Expand Up @@ -790,6 +790,7 @@ def computeMacroscopicGroupConstants(
.. impl:: Compute macroscopic cross sections from microscopic cross sections and number densities.
:id: I_ARMI_NUCDATA_MACRO
:implements: R_ARMI_NUCDATA_MACRO
:qualified_code: Nala
This function computes the macroscopic cross sections of a specified
reaction type from inputted microscopic cross sections and number
Expand Down
Loading

0 comments on commit 745fb28

Please sign in to comment.