-
Notifications
You must be signed in to change notification settings - Fork 3
Regions
After creating materials, they can be assigned to regions. Regions are constructs representing infinite media, heterogeneous/homogeneous equivalence fuel/moderator regions, or even heterogeneous regions bounded by 2D quadratic surfaces, filled by a material. The Region class has subclasses for each of these cases: InfiniteMediumRegion(), EquivalenceRegion(), and BoundedRegion(). Examples for each region class are given below for each case.
In this type of region all materials are homogenized, and there are no geometry effects. There should be only one region of this type defined for a simulation, and so the input is simple. The region is initialized with the InfiniteMediumRegion() construct, whose only argument is the name of the region:
>>> region_mix = InfiniteMediumRegion('Infinite Medium')
Once the region is initialized, the material is assigned to the region using the setMaterial() command, whose only argument is the pointer to the material.
>>> region_mix.setMaterial(mix)
See the documentation on what other options are available for the InfiniteMediumRegion() class.
This type of region is used to represent a fuel or moderator region in which heterogeneous-homogeneous equivalence theory is used. In this type of simulation, Carlvik's Rational Approximation is used for first flight collision probabilities. Regions for the equivalence theory case are a bit more complex. In this case (a pin cell) fuel and moderator regions are both specified. The EquivalenceRegion constructor has two subclasses used to define each region: EquivalenceFuelRegion() and EquivalenceModeratorRegion(). Their only argument is a title for the region. For the example below, it is assumed that a material with the handle 'moderator' and a material with the handle 'fuel' have already been initialized.
As shown in the example, fuel radius and pitch must be set for both regions so each region volume can be computed independently. These functions, setFuelPinRadius() and setPinCellPitch(), take in the fuel radius and pitch in units of cm. To check to see of they have been set corectly, or to retrieve them at a later time, the getFuelPinRadius() and getPinCellPitch() can be used.
>>> radius_fuel = 2.0
>>> pitch = 1.0
>>> region_mod = EquivalenceModeratorRegion('Moderator')
>>> region_mod.setMaterial(moderator)
>>> region_mod.setFuelRadius(radius_fuel)
>>> region_mod.setPinCellPitch(pitch)
>>> region_mod.getFuelRadius()
2.0
>>> region_mod.getPinCellPitch()
1.0
>>> region_fuel = EquivalenceFuelRegion('Fuel')
>>> region_fuel.setMaterial(fuel)
>>> region_fuel.setFuelPinRadius(radius_fuel)
>>> region_fuel.setPinCellPitch(pitch)
Since this class uses equivalence theory, there are additional options available concerning the first flight collision probabilities. See the documentation on all of the options available for the EquivalenceRegion() class.
#Bounded Region The BoundedRegion class is for regions with explicitly modeled heterogeneous geometry. Instead of using equivalence theory a bounded region simulation uses ray tracing. A region of this type is created using constructive solid geometry methods. Three subclasses of BoundedRegion are available; BoundedGeneralRegion(), BoundedFuelRegion(), and BoundedModeratorRegion(). The bounded moderator and fuel region classes are explicit geometry for a pin cell; the moderator is defined as the space in between a square and a circle inside the square while the fuel is defined as the circle inside the square. The general bounded region is for geometry beyond that of a pin cell, and modeling using this class is discussed in another tutorial. For ray tracing in the explicitly modeled pin cell geometry:
>>> mod_bound_region = BoundedModeratorRegion('Moderator')
>>> mod_bound_region.setMaterial(fuel)
>>> mod_bound_region.setFuelPinRadius(radius_fuel)
>>> mod_bound_region.setPinCellPitch(pitch)
>>> fuel_bound_region = BoundedFuelRegion('Fuel')
>>> fuel_bound_region.setMaterial(fuel)
>>> fuel_bound_region.setFuelPinRadius(radius_fuel)
>>> fuel_bound_region.setPinCellPitch(pitch)
##More Region Options PINSPEC is not limited to the examples that are given above. To view the other capabilities of the Region class, see the documentation.