mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 21:55:41 -04:00
Merge pull request #2166 from pshriwise/umesh-centroid-fix
Fix for centroid method in UnstructuredMesh class
This commit is contained in:
commit
362b4cf68a
2 changed files with 25 additions and 7 deletions
|
|
@ -1476,7 +1476,7 @@ class UnstructuredMesh(MeshBase):
|
|||
Coordinates of the mesh vertices with array shape (n_elements, 3)
|
||||
|
||||
.. versionadded:: 0.13.1
|
||||
connectivity : numpy.ndarray
|
||||
connectivity : numpy.ndarray
|
||||
Connectivity of the elements with array shape (n_elements, 8)
|
||||
|
||||
.. versionadded:: 0.13.1
|
||||
|
|
@ -1562,10 +1562,6 @@ class UnstructuredMesh(MeshBase):
|
|||
def total_volume(self):
|
||||
return np.sum(self.volumes)
|
||||
|
||||
@property
|
||||
def centroids(self):
|
||||
return self._centroids
|
||||
|
||||
@property
|
||||
def vertices(self):
|
||||
return self._vertices
|
||||
|
|
@ -1628,8 +1624,8 @@ class UnstructuredMesh(MeshBase):
|
|||
Parameters
|
||||
----------
|
||||
bin : int
|
||||
Bin ID for the returned centroid
|
||||
|
||||
Bin ID for the returned centroid
|
||||
|
||||
Returns
|
||||
-------
|
||||
numpy.ndarray
|
||||
|
|
@ -1637,6 +1633,8 @@ class UnstructuredMesh(MeshBase):
|
|||
|
||||
"""
|
||||
conn = self.connectivity[bin]
|
||||
# remove invalid connectivity values
|
||||
conn = conn[conn >= 0]
|
||||
coords = self.vertices[conn]
|
||||
return coords.mean(axis=0)
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,26 @@ class UnstructuredMeshTest(PyAPITestHarness):
|
|||
|
||||
def _compare_results(self):
|
||||
with openmc.StatePoint(self._sp_name) as sp:
|
||||
# check some properties of the unstructured mesh
|
||||
umesh = None
|
||||
for m in sp.meshes.values():
|
||||
if isinstance(m, openmc.UnstructuredMesh):
|
||||
umesh = m
|
||||
assert umesh is not None
|
||||
|
||||
# check that the first element centroid is correct
|
||||
# this will depend on whether the tet mesh or hex mesh
|
||||
# file is being used in this test
|
||||
if umesh.element_types[0] == umesh._LINEAR_TET:
|
||||
exp_vertex = (-10.0, -10.0, -10.0)
|
||||
exp_centroid = (-8.75, -9.75, -9.25)
|
||||
else:
|
||||
exp_vertex = (-10.0, -10.0, 10.0)
|
||||
exp_centroid = (-9.0, -9.0, 9.0)
|
||||
|
||||
np.testing.assert_array_equal(umesh.vertices[0], exp_vertex)
|
||||
np.testing.assert_array_equal(umesh.centroid(0), exp_centroid)
|
||||
|
||||
# loop over the tallies and get data
|
||||
for tally in sp.tallies.values():
|
||||
# find the regular and unstructured meshes
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue