.. _io_statepoint:

=======================
State Point File Format
=======================

The current version of the statepoint file format is 16.0.

**/**

:Attributes: - **filetype** (*char[]*) -- String indicating the type of file.
             - **version** (*int[2]*) -- Major and minor version of the
               statepoint file format.
             - **openmc_version** (*int[3]*) -- Major, minor, and release
               version number for OpenMC.
             - **git_sha1** (*char[40]*) -- Git commit SHA-1 hash.
             - **date_and_time** (*char[]*) -- Date and time the summary was
               written.
             - **path** (*char[]*) -- Path to directory containing input files.
             - **cmfd_on** (*int*) -- Flag indicating whether CMFD is on (1) or
               off (0).
             - **tallies_present** (*int*) -- Flag indicating whether tallies
               are present (1) or not (0).
             - **source_present** (*int*) -- Flag indicating whether the source
               bank is present (1) or not (0).

:Datasets: - **seed** (*int8_t*) -- Pseudo-random number generator seed.
           - **energy_mode** (*char[]*) -- Energy mode of the run, either
             'continuous-energy' or 'multi-group'.
           - **run_mode** (*char[]*) -- Run mode used, either 'eigenvalue' or
             'fixed source'.
           - **n_particles** (*int8_t*) -- Number of particles used per generation.
           - **n_batches** (*int*) -- Number of batches to simulate.
           - **current_batch** (*int*) -- The number of batches already simulated.
           - **n_inactive** (*int*) -- Number of inactive batches. Only present
             when `run_mode` is 'eigenvalue'.
           - **generations_per_batch** (*int*) -- Number of generations per
             batch. Only present when `run_mode` is 'eigenvalue'.
           - **k_generation** (*double[]*) -- k-effective for each generation
             simulated.
           - **entropy** (*double[]*) -- Shannon entropy for each generation
             simulated.
           - **k_col_abs** (*double*) -- Sum of product of collision/absorption
             estimates of k-effective.
           - **k_col_tra** (*double*) -- Sum of product of
             collision/track-length estimates of k-effective.
           - **k_abs_tra** (*double*) -- Sum of product of
             absorption/track-length estimates of k-effective.
           - **k_combined** (*double[2]*) -- Mean and standard deviation of a
             combined estimate of k-effective.
           - **n_realizations** (*int*) -- Number of realizations for global
             tallies.
           - **global_tallies** (*double[][2]*) -- Accumulated sum and
             sum-of-squares for each global tally.
           - **source_bank** (Compound type) -- Source bank information for each
             particle. The compound type has fields ``wgt``, ``xyz``, ``uvw``,
             ``E``, ``g``, and ``delayed_group``, which represent the weight,
             position, direction, energy, energy group, and delayed_group of the
             source particle, respectively. Only present when `run_mode` is
             'eigenvalue'.

**/cmfd/**

:Datasets: - **indices** (*int[4]*) -- Indices for cmfd mesh (i,j,k,g)
           - **k_cmfd** (*double[]*) -- CMFD eigenvalues
           - **cmfd_src** (*double[][][][]*) -- CMFD fission source
           - **cmfd_entropy** (*double[]*) -- CMFD estimate of Shannon entropy
           - **cmfd_balance** (*double[]*) -- RMS of the residual neutron
             balance equation on CMFD mesh
           - **cmfd_dominance** (*double[]*) -- CMFD estimate of dominance ratio
           - **cmfd_srccmp** (*double[]*) -- RMS comparison of difference
             between OpenMC and CMFD fission source

**/tallies/**

:Attributes: - **n_tallies** (*int*) -- Number of user-defined tallies.
             - **ids** (*int[]*) -- User-defined unique ID of each tally.

**/tallies/meshes/**

:Attributes: - **n_meshes** (*int*) -- Number of meshes in the problem.
             - **ids** (*int[]*) -- User-defined unique ID of each mesh.

**/tallies/meshes/mesh <uid>/**

:Datasets: - **type** (*char[]*) -- Type of mesh.
           - **dimension** (*int*) -- Number of mesh cells in each dimension.
           - **lower_left** (*double[]*) -- Coordinates of lower-left corner of
             mesh.
           - **upper_right** (*double[]*) -- Coordinates of upper-right corner
             of mesh.
           - **width** (*double[]*) -- Width of each mesh cell in each
             dimension.

**/tallies/derivatives/derivative <id>/**

:Datasets: - **independent variable** (*char[]*) -- Independent variable of
             tally derivative.
           - **material** (*int*) -- ID of the perturbed material.
           - **nuclide** (*char[]*) -- Alias of the perturbed nuclide.
           - **estimator** (*char[]*) -- Type of tally estimator, either
             'analog', 'tracklength', or 'collision'.

**/tallies/tally <uid>/**

:Datasets: - **n_realizations** (*int*) -- Number of realizations.
           - **n_filters** (*int*) -- Number of filters used.
           - **nuclides** (*char[][]*) -- Array of nuclides to tally. Note that
             if no nuclide is specified in the user input, a single 'total'
             nuclide appears here.
           - **derivative** (*int*) -- ID of the derivative applied to the
             tally.
           - **n_score_bins** (*int*) -- Number of scoring bins for a single
             nuclide. In general, this can be greater than the number of
             user-specified scores since each score might have multiple scoring
             bins, e.g., scatter-PN.
           - **score_bins** (*char[][]*) -- Values of specified scores.
           - **n_user_scores** (*int*) -- Number of scores without accounting
             for those added by expansions, e.g. scatter-PN.
           - **moment_orders** (*char[][]*) -- Tallying moment orders for
             Legendre and spherical harmonic tally expansions (e.g., 'P2',
             'Y1,2', etc.).
           - **results** (*double[][][2]*) -- Accumulated sum and sum-of-squares
             for each bin of the i-th tally. The first dimension represents
             combinations of filter bins, the second dimensions represents
             scoring bins, and the third dimension has two entries for the sum
             and the sum-of-squares.

**/tallies/tally <uid>/filter <j>/**

:Datasets: - **type** (*char[]*) -- Type of the j-th filter. Can be 'universe',
             'material', 'cell', 'cellborn', 'surface', 'mesh', 'energy',
             'energyout', 'distribcell', 'mu', 'polar', 'azimuthal',
             'delayedgroup', or 'energyfunction'.
           - **n_bins** (*int*) -- Number of bins for the j-th filter. Not
             present for 'energyfunction' filters.
           - **bins** (*int[]* or *double[]*) -- Value for each filter bin of
             this type. Not present for 'energyfunction' filters.
           - **energy** (*double[]*) -- Energy grid points for energyfunction
             interpolation. Only used for 'energyfunction' filters.
           - **y** (*double[]*) -- Interpolant values for energyfunction
             interpolation. Only used for 'energyfunction' filters.

**/runtime/**

All values are given in seconds and are measured on the master process.

:Datasets: - **total initialization** (*double*) -- Time spent reading inputs,
             allocating arrays, etc.
           - **reading cross sections** (*double*) -- Time spent loading cross
             section libraries (this is a subset of initialization).
           - **simulation** (*double*) -- Time spent between initialization and
             finalization.
           - **transport** (*double*) -- Time spent transporting particles.
           - **inactive batches** (*double*) -- Time spent in the inactive
             batches (including non-transport activities like communcating
             sites).
           - **active batches** (*double*) -- Time spent in the active batches
             (including non-transport activities like communicating sites).
           - **synchronizing fission bank** (*double*) -- Time spent sampling
             source particles from fission sites and communicating them to other
             processes for load balancing.
           - **sampling source sites** (*double*) -- Time spent sampling source
             particles from fission sites.
           - **SEND-RECV source sites** (*double*) -- Time spent communicating
             source sites between processes for load balancing.
           - **accumulating tallies** (*double*) -- Time spent communicating
             tally results and evaluating their statistics.
           - **CMFD** (*double*) -- Time spent evaluating CMFD.
           - **CMFD building matrices** (*double*) -- Time spent buliding CMFD
             matrices.
           - **CMFD solving matrices** (*double*) -- Time spent solving CMFD
             matrices.
           - **total** (*double*) -- Total time spent in the program.
