diff --git a/examples/jupyter/unstructured-mesh-part-ii.ipynb b/examples/jupyter/unstructured-mesh-part-ii.ipynb index 24df3cd051..8c04ace568 100644 --- a/examples/jupyter/unstructured-mesh-part-ii.ipynb +++ b/examples/jupyter/unstructured-mesh-part-ii.ipynb @@ -18,6 +18,7 @@ "metadata": {}, "outputs": [], "source": [ + "import os\n", "from IPython.display import Image\n", "import openmc\n", "import openmc.lib\n", @@ -38,23 +39,24 @@ "metadata": {}, "outputs": [], "source": [ + "from IPython.display import display, clear_output\n", "import urllib.request\n", "\n", "manifold_geom_url = 'https://tinyurl.com/rp7grox' # 99 MB\n", "manifold_mesh_url = 'https://tinyurl.com/wojemuh' # 5.4 MB\n", "\n", - "def download(url, filename='dagmc.h5m'):\n", + " \n", + "def download(url, filename):\n", " \"\"\"\n", " Helper function for retrieving dagmc models\n", " \"\"\"\n", - " u = urllib.request.urlopen(url)\n", - " \n", - " if u.status != 200:\n", - " raise RuntimeError(\"Failed to download file.\")\n", - " \n", - " # save file as dagmc.h5m\n", - " with open(filename, 'wb') as f:\n", - " f.write(u.read())" + " def progress_hook(count, block_size, total_size):\n", + " prog_percent = 100 * count * block_size / total_size\n", + " prog_percent = min(100., prog_percent)\n", + " clear_output(wait=True)\n", + " display('Downloading {}: {:.1f}%'.format(filename, prog_percent))\n", + " \n", + " urllib.request.urlretrieve(url, filename, progress_hook)" ] }, { @@ -138,10 +140,20 @@ "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'Downloading manifold.h5m: 100.0%'" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# get the manifold DAGMC geometry file\n", - "download(manifold_geom_url) \n", + "download(manifold_geom_url, 'dagmc.h5m') \n", "# get the manifold tet mesh\n", "download(manifold_mesh_url, 'manifold.h5m')" ] @@ -150,7 +162,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Next we'll create a 5 MeV isotropic neutron point source at the entrance the single pipe on the low side of the model." + "Next we'll create a 5 MeV neutron point source at the entrance the single pipe on the low side of the model with " ] }, { @@ -169,7 +181,7 @@ "\n", "settings.run_mode = \"fixed source\"\n", "settings.batches = 10\n", - "settings.particles = 5000" + "settings.particles = 100" ] }, { @@ -234,9 +246,9 @@ " Copyright | 2011-2020 MIT and OpenMC contributors\n", " License | http://openmc.readthedocs.io/en/latest/license.html\n", " Version | 0.12.0-dev\n", - " Git SHA1 | e7eceff2aa3a9bbfd4dd553f585d1a31b051ddb3\n", - " Date/Time | 2020-03-27 10:25:39\n", - " OpenMP Threads | 2\n", + " Git SHA1 | c9cbdb7c70b202e847c7169f9e5602f110a43853\n", + " Date/Time | 2020-04-24 09:25:02\n", + " OpenMP Threads | 8\n", "\n", " Reading settings XML file...\n", " Reading cross sections XML file...\n", @@ -282,6 +294,7 @@ " Maximum neutron transport energy: 20000000.000000 eV for N15\n", " Minimum neutron data temperature: 294.000000 K\n", " Maximum neutron data temperature: 294.000000 K\n", + " Reading tallies XML file...\n", " Preparing distributed cell instances...\n", " Writing summary.h5 file...\n", "\n", @@ -298,22 +311,24 @@ " Simulating batch 9\n", " Simulating batch 10\n", " Creating state point statepoint.10.h5...\n", + " WARNING: Skipping unstructured mesh writing for tally 1. More than one filter\n", + " is present on the tally.\n", "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 2.0935e+01 seconds\n", - " Reading cross sections = 2.3075e+00 seconds\n", - " Total time in simulation = 7.0885e+00 seconds\n", - " Time in transport only = 7.0872e+00 seconds\n", - " Time in active batches = 7.0885e+00 seconds\n", - " Time accumulating tallies = 3.8640e-06 seconds\n", - " Total time for finalization = 1.2420e-06 seconds\n", - " Total time elapsed = 2.8024e+01 seconds\n", - " Calculation Rate (active) = 7053.66 particles/second\n", + " Total time for initialization = 4.3651e+01 seconds\n", + " Reading cross sections = 2.1907e+00 seconds\n", + " Total time in simulation = 3.4743e-01 seconds\n", + " Time in transport only = 2.9555e-01 seconds\n", + " Time in active batches = 3.4743e-01 seconds\n", + " Time accumulating tallies = 7.6575e-03 seconds\n", + " Total time for finalization = 2.2273e-01 seconds\n", + " Total time elapsed = 4.4224e+01 seconds\n", + " Calculation Rate (active) = 2878.27 particles/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " Leakage Fraction = 0.97472 +/- 0.00083\n", + " Leakage Fraction = 0.96800 +/- 0.00573\n", "\n" ] } @@ -344,7 +359,6 @@ "tally.scores = ['flux']\n", "tally.estimator = 'tracklength'\n", "\n", - "\n", "tallies = openmc.Tallies([tally])\n", "tallies.export_to_xml()" ] @@ -356,6 +370,7 @@ "outputs": [], "source": [ "settings.batches = 200\n", + "settings.particles = 5000\n", "settings.export_to_xml()" ] }, @@ -372,7 +387,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Again we should see that `tally_1.200.vtk` file which we can use to visualize our results in VisIt or another tool of your choice that supports VTK files." + "Again we should see that `tally_1.200.vtk` file which we can use to visualize our results in VisIt, ParaView, or another tool of your choice that supports VTK files." ] }, { @@ -384,7 +399,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "tally_1.200.vtk\r\n" + "manifold_flux.vtk tally_1.100.vtk tally_1.200.vtk\r\n", + "manifold.vtk\t tally_1.10.vtk\r\n" ] } ], @@ -393,10 +409,28 @@ ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 13, "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": { + "image/png": { + "width": "800" + } + }, + "output_type": "execute_result" + } + ], "source": [ - "" + "Image(\"./images/manifold_flux.png\", width=\"800\")" ] }, { @@ -419,7 +453,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -433,17 +467,16 @@ "\tNuclides =\t\n", "\tScores =\t['flux']\n", "\tEstimator =\ttracklength\n", - "\n", "EnergyFilter\n", - "\tValues =\t[0.e+00 1.e+00 1.e+07]\n", + "\tValues =\t[ 0. 1000000. 5000000.]\n", "\tID =\t2\n", "\n" ] } ], "source": [ - "# energy filter with bins from 0 to 1 eV and 1 eV to 10 MeV\n", - "energy_filter = openmc.EnergyFilter((0.0, 1.0, 1.e+07))\n", + "# energy filter with bins from 0 to 1 MeV and 1 MeV to 5 MeV\n", + "energy_filter = openmc.EnergyFilter((0.0, 1.e+06, 5.e+06))\n", "\n", "tally.filters = [mesh_filter, energy_filter]\n", "print(tally)\n", @@ -453,7 +486,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -463,13 +496,13 @@ "\r\n", "\r\n", " \r\n", - " manifold.h5m\r\n", + " manifold.h5m\r\n", " \r\n", " \r\n", " 1\r\n", " \r\n", " \r\n", - " 0.0 1.0 10000000.0\r\n", + " 0.0 1000000.0 5000000.0\r\n", " \r\n", " \r\n", " 1 2\r\n", @@ -486,7 +519,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -506,7 +539,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -519,15 +552,15 @@ " \n", " thermal_flux = tally.get_values(scores=['flux'], \n", " filters=[openmc.EnergyFilter],\n", - " filter_bins=[((0.0, 1.0),)]) \n", + " filter_bins=[((0.0, 1.e+06),)])\n", " fast_flux = tally.get_values(scores=['flux'],\n", " filters=[openmc.EnergyFilter],\n", - " filter_bins=[((1.0, 1.e+07),)])" + " filter_bins=[((1.e+06, 5.e+06),)])" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -537,75 +570,14 @@ "/home/shriwise/.pyenv/versions/3.7.3/lib/python3.7/site-packages/vtk/util/numpy_support.py:137: FutureWarning: Conversion of the second argument of issubdtype from `complex` to `np.complexfloating` is deprecated. In future, it will be treated as `np.complex128 == np.dtype(complex).type`.\n", " assert not numpy.issubdtype(z.dtype, complex), \\\n" ] - }, - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "import vtk\n", - "from vtk.util import numpy_support as npsup\n", + "data_dict = {'Flux 0 - 1 MeV' : thermal_flux,\n", + " 'Flux 1 - 5 MeV' : fast_flux,\n", + " 'Total Flux' : thermal_flux + fast_flux}\n", "\n", - "# create data arrays for the cells/points\n", - "vertices = vtk.vtkCellArray()\n", - "points = vtk.vtkPoints()\n", - "\n", - "for centroid in centroids:\n", - " # create a point for each centroid\n", - " point_id = points.InsertNextPoint(centroid)\n", - " # create a cell of type \"Vertex\" for each point\n", - " cell_id = vertices.InsertNextCell(1, (point_id,))\n", - " \n", - "polyData = vtk.vtkPolyData()\n", - "\n", - "polyData.SetPoints(points)\n", - "polyData.SetVerts(vertices)\n", - "\n", - "# normalize the thermal flux using mesh \n", - "# cell volumes and shape into 1D array\n", - "thermal_flux = thermal_flux.flatten() / mesh_vols.flatten()\n", - "\n", - "# add results to the polygonal data\n", - "thermal_results = vtk.vtkDoubleArray()\n", - "thermal_results.SetName(\"Thermal Flux\")\n", - "thermal_results.SetNumberOfComponents(1)\n", - "thermal_results.SetArray(npsup.numpy_to_vtk(thermal_flux),\n", - " thermal_flux.size,\n", - " True)\n", - "\n", - "# normalize the fast flux using mesh \n", - "# cell volumes and shape into 1D array\n", - "fast_flux = fast_flux.flatten() / mesh_vols.flatten()\n", - "fast_results = vtk.vtkDoubleArray()\n", - "fast_results.SetName(\"Fast Flux\")\n", - "fast_results.SetNumberOfComponents(1)\n", - "fast_results.SetArray(npsup.numpy_to_vtk(fast_flux),\n", - " fast_flux.size,\n", - " True)\n", - "\n", - "total_flux = thermal_flux + fast_flux\n", - "total_results = vtk.vtkDoubleArray()\n", - "total_results.SetName(\"Total Flux\")\n", - "total_results.SetNumberOfComponents(1)\n", - "total_results.SetArray(npsup.numpy_to_vtk(total_flux),\n", - " total_flux.size,\n", - " True)\n", - "\n", - "polyData.GetPointData().AddArray(thermal_results)\n", - "polyData.GetPointData().AddArray(fast_results)\n", - "polyData.GetPointData().AddArray(total_results)\n", - "\n", - "writer = vtk.vtkGenericDataObjectWriter()\n", - "writer.SetFileName(\"manifold_flux.vtk\")\n", - "writer.SetInputData(polyData)\n", - "writer.Write()" + "umesh.write_data_to_vtk(\"manifold\", data_dict)" ] }, { @@ -617,14 +589,15 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "manifold_flux.vtk tally_1.200.vtk\r\n" + "manifold_flux.vtk tally_1.100.vtk tally_1.200.vtk\r\n", + "manifold.vtk\t tally_1.10.vtk\r\n" ] } ], @@ -634,7 +607,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -644,7 +617,7 @@ "" ] }, - "execution_count": 19, + "execution_count": 20, "metadata": { "image/png": { "width": 800 diff --git a/openmc/filter.py b/openmc/filter.py index f75770e267..416698470b 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -766,7 +766,10 @@ class MeshFilter(Filter): cv.check_type('filter mesh', mesh, openmc.MeshBase) self._mesh = mesh if isinstance(mesh, openmc.UnstructuredMesh): - self.bins = list(range(len(mesh.volumes))) + if mesh.volumes is None: + self.bins = [] + else: + self.bins = list(range(len(mesh.volumes))) else: self.bins = list(mesh.indices) diff --git a/openmc/mesh.py b/openmc/mesh.py index 6cc311db42..fbe1d00bcf 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -633,8 +633,8 @@ class UnstructuredMesh(MeshBase): def __init__(self, filename, mesh_id=None, name=''): super().__init__(mesh_id, name) self.filename = filename - self._volumes = [] - self._centroids = [] + self._volumes = None + self._centroids = None @property def filename(self): @@ -664,7 +664,7 @@ class UnstructuredMesh(MeshBase): @property def n_elements(self): - if not self.centroids: + if self._centroids is None: raise RuntimeError("No information about this mesh has " "been loaded from a statepoint file.") return len(self._centroids) @@ -679,7 +679,7 @@ class UnstructuredMesh(MeshBase): string = super().__repr__() return string + '{: <16}=\t{}\n'.format('\tFilename', self.filename) - def data_to_vtk(self, filename, datasets, volume_normalization=True): + def write_data_to_vtk(self, filename, datasets, volume_normalization=True): """Map data to the unstructured mesh element centroids to create a VTK point-cloud dataset. @@ -691,7 +691,7 @@ class UnstructuredMesh(MeshBase): datasets : dict Dictionary whose keys are the data labels and values are the data sets. - volume_normalization : boolt + volume_normalization : bool Whether or not to normalize the data by the volume of the mesh elements """ @@ -699,20 +699,26 @@ class UnstructuredMesh(MeshBase): if not _VTK: raise RuntimeError("The VTK Python module is not installed.") - if not self.centroids: - raise RuntimeError("No centroid information if present for this mesh. " - "Please load this information from a relevant statepoint file.") + if self.centroids is None: + raise RuntimeError("No centroid information is present on this " + "unstructured mesh. Please load this " + "information from a relevant statepoint file.") - if not self.volumes and volume_normalization: - raise RuntimeError("No volume data is present on this mesh. " - "Please load the mesh information from a statepoint file.") + if self.volumes is None and volume_normalization: + raise RuntimeError("No volume data is present on this " + "unstructured mesh. Please load the " + " mesh information from a statepoint file.") # check that the data sets are appropriately sized for label, dataset in datasets.items(): - assert len(dataset) == self.n_elements - assert isinstance(label, str) + if isinstance(dataset, np.ndarray): + assert dataset.size == self.n_elements + else: + assert len(dataset) == self.n_elements + cv.check_type('label', label, str) # create data arrays for the cells/points + cell_dim = 1 vertices = vtk.vtkCellArray() points = vtk.vtkPoints() @@ -720,12 +726,17 @@ class UnstructuredMesh(MeshBase): # create a point for each centroid point_id = points.InsertNextPoint(centroid) # create a cell of type "Vertex" for each point - cell_id = vertices.InsertNextCell(1, (point_id,)) + cell_id = vertices.InsertNextCell(cell_dim, (point_id,)) # create a VTK data object - polyData = vtk.vtkPolyData() - polyData.SetPoints(points) - polyData.SetVerts(vertices) + poly_data = vtk.vtkPolyData() + poly_data.SetPoints(points) + poly_data.SetVerts(vertices) + + # strange VTK nuance: + # arrays must be held in some container + # until the vtk file is written + data_holder = [] # create VTK arrays for each of # the data sets @@ -742,7 +753,8 @@ class UnstructuredMesh(MeshBase): dataset.size, True) - polyData.GetPointData().AddArray(array) + data_holder.append(dataset) + poly_data.GetPointData().AddArray(array) # set filename if filename[-4:] != ".vtk": @@ -750,7 +762,7 @@ class UnstructuredMesh(MeshBase): writer = vtk.vtkGenericDataObjectWriter() writer.SetFileName(filename) - writer.SetInputData(polyData) + writer.SetInputData(poly_data) writer.Write() @classmethod