From b0e5c88b57338090bce60aa505a381b1ba4ba5d7 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 13 Oct 2014 09:11:28 -0400 Subject: [PATCH] Refactored examples into xml and python subdirectories. Implemented basic using Python API --- examples/python/basic/build-xml.py | 141 ++++++++++++++++++ .../{ => python}/lattice/nested/geometry.xml | 0 .../{ => python}/lattice/nested/materials.xml | 0 .../{ => python}/lattice/nested/plots.xml | 0 .../{ => python}/lattice/nested/settings.xml | 0 .../{ => python}/lattice/nested/tallies.xml | 0 .../{ => python}/lattice/simple/geometry.xml | 0 .../{ => python}/lattice/simple/materials.xml | 0 .../{ => python}/lattice/simple/plots.xml | 0 .../{ => python}/lattice/simple/settings.xml | 0 .../{ => python}/lattice/simple/tallies.xml | 0 examples/{ => python}/pincell/geometry.xml | 0 examples/{ => python}/pincell/materials.xml | 0 examples/{ => python}/pincell/settings.xml | 0 examples/{ => python}/pincell/tallies.xml | 0 examples/{ => python}/reflective/geometry.xml | 0 .../{ => python}/reflective/materials.xml | 0 examples/{ => python}/reflective/settings.xml | 0 examples/{ => xml}/basic/geometry.xml | 0 examples/{ => xml}/basic/materials.xml | 2 +- examples/{ => xml}/basic/settings.xml | 0 examples/{ => xml}/basic/tallies.xml | 0 examples/xml/lattice/nested/geometry.xml | 45 ++++++ examples/xml/lattice/nested/materials.xml | 19 +++ examples/xml/lattice/nested/plots.xml | 10 ++ examples/xml/lattice/nested/settings.xml | 18 +++ examples/xml/lattice/nested/tallies.xml | 16 ++ examples/xml/lattice/simple/geometry.xml | 33 ++++ examples/xml/lattice/simple/materials.xml | 19 +++ examples/xml/lattice/simple/plots.xml | 11 ++ examples/xml/lattice/simple/settings.xml | 18 +++ examples/xml/lattice/simple/tallies.xml | 16 ++ examples/xml/pincell/geometry.xml | 27 ++++ examples/xml/pincell/materials.xml | 70 +++++++++ examples/xml/pincell/settings.xml | 32 ++++ examples/xml/pincell/tallies.xml | 16 ++ examples/xml/reflective/geometry.xml | 19 +++ examples/xml/reflective/materials.xml | 11 ++ examples/xml/reflective/settings.xml | 18 +++ src/utils/openmc/material.py | 2 +- 40 files changed, 541 insertions(+), 2 deletions(-) create mode 100644 examples/python/basic/build-xml.py rename examples/{ => python}/lattice/nested/geometry.xml (100%) rename examples/{ => python}/lattice/nested/materials.xml (100%) rename examples/{ => python}/lattice/nested/plots.xml (100%) rename examples/{ => python}/lattice/nested/settings.xml (100%) rename examples/{ => python}/lattice/nested/tallies.xml (100%) rename examples/{ => python}/lattice/simple/geometry.xml (100%) rename examples/{ => python}/lattice/simple/materials.xml (100%) rename examples/{ => python}/lattice/simple/plots.xml (100%) rename examples/{ => python}/lattice/simple/settings.xml (100%) rename examples/{ => python}/lattice/simple/tallies.xml (100%) rename examples/{ => python}/pincell/geometry.xml (100%) rename examples/{ => python}/pincell/materials.xml (100%) rename examples/{ => python}/pincell/settings.xml (100%) rename examples/{ => python}/pincell/tallies.xml (100%) rename examples/{ => python}/reflective/geometry.xml (100%) rename examples/{ => python}/reflective/materials.xml (100%) rename examples/{ => python}/reflective/settings.xml (100%) rename examples/{ => xml}/basic/geometry.xml (100%) rename examples/{ => xml}/basic/materials.xml (100%) rename examples/{ => xml}/basic/settings.xml (100%) rename examples/{ => xml}/basic/tallies.xml (100%) create mode 100644 examples/xml/lattice/nested/geometry.xml create mode 100644 examples/xml/lattice/nested/materials.xml create mode 100644 examples/xml/lattice/nested/plots.xml create mode 100644 examples/xml/lattice/nested/settings.xml create mode 100644 examples/xml/lattice/nested/tallies.xml create mode 100644 examples/xml/lattice/simple/geometry.xml create mode 100644 examples/xml/lattice/simple/materials.xml create mode 100644 examples/xml/lattice/simple/plots.xml create mode 100644 examples/xml/lattice/simple/settings.xml create mode 100644 examples/xml/lattice/simple/tallies.xml create mode 100644 examples/xml/pincell/geometry.xml create mode 100644 examples/xml/pincell/materials.xml create mode 100644 examples/xml/pincell/settings.xml create mode 100644 examples/xml/pincell/tallies.xml create mode 100644 examples/xml/reflective/geometry.xml create mode 100644 examples/xml/reflective/materials.xml create mode 100644 examples/xml/reflective/settings.xml diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py new file mode 100644 index 000000000..18a16aab6 --- /dev/null +++ b/examples/python/basic/build-xml.py @@ -0,0 +1,141 @@ +import openmc + + +############################################################################### +# Simulation Input File Parameters +############################################################################### + +# OpenMC simulation parameters +batches = 15 +inactive = 5 +particles = 10000 + + +############################################################################### +# Exporting to OpenMC materials.xml File +############################################################################### + +# Instantiate some Nuclides +h1 = openmc.Nuclide('H-1') +o16 = openmc.Nuclide('O-16') +u235 = openmc.Nuclide('U-235') + +# Instantiate some Materials and register the appropriate Nuclides +moderator = openmc.Material(material_id=41, name='moderator') +moderator.setDensity('g/cc', 1.0) +moderator.addNuclide(h1, 2.) +moderator.addNuclide(o16, 1.) +moderator.addSAlphaBeta('HH2O', '71t') + +fuel = openmc.Material(material_id=40, name='fuel') +fuel.setDensity('g/cc', 4.5) +fuel.addNuclide(u235, 1.) + +# Instantiate a MaterialsFile, register all Materials, and export to XML +materials_file = openmc.MaterialsFile() +materials_file.setDefaultXS('71c') +materials_file.addMaterials([moderator, fuel]) +materials_file.exportToXML() + + +############################################################################### +# Exporting to OpenMC geometry.xml File +############################################################################### + +# Instantiate ZCylinder surfaces +surf1 = openmc.ZCylinder(surface_id=1, x0=0, y0=0, R=7, name='surf 1') +surf2 = openmc.ZCylinder(surface_id=2, x0=0, y0=0, R=9, name='surf 2') +surf3 = openmc.ZCylinder(surface_id=3, x0=0, y0=0, R=11, name='surf 3') +surf3.setBoundaryType('vacuum') + +# Instantiate Cells +cell1 = openmc.Cell(cell_id=1, name='cell 1') +cell2 = openmc.Cell(cell_id=100, name='cell 2') +cell3 = openmc.Cell(cell_id=101, name='cell 3') +cell4 = openmc.Cell(cell_id=2, name='cell 4') + +# Register Surfaces with Cells +cell1.addSurface(surface=surf2, halfspace=-1) +cell2.addSurface(surface=surf1, halfspace=-1) +cell3.addSurface(surface=surf1, halfspace=+1) +cell4.addSurface(surface=surf2, halfspace=+1) +cell4.addSurface(surface=surf3, halfspace=-1) + +# Register Materials with Cells +cell2.setFill(fuel) +cell3.setFill(moderator) +cell4.setFill(moderator) + +# Instantiate Universes +universe1 = openmc.Universe(universe_id=37) +root = openmc.Universe(universe_id=0, name='root universe') +cell1.setFill(universe1) + +# Register Cells with Universes +universe1.addCells([cell2, cell3]) +root.addCells([cell1, cell4]) + +# Instantiate a Geometry and register the root Universe +geometry = openmc.Geometry() +geometry.setRootUniverse(root) + +# Instantiate a GeometryFile, register Geometry, and export to XML +geometry_file = openmc.GeometryFile() +geometry_file.setGeometry(geometry) +geometry_file.exportToXML() + + +############################################################################### +# Exporting to OpenMC settings.xml File +############################################################################### + +# Instantiate a SettingsFile, set all runtime parameters, and export to XML +settings_file = openmc.SettingsFile() +settings_file.setBatches(batches) +settings_file.setInactive(inactive) +settings_file.setParticles(particles) +settings_file.setSourceSpace('box', [-4, -4, -4, 4, 4, 4]) +settings_file.exportToXML() + + +############################################################################### +# Exporting to OpenMC tallies.xml File +############################################################################### + +# Instantiate some tally Filters +cell_filter = openmc.Filter(type='cell', bins=100) +energy_filter = openmc.Filter(type='energy', bins=[0., 20.]) +energyout_filter = openmc.Filter(type='energyout', bins=[0., 20.]) + +# Instantiate the first Tally +first_tally = openmc.Tally(tally_id=1, label='first tally') +first_tally.addFilter(cell_filter) +scores = ['total', 'scatter', 'nu-scatter', \ + 'absorption', 'fission', 'nu-fission'] +for score in scores: + first_tally.addScore(score) + +# Instantiate the second Tally +second_tally = openmc.Tally(tally_id=2, label='second tally') +second_tally.addFilter(cell_filter) +second_tally.addFilter(energy_filter) +scores = ['total', 'scatter', 'nu-scatter', \ + 'absorption', 'fission', 'nu-fission'] +for score in scores: + second_tally.addScore(score) + +# Instantiate the third Tally +third_tally = openmc.Tally(tally_id=3, label='third tally') +third_tally.addFilter(cell_filter) +third_tally.addFilter(energy_filter) +third_tally.addFilter(energyout_filter) +scores = ['scatter', 'nu-scatter', 'nu-fission'] +for score in scores: + third_tally.addScore(score) + +# Instantiate a TalliesFile, register all Tallies, and export to XML +tallies_file = openmc.TalliesFile() +tallies_file.addTally(first_tally) +tallies_file.addTally(second_tally) +tallies_file.addTally(third_tally) +tallies_file.exportToXML() diff --git a/examples/lattice/nested/geometry.xml b/examples/python/lattice/nested/geometry.xml similarity index 100% rename from examples/lattice/nested/geometry.xml rename to examples/python/lattice/nested/geometry.xml diff --git a/examples/lattice/nested/materials.xml b/examples/python/lattice/nested/materials.xml similarity index 100% rename from examples/lattice/nested/materials.xml rename to examples/python/lattice/nested/materials.xml diff --git a/examples/lattice/nested/plots.xml b/examples/python/lattice/nested/plots.xml similarity index 100% rename from examples/lattice/nested/plots.xml rename to examples/python/lattice/nested/plots.xml diff --git a/examples/lattice/nested/settings.xml b/examples/python/lattice/nested/settings.xml similarity index 100% rename from examples/lattice/nested/settings.xml rename to examples/python/lattice/nested/settings.xml diff --git a/examples/lattice/nested/tallies.xml b/examples/python/lattice/nested/tallies.xml similarity index 100% rename from examples/lattice/nested/tallies.xml rename to examples/python/lattice/nested/tallies.xml diff --git a/examples/lattice/simple/geometry.xml b/examples/python/lattice/simple/geometry.xml similarity index 100% rename from examples/lattice/simple/geometry.xml rename to examples/python/lattice/simple/geometry.xml diff --git a/examples/lattice/simple/materials.xml b/examples/python/lattice/simple/materials.xml similarity index 100% rename from examples/lattice/simple/materials.xml rename to examples/python/lattice/simple/materials.xml diff --git a/examples/lattice/simple/plots.xml b/examples/python/lattice/simple/plots.xml similarity index 100% rename from examples/lattice/simple/plots.xml rename to examples/python/lattice/simple/plots.xml diff --git a/examples/lattice/simple/settings.xml b/examples/python/lattice/simple/settings.xml similarity index 100% rename from examples/lattice/simple/settings.xml rename to examples/python/lattice/simple/settings.xml diff --git a/examples/lattice/simple/tallies.xml b/examples/python/lattice/simple/tallies.xml similarity index 100% rename from examples/lattice/simple/tallies.xml rename to examples/python/lattice/simple/tallies.xml diff --git a/examples/pincell/geometry.xml b/examples/python/pincell/geometry.xml similarity index 100% rename from examples/pincell/geometry.xml rename to examples/python/pincell/geometry.xml diff --git a/examples/pincell/materials.xml b/examples/python/pincell/materials.xml similarity index 100% rename from examples/pincell/materials.xml rename to examples/python/pincell/materials.xml diff --git a/examples/pincell/settings.xml b/examples/python/pincell/settings.xml similarity index 100% rename from examples/pincell/settings.xml rename to examples/python/pincell/settings.xml diff --git a/examples/pincell/tallies.xml b/examples/python/pincell/tallies.xml similarity index 100% rename from examples/pincell/tallies.xml rename to examples/python/pincell/tallies.xml diff --git a/examples/reflective/geometry.xml b/examples/python/reflective/geometry.xml similarity index 100% rename from examples/reflective/geometry.xml rename to examples/python/reflective/geometry.xml diff --git a/examples/reflective/materials.xml b/examples/python/reflective/materials.xml similarity index 100% rename from examples/reflective/materials.xml rename to examples/python/reflective/materials.xml diff --git a/examples/reflective/settings.xml b/examples/python/reflective/settings.xml similarity index 100% rename from examples/reflective/settings.xml rename to examples/python/reflective/settings.xml diff --git a/examples/basic/geometry.xml b/examples/xml/basic/geometry.xml similarity index 100% rename from examples/basic/geometry.xml rename to examples/xml/basic/geometry.xml diff --git a/examples/basic/materials.xml b/examples/xml/basic/materials.xml similarity index 100% rename from examples/basic/materials.xml rename to examples/xml/basic/materials.xml index 75ab74dbb..d858d8ae7 100644 --- a/examples/basic/materials.xml +++ b/examples/xml/basic/materials.xml @@ -10,8 +10,8 @@ - + diff --git a/examples/basic/settings.xml b/examples/xml/basic/settings.xml similarity index 100% rename from examples/basic/settings.xml rename to examples/xml/basic/settings.xml diff --git a/examples/basic/tallies.xml b/examples/xml/basic/tallies.xml similarity index 100% rename from examples/basic/tallies.xml rename to examples/xml/basic/tallies.xml diff --git a/examples/xml/lattice/nested/geometry.xml b/examples/xml/lattice/nested/geometry.xml new file mode 100644 index 000000000..f223cf3bb --- /dev/null +++ b/examples/xml/lattice/nested/geometry.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + rectangular + 2 2 + -1.0 -1.0 + 1.0 1.0 + + 1 2 + 2 3 + + + + + + rectangular + 2 2 + -2.0 -2.0 + 2.0 2.0 + + 5 5 + 5 5 + + + + + + + + + + + + diff --git a/examples/xml/lattice/nested/materials.xml b/examples/xml/lattice/nested/materials.xml new file mode 100644 index 000000000..b64922136 --- /dev/null +++ b/examples/xml/lattice/nested/materials.xml @@ -0,0 +1,19 @@ + + + + 71c + + + + + + + + + + + + + + + diff --git a/examples/xml/lattice/nested/plots.xml b/examples/xml/lattice/nested/plots.xml new file mode 100644 index 000000000..a8c6fbb7c --- /dev/null +++ b/examples/xml/lattice/nested/plots.xml @@ -0,0 +1,10 @@ + + + + + 0. 0. 0. + 4.0 4.0 + 400 400 + + + diff --git a/examples/xml/lattice/nested/settings.xml b/examples/xml/lattice/nested/settings.xml new file mode 100644 index 000000000..2a6aaaf42 --- /dev/null +++ b/examples/xml/lattice/nested/settings.xml @@ -0,0 +1,18 @@ + + + + + + 20 + 10 + 10000 + + + + + + -1 -1 -1 1 1 1 + + + + diff --git a/examples/xml/lattice/nested/tallies.xml b/examples/xml/lattice/nested/tallies.xml new file mode 100644 index 000000000..5730e6b12 --- /dev/null +++ b/examples/xml/lattice/nested/tallies.xml @@ -0,0 +1,16 @@ + + + + + rectangular + 4 4 + -2.0 -2.0 + 1.0 1.0 + + + + + total + + + diff --git a/examples/xml/lattice/simple/geometry.xml b/examples/xml/lattice/simple/geometry.xml new file mode 100644 index 000000000..b5bad90b9 --- /dev/null +++ b/examples/xml/lattice/simple/geometry.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + rectangular + 4 4 + -2.0 -2.0 + 1.0 1.0 + + 1 2 1 2 + 2 3 2 3 + 1 2 1 2 + 2 3 2 3 + + + + + + + + + + + + diff --git a/examples/xml/lattice/simple/materials.xml b/examples/xml/lattice/simple/materials.xml new file mode 100644 index 000000000..b64922136 --- /dev/null +++ b/examples/xml/lattice/simple/materials.xml @@ -0,0 +1,19 @@ + + + + 71c + + + + + + + + + + + + + + + diff --git a/examples/xml/lattice/simple/plots.xml b/examples/xml/lattice/simple/plots.xml new file mode 100644 index 000000000..a25a5a828 --- /dev/null +++ b/examples/xml/lattice/simple/plots.xml @@ -0,0 +1,11 @@ + + + + + 0. 0. 0. + 4.0 4.0 + 400 400 + + + + diff --git a/examples/xml/lattice/simple/settings.xml b/examples/xml/lattice/simple/settings.xml new file mode 100644 index 000000000..2a6aaaf42 --- /dev/null +++ b/examples/xml/lattice/simple/settings.xml @@ -0,0 +1,18 @@ + + + + + + 20 + 10 + 10000 + + + + + + -1 -1 -1 1 1 1 + + + + diff --git a/examples/xml/lattice/simple/tallies.xml b/examples/xml/lattice/simple/tallies.xml new file mode 100644 index 000000000..5730e6b12 --- /dev/null +++ b/examples/xml/lattice/simple/tallies.xml @@ -0,0 +1,16 @@ + + + + + rectangular + 4 4 + -2.0 -2.0 + 1.0 1.0 + + + + + total + + + diff --git a/examples/xml/pincell/geometry.xml b/examples/xml/pincell/geometry.xml new file mode 100644 index 000000000..53cb2f15d --- /dev/null +++ b/examples/xml/pincell/geometry.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/xml/pincell/materials.xml b/examples/xml/pincell/materials.xml new file mode 100644 index 000000000..427fc175d --- /dev/null +++ b/examples/xml/pincell/materials.xml @@ -0,0 +1,70 @@ + + + + + 71c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/xml/pincell/settings.xml b/examples/xml/pincell/settings.xml new file mode 100644 index 000000000..443af9cde --- /dev/null +++ b/examples/xml/pincell/settings.xml @@ -0,0 +1,32 @@ + + + + + + 100 + 10 + 1000 + + + + + + + -0.62992 -0.62992 -1. + 0.62992 0.62992 1. + + + + + + + -0.39218 -0.39218 -1.e50 + 0.39218 0.39218 1.e50 + 10 10 1 + + + \ No newline at end of file diff --git a/examples/xml/pincell/tallies.xml b/examples/xml/pincell/tallies.xml new file mode 100644 index 000000000..bbfd58836 --- /dev/null +++ b/examples/xml/pincell/tallies.xml @@ -0,0 +1,16 @@ + + + + + 100 100 1 + -0.62992 -0.62992 -1.e50 + 0.62992 0.62992 1.e50 + + + + + + flux fission nu-fission + + + \ No newline at end of file diff --git a/examples/xml/reflective/geometry.xml b/examples/xml/reflective/geometry.xml new file mode 100644 index 000000000..664ef0705 --- /dev/null +++ b/examples/xml/reflective/geometry.xml @@ -0,0 +1,19 @@ + + + + + + 0 + 1 + 1 -2 3 -4 5 -6 + + + + + + + + + + + diff --git a/examples/xml/reflective/materials.xml b/examples/xml/reflective/materials.xml new file mode 100644 index 000000000..6da53a9b6 --- /dev/null +++ b/examples/xml/reflective/materials.xml @@ -0,0 +1,11 @@ + + + + 71c + + + + + + + diff --git a/examples/xml/reflective/settings.xml b/examples/xml/reflective/settings.xml new file mode 100644 index 000000000..9f8cf8e95 --- /dev/null +++ b/examples/xml/reflective/settings.xml @@ -0,0 +1,18 @@ + + + + + + 500 + 10 + 10000 + + + + + + -1 -1 -1 1 1 1 + + + + diff --git a/src/utils/openmc/material.py b/src/utils/openmc/material.py index c6e9276af..3d6b2db44 100644 --- a/src/utils/openmc/material.py +++ b/src/utils/openmc/material.py @@ -22,7 +22,7 @@ def reset_auto_material_id(): # Units for density supported by OpenMC -DENSITY_UNITS = ['g/cm3', 'kg/cm3', 'at/b-cm', 'at/cm3', 'sum'] +DENSITY_UNITS = ['g/cm3', 'g/cc', 'kg/cm3', 'at/b-cm', 'at/cm3', 'sum'] # ENDF temperatures ENDF_TEMPS = np.array([300, 600, 700, 900, 1200, 1500])