mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 21:55:41 -04:00
Merge pull request #515 from wbinventor/mgxs-ipython-notebooks
MGXS IPython Notebook Tutorial Suite
This commit is contained in:
commit
4e31f4314c
15 changed files with 5202 additions and 2506 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -71,4 +71,6 @@ docs/source/pythonapi/examples/*.xml
|
|||
docs/source/pythonapi/examples/*.png
|
||||
docs/source/pythonapi/examples/*.xls
|
||||
docs/source/pythonapi/examples/mgxs
|
||||
docs/source/pythonapi/examples/tracks
|
||||
docs/source/pythonapi/examples/tracks
|
||||
docs/source/pythonapi/examples/fission-rates
|
||||
docs/source/pythonapi/examples/plots
|
||||
BIN
docs/source/pythonapi/examples/images/mgxs.png
Normal file
BIN
docs/source/pythonapi/examples/images/mgxs.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 53 KiB |
1195
docs/source/pythonapi/examples/mgxs-part-i.ipynb
Normal file
1195
docs/source/pythonapi/examples/mgxs-part-i.ipynb
Normal file
File diff suppressed because one or more lines are too long
13
docs/source/pythonapi/examples/mgxs-part-i.rst
Normal file
13
docs/source/pythonapi/examples/mgxs-part-i.rst
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
.. _notebook_mgxs_part_i:
|
||||
|
||||
=========================
|
||||
MGXS Part I: Introduction
|
||||
=========================
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. notebook:: mgxs-part-i.ipynb
|
||||
|
||||
.. only:: latex
|
||||
|
||||
IPython notebooks must be viewed in the online HTML documentation.
|
||||
1947
docs/source/pythonapi/examples/mgxs-part-ii.ipynb
Normal file
1947
docs/source/pythonapi/examples/mgxs-part-ii.ipynb
Normal file
File diff suppressed because one or more lines are too long
13
docs/source/pythonapi/examples/mgxs-part-ii.rst
Normal file
13
docs/source/pythonapi/examples/mgxs-part-ii.rst
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
.. _notebook_mgxs_part_ii:
|
||||
|
||||
===============================
|
||||
MGXS Part II: Advanced Features
|
||||
===============================
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. notebook:: mgxs-part-ii.ipynb
|
||||
|
||||
.. only:: latex
|
||||
|
||||
IPython notebooks must be viewed in the online HTML documentation.
|
||||
1653
docs/source/pythonapi/examples/mgxs-part-iii.ipynb
Normal file
1653
docs/source/pythonapi/examples/mgxs-part-iii.ipynb
Normal file
File diff suppressed because one or more lines are too long
13
docs/source/pythonapi/examples/mgxs-part-iii.rst
Normal file
13
docs/source/pythonapi/examples/mgxs-part-iii.rst
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
.. _notebook_mgxs_part_iii:
|
||||
|
||||
========================
|
||||
MGXS Part III: Libraries
|
||||
========================
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. notebook:: mgxs-part-iii.ipynb
|
||||
|
||||
.. only:: latex
|
||||
|
||||
IPython notebooks must be viewed in the online HTML documentation.
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,11 +0,0 @@
|
|||
====================================
|
||||
Multi-Group Cross Section Generation
|
||||
====================================
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. notebook:: multi-group-cross-sections.ipynb
|
||||
|
||||
.. only:: latex
|
||||
|
||||
IPython notebooks must be viewed in the online HTML documentation.
|
||||
|
|
@ -126,7 +126,7 @@
|
|||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Now let's move on to the geometry. This problem will be a square array of fuel pins, which we can use OpenMC's lattice/universe feature for. The basic universe will have three regions for the fuel, the clad, and the surrounding coolant. The first step is to create the bounding surfaces for fuel and clad, as well as the outer bounding surfaces of the problem."
|
||||
"Now let's move on to the geometry. This problem will be a square array of fuel pins for which we can use OpenMC's lattice/universe feature. The basic universe will have three regions for the fuel, the clad, and the surrounding coolant. The first step is to create the bounding surfaces for fuel and clad, as well as the outer bounding surfaces of the problem."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -155,7 +155,7 @@
|
|||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"With the surfaces defined, we can now create cells that are defined by intersections of half-spaces created by the surfaces."
|
||||
"With the surfaces defined, we can now construct a fuel pin cell from cells that are defined by intersections of half-spaces created by the surfaces."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -192,7 +192,7 @@
|
|||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Using the pin cell universe, we can construct a 17x17 rectangular lattice with a 1.26cm pitch."
|
||||
"Using the pin cell universe, we can construct a 17x17 rectangular lattice with a 1.26 cm pitch."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
@ -242,7 +242,7 @@
|
|||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"We now must create a geometry that is assigned a root universe, put the geometry into a geometry file, and export it to XML."
|
||||
"We now must create a geometry that is assigned a root universe, put the geometry into a `GeometryFile` object, and export it to XML."
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -74,7 +74,9 @@ on a given module or class.
|
|||
examples/post-processing
|
||||
examples/pandas-dataframes
|
||||
examples/tally-arithmetic
|
||||
examples/multi-group-cross-sections
|
||||
examples/mgxs-part-i
|
||||
examples/mgxs-part-ii
|
||||
examples/mgxs-part-iii
|
||||
|
||||
.. _Jupyter: https://jupyter.org/
|
||||
.. _NumPy: http://www.numpy.org/
|
||||
|
|
|
|||
|
|
@ -1225,28 +1225,29 @@ class MGXS(object):
|
|||
df = df.drop('score', axis=1)
|
||||
|
||||
# Override energy groups bounds with indices
|
||||
groups = np.arange(self.num_groups, 0, -1, dtype=np.int)
|
||||
groups = np.repeat(groups, self.num_nuclides)
|
||||
all_groups = np.arange(self.num_groups, 0, -1, dtype=np.int)
|
||||
all_groups = np.repeat(all_groups, self.num_nuclides)
|
||||
if 'energy [MeV]' in df and 'energyout [MeV]' in df:
|
||||
df.rename(columns={'energy [MeV]': 'group in'}, inplace=True)
|
||||
in_groups = np.tile(groups, self.num_subdomains)
|
||||
in_groups = np.tile(all_groups, self.num_subdomains)
|
||||
in_groups = np.repeat(in_groups, self.num_groups)
|
||||
df['group in'] = in_groups
|
||||
|
||||
df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True)
|
||||
out_groups = np.tile(groups, self.num_subdomains * self.num_groups)
|
||||
out_groups = \
|
||||
np.tile(all_groups, self.num_subdomains * self.num_groups)
|
||||
df['group out'] = out_groups
|
||||
columns = ['group in', 'group out']
|
||||
|
||||
elif 'energyout [MeV]' in df:
|
||||
df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True)
|
||||
in_groups = np.tile(groups, self.num_subdomains)
|
||||
in_groups = np.tile(all_groups, self.num_subdomains)
|
||||
df['group out'] = in_groups
|
||||
columns = ['group out']
|
||||
|
||||
elif 'energy [MeV]' in df:
|
||||
df.rename(columns={'energy [MeV]': 'group in'}, inplace=True)
|
||||
in_groups = np.tile(groups, self.num_subdomains)
|
||||
in_groups = np.tile(all_groups, self.num_subdomains)
|
||||
df['group in'] = in_groups
|
||||
columns = ['group in']
|
||||
|
||||
|
|
|
|||
|
|
@ -882,7 +882,7 @@ def get_opencg_lattice(openmc_lattice):
|
|||
outer = openmc_lattice.outer
|
||||
|
||||
if len(pitch) == 2:
|
||||
new_pitch = np.ones(3, dtype=np.float64)
|
||||
new_pitch = np.ones(3, dtype=np.float64) * np.inf
|
||||
new_pitch[:2] = pitch
|
||||
pitch = new_pitch
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue