Lattice Tool Chains#
- class scarabee.reseau.FuelPin(fuel: Material, fuel_radius: float, clad: Material, clad_radius, gap: Optional[Material], gap_radius: Optional[float], num_fuel_rings: int = 1)[source]#
Represents a generic fuel pin for a PWR.
- Parameters:
fuel (Material) – Material which describes the fuel composition, density, and temperature.
fuel_radius (float) – Outer radius of the fuel pellet region.
gap (Material, optional) – Material which describes the composition, density, and temperature of the gap between the fuel pellet and the cladding, if present.
gap_radius (float, optional) – Outer radius of the gap material, if present.
clad (Material) – Material which describes the cladding composition, density, and temperature.
clad_radius (float) – Outer radius of the cladding.
num_fuel_rings (int, default 1) – Number of rings which should be used to discretize the fuel material. Each ring will be self-shielded and depleted separately.
- fuel_radius#
Outer radius of the fuel pellet region.
- Type:
float
- fuel_ring_materials#
Contains the Material in each fuel ring for each depletion time step.
- Type:
list of list of Material
- fuel_ring_flux_spectra#
Contains the average flux spectrum in each fuel ring for each depletion time step.
- Type:
list of list of ndarray
- fuel_dancoff_corrections#
Dancoff corrections to be used when self-shielding the fuel at each depletion time step.
- Type:
list of float
- gap#
Material which describes the composition, density, and temperature of the gap between the fuel pellet and the cladding, if present.
- Type:
Material, optional
- gap_radius#
Outer radius of the gap material, if present.
- Type:
float, optional
- clad_radius#
Outer radius of the cladding.
- Type:
float
- clad_dancoff_corrections#
Dancoff corrections to be used when self-shielding the cladding at each depletion time step.
- Type:
list of float
- num_fuel_rings#
Number of rings which should be used to discretize the fuel material. Each ring will be self-shielded and depleted separately.
- Type:
int, default 1
- __init__(fuel: Material, fuel_radius: float, clad: Material, clad_radius, gap: Optional[Material], gap_radius: Optional[float], num_fuel_rings: int = 1)[source]#
- load_nuclides(ndl: NDLibrary) None[source]#
Loads all the nuclides for all current materials into the data library.
- Parameters:
ndl (NDLibrary) – Nuclear data library which should load the nuclides.
- get_fuel_material(t: int, r: int = 0) Material[source]#
Returns the Material object for a desired fuel ring at a desired depletion time step. Ring index 0 is at the center of the pin.
- Parameters:
t (int) – Depletion time step index.
r (int) – Ring index. Default is 0.
- Returns:
Material defining the temperature, density, and composition for the desired fuel ring and depletion time step.
- Return type:
- get_average_fuel_nuclide_density(t: int, nuclide: str) float[source]#
Computes the average density of a nuclide within the fuel pellet at a single depletion time step.
- Parameters:
t (int) – Depletion time step index.
nuclide (str) – Name of the nuclide.
- Returns:
Average density of the nuclide at depletion time step t across the fuel pellet in units of atoms per barn-cm.
- Return type:
float
- set_xs_for_fuel_dancoff_calculation() None[source]#
Sets the 1-group cross sections to calculate the fuel Dancoff correction.
- set_xs_for_clad_dancoff_calculation(ndl: NDLibrary) None[source]#
Sets the 1-group cross sections to calculate the clad Dancoff correction.
- Parameters:
ndl (NDLibrary) – Nuclear data library for obtaining potential scattering cross sections.
- make_dancoff_moc_cell(moderator_xs: CrossSection, dx: float, dy: float, pintype: PinCellType, isolated: bool) SimplePinCell[source]#
Makes a simplified cell suitable for performing Dancoff correction calculations. The flat source region IDs are stored locally in the FuelPin object.
- Parameters:
moderator_xs (CrossSection) – One group cross sections for the moderator. Total should equal absorption (i.e. no scattering) and should be equal to the macroscopic potential cross section.
dx (float) – Width of the cell along x.
dy (float) – Width of the cell along y.
pintype (PinCellType) – How the pin cell should be split (along x, y, or only a quadrant).
isolated (bool) – If True, the FSR IDs are stored for the isolated pin. Otherwise, they are stored for the full pin.
- Returns:
Pin cell object for MOC Dancoff correction calculation.
- Return type:
SimplifiedPinCell
- populate_dancoff_fsr_indexes(isomoc: MOCDriver, fullmoc: MOCDriver) None[source]#
Obtains the flat source region indexes for all of the flat source regions used in the Dancoff correction calculations.
- set_isolated_dancoff_fuel_sources(isomoc: MOCDriver, moderator: Material) None[source]#
Initializes the fixed sources for the isolated MOC calculation required in computing Dancoff corrections. Sources are set for a fuel Dancoff corrections calculation.
- set_isolated_dancoff_clad_sources(isomoc: MOCDriver, moderator: Material, ndl: NDLibrary) None[source]#
Initializes the fixed sources for the isolated MOC calculation required in computing Dancoff corrections. Sources are set for a clad Dancoff correction calculation.
- set_full_dancoff_fuel_sources(fullmoc: MOCDriver, moderator: Material) None[source]#
Initializes the fixed sources for the full MOC calculation required in computing Dancoff corrections. Sources are set for a fuel Dancoff correction calculation.
- set_full_dancoff_clad_sources(fullmoc: MOCDriver, moderator: Material, ndl: NDLibrary) None[source]#
Initializes the fixed sources for the full MOC calculation required in computing Dancoff corrections. Sources are set for a clad Dancoff correction calculation.
- compute_fuel_dancoff_correction(isomoc: MOCDriver, fullmoc: MOCDriver) float[source]#
Computes the Dancoff correction for the fuel region of the fuel pin.
- compute_clad_dancoff_correction(isomoc: MOCDriver, fullmoc: MOCDriver) float[source]#
Computes the Dancoff correction for the cladding region of the fuel pin.
- append_fuel_dancoff_correction(C) None[source]#
Saves new Dancoff correction for the fuel that will be used for all subsequent cross section updates.
- Parameters:
C (float) – New Dancoff correction.
- append_clad_dancoff_correction(C) None[source]#
Saves new Dancoff correction for the cladding that will be used for all subsequent cross section updates.
- Parameters:
C (float) – New Dancoff correction.
- set_fuel_xs_for_depletion_step(t: int, ndl: NDLibrary) None[source]#
Constructs the CrossSection object for all fuel rings of the pin at the specified depletion step.
- Parameters:
t (int) – Index for the depletion step.
ndl (NDLibrary) – Nuclear data library to use for cross sections.
- set_gap_xs(ndl: NDLibrary) None[source]#
Constructs the CrossSection object for the gap between the fuel pellet and the cladding of the pin.
- Parameters:
ndl (NDLibrary) – Nuclear data library to use for cross sections.
- set_clad_xs_for_depletion_step(t: int, ndl: NDLibrary) None[source]#
Constructs the CrossSection object for the cladding of the pin at the specified depletion step. The depletion step only changes the Dancoff correction, not the cladding composition.
- Parameters:
t (int) – Index for the depletion step.
ndl (NDLibrary) – Nuclear data library to use for cross sections.
- make_moc_cell(moderator_xs: CrossSection, dx: float, dy: float, pintype: PinCellType) PinCell[source]#
Constructs the pin cell object used in for the global MOC simulation.
- Parameters:
moderator_xs (CrossSection) – Cross sections to use for the moderator surrounding the fuel pin.
dx (float) – Width of the cell along x.
dy (float) – Width of the cell along y.
pintype (PinCellType) – How the pin cell should be split (along x, y, or only a quadrant).
- Returns:
Pin cell suitable for the true MOC calculation.
- Return type:
- populate_fsr_indexes(moc: MOCDriver) None[source]#
Obtains the flat source region indexes for all of the flat source regions used in the full MOC calculations.
- Parameters:
moc (MOCDriver) – MOC simulation for the full calculations.
- obtain_flux_spectra(moc: MOCDriver) None[source]#
Computes the average flux spectrum for each fuel ring from the MOC simulation. Each ring’s flux spectrum is volume averaged.
- Parameters:
moc (MOCDriver) – MOC simulation for the full calculations.
- compute_pin_linear_power(ndl: NDLibrary)[source]#
Computes the linear power density of the fuel pin based on the current flux spectra, in units of w / cm. Does not consider the partial pin geometry at the assembly level (i.e. a half pin in a quarter assembly).
- Parameters:
ndl (NDLibrary) – Nuclear data library for the fission energy release.
- Returns:
Linear power density in w / cm.
- Return type:
float
- normalize_flux_spectrum(f) None[source]#
Applies a multiplicative factor to the flux spectra for the fuel rings. This permits normalizing the flux to a known assembly power.
- Parameters:
f (float) – Normalization factor.
- predict_depletion(chain: DepletionChain, ndl: NDLibrary, dt: float, dtm1: Optional[float] = None) None[source]#
Performs the predictor in the integration of the Bateman equation. If the argument for the previous time step is not provided, CE/LI will be used. Otherwise, CE/LI is used on the first depletion step, and LE/QI is used for all subsequent time steps. The predicted material compositions are appended to the materials lists.
- chainDepletionChain
Depletion chain to use for radioactive decay and transmutation.
- ndlNDLibrary
Nuclear data library.
- dtfloat
Durration of the time step in seconds.
- dtm1float, optional
Durration of the previous time step in seconds. Default is None.
- correct_depletion(chain: DepletionChain, ndl: NDLibrary, dt: float, dtm1: Optional[float] = None) None[source]#
Performs the corrector in the integration of the Bateman equation. If the argument for the previous time step is not provided, CE/LI will be used. Otherwise, CE/LI is used on the first depletion step, and LE/QI is used for all subsequent time steps. The corrected material compositions replace the ones where were appended in the corrector step.
- Parameters:
chain (DepletionChain) – Depletion chain to use for radioactive decay and transmutation.
ndl (NDLibrary) – Nuclear data library.
dt (float) – Durration of the time step in seconds.
dtm1 (float, optional) – Durration of the previous time step in seconds. Default is None.
- class scarabee.reseau.GuideTube(clad: Material, inner_radius: float, outer_radius: float, fill: Optional[BurnablePoisonRod] = None)[source]#
Represents an empty guide tube for a PWR.
- Parameters:
clad (Material) – Material which describes the cladding composition, density, and temperature.
inner_radius (float) – Inner radius of the guide tube.
outer_radius (float) – Outer radius of the guide tube.
fill (BurnablePoisonRod, optional) – Optional burnable poison rod which can be placed inside the guide tube. Default value is None.
- inner_radius#
Inner radius of the guide tube.
- Type:
float
- outer_radius#
Outer radius of the guide tube.
- Type:
float
- fill#
Optional burnable poison rod which can be placed inside the guide tube.
- Type:
BurnablePoisonRod, optional
- clad_dancoff_corrections#
Dancoff corrections to be used when self-shielding the cladding at each depletion time step.
- Type:
list of float
- empty#
True if fill is None and False otherwise.
- Type:
bool
- __init__(clad: Material, inner_radius: float, outer_radius: float, fill: Optional[BurnablePoisonRod] = None)[source]#
- load_nuclides(ndl: NDLibrary) None[source]#
Loads all the nuclides for all current materials into the data library.
- Parameters:
ndl (NDLibrary) – Nuclear data library which should load the nuclides.
- set_xs_for_fuel_dancoff_calculation() None[source]#
Sets the 1-group cross sections to calculate the fuel Dancoff corrections.
- set_xs_for_clad_dancoff_calculation(ndl: NDLibrary) None[source]#
Sets the 1-group cross sections to calculate the clad Dancoff corrections.
- Parameters:
ndl (NDLibrary) – Nuclear data library for obtaining potential scattering cross sections.
- make_dancoff_moc_cell(moderator_xs: CrossSection, dx: float, dy: float, pintype: PinCellType, isolated: bool) SimplePinCell[source]#
Makes a simplified cell suitable for performing Dancoff correction calculations. The flat source region IDs are stored locally in the GuideTube object.
- Parameters:
moderator_xs (CrossSection) – One group cross sections for the moderator. Total should equal absorption (i.e. no scattering) and should be equal to the macroscopic potential cross section.
dx (float) – Width of the cell along x.
dy (float) – Width of the cell along y.
pintype (PinCellType) – How the cell should be split (along x, y, or only a quadrant).
isolated (bool) – If True, the FSR IDs are stored for the isolated pin. Otherwise, they are stored for the full pin.
- Returns:
Pin cell object for MOC Dancoff correction calculation.
- Return type:
SimplifiedPinCell
- populate_dancoff_fsr_indexes(isomoc: MOCDriver, fullmoc: MOCDriver) None[source]#
Obtains the flat source region indexes for all of the flat source regions used in the Dancoff correction calculations.
- set_isolated_dancoff_fuel_sources(isomoc: MOCDriver, moderator: Material) None[source]#
Initializes the fixed sources for the isolated MOC calculation required in computing Dancoff corrections. Sources are set for a fuel Dancoff correction calculation.
- set_isolated_dancoff_clad_sources(isomoc: MOCDriver, moderator: Material, ndl: NDLibrary) None[source]#
Initializes the fixed sources for the isolated MOC calculation required in computing Dancoff corrections. Sources are set for a clad Dancoff correction calculation.
- set_full_dancoff_fuel_sources(fullmoc: MOCDriver, moderator: Material) None[source]#
Initializes the fixed sources for the full MOC calculation required in computing Dancoff corrections. Sources are set for a fuel Dancoff correction calculation.
- set_full_dancoff_clad_sources(fullmoc: MOCDriver, moderator: Material, ndl: NDLibrary) None[source]#
Initializes the fixed sources for the full MOC calculation required in computing Dancoff corrections. Sources are set for a clad Dancoff correction calculation.
- compute_clad_dancoff_correction(isomoc: MOCDriver, fullmoc: MOCDriver) float[source]#
Computes the Dancoff correction for the cladding region.
- append_clad_dancoff_correction(C) None[source]#
Saves new Dancoff correction for the cladding that will be used for all subsequent cross section updates.
- Parameters:
C (float) – New Dancoff correction.
- set_clad_xs_for_depletion_step(t: int, ndl: NDLibrary) None[source]#
Constructs the CrossSection object for the cladding of the guide tube at the specified depletion step. The depletion step only changes the Dancoff correction, not the cladding composition.
- Parameters:
t (int) – Index for the depletion step.
ndl (NDLibrary) – Nuclear data library to use for cross sections.
- set_fill_xs_for_depletion_step(t: int, ndl: NDLibrary) None[source]#
Constructs the CrossSection objects for the fill of the guide tube at the specified depletion step. The depletion step changes the poison composition, if filled with a burnable poison rod.
- Parameters:
t (int) – Index for the depletion step.
ndl (NDLibrary) – Nuclear data library to use for cross sections.
- make_moc_cell(moderator_xs: CrossSection, dx: float, dy: float, pintype: PinCellType) PinCell[source]#
Constructs the pin cell object used in for the global MOC simulation.
- Parameters:
moderator_xs (CrossSection) – Cross sections to use for the moderator surrounding the fuel pin.
dx (float) – Width of the cell along x.
dy (float) – Width of the cell along y.
pintype (PinCellType) – How the pin cell should be split (along x, y, or only a quadrant).
- populate_fsr_indexes(moc: MOCDriver) None[source]#
Obtains the flat source region indexes for all of the flat source regions used in the full MOC calculations.
- Parameters:
moc (MOCDriver) – MOC simulation for the full calculations.
- obtain_flux_spectra(moc: MOCDriver) None[source]#
If the guide tube contains a burnable poison rod, the average flux spectrum in the poison is obtained from the MOC simulation.
- Parameters:
moc (MOCDriver) – MOC simulation for the full calculations.
- normalize_flux_spectrum(f) None[source]#
If the guide tube contains a burnable poison rod, it applies a multiplicative factor to the flux spectra for the poison. This permits normalizing the flux to a known assembly power.
- Parameters:
f (float) – Normalization factor.
- predict_depletion(chain: DepletionChain, ndl: NDLibrary, dt: float, dtm1: Optional[float] = None) None[source]#
Performs the predictor in the integration of the Bateman equation. If the argument for the previous time step is not provided, CE/LI will be used. Otherwise, CE/LI is used on the first depletion step, and LE/QI is used for all subsequent time steps. The predicted material compositions are appended to the materials lists.
- chainDepletionChain
Depletion chain to use for radioactive decay and transmutation.
- ndlNDLibrary
Nuclear data library.
- dtfloat
Durration of the time step in seconds.
- dtm1float, optional
Durration of the previous time step in seconds. Default is None.
- correct_depletion(chain: DepletionChain, ndl: NDLibrary, dt: float, dtm1: Optional[float] = None) None[source]#
Performs the corrector in the integration of the Bateman equation. If the argument for the previous time step is not provided, CE/LI will be used. Otherwise, CE/LI is used on the first depletion step, and LE/QI is used for all subsequent time steps. The corrected material compositions replace the ones where were appended in the corrector step.
- Parameters:
chain (DepletionChain) – Depletion chain to use for radioactive decay and transmutation.
ndl (NDLibrary) – Nuclear data library.
dt (float) – Durration of the time step in seconds.
dtm1 (float, optional) – Durration of the previous time step in seconds. Default is None.
- class scarabee.reseau.BurnablePoisonRod(center: Optional[Material], clad: Material, gap: Material, poison: Material, center_radius: float, inner_clad_radius: float, inner_gap_radius: float, poison_radius: float, outer_gap_radius: float, outer_clad_radius: float)[source]#
Represents a burnable poison rod in a PWR which is inserted into an empty guide tube. This can be a wet annular burnable absorber (WABA) or a borosilicate glass (BSG) burnable absorber.
- Parameters:
center (optional Material) – Material at the center of the poison pin. If None, the center will be filled with moderator.
clad (Material) – Material which describes the inner and outer cladding.
gap (Material) – Material which describes the gap between the cladding and poison.
poison (Material) – Material which describes the poison.
center_radius (float) – Outer radius of the center of the poison rod.
inner_clad_radius (float) – Outer radius of the inner cladding at the center of the rod.
inner_gap_radius (float) – Outer radius of the inner gap between the cladding and poison.
poison_radius (float) – Outer radius of the poison.
outer_gap_radius (float) – Outer radius of the outer gap between the cladding and poison.
outer_clad_radius (float) – Outer radius of the outer cladding of the poison rod.
- center#
Material at the center of the poison pin. If None, the center will be filled with moderator.
- Type:
optional Material
- poison_materials#
Contains the poison material for each depletion time step.
- Type:
list of Material
- center_radius#
Outer radius of the center of the poison rod.
- Type:
float
- inner_clad_radius#
Outer radius of the inner cladding at the center of the rod.
- Type:
float
- inner_gap_radius#
Outer radius of the inner gap between the cladding and poison.
- Type:
float
- poison_radius#
Outer radius of the poison.
- Type:
float
- outer_gap_radius#
Outer radius of the outer gap between the cladding and poison.
- Type:
float
- outer_clad_radius#
Outer radius of the outer cladding of the poison rod.
- Type:
float
- __init__(center: Optional[Material], clad: Material, gap: Material, poison: Material, center_radius: float, inner_clad_radius: float, inner_gap_radius: float, poison_radius: float, outer_gap_radius: float, outer_clad_radius: float)[source]#
- load_nuclides(ndl: NDLibrary) None[source]#
Loads all the nuclides for all current materials into the data library.
- Parameters:
ndl (NDLibrary) – Nuclear data library which should load the nuclides.
- populate_dancoff_fsr_indexes(isomoc: MOCDriver, fullmoc: MOCDriver) None[source]#
Obtains the flat source region indexes for all of the flat source regions used in the Dancoff correction calculations.
- set_xs_for_dancoff_calculation() None[source]#
Sets the cross sections for the Dancoff calculations based on the most recent poison composition.
- set_isolated_dancoff_fuel_sources(isomoc: MOCDriver, moderator: Material) None[source]#
Initializes the fixed sources for the isolated MOC calculation required in computing Dancoff corrections. Sources are set for a fuel Dancoff correction calculation.
- set_isolated_dancoff_clad_sources(isomoc: MOCDriver, moderator: Material, ndl: NDLibrary) None[source]#
Initializes the fixed sources for the isolated MOC calculation required in computing Dancoff corrections. Sources are set for a clad Dancoff correction calculation.
The cladding of a burnable poison pin is no self-shielded. Therefore, this method is an alias to set_isolated_dancoff_fuel_sources.
- set_full_dancoff_fuel_sources(fullmoc: MOCDriver, moderator: Material) None[source]#
Initializes the fixed sources for the full MOC calculation required in computing Dancoff corrections. Sources are set for a fuel Dancoff correction calculation.
- set_full_dancoff_clad_sources(fullmoc: MOCDriver, moderator: Material, ndl: NDLibrary) None[source]#
Initializes the fixed sources for the full MOC calculation required in computing Dancoff corrections. Sources are set for a clad Dancoff correction calculation.
The cladding of a burnable poison pin is no self-shielded. Therefore, this method is an alias to set_isolated_dancoff_fuel_sources.
- set_center_xs(ndl: NDLibrary) None[source]#
Constructs the CrossSection object for the material at the center of the poison rod, so long as that material is not moderator.
- Parameters:
ndl (NDLibrary) – Nuclear data library to use for cross sections.
- set_gap_xs(ndl: NDLibrary) None[source]#
Constructs the CrossSection object for the gap between the poison and the cladding.
- Parameters:
ndl (NDLibrary) – Nuclear data library to use for cross sections.
- set_clad_xs(ndl: NDLibrary) None[source]#
Constructs the CrossSection object for the cladding of the poison rod.
The cladding of a poison rod uses infinitely dilute cross sections.
- Parameters:
ndl (NDLibrary) – Nuclear data library to use for cross sections.
- set_poison_xs_for_depletion_step(t: int, ndl: NDLibrary) None[source]#
Constructs the CrossSection object for the poison at the specified depletion step.
- Parameters:
t (int) – Index for the depletion step.
ndl (NDLibrary) – Nuclear data library to use for cross sections.
- populate_fsr_indexes(moc: MOCDriver) None[source]#
Obtains the flat source region indexes for all of the flat source regions used in the full MOC calculations.
- Parameters:
moc (MOCDriver) – MOC simulation for the full calculations.
- obtain_flux_spectra(moc: MOCDriver) None[source]#
Computes average flux spectrum in the poison from the MOC simulation.
- Parameters:
moc (MOCDriver) – MOC simulation for the full calculations.
- normalize_flux_spectrum(f) None[source]#
Applies a multiplicative factor to the flux spectra for the poison. This permits normalizing the flux to a known assembly power.
- Parameters:
f (float) – Normalization factor.
- predict_depletion(chain: DepletionChain, ndl: NDLibrary, dt: float, dtm1: Optional[float] = None) None[source]#
Performs the predictor in the integration of the Bateman equation. If the argument for the previous time step is not provided, CE/LI will be used. Otherwise, CE/LI is used on the first depletion step, and LE/QI is used for all subsequent time steps. The predicted material compositions are appended to the materials lists.
- chainDepletionChain
Depletion chain to use for radioactive decay and transmutation.
- ndlNDLibrary
Nuclear data library.
- dtfloat
Durration of the time step in seconds.
- dtm1float, optional
Durration of the previous time step in seconds. Default is None.
- correct_depletion(chain: DepletionChain, ndl: NDLibrary, dt: float, dtm1: Optional[float] = None) None[source]#
Performs the corrector in the integration of the Bateman equation. If the argument for the previous time step is not provided, CE/LI will be used. Otherwise, CE/LI is used on the first depletion step, and LE/QI is used for all subsequent time steps. The corrected material compositions replace the ones where were appended in the corrector step.
- Parameters:
chain (DepletionChain) – Depletion chain to use for radioactive decay and transmutation.
ndl (NDLibrary) – Nuclear data library.
dt (float) – Durration of the time step in seconds.
dtm1 (float, optional) – Durration of the previous time step in seconds. Default is None.
- class scarabee.reseau.PWRAssembly(shape: Tuple[int, int], pitch: float, ndl: NDLibrary, cells: List[List[Union[FuelPin, GuideTube]]], boron_ppm: float = 800.0, moderator_temp: float = 570.0, moderator_pressure: float = 15.5, moderator_legendre_order: int = 1, symmetry: Symmetry = Symmetry.Full, independent_quadrant: bool = False, linear_power: float = 42.0, assembly_pitch: Optional[float] = None, spacer_grid_width: Optional[float] = None, spacer_grid: Optional[Material] = None, grid_sleeve_width: Optional[float] = None, grid_sleeve: Optional[Material] = None)[source]#
A PWRAssembly instance is responsible for performing all the lattice calculations necessary to produce few-group cross sections for a single PWR assembly.
- Parameters:
shape (tuple of int) – The number of pin cells in the full assembly along x and y.
pitch (float) – The spacing between fuel pins.
ndl (NDLibrary) – Nuclear data library used for the calculation.
cells (list of list of FuelPin or GuideTube) – All of the cells which describe the assembly geometry. Should be consistent with the symmetry argument.
boron_ppm (float) – Moderator boron concentration in parts per million. Default is 800.
moderator_temp (float) – Moderator temperature in Kelvin. Default is 570.
moderator_pressure (float) – Moderator pressure in MPa. Default is 15.5.
moderator_legendre_order (int) – Maximum Legendre order to load for the moderator’s anisotropic scattering data. Default is 1.
symmetry (Symmetry) – Symmetry of the fuel assembly. Default is Symmetry.Full.
independent_quadrant (bool) – If symmetry is Symmetry.Quarter and this attribute is true, the quarter assembly is treated as an independent assembly, with ADFs generated for all sides and CDFs generated for all corners. Form factors are only generated for the pins present in the quarter assembly. This improves the modeling of asymmetric burnable absorber loadings in the nodal calculation. Default value is False.
linear_power (float) – Linear power density of the full assembly in kW/cm. This value should not be reduced due to symmetry. Default is 42.
assembly_pitch (optional float) – Spacing between fuel assemblies. If None, assembly pitch is calculated from the shape and pitch. Default value is None.
spacer_grid_width (optional float) – Width of the spacer grid material between pin cells. Default value is None.
spacer_grid (optional Material) – Material defining the spacer grid between pin cells.
grid_sleeve_width (optional float) – Width of the grid sleeve around the assembly. Default value is None.
grid_sleeve (optional Material) – Material defining the grid sleeve around the assembly.
- shape#
The number of pin cells in the full assembly along x and y.
- Type:
tuple of int
- pitch#
The spacing between fuel pins.
- Type:
float
- symmetry#
Symmetry of the fuel assembly.
- Type:
Symmetry
- independent_quadrant#
If symmetry is Symmetry.Quarter and this attribute is true, the quarter assembly is treated as an independent assembly, with ADFs generated for all sides and CDFs generated for all corners. Form factors are only generated for the pins present in the quarter assembly. This improves the modeling of asymmetric burnable absorber loadings in the nodal calculation.
- Type:
bool
- assembly_pitch#
Spacing between fuel assemblies.
- Type:
float
- fuel_volume_fraction#
Fraction of the assembly occupied by fuel.
- Type:
float
- moderator_volume_fraction#
Fraction of the assembly occupied by moderator.
- Type:
float
- linear_power#
Linear power density of the full assembly in kW/cm.
- Type:
float
- initial_heavy_metal_linear_mass#
Initial linear density of heavy metal in the full assembly at the beginning of life in units of kg/cm.
- Type:
float
- boron_ppm#
Moderator boron concentration in parts per million.
- Type:
float
- moderator_temp#
Moderator temperature in Kelvin.
- Type:
float
- moderator_pressure#
Moderator pressure in MPa.
- Type:
float
- moderator_legendre_order#
Maximum Legendre order to load for the moderator’s anisotropic scattering data.
- Type:
int
- spacer_grid_width#
Width of the spacer grid material between pin cells.
- Type:
optional float
- spacer_grid#
Material defining the spacer grid between pin cells.
- Type:
optional Material
- grid_sleeve_width#
Width of the grid sleeve around the assembly.
- Type:
optional float
- grid_sleeve#
Material defining the grid sleeve around the assembly.
- Type:
optional Material
- dancoff_moc_track_spacing#
Spacing between tracks in the MOC calculations for determining Dancoff corrections. Default value is 0.05 cm.
- Type:
float
- dancoff_moc_num_angles#
Number of azimuthal angles in the MOC calculations for determining Dancoff corrections. Default value is 32.
- Type:
int
- dancoff_flux_tolerance#
Flux convergence tolerance for Dancoff correction calculations. Must be in range (0., 1.E-2). Default value is 1.E-5.
- Type:
float
- moc_track_spacing#
Spacing between tracks in the assembly MOC calculations. Default value is 0.05 cm.
- Type:
float
- moc_num_angles#
Number of azimuthal angles in the assembly MOC calculations. Default value is 32.
- Type:
int
- flux_tolerance#
Flux convergence tolerance for assembly calculations. Must be in range (0., 1.E-2). Default value is 1.E-5.
- Type:
float
- keff_tolerance#
Keff convergence tolerance for assembly calculations. Must be in range (0., 1.E-2). Default value is 1.E-5.
- Type:
float
- anisotropic#
If False, isotropic scattering with the transport correction is used in the assembly calculation. Otherwise, explicit anisotropic scattering is modeled. Default value is False. If you wish to turn anisotropic scattering on, you must set this attribute before calling the solve method for the first time.
- Type:
bool
- cmfd#
If True, Coarse Mesh Finite Difference diffusion will be used to accelerate the assembly calculation. If True, a CMFD energy condensation scheme must be provided (see cmfd_condensation_scheme). Default value is True. If you wish to turn CMFD off/on, you must set this attribute before calling the solve method for the first time.
- Type:
bool
- cmfd_condensation_scheme#
Energy condensation scheme for the CMFD acceleration of the assembly calculation.
- Type:
list of list of int
- condensation_scheme#
Energy condensation scheme to condense from the group structure of the library to the few-groups used in the core solver.
- Type:
list of list of int
- prefer_moc_adf_cdf#
If True, the MOC results will be used to generate the ADFs and CDFs, even if CMFD is being used. ADFs and CDFs that are generated in this manner are typically less accurate than those generated with the CMFD results. Default value is False.
- Type:
bool
- leakage_model#
Model used to determine the critical leakage flux spectrum, also known as the fundamental mode. Default method is homogeneous P1.
- Type:
CriticalLeakage
- depletion_exposure_steps#
1D Numpy array of assembly burn-up exposure steps, in units of MWd/kg. Default is None.
- Type:
optional ndarray
- depletion_time_steps#
1D Numpy array of burn-up time steps, in units of days. Default is None.
- Type:
optional ndarray
- corrector_transport#
If True, the corrector depletion step performs a transport calculation to obtain an updated solution for the flux based on the predictor nuclide concentrations, performing two transport calculations per time step. If False, the flux from the predictor transport calculation is used to perform the corrector step, performing only one transport calculation per time step. Default value is True.
- Type:
bool
- exposures#
1D Numpy array of the total assembly burn-up exposures at which material information is available, in units of MWd/kg. Default value is an empty array before solve has been called.
- Type:
ndarray
- times#
1D Numpy array of the total assembly burn-up times at which material information is available, in units of days. Default value is an empty array before solve has been called.
- Type:
ndarray
- keff#
If depletion was not performed, this is a single float with keff for the infinite assembly. If depletion was performed, this is a 1D Numpy array for the values of keff at the tabulated burn-up exposures/times. Default value is 1 before solve has been called.
- Type:
float or ndarray
- depletion_data#
If a single assembly calculation is being performed without depletion, this attribute will the resulting DiffusionData instance based on the few-group condensation_scheme attribute. If a depletion calculation is performed, this attribute will be a list of DiffusionData instances, with one for each burn-up point. Before solve has been called, this attribute is None.
- Type:
optional DiffusionData or list of DiffusionData
- __init__(shape: Tuple[int, int], pitch: float, ndl: NDLibrary, cells: List[List[Union[FuelPin, GuideTube]]], boron_ppm: float = 800.0, moderator_temp: float = 570.0, moderator_pressure: float = 15.5, moderator_legendre_order: int = 1, symmetry: Symmetry = Symmetry.Full, independent_quadrant: bool = False, linear_power: float = 42.0, assembly_pitch: Optional[float] = None, spacer_grid_width: Optional[float] = None, spacer_grid: Optional[Material] = None, grid_sleeve_width: Optional[float] = None, grid_sleeve: Optional[Material] = None)[source]#
- get_average_fuel_nuclide_density(t: int, nuclide: str) float[source]#
Computes the average density of a nuclide within all the fuel pellets in the assembly at a single depletion time step.
- Parameters:
t (int) – Depletion time step index.
nuclide (str) – Name of the nuclide.
- Returns:
Average density of the nuclide at depletion time step t across all the fuel pellets in units of atoms per barn-cm.
- Return type:
float
- set_dancoff_moderator_xs() None[source]#
Updates the moderator cross section for all Dancoff correction calculations.
- set_dancoff_spacer_grid_sleeve_xs() None[source]#
Updates the spacer grid and grid sleeve cross sections for all Dancoff correction calculations.
- compute_fuel_dancoff_corrections() None[source]#
Recomputes all Dancoff corrections for the fuel regions in the problem, using the most recent material definitions. All fuel is shelf-shielded together, regardless of wether or not is is UO2 or MOX.
- compute_clad_dancoff_corrections() None[source]#
Recomputes all Dancoff corrections for the fuel pin cladding regions in the problem, using the most recent material definitions. All cladding is shelf-shielded together.
- apply_dancoff_corrections() None[source]#
Appends all fuel and cladding Dancoff corrections to the appropriate cell.
- self_shield_and_xs_update() None[source]#
Computes a new set of Dancoff corrections for the fuel and the cladding. After, these are applied to all the cells in the problem.
- set_spacer_grid_sleeve_xs() None[source]#
Updates the spacer grid and grid sleeve cross sections for transport calculations.
- recompute_all_xs() None[source]#
Computes and applies all cross sections using the most recent material information and Dancoff corrections.
- recompute_all_self_shielded_xs() None[source]#
Computes and applies all fuel and caldding cross sections using the most recent material information and Dancoff corrections.
- recompute_all_fuel_xs() None[source]#
Computes and applies all fuel cross sections using the most recent material information and Dancoff corrections.
- recompute_all_clad_xs() None[source]#
Computes and applies all cladding cross sections using the most recent material information and Dancoff corrections.
- recompute_all_gap_xs() None[source]#
Computes and applies all gap cross sections using the most recent material information.
- recompute_all_guide_tube_fill_xs() None[source]#
Computes and applies all cross sections for the fill objects of guide tubes. These could be for burnable poison rods or control rods.
- apply_leakage_model() None[source]#
Applied the critical leakage model to the assembly, modifying the flux in the MOC simulation directly.
- apply_infinite_spectrum() None[source]#
Undoes the critical flux spectrum adjustment to the MOCDriver. This permits subsequent transport calcualtions to converge much faster.
- obtain_flux_spectra() None[source]#
Computes the average flux spectrum for material regions whcih are depleted. This includes each fuel ring in fuel pins and the poison in burnable poison rods.
- class scarabee.reseau.Reflector(fuel: CrossSection, moderator: CrossSection, assembly_width: float, gap_width: float, baffle_width: float, baffle: Material, ndl: NDLibrary)[source]#
A Reflector instance is responsible for performing transport calculations necessary to produce few-group cross sections for the reflector of an LWR. The core baffle cross sections are self-shielded as an infinite slab, using the Roman two-term approximation. The calculation is performed using a 1D Sn simulation, in the group structure of the nuclear data library. This removes the need to obtain a fine-group spectrum that would be used to condense to an intermediate group structure.
- Parameters:
fuel (CrossSection) – Homogenized cross section which is representative of a pin cell. This is typically obtained from a previous lattice calcualtion.
moderator (CrossSection) – Material cross sections for the moderator at desired temperature and density.
assembly_width (float) – Width of a single fuel assembly (and the reflector to be modeled).
gap_width (float) – Width of the moderator gap between the assembly and the core baffle.
baffle_width (float) – Width of the core baffle.
baffle (Material) – Material for the core baffle at desired temperature and density.
ndl (NDLibrary) – Nuclear data library for constructing the baffle cross sections.
- condensation_scheme#
Defines how the energy groups will be condensed to the few-group structure used in nodal calculations.
- Type:
list of pairs of ints
- fuel#
Cross sections for a homogenized fuel assembly.
- Type:
- moderator#
Cross sections for the moderator.
- Type:
- assembly_width#
Width of fuel assembly and reflector.
- Type:
float
- gap_width#
Width of the moderator gap between a fuel assembly and the core baffle.
- Type:
float
- baffle_width#
Width of the core baffle.
- Type:
float
- baffle#
Self-shielded cross sections for the core baffle.
- Type:
- nangles#
Number of angles used in the Sn solver. Default is 16. Must be one of: 2, 4, 6, 8, 10, 12, 14, 16, 32, 64, 128.
- Type:
int
- anisotropic#
If True, the reflector calculation is performed with explicit anisotropic scattering. Otherwise, the transport correction with isotropic scattering is used. Default value is False.
- Type:
bool
- keff_tolerance#
Convergence criteria for keff. Default is 1.E-5.
- Type:
float
- flux_tolerance#
Convergence criteria for the flux. Default is 1.E-5.
- Type:
float
- diffusion_xs#
The few-group diffusion group constants for the reflector.
- Type:
- adf#
The assembly discontinuity factors.
- Type:
ndarray
- diffusion_data#
The few-group diffusion cross sections and ADFs for the reflector.
- Type:
- __init__(fuel: CrossSection, moderator: CrossSection, assembly_width: float, gap_width: float, baffle_width: float, baffle: Material, ndl: NDLibrary)[source]#