Add RectilinearMesh to regression tests

This commit is contained in:
Sterling Harper 2019-05-28 16:53:49 -04:00
parent d15090099a
commit 3cee8a77fc
5 changed files with 55 additions and 8 deletions

View file

@ -777,8 +777,9 @@ class MeshSurfaceFilter(MeshFilter):
self._mesh = mesh
# Take the product of mesh indices and current names
n_dim = mesh.n_dimension
self.bins = [mesh_tuple + (surf,) for mesh_tuple, surf in
product(mesh.indices, _CURRENT_NAMES[:4*3])]
product(mesh.indices, _CURRENT_NAMES[:4*n_dim])]
def get_pandas_dataframe(self, data_size, stride, **kwargs):
"""Builds a Pandas DataFrame for the Filter's bins.

View file

@ -128,6 +128,10 @@ class Mesh(MeshBase):
def dimension(self):
return self._dimension
@property
def n_dimension(self):
return len(self._dimension)
@property
def lower_left(self):
return self._lower_left
@ -417,6 +421,10 @@ class RectilinearMesh(MeshBase):
def __init__(self, mesh_id=None, name=''):
super().__init__(mesh_id, name)
@property
def n_dimension(self):
return 3
@property
def indices(self):
nx = len(self.x_grid) - 1

View file

@ -324,30 +324,41 @@
<lower_left>-182.07 -182.07 -183.0</lower_left>
<upper_right>182.07 182.07 183.0</upper_right>
</mesh>
<mesh id="4" type="rectilinear">
<x_grid>-182.07 -160.65 -139.23 -117.81 -96.39 -74.97 -53.55000000000001 -32.129999999999995 -10.710000000000008 10.70999999999998 32.129999999999995 53.54999999999998 74.96999999999997 96.38999999999999 117.81 139.22999999999996 160.64999999999998 182.07</x_grid>
<y_grid>-182.07 -160.65 -139.23 -117.81 -96.39 -74.97 -53.55000000000001 -32.129999999999995 -10.710000000000008 10.70999999999998 32.129999999999995 53.54999999999998 74.96999999999997 96.38999999999999 117.81 139.22999999999996 160.64999999999998 182.07</y_grid>
<z_grid>1.0 1.683624003879018 2.8345897864376153 4.772383405596668 8.034899257376447 13.52774925846868 22.77564337001445 38.34561988154435 64.55960607618856 108.69410247084474 182.99999999999991</z_grid>
</mesh>
<filter id="1" type="mesh">
<bins>1</bins>
</filter>
<filter id="4" type="meshsurface">
<filter id="5" type="meshsurface">
<bins>1</bins>
</filter>
<filter id="2" type="mesh">
<bins>2</bins>
</filter>
<filter id="5" type="meshsurface">
<filter id="6" type="meshsurface">
<bins>2</bins>
</filter>
<filter id="3" type="mesh">
<bins>3</bins>
</filter>
<filter id="6" type="meshsurface">
<filter id="7" type="meshsurface">
<bins>3</bins>
</filter>
<filter id="4" type="mesh">
<bins>4</bins>
</filter>
<filter id="8" type="meshsurface">
<bins>4</bins>
</filter>
<tally id="1" name="tally 1">
<filters>1</filters>
<scores>total</scores>
</tally>
<tally id="2" name="tally 2">
<filters>4</filters>
<filters>5</filters>
<scores>current</scores>
</tally>
<tally id="3" name="tally 3">
@ -355,7 +366,7 @@
<scores>total</scores>
</tally>
<tally id="4" name="tally 4">
<filters>5</filters>
<filters>6</filters>
<scores>current</scores>
</tally>
<tally id="5" name="tally 5">
@ -363,7 +374,15 @@
<scores>total</scores>
</tally>
<tally id="6" name="tally 6">
<filters>6</filters>
<filters>7</filters>
<scores>current</scores>
</tally>
<tally id="7" name="tally 7">
<filters>4</filters>
<scores>total</scores>
</tally>
<tally id="8" name="tally 8">
<filters>8</filters>
<scores>current</scores>
</tally>
</tallies>

View file

@ -1 +1 @@
cc306dfd3e3669827cb2f3bdc38005c0616f6faecb9277f3b0f869fdecf826ae662c65d67a402705956f100d2e13c7c11332364fa41ccc2e215ab100709b627f
35f04a6f062ef64116ef4eb0e9b803cd44cff7e185e2b53c9174afad8a26ca1a436ca9b800d6a228e006a9129f4536d7dce289d7a11cd56c6949d71d6a201b31

View file

@ -1,3 +1,5 @@
import numpy as np
import openmc
from tests.testing_harness import HashedPyAPITestHarness
@ -26,13 +28,20 @@ class FilterMeshTestHarness(HashedPyAPITestHarness):
mesh_3d.lower_left = [-182.07, -182.07, -183.00]
mesh_3d.upper_right = [182.07, 182.07, 183.00]
recti_mesh = openmc.RectilinearMesh(mesh_id=4)
recti_mesh.x_grid = np.linspace(-182.07, 182.07, 18)
recti_mesh.y_grid = np.linspace(-182.07, 182.07, 18)
recti_mesh.z_grid = np.logspace(0, np.log10(183), 11)
# Initialize the filters
mesh_1d_filter = openmc.MeshFilter(mesh_1d)
mesh_2d_filter = openmc.MeshFilter(mesh_2d)
mesh_3d_filter = openmc.MeshFilter(mesh_3d)
recti_mesh_filter = openmc.MeshFilter(recti_mesh)
meshsurf_1d_filter = openmc.MeshSurfaceFilter(mesh_1d)
meshsurf_2d_filter = openmc.MeshSurfaceFilter(mesh_2d)
meshsurf_3d_filter = openmc.MeshSurfaceFilter(mesh_3d)
recti_meshsurf_filter = openmc.MeshSurfaceFilter(recti_mesh)
# Initialized the tallies
tally = openmc.Tally(name='tally 1')
@ -65,6 +74,16 @@ class FilterMeshTestHarness(HashedPyAPITestHarness):
tally.scores = ['current']
self._model.tallies.append(tally)
tally = openmc.Tally(name='tally 7')
tally.filters = [recti_mesh_filter]
tally.scores = ['total']
self._model.tallies.append(tally)
tally = openmc.Tally(name='tally 8')
tally.filters = [recti_meshsurf_filter]
tally.scores = ['current']
self._model.tallies.append(tally)
def test_filter_mesh():
harness = FilterMeshTestHarness('statepoint.10.h5')