mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 21:55:41 -04:00
Merge pull request #2363 from RemDelaporteMathurin/fix_flat_mesh
Raise error when mesh is flat
This commit is contained in:
commit
5c672f5ea8
2 changed files with 41 additions and 0 deletions
|
|
@ -433,6 +433,9 @@ class RegularMesh(StructuredMesh):
|
|||
cv.check_length('mesh lower_left', lower_left, 1, 3)
|
||||
self._lower_left = lower_left
|
||||
|
||||
if self.upper_right is not None and any(np.isclose(self.upper_right, lower_left)):
|
||||
raise ValueError("Mesh cannot have zero thickness in any dimension")
|
||||
|
||||
@upper_right.setter
|
||||
def upper_right(self, upper_right):
|
||||
cv.check_type('mesh upper_right', upper_right, Iterable, Real)
|
||||
|
|
@ -442,6 +445,9 @@ class RegularMesh(StructuredMesh):
|
|||
if self._width is not None:
|
||||
self._width = None
|
||||
warnings.warn("Unsetting width attribute.")
|
||||
|
||||
if self.lower_left is not None and any(np.isclose(self.lower_left, upper_right)):
|
||||
raise ValueError("Mesh cannot have zero thickness in any dimension")
|
||||
|
||||
@width.setter
|
||||
def width(self, width):
|
||||
|
|
|
|||
35
tests/unit_tests/test_mesh.py
Normal file
35
tests/unit_tests/test_mesh.py
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
import openmc
|
||||
import pytest
|
||||
import numpy as np
|
||||
|
||||
@pytest.mark.parametrize("val_left,val_right", [(0, 0), (-1., -1.), (2.0, 2)])
|
||||
def test_raises_error_when_flat(val_left, val_right):
|
||||
"""Checks that an error is raised when a mesh is flat"""
|
||||
mesh = openmc.RegularMesh()
|
||||
|
||||
# Same X
|
||||
with pytest.raises(ValueError):
|
||||
mesh.lower_left = [val_left, -25, -25]
|
||||
mesh.upper_right = [val_right, 25, 25]
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
mesh.upper_right = [val_right, 25, 25]
|
||||
mesh.lower_left = [val_left, -25, -25]
|
||||
|
||||
# Same Y
|
||||
with pytest.raises(ValueError):
|
||||
mesh.lower_left = [-25, val_left, -25]
|
||||
mesh.upper_right = [25, val_right, 25]
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
mesh.upper_right = [25, val_right, 25]
|
||||
mesh.lower_left = [-25, val_left, -25]
|
||||
|
||||
# Same Z
|
||||
with pytest.raises(ValueError):
|
||||
mesh.lower_left = [-25, -25, val_left]
|
||||
mesh.upper_right = [25, 25, val_right]
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
mesh.upper_right = [25, 25, val_right]
|
||||
mesh.lower_left = [-25, -25, val_left]
|
||||
Loading…
Add table
Add a link
Reference in a new issue