# openmc.cmfd.CMFDRun¶

class openmc.cmfd.CMFDRun[source]

Class for running CMFD acceleration through the C API.

Variables: tally_begin (int) – Batch number at which CMFD tallies should begin accummulating solver_begin (int) – Batch number at which CMFD solver should start executing ref_d (list of floats) – List of reference diffusion coefficients to fix CMFD parameters to display (dict) – Dictionary indicating which CMFD results to output. Note that CMFD k-effective will always be outputted. Acceptable keys are: ”balance” - Whether to output RMS [%] of the resdiual from the neutron balance equation on CMFD tallies (bool) ”dominance” - Whether to output the estimated dominance ratio from the CMFD iterations (bool) ”entropy” - Whether to output the entropy of the CMFD predicted fission source (bool) ”source” - Whether to ouput the RMS [%] between the OpenMC fission source and CMFD fission source (bool) downscatter (bool) – Indicate whether an effective downscatter cross section should be used when using 2-group CMFD. feedback (bool) – Indicate whether or not the CMFD diffusion result is used to adjust the weight of fission source neutrons on the next OpenMC batch. Defaults to False. cmfd_ktol (float) – Tolerance on the eigenvalue when performing CMFD power iteration mesh (openmc.cmfd.CMFDMesh) – Structured mesh to be used for acceleration norm (float) – Normalization factor applied to the CMFD fission source distribution power_monitor (bool) – View convergence of power iteration during CMFD acceleration run_adjoint (bool) – Perform adjoint calculation on the last batch w_shift (float) – Optional Wielandt shift parameter for accelerating power iterations. By default, it is very large so there is effectively no impact. stol (float) – Tolerance on the fission source when performing CMFD power iteration reset (list of int) – List of batch numbers at which CMFD tallies should be reset write_matrices (bool) – Write sparse matrices that are used during CMFD acceleration (loss, production) and resultant normalized flux vector phi to file spectral (float) – Optional spectral radius that can be used to accelerate the convergence of Gauss-Seidel iterations during CMFD power iteration. gauss_seidel_tolerance (Iterable of float) – Two parameters specifying the absolute inner tolerance and the relative inner tolerance for Gauss-Seidel iterations when performing CMFD. adjoint_type ({'physical', 'math'}) – Stores type of adjoint calculation that should be performed. run_adjoint must be true for an adjoint calculation to be perfomed. Options are: ”physical” - Create adjoint matrices from physical parameters of CMFD problem ”math” - Create adjoint matrices mathematically as the transpose of loss and production CMFD matrices window_type ({'expanding', 'rolling', 'none'}) – Specifies type of tally window scheme to use to accumulate CMFD tallies. Options are: ”expanding” - Have an expanding window that doubles in size to give more weight to more recent tallies as more generations are simulated ”rolling” - Have a fixed window size that aggregates tallies from the same number of previous generations tallied ”none” - Don’t use a windowing scheme so that all tallies from last time they were reset are used for the CMFD algorithm. window_size (int) – Size of window to use for tally window scheme. Only relevant when window_type is set to “rolling” indices (numpy.ndarray) – Stores spatial and group dimensions as [nx, ny, nz, ng] cmfd_src (numpy.ndarray) – CMFD source distribution calculated from solving CMFD equations entropy (list of floats) – “Shannon entropy” from CMFD fission source, stored for each generation that CMFD is invoked balance (list of floats) – RMS of neutron balance equations, stored for each generation that CMFD is invoked src_cmp (list of floats) – RMS deviation of OpenMC and CMFD normalized source, stored for each generation that CMFD is invoked dom (list of floats) – Dominance ratio from solving CMFD matrix equations, stored for each generation that CMFD is invoked k_cmfd (list of floats) – List of CMFD k-effectives, stored for each generation that CMFD is invoked time_cmfd (float) – Time for entire CMFD calculation, in seconds time_cmfdbuild (float) – Time for building CMFD matrices, in seconds time_cmfdsolve (float) – Time for solving CMFD matrix equations, in seconds use_all_threads (bool) – Whether to use all threads allocated to OpenMC for CMFD solver intracomm (mpi4py.MPI.Intracomm or None) – MPI intercommunicator for running MPI commands
finalize()[source]

Finalize simulation by calling openmc.lib.simulation_finalize() and print out CMFD timing information.

init()[source]

Initialize CMFDRun instance by setting up CMFD parameters and calling openmc.lib.simulation_init()

iter_batches()[source]

Iterator over batches.

This function returns a generator-iterator that allows Python code to be run between batches when running an OpenMC simulation with CMFD. It should be used in conjunction with :funcopenmc.cmfd.CMFDRun.run_in_memory to ensure proper initialization/finalization of CMFDRun instance.

next_batch()[source]

Run next batch for CMFDRun.

Returns: Status after running a batch (0=normal, 1=reached maximum number of batches, 2=tally triggers reached) int
run(**kwargs)[source]

Run OpenMC with coarse mesh finite difference acceleration

This method is called by the user to run CMFD once instance variables of CMFDRun class are set

Parameters: **kwargs – All keyword arguments are passed to openmc.lib.run_in_memory().
run_in_memory(**kwargs)[source]

Context manager for running CMFD functions with OpenMC shared library functions.

This function can be used with a ‘with’ statement to ensure the CMFDRun class is properly initialized/finalized. For example:

from openmc import cmfd
cmfd_run = cmfd.CMFDRun()
with cmfd_run.run_in_memory():
do_stuff_before_simulation_start()
for _ in cmfd_run.iter_batches():
do_stuff_between_batches()

Parameters: **kwargs – All keyword arguments passed to openmc.lib.run_in_memory().
statepoint_write(filename=None)[source]

Write all simulation parameters to statepoint

Parameters: filename (str) – Filename of statepoint