openmc.Region¶
- class openmc.Region[source]¶
Region of space that can be assigned to a cell.
Region is an abstract base class that is inherited by
openmc.Halfspace
,openmc.Intersection
,openmc.Union
, andopenmc.Complement
. Each of those respective classes are typically not instantiated directly but rather are created through operators of the Surface and Region classes.- clone(memo=None)[source]¶
Create a copy of this region - each of the surfaces in the region’s nodes will be cloned and will have new unique IDs.
- Parameters
memo (dict or None) – A nested dictionary of previously cloned objects. This parameter is used internally and should not be specified by the user.
- Returns
clone – The clone of this region
- Return type
- static from_expression(expression, surfaces)[source]¶
Generate a region given an infix expression.
- Parameters
expression (str) – Boolean expression relating surface half-spaces. The possible operators are union ‘|’, intersection ‘ ‘, and complement ‘~’. For example, ‘(1 -2) | 3 ~(4 -5)’.
surfaces (dict) – Dictionary whose keys are surface IDs that appear in the Boolean expression and whose values are Surface objects.
- get_surfaces(surfaces=None)[source]¶
Recursively find all surfaces referenced by a region and return them
- Parameters
surfaces (collections.OrderedDict, optional) – Dictionary mapping surface IDs to
openmc.Surface
instances- Returns
surfaces – Dictionary mapping surface IDs to
openmc.Surface
instances- Return type
- remove_redundant_surfaces(redundant_surfaces)[source]¶
Recursively remove all redundant surfaces referenced by this region
New in version 0.12.
- Parameters
redundant_surfaces (dict) – Dictionary mapping redundant surface IDs to class:openmc.Surface instances that should replace them.
- rotate(rotation, pivot=(0.0, 0.0, 0.0), order='xyz', inplace=False, memo=None)[source]¶
Rotate surface by angles provided or by applying matrix directly.
New in version 0.12.
- Parameters
rotation (3-tuple of float, or 3x3 iterable) – A 3-tuple of angles \((\phi, \theta, \psi)\) in degrees where the first element is the rotation about the x-axis in the fixed laboratory frame, the second element is the rotation about the y-axis in the fixed laboratory frame, and the third element is the rotation about the z-axis in the fixed laboratory frame. The rotations are active rotations. Additionally a 3x3 rotation matrix can be specified directly either as a nested iterable or array.
pivot (iterable of float, optional) – (x, y, z) coordinates for the point to rotate about. Defaults to (0., 0., 0.)
order (str, optional) – A string of ‘x’, ‘y’, and ‘z’ in some order specifying which rotation to perform first, second, and third. Defaults to ‘xyz’ which means, the rotation by angle \(\phi\) about x will be applied first, followed by \(\theta\) about y and then \(\psi\) about z. This corresponds to an x-y-z extrinsic rotation as well as a z-y’-x’’ intrinsic rotation using Tait-Bryan angles \((\phi, \theta, \psi)\).
inplace (bool) – Whether or not to return a new instance of Surface or to modify the coefficients of this Surface in place. Defaults to False.
memo (dict or None) – Dictionary used for memoization
- Returns
Translated region
- Return type
- translate(vector, inplace=False, memo=None)[source]¶
Translate region in given direction
- Parameters
vector (iterable of float) – Direction in which region should be translated
inplace (bool) –
Whether or not to return a region based on new surfaces or one based on the original surfaces that have been modified.
New in version 0.13.1.
memo (dict or None) – Dictionary used for memoization. This parameter is used internally and should not be specified by the user.
- Returns
Translated region
- Return type