armi.bookkeeping.plotting module

A collection of plotting functions useful during ARMI analysis.

armi.bookkeeping.plotting.plotReactorPerformance(reactor, dbi, buGroups, extension=None)[source]

Generates a set of plots useful in reactor analysis given a populated reactor.

Parameters
  • reactor (armi.reactor.reactors.Reactor) – The reactor to plot

  • dbi (DatabaseInterface) – The DatabaseInterface object from which to pull historical data

  • buGroups (list of float) – The burnup groups in the problem

  • extension (str, optional) – The file extention for saving plots

armi.bookkeeping.plotting.valueVsTime(reactor, x, y, key, yaxis, title, ymin=None, extension=None)[source]

Plots a value vs. time with a standard graph format

Parameters
  • reactor (armi.reactor.reactors object) –

  • reportGroup (armi.bookkeeping.report.data.Group object) –

  • x (iterable) – The x-axis values (the abscissa)

  • y (iterable) – The y-axis values (the ordinate)

  • key (str) – A key word to add the item to the report interface

  • yaxis (str) – The y axis label

  • title (str) – the plot title

  • ymin (str, optional) – The minimum y-axis value. If any ordinates are less than this value, it will be ignored.

  • extension (str, optional) – The file extention for saving the figure

armi.bookkeeping.plotting.keffVsTime(reactor, time, keff, keffUnc=None, ymin=None, extension=None)[source]

Plots core keff vs. time

Parameters
  • time (list) – Time in years

  • keff (list) – Keff in years

  • keffUnc (list, optional) – Uncontrolled keff or None (will be plotted as secondary series)

  • ymin (float, optional) – Minimum y-axis value to target.

  • extension (str, optional) – The file extention for saving the figure

armi.bookkeeping.plotting.buVsTime(reactor, scalars, extension=None)[source]

produces a burnup and DPA vs. time plot for this case

Will add a second axis containing DPA if the scalar column maxDPA exists.

Parameters
  • scalars (dict) – Scalar values for this case

  • extension (str, optional) – The file extention for saving the figure

armi.bookkeeping.plotting.distortionVsTime(reactor, scalars, extension=None)[source]

plots max distortion vs. time if the distortion interface is attached

armi.bookkeeping.plotting.xsHistoryVsTime(reactor, buGroups, extension=None)[source]

Plot cross section history vs. time.

Parameters
  • reactor (armi.reactor.reactors object) –

  • buGroups (list of float) – The burnup groups in the problem

  • extension (str, optional) – The file extention for saving the figure

armi.bookkeeping.plotting.movesVsCycle(reactor, scalars, extension=None)[source]

make a bar chart showing the number of moves per cycle in the full core

A move is defined as an assembly being picked up, moved, and put down. So if two assemblies are swapped, that is 2 moves. Note that it does not count temporary storage for such swaps. This is an approximation because in a chain of moves, only one out of the chain would have to be temporarily stored. So as the chains get longer, this approximation gets more accurate.

Parameters
  • scalars (dict) – The reactor-level params for this case.

  • extension (str, optional) – The file extention for saving the figure

See also

FuelHandler.outage()

sets the number of moves in each cycle

armi.bookkeeping.plotting.plotCoreOverviewRadar(reactors, reactorNames=None)[source]

Plot key features of a set of reactors on radar/spider plots.

Useful for comparing reactors to one another.

armi.bookkeeping.plotting._getNeutronicVals(r)[source]
armi.bookkeeping.plotting._getMechanicalVals(r)[source]
armi.bookkeeping.plotting._getPhysicalVals(r)[source]
armi.bookkeeping.plotting._getFuelVals(r)[source]
armi.bookkeeping.plotting._getTHVals(r)[source]
armi.bookkeeping.plotting._getEconVals(r)[source]
armi.bookkeeping.plotting._radarFactory(numVars, frame='circle')[source]

Create a radar chart with numVars axes.

This function creates a RadarAxes projection and registers it.

Raises

ValueError – If value of the frame is unknown.

Parameters
  • numVars (int) – Number of variables for radar chart.

  • frame ({'circle' | 'polygon'}) – Shape of frame surrounding axes.

armi.bookkeeping.plotting._unitPolyVerts(theta)[source]

Return vertices of polygon for subplot axes.

This polygon is circumscribed by a unit circle centered at (0.5, 0.5)

armi.bookkeeping.plotting.createPlotMetaData(title, xLabel, yLabel, xMajorTicks=None, yMajorTicks=None, legendLabels=None)[source]

Create plot metadata (title, labels, ticks)

Parameters
  • title (str) – Plot title

  • xLabel (str) – x-axis label

  • yLabel (str) – y-axis label

  • xMajorTicks (list of float) – List of axial position at which to insert major ticks

  • yMajorTicks (list of float) – List of axial position at which to insert major ticks

  • legendsLabels (list of str) – Labels to used in the plot legend

Returns

metadata – Dictionary with all plot metadata information

Return type

dict

armi.bookkeeping.plotting.plotAxialProfile(zVals, dataVals, fName, metadata, nPlot=1, yLog=False)[source]

Plot the axial profile of quantity zVals.

Parameters
  • zVals (list of float) – Axial position of the quantity to be plotted

  • dataVals (list of float) – Axial quantity to be plotted

  • fName (str) – The file name for the plot image file.

  • metadata (bool) – Metadata (title, labels, legends, ticks)

  • nPlot (str) – Number of plots to be generated

  • yLog (bool) – Boolean flag indicating that y-axis is to be plotted on a log scale.