From bc09d1ef55ffc827e43c630d44effda3ef79162a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 28 Oct 2019 11:55:45 -0500 Subject: [PATCH] adding back files to be reviewed --- CMakeLists.txt | 354 + CODE_OF_CONDUCT.md | 76 + CONTRIBUTING.md | 46 + Dockerfile | 38 + LICENSE | 18 + MANIFEST.in | 46 + README.md | 58 + cmake/Modules/FindDAGMC.cmake | 18 + docs/Makefile | 141 + docs/diagrams/cross_sections.dia | Bin 0 -> 2387 bytes docs/diagrams/overview.dia | Bin 0 -> 2640 bytes docs/requirements-rtd.txt | 4 + docs/source/_images/3dba.png | Bin 0 -> 15783 bytes docs/source/_images/3dcore.png | Bin 0 -> 284886 bytes docs/source/_images/3dgeomplot.png | Bin 0 -> 82001 bytes docs/source/_images/Tracks.png | Bin 0 -> 94057 bytes docs/source/_images/atr.png | Bin 0 -> 471282 bytes docs/source/_images/cmfd_flow.png | Bin 0 -> 25211 bytes docs/source/_images/cmfd_flow.tex | 29 + docs/source/_images/cosine-dist.png | Bin 0 -> 39479 bytes docs/source/_images/fluxplot.png | Bin 0 -> 26925 bytes docs/source/_images/fork.png | Bin 0 -> 19133 bytes docs/source/_images/halfspace.svg | 54 + docs/source/_images/hex_lat.svg | 780 + docs/source/_images/loss.png | Bin 0 -> 29146 bytes docs/source/_images/master-slave.png | Bin 0 -> 6863 bytes docs/source/_images/meshfig.png | Bin 0 -> 46942 bytes docs/source/_images/meshfig.tex | 639 + .../_images/nearest-neighbor-example.png | Bin 0 -> 34317 bytes docs/source/_images/nearest-neighbor.png | Bin 0 -> 4131 bytes docs/source/_images/openmc_logo.png | Bin 0 -> 15452 bytes docs/source/_images/openmc_logo.svg | 60 + docs/source/_images/plotmeshtally.png | Bin 0 -> 72643 bytes docs/source/_images/prod.png | Bin 0 -> 18894 bytes docs/source/_images/rect_lat.svg | 711 + docs/source/_images/union.svg | 105 + docs/source/_static/theme_overrides.css | 29 + docs/source/_templates/layout.html | 18 + docs/source/_templates/mycallable.rst | 9 + docs/source/_templates/myclass.rst | 7 + docs/source/_templates/myclassinherit.rst | 8 + docs/source/_templates/myfunction.rst | 6 + docs/source/_templates/myintegrator.rst | 9 + docs/source/capi/index.rst | 596 + docs/source/conf.py | 260 + docs/source/devguide/contributing.rst | 129 + docs/source/devguide/docbuild.rst | 45 + docs/source/devguide/docker.rst | 56 + docs/source/devguide/index.rst | 21 + docs/source/devguide/styleguide.rst | 241 + docs/source/devguide/tests.rst | 89 + docs/source/devguide/user-input.rst | 71 + docs/source/devguide/workflow.rst | 132 + docs/source/examples/cad-geom.rst | 13 + docs/source/examples/candu.rst | 13 + docs/source/examples/expansion-filters.rst | 13 + docs/source/examples/hexagonal.rst | 13 + docs/source/examples/index.rst | 62 + docs/source/examples/mdgxs-part-i.rst | 13 + docs/source/examples/mdgxs-part-ii.rst | 13 + docs/source/examples/mg-mode-part-i.rst | 13 + docs/source/examples/mg-mode-part-ii.rst | 13 + docs/source/examples/mg-mode-part-iii.rst | 13 + docs/source/examples/mgxs-part-i.rst | 13 + docs/source/examples/mgxs-part-ii.rst | 13 + docs/source/examples/mgxs-part-iii.rst | 13 + .../nuclear-data-resonance-covariance.rst | 13 + docs/source/examples/nuclear-data.rst | 13 + docs/source/examples/pandas-dataframes.rst | 13 + docs/source/examples/pincell-depletion.rst | 14 + docs/source/examples/pincell.rst | 13 + docs/source/examples/post-processing.rst | 13 + docs/source/examples/search.rst | 13 + docs/source/examples/tally-arithmetic.rst | 11 + docs/source/examples/triso.rst | 13 + docs/source/index.rst | 48 + docs/source/io_formats/cross_sections.rst | 70 + docs/source/io_formats/data_wmp.rst | 52 + docs/source/io_formats/depletion_chain.rst | 102 + docs/source/io_formats/depletion_results.rst | 53 + docs/source/io_formats/geometry.rst | 372 + docs/source/io_formats/index.rst | 52 + docs/source/io_formats/materials.rst | 126 + docs/source/io_formats/mgxs_library.rst | 175 + docs/source/io_formats/nuclear_data.rst | 592 + docs/source/io_formats/particle_restart.rst | 34 + docs/source/io_formats/plots.rst | 192 + docs/source/io_formats/settings.rst | 864 + docs/source/io_formats/source.rst | 21 + docs/source/io_formats/statepoint.rst | 159 + docs/source/io_formats/summary.rst | 143 + docs/source/io_formats/tallies.rst | 391 + docs/source/io_formats/track.rst | 21 + docs/source/io_formats/volume.rst | 34 + docs/source/io_formats/voxel.rst | 27 + docs/source/license.rst | 24 + docs/source/methods/cmfd.rst | 569 + docs/source/methods/cross_sections.rst | 280 + docs/source/methods/eigenvalue.rst | 161 + docs/source/methods/energy_deposition.rst | 149 + docs/source/methods/geometry.rst | 967 + docs/source/methods/index.rst | 21 + docs/source/methods/introduction.rst | 147 + docs/source/methods/neutron_physics.rst | 1677 + docs/source/methods/parallelization.rst | 650 + docs/source/methods/photon_physics.rst | 1072 + docs/source/methods/random_numbers.rst | 72 + docs/source/methods/tallies.rst | 515 + docs/source/publications.rst | 550 + docs/source/pythonapi/base.rst | 222 + docs/source/pythonapi/capi.rst | 51 + docs/source/pythonapi/data.rst | 202 + docs/source/pythonapi/deplete.rst | 205 + docs/source/pythonapi/examples.rst | 25 + docs/source/pythonapi/index.rst | 52 + docs/source/pythonapi/mgxs.rst | 70 + docs/source/pythonapi/model.rst | 55 + docs/source/pythonapi/openmoc.rst | 24 + docs/source/pythonapi/stats.rst | 50 + docs/source/quickinstall.rst | 138 + docs/source/releasenotes/0.10.0.rst | 102 + docs/source/releasenotes/0.11.0.rst | 133 + docs/source/releasenotes/0.4.0.rst | 34 + docs/source/releasenotes/0.4.1.rst | 53 + docs/source/releasenotes/0.4.2.rst | 54 + docs/source/releasenotes/0.4.3.rst | 51 + docs/source/releasenotes/0.4.4.rst | 43 + docs/source/releasenotes/0.5.0.rst | 49 + docs/source/releasenotes/0.5.1.rst | 43 + docs/source/releasenotes/0.5.2.rst | 55 + docs/source/releasenotes/0.5.3.rst | 47 + docs/source/releasenotes/0.5.4.rst | 62 + docs/source/releasenotes/0.6.0.rst | 57 + docs/source/releasenotes/0.6.1.rst | 63 + docs/source/releasenotes/0.6.2.rst | 56 + docs/source/releasenotes/0.7.0.rst | 65 + docs/source/releasenotes/0.7.1.rst | 89 + docs/source/releasenotes/0.8.0.rst | 94 + docs/source/releasenotes/0.9.0.rst | 150 + docs/source/releasenotes/index.rst | 28 + docs/source/usersguide/basics.rst | 190 + docs/source/usersguide/beginners.rst | 161 + docs/source/usersguide/cross_sections.rst | 267 + docs/source/usersguide/depletion.rst | 137 + docs/source/usersguide/geometry.rst | 436 + docs/source/usersguide/index.rst | 28 + docs/source/usersguide/install.rst | 492 + docs/source/usersguide/materials.rst | 177 + docs/source/usersguide/parallel.rst | 105 + docs/source/usersguide/plots.rst | 136 + docs/source/usersguide/processing.rst | 105 + docs/source/usersguide/scripts.rst | 257 + docs/source/usersguide/settings.rst | 268 + docs/source/usersguide/tallies.rst | 310 + docs/source/usersguide/troubleshoot.rst | 104 + docs/source/usersguide/volume.rst | 69 + docs/sphinxext/LICENSE | 68 + docs/sphinxext/notebook_sphinxext.py | 117 + examples/jupyter/c5g7.h5 | Bin 0 -> 59512 bytes examples/jupyter/cad-based-geometry.ipynb | 764 + examples/jupyter/candu.ipynb | 1115 + examples/jupyter/chain_simple.xml | 1 + examples/jupyter/expansion-filters.ipynb | 463 + examples/jupyter/hexagonal-lattice.ipynb | 372 + examples/jupyter/images/cylinder_mesh.png | Bin 0 -> 9928 bytes examples/jupyter/images/mdgxs.png | Bin 0 -> 23788 bytes examples/jupyter/images/mgxs.png | Bin 0 -> 54562 bytes examples/jupyter/images/teapot.jpg | Bin 0 -> 103729 bytes examples/jupyter/mdgxs-part-i.ipynb | 1494 + examples/jupyter/mdgxs-part-ii.ipynb | 1178 + examples/jupyter/mg-mode-part-i.ipynb | 701 + examples/jupyter/mg-mode-part-ii.ipynb | 1539 + examples/jupyter/mg-mode-part-iii.ipynb | 1425 + examples/jupyter/mgxs-part-i.ipynb | 1138 + examples/jupyter/mgxs-part-ii.ipynb | 2744 ++ examples/jupyter/mgxs-part-iii.ipynb | 1667 + .../nuclear-data-resonance-covariance.ipynb | 962 + examples/jupyter/nuclear-data.ipynb | 1503 + examples/jupyter/pandas-dataframes.ipynb | 2516 ++ examples/jupyter/pincell.ipynb | 1564 + examples/jupyter/pincell_depletion.ipynb | 996 + examples/jupyter/post-processing.ipynb | 985 + examples/jupyter/search.ipynb | 352 + examples/jupyter/tally-arithmetic.ipynb | 1753 + examples/jupyter/triso.ipynb | 365 + examples/python/basic/build-xml.py | 121 + examples/python/boxes/build-xml.py | 125 + .../python/lattice/hexagonal/build-xml.py | 161 + examples/python/lattice/nested/build-xml.py | 169 + examples/python/lattice/simple/build-xml.py | 166 + examples/python/pincell/build-xml.py | 138 + .../python/pincell_depletion/chain_simple.xml | 49 + .../pincell_depletion/restart_depletion.py | 104 + .../python/pincell_depletion/run_depletion.py | 175 + .../python/pincell_multigroup/build-xml.py | 175 + examples/python/reflective/build-xml.py | 82 + examples/xml/basic/geometry.xml | 15 + examples/xml/basic/materials.xml | 16 + examples/xml/basic/settings.xml | 16 + examples/xml/basic/tallies.xml | 31 + examples/xml/boxes/geometry.xml | 39 + examples/xml/boxes/materials.xml | 21 + examples/xml/boxes/plots.xml | 9 + examples/xml/boxes/settings.xml | 15 + examples/xml/lattice/nested/geometry.xml | 43 + examples/xml/lattice/nested/materials.xml | 17 + examples/xml/lattice/nested/plots.xml | 10 + examples/xml/lattice/nested/settings.xml | 17 + examples/xml/lattice/nested/tallies.xml | 20 + examples/xml/lattice/simple/geometry.xml | 32 + examples/xml/lattice/simple/materials.xml | 17 + examples/xml/lattice/simple/plots.xml | 10 + examples/xml/lattice/simple/settings.xml | 17 + examples/xml/lattice/simple/tallies.xml | 20 + examples/xml/pincell/geometry.xml | 27 + examples/xml/pincell/materials.xml | 67 + examples/xml/pincell/settings.xml | 32 + examples/xml/pincell/tallies.xml | 23 + examples/xml/pincell_multigroup/geometry.xml | 10 + examples/xml/pincell_multigroup/materials.xml | 12 + examples/xml/pincell_multigroup/mgxs.h5 | Bin 0 -> 16832 bytes examples/xml/pincell_multigroup/plots.xml | 28 + examples/xml/pincell_multigroup/settings.xml | 13 + examples/xml/pincell_multigroup/tallies.xml | 18 + examples/xml/reflective/geometry.xml | 19 + examples/xml/reflective/materials.xml | 9 + examples/xml/reflective/settings.xml | 17 + include/openmc/angle_energy.h | 21 + include/openmc/bank.h | 42 + include/openmc/bremsstrahlung.h | 48 + include/openmc/capi.h | 175 + include/openmc/cell.h | 300 + include/openmc/cmfd_solver.h | 10 + include/openmc/constants.h | 431 + include/openmc/container_util.h | 17 + include/openmc/cross_sections.h | 77 + include/openmc/dagmc.h | 43 + include/openmc/distribution.h | 197 + include/openmc/distribution_angle.h | 40 + include/openmc/distribution_energy.h | 152 + include/openmc/distribution_multi.h | 80 + include/openmc/distribution_spatial.h | 81 + include/openmc/eigenvalue.h | 92 + include/openmc/endf.h | 133 + include/openmc/error.h | 71 + include/openmc/file_utils.h | 20 + include/openmc/finalize.h | 8 + include/openmc/geometry.h | 80 + include/openmc/geometry_aux.h | 118 + include/openmc/hdf5_interface.h | 508 + include/openmc/initialize.h | 18 + include/openmc/lattice.h | 294 + include/openmc/material.h | 204 + include/openmc/math_functions.h | 277 + include/openmc/mesh.h | 246 + include/openmc/message_passing.h | 23 + include/openmc/mgxs.h | 183 + include/openmc/mgxs_interface.h | 81 + include/openmc/neighbor_list.h | 68 + include/openmc/nuclide.h | 148 + include/openmc/openmp_interface.h | 77 + include/openmc/output.h | 62 + include/openmc/particle.h | 292 + include/openmc/particle_restart.h | 10 + include/openmc/photon.h | 126 + include/openmc/physics.h | 93 + include/openmc/physics_common.h | 16 + include/openmc/physics_mg.h | 46 + include/openmc/plot.h | 292 + include/openmc/position.h | 108 + include/openmc/progress_bar.h | 22 + include/openmc/random_lcg.h | 97 + include/openmc/reaction.h | 51 + include/openmc/reaction_product.h | 57 + include/openmc/scattdata.h | 265 + include/openmc/search.h | 32 + include/openmc/secondary_correlated.h | 61 + include/openmc/secondary_kalbach.h | 55 + include/openmc/secondary_nbody.h | 37 + include/openmc/secondary_thermal.h | 139 + include/openmc/secondary_uncorrelated.h | 45 + include/openmc/settings.h | 107 + include/openmc/simulation.h | 95 + include/openmc/source.h | 73 + include/openmc/state_point.h | 20 + include/openmc/string_utils.h | 26 + include/openmc/summary.h | 16 + include/openmc/surface.h | 457 + include/openmc/tallies/derivative.h | 86 + include/openmc/tallies/filter.h | 150 + include/openmc/tallies/filter_azimuthal.h | 52 + include/openmc/tallies/filter_cell.h | 59 + include/openmc/tallies/filter_cellborn.h | 29 + include/openmc/tallies/filter_cellfrom.h | 29 + include/openmc/tallies/filter_delayedgroup.h | 56 + include/openmc/tallies/filter_distribcell.h | 51 + include/openmc/tallies/filter_energy.h | 78 + include/openmc/tallies/filter_energyfunc.h | 62 + include/openmc/tallies/filter_legendre.h | 51 + include/openmc/tallies/filter_material.h | 61 + include/openmc/tallies/filter_mesh.h | 53 + include/openmc/tallies/filter_meshsurface.h | 28 + include/openmc/tallies/filter_mu.h | 52 + include/openmc/tallies/filter_particle.h | 52 + include/openmc/tallies/filter_polar.h | 52 + include/openmc/tallies/filter_sph_harm.h | 64 + include/openmc/tallies/filter_sptl_legendre.h | 70 + include/openmc/tallies/filter_surface.h | 57 + include/openmc/tallies/filter_universe.h | 57 + include/openmc/tallies/filter_zernike.h | 91 + include/openmc/tallies/tally.h | 201 + include/openmc/tallies/tally_scoring.h | 96 + include/openmc/tallies/trigger.h | 50 + include/openmc/thermal.h | 130 + include/openmc/timer.h | 67 + include/openmc/track_output.h | 18 + include/openmc/urr.h | 33 + include/openmc/volume_calc.h | 80 + include/openmc/wmp.h | 92 + include/openmc/xml_interface.h | 53 + include/openmc/xsdata.h | 140 + man/man1/openmc.1 | 83 + openmc/__init__.py | 37 + openmc/_utils.py | 68 + openmc/_xml.py | 51 + openmc/arithmetic.py | 842 + openmc/cell.py | 582 + openmc/checkvalue.py | 337 + openmc/cmfd.py | 3072 ++ openmc/data/BREMX.DAT | 28521 ++++++++++++++++ openmc/data/__init__.py | 35 + openmc/data/_endf.pyx | 8 + openmc/data/ace.py | 460 + openmc/data/angle_distribution.py | 310 + openmc/data/angle_energy.py | 117 + openmc/data/compton_profiles.h5 | Bin 0 -> 598888 bytes openmc/data/correlated.py | 462 + openmc/data/data.py | 385 + openmc/data/decay.py | 484 + openmc/data/density_effect.h5 | Bin 0 -> 206264 bytes openmc/data/endf.c | 39 + openmc/data/endf.py | 550 + openmc/data/energy_distribution.py | 1277 + openmc/data/fission_energy.py | 380 + openmc/data/function.py | 716 + openmc/data/grid.py | 114 + openmc/data/kalbach_mann.py | 402 + openmc/data/laboratory.py | 142 + openmc/data/library.py | 173 + openmc/data/mass16.txt | 3475 ++ openmc/data/multipole.py | 535 + openmc/data/nbody.py | 165 + openmc/data/neutron.py | 926 + openmc/data/njoy.py | 593 + openmc/data/photon.py | 1306 + openmc/data/product.py | 187 + openmc/data/reaction.py | 1189 + openmc/data/reconstruct.pyx | 522 + openmc/data/resonance.py | 1071 + openmc/data/resonance_covariance.py | 708 + openmc/data/thermal.py | 927 + openmc/data/thermal_angle_energy.py | 212 + openmc/data/uncorrelated.py | 95 + openmc/data/urr.py | 215 + openmc/deplete/__init__.py | 43 + openmc/deplete/_matrix_funcs.py | 80 + openmc/deplete/abc.py | 895 + openmc/deplete/atom_number.py | 214 + openmc/deplete/chain.py | 786 + openmc/deplete/cram.py | 255 + openmc/deplete/dummy_comm.py | 32 + openmc/deplete/helpers.py | 683 + openmc/deplete/integrators.py | 836 + openmc/deplete/nuclide.py | 570 + openmc/deplete/operator.py | 743 + openmc/deplete/reaction_rates.py | 153 + openmc/deplete/results.py | 496 + openmc/deplete/results_list.py | 167 + openmc/element.py | 208 + openmc/examples.py | 642 + openmc/exceptions.py | 38 + openmc/executor.py | 212 + openmc/filter.py | 1810 + openmc/filter_expansion.py | 528 + openmc/geometry.py | 610 + openmc/lattice.py | 1901 + openmc/lib/__init__.py | 55 + openmc/lib/cell.py | 228 + openmc/lib/core.py | 411 + openmc/lib/error.py | 41 + openmc/lib/filter.py | 468 + openmc/lib/material.py | 267 + openmc/lib/math.py | 300 + openmc/lib/mesh.py | 185 + openmc/lib/nuclide.py | 98 + openmc/lib/plot.py | 265 + openmc/lib/settings.py | 62 + openmc/lib/tally.py | 408 + openmc/macroscopic.py | 25 + openmc/material.py | 1109 + openmc/mesh.py | 560 + openmc/mgxs/__init__.py | 625 + openmc/mgxs/groups.py | 297 + openmc/mgxs/library.py | 1469 + openmc/mgxs/mdgxs.py | 2619 ++ openmc/mgxs/mgxs.py | 5909 ++++ openmc/mgxs_library.py | 2577 ++ openmc/mixin.py | 113 + openmc/model/__init__.py | 3 + openmc/model/funcs.py | 578 + openmc/model/model.py | 223 + openmc/model/triso.py | 1335 + openmc/nuclide.py | 39 + openmc/openmoc_compatible.py | 825 + openmc/particle_restart.py | 92 + openmc/plots.py | 850 + openmc/plotter.py | 910 + openmc/polynomial.py | 81 + openmc/region.py | 663 + openmc/search.py | 197 + openmc/settings.py | 1275 + openmc/source.py | 183 + openmc/statepoint.py | 689 + openmc/stats/__init__.py | 2 + openmc/stats/multivariate.py | 543 + openmc/stats/univariate.py | 827 + openmc/summary.py | 229 + openmc/surface.py | 2261 ++ openmc/tallies.py | 3204 ++ openmc/tally_derivative.py | 113 + openmc/trigger.py | 98 + openmc/universe.py | 571 + openmc/volume.py | 280 + pyproject.toml | 2 + pytest.ini | 5 + schemas.xml | 9 + scripts/casl_chain.py | 280 + scripts/openmc-ace-to-hdf5 | 205 + scripts/openmc-get-photon-data | 106 + scripts/openmc-make-compton | 99 + scripts/openmc-make-depletion-chain | 46 + scripts/openmc-make-depletion-chain-casl | 240 + scripts/openmc-make-stopping-powers | 50 + scripts/openmc-make-test-data | 164 + scripts/openmc-plot-mesh-tally | 325 + scripts/openmc-track-to-vtk | 78 + scripts/openmc-update-inputs | 301 + scripts/openmc-update-mgxs | 225 + scripts/openmc-validate-xml | 99 + scripts/openmc-voxel-to-vtk | 72 + setup.py | 84 + src/bank.cpp | 72 + src/bremsstrahlung.cpp | 117 + src/cell.cpp | 1234 + src/cmfd_solver.cpp | 361 + src/cross_sections.cpp | 433 + src/dagmc.cpp | 406 + src/distribution.cpp | 312 + src/distribution_angle.cpp | 96 + src/distribution_energy.cpp | 356 + src/distribution_multi.cpp | 94 + src/distribution_spatial.cpp | 98 + src/eigenvalue.cpp | 654 + src/endf.cpp | 261 + src/error.cpp | 137 + src/finalize.cpp | 167 + src/geometry.cpp | 496 + src/geometry_aux.cpp | 569 + src/hdf5_interface.cpp | 805 + src/initialize.cpp | 291 + src/lattice.cpp | 1075 + src/main.cpp | 57 + src/material.cpp | 1439 + src/math_functions.cpp | 896 + src/mesh.cpp | 1534 + src/message_passing.cpp | 19 + src/mgxs.cpp | 700 + src/mgxs_interface.cpp | 319 + src/nuclide.cpp | 977 + src/output.cpp | 736 + src/particle.cpp | 681 + src/particle_restart.cpp | 107 + src/photon.cpp | 779 + src/physics.cpp | 1123 + src/physics_common.cpp | 26 + src/physics_mg.cpp | 199 + src/plot.cpp | 1005 + src/position.cpp | 104 + src/progress_bar.cpp | 67 + src/random_lcg.cpp | 153 + src/reaction.cpp | 277 + src/reaction_product.cpp | 101 + src/relaxng/cross_sections.rnc | 12 + src/relaxng/cross_sections.rng | 42 + src/relaxng/geometry.rnc | 55 + src/relaxng/geometry.rng | 447 + src/relaxng/materials.rnc | 41 + src/relaxng/materials.rng | 165 + src/relaxng/mg_cross_sections.rnc | 61 + src/relaxng/mg_cross_sections.rng | 314 + src/relaxng/plots.rnc | 41 + src/relaxng/plots.rng | 293 + src/relaxng/readme.rst | 19 + src/relaxng/settings.rnc | 172 + src/relaxng/settings.rng | 787 + src/relaxng/tallies.rnc | 96 + src/relaxng/tallies.rng | 478 + src/scattdata.cpp | 916 + src/secondary_correlated.cpp | 268 + src/secondary_kalbach.cpp | 241 + src/secondary_nbody.cpp | 67 + src/secondary_thermal.cpp | 327 + src/secondary_uncorrelated.cpp | 74 + src/settings.cpp | 788 + src/simulation.cpp | 573 + src/source.cpp | 345 + src/state_point.cpp | 778 + src/string_utils.cpp | 84 + src/summary.cpp | 136 + src/surface.cpp | 1330 + src/tallies/derivative.cpp | 687 + src/tallies/filter.cpp | 249 + src/tallies/filter_azimuthal.cpp | 85 + src/tallies/filter_cell.cpp | 99 + src/tallies/filter_cellborn.cpp | 24 + src/tallies/filter_cellfrom.cpp | 26 + src/tallies/filter_delayedgroup.cpp | 60 + src/tallies/filter_distribcell.cpp | 82 + src/tallies/filter_energy.cpp | 174 + src/tallies/filter_energyfunc.cpp | 161 + src/tallies/filter_legendre.cpp | 97 + src/tallies/filter_material.cpp | 122 + src/tallies/filter_mesh.cpp | 132 + src/tallies/filter_meshsurface.cpp | 93 + src/tallies/filter_mu.cpp | 77 + src/tallies/filter_particle.cpp | 94 + src/tallies/filter_polar.cpp | 85 + src/tallies/filter_sph_harm.cpp | 192 + src/tallies/filter_sptl_legendre.cpp | 209 + src/tallies/filter_surface.cpp | 81 + src/tallies/filter_universe.cpp | 77 + src/tallies/filter_zernike.cpp | 208 + src/tallies/tally.cpp | 1425 + src/tallies/tally_scoring.cpp | 2347 ++ src/tallies/trigger.cpp | 203 + src/thermal.cpp | 289 + src/timer.cpp | 76 + src/track_output.cpp | 84 + src/urr.cpp | 31 + src/volume_calc.cpp | 419 + src/wmp.cpp | 243 + src/xml_interface.cpp | 59 + src/xsdata.cpp | 575 + tests/__init__.py | 15 + tests/chain_simple.xml | 49 + tests/conftest.py | 28 + tests/dummy_operator.py | 243 + tests/readme.rst | 1 + tests/regression_tests/__init__.py | 9 + .../asymmetric_lattice/__init__.py | 0 .../asymmetric_lattice/inputs_true.dat | 227 + .../asymmetric_lattice/results_true.dat | 1 + .../asymmetric_lattice/test.py | 93 + tests/regression_tests/cmfd_feed/__init__.py | 0 tests/regression_tests/cmfd_feed/geometry.xml | 43 + .../regression_tests/cmfd_feed/materials.xml | 12 + .../cmfd_feed/results_true.dat | 488 + tests/regression_tests/cmfd_feed/settings.xml | 26 + tests/regression_tests/cmfd_feed/tallies.xml | 21 + tests/regression_tests/cmfd_feed/test.py | 142 + .../regression_tests/cmfd_feed_2g/__init__.py | 0 .../cmfd_feed_2g/geometry.xml | 31 + .../cmfd_feed_2g/materials.xml | 59 + .../cmfd_feed_2g/results_true.dat | 434 + .../cmfd_feed_2g/settings.xml | 25 + .../regression_tests/cmfd_feed_2g/tallies.xml | 21 + tests/regression_tests/cmfd_feed_2g/test.py | 29 + .../cmfd_feed_expanding_window/__init__.py | 0 .../cmfd_feed_expanding_window/geometry.xml | 43 + .../cmfd_feed_expanding_window/materials.xml | 12 + .../results_true.dat | 488 + .../cmfd_feed_expanding_window/settings.xml | 26 + .../cmfd_feed_expanding_window/tallies.xml | 21 + .../cmfd_feed_expanding_window/test.py | 26 + .../regression_tests/cmfd_feed_ng/__init__.py | 0 .../cmfd_feed_ng/geometry.xml | 31 + .../cmfd_feed_ng/materials.xml | 59 + .../cmfd_feed_ng/results_true.dat | 621 + .../cmfd_feed_ng/settings.xml | 25 + .../regression_tests/cmfd_feed_ng/tallies.xml | 21 + tests/regression_tests/cmfd_feed_ng/test.py | 30 + .../cmfd_feed_ref_d/__init__.py | 0 .../cmfd_feed_ref_d/geometry.xml | 43 + .../cmfd_feed_ref_d/materials.xml | 12 + .../cmfd_feed_ref_d/results_true.dat | 488 + .../cmfd_feed_ref_d/settings.xml | 26 + .../cmfd_feed_ref_d/tallies.xml | 21 + .../regression_tests/cmfd_feed_ref_d/test.py | 27 + .../cmfd_feed_rolling_window/__init__.py | 0 .../cmfd_feed_rolling_window/geometry.xml | 43 + .../cmfd_feed_rolling_window/materials.xml | 12 + .../cmfd_feed_rolling_window/results_true.dat | 488 + .../cmfd_feed_rolling_window/settings.xml | 26 + .../cmfd_feed_rolling_window/tallies.xml | 21 + .../cmfd_feed_rolling_window/test.py | 27 + .../regression_tests/cmfd_nofeed/__init__.py | 0 .../regression_tests/cmfd_nofeed/geometry.xml | 43 + .../cmfd_nofeed/materials.xml | 12 + .../cmfd_nofeed/results_true.dat | 488 + .../regression_tests/cmfd_nofeed/settings.xml | 26 + .../regression_tests/cmfd_nofeed/tallies.xml | 21 + tests/regression_tests/cmfd_nofeed/test.py | 26 + .../regression_tests/cmfd_restart/__init__.py | 0 .../cmfd_restart/geometry.xml | 43 + .../cmfd_restart/materials.xml | 12 + .../cmfd_restart/results_true.dat | 488 + .../cmfd_restart/settings.xml | 28 + .../regression_tests/cmfd_restart/tallies.xml | 21 + tests/regression_tests/cmfd_restart/test.py | 72 + .../regression_tests/complex_cell/__init__.py | 0 .../complex_cell/geometry.xml | 25 + .../complex_cell/materials.xml | 21 + .../complex_cell/results_true.dat | 11 + .../complex_cell/settings.xml | 15 + .../regression_tests/complex_cell/tallies.xml | 14 + tests/regression_tests/complex_cell/test.py | 6 + .../confidence_intervals/__init__.py | 0 .../confidence_intervals/geometry.xml | 8 + .../confidence_intervals/materials.xml | 10 + .../confidence_intervals/results_true.dat | 5 + .../confidence_intervals/settings.xml | 17 + .../confidence_intervals/tallies.xml | 14 + .../confidence_intervals/test.py | 6 + tests/regression_tests/conftest.py | 23 + .../create_fission_neutrons/__init__.py | 0 .../create_fission_neutrons/inputs_true.dat | 37 + .../create_fission_neutrons/results_true.dat | 3 + .../create_fission_neutrons/test.py | 70 + tests/regression_tests/dagmc/__init__.py | 0 .../regression_tests/dagmc/legacy/__init__.py | 0 tests/regression_tests/dagmc/legacy/dagmc.h5m | Bin 0 -> 1233364 bytes .../dagmc/legacy/inputs_true.dat | 36 + .../dagmc/legacy/results_true.dat | 5 + tests/regression_tests/dagmc/legacy/test.py | 49 + tests/regression_tests/dagmc/refl/__init__.py | 0 tests/regression_tests/dagmc/refl/dagmc.h5m | Bin 0 -> 1250249 bytes .../dagmc/refl/inputs_true.dat | 23 + .../dagmc/refl/results_true.dat | 5 + tests/regression_tests/dagmc/refl/test.py | 40 + tests/regression_tests/dagmc/uwuw/__init__.py | 0 tests/regression_tests/dagmc/uwuw/dagmc.h5m | Bin 0 -> 1244336 bytes .../dagmc/uwuw/inputs_true.dat | 23 + .../dagmc/uwuw/results_true.dat | 1 + tests/regression_tests/dagmc/uwuw/test.py | 40 + tests/regression_tests/density/__init__.py | 0 tests/regression_tests/density/geometry.xml | 14 + tests/regression_tests/density/materials.xml | 26 + .../regression_tests/density/results_true.dat | 2 + tests/regression_tests/density/settings.xml | 15 + tests/regression_tests/density/test.py | 6 + .../deplete/example_geometry.py | 377 + tests/regression_tests/deplete/test.py | 124 + .../deplete/test_reference.h5 | Bin 0 -> 165504 bytes tests/regression_tests/diff_tally/__init__.py | 0 .../diff_tally/inputs_true.dat | 439 + .../diff_tally/results_true.dat | 177 + tests/regression_tests/diff_tally/test.py | 118 + tests/regression_tests/distribmat/__init__.py | 0 .../distribmat/inputs_true.dat | 62 + .../distribmat/results_true.dat | 9 + tests/regression_tests/distribmat/test.py | 104 + .../eigenvalue_genperbatch/__init__.py | 0 .../eigenvalue_genperbatch/geometry.xml | 8 + .../eigenvalue_genperbatch/materials.xml | 9 + .../eigenvalue_genperbatch/results_true.dat | 2 + .../eigenvalue_genperbatch/settings.xml | 16 + .../eigenvalue_genperbatch/test.py | 6 + .../eigenvalue_no_inactive/__init__.py | 0 .../eigenvalue_no_inactive/geometry.xml | 8 + .../eigenvalue_no_inactive/materials.xml | 9 + .../eigenvalue_no_inactive/results_true.dat | 2 + .../eigenvalue_no_inactive/settings.xml | 15 + .../eigenvalue_no_inactive/test.py | 6 + .../energy_cutoff/__init__.py | 0 .../energy_cutoff/inputs_true.dat | 42 + .../energy_cutoff/results_true.dat | 3 + tests/regression_tests/energy_cutoff/test.py | 74 + .../regression_tests/energy_grid/__init__.py | 0 .../regression_tests/energy_grid/geometry.xml | 8 + .../energy_grid/materials.xml | 11 + .../energy_grid/results_true.dat | 2 + .../regression_tests/energy_grid/settings.xml | 17 + tests/regression_tests/energy_grid/test.py | 6 + .../regression_tests/energy_laws/__init__.py | 0 .../energy_laws/inputs_true.dat | 23 + .../energy_laws/results_true.dat | 2 + tests/regression_tests/energy_laws/test.py | 52 + tests/regression_tests/enrichment/__init__.py | 0 tests/regression_tests/enrichment/test.py | 33 + tests/regression_tests/entropy/__init__.py | 0 tests/regression_tests/entropy/geometry.xml | 8 + tests/regression_tests/entropy/materials.xml | 9 + .../regression_tests/entropy/results_true.dat | 13 + tests/regression_tests/entropy/settings.xml | 23 + tests/regression_tests/entropy/test.py | 29 + .../filter_distribcell/__init__.py | 0 .../filter_distribcell/case-1/geometry.xml | 26 + .../filter_distribcell/case-1/materials.xml | 16 + .../case-1/results_true.dat | 14 + .../filter_distribcell/case-1/settings.xml | 15 + .../filter_distribcell/case-1/tallies.xml | 24 + .../filter_distribcell/case-2/geometry.xml | 30 + .../filter_distribcell/case-2/materials.xml | 15 + .../case-2/results_true.dat | 11 + .../filter_distribcell/case-2/settings.xml | 15 + .../filter_distribcell/case-2/tallies.xml | 14 + .../filter_distribcell/case-3/geometry.xml | 181 + .../filter_distribcell/case-3/materials.xml | 123 + .../case-3/results_true.dat | 1 + .../filter_distribcell/case-3/settings.xml | 20 + .../filter_distribcell/case-3/tallies.xml | 64 + .../filter_distribcell/case-4/geometry.xml | 23 + .../filter_distribcell/case-4/materials.xml | 19 + .../case-4/results_true.dat | 17 + .../filter_distribcell/case-4/settings.xml | 12 + .../filter_distribcell/case-4/tallies.xml | 14 + .../filter_distribcell/test.py | 73 + .../filter_energyfun/__init__.py | 0 .../filter_energyfun/inputs_true.dat | 35 + .../filter_energyfun/results_true.dat | 2 + .../regression_tests/filter_energyfun/test.py | 62 + .../regression_tests/filter_mesh/__init__.py | 0 .../filter_mesh/inputs_true.dat | 112 + .../filter_mesh/results_true.dat | 1 + tests/regression_tests/filter_mesh/test.py | 84 + .../regression_tests/fixed_source/__init__.py | 0 .../fixed_source/inputs_true.dat | 31 + .../fixed_source/results_true.dat | 6 + tests/regression_tests/fixed_source/test.py | 59 + .../infinite_cell/__init__.py | 0 .../infinite_cell/geometry.xml | 17 + .../infinite_cell/materials.xml | 14 + .../infinite_cell/results_true.dat | 2 + .../infinite_cell/settings.xml | 15 + tests/regression_tests/infinite_cell/test.py | 6 + tests/regression_tests/iso_in_lab/__init__.py | 0 .../iso_in_lab/inputs_true.dat | 321 + .../iso_in_lab/results_true.dat | 2 + tests/regression_tests/iso_in_lab/test.py | 8 + tests/regression_tests/lattice/__init__.py | 0 tests/regression_tests/lattice/geometry.xml | 122 + tests/regression_tests/lattice/materials.xml | 139 + .../regression_tests/lattice/results_true.dat | 2 + tests/regression_tests/lattice/settings.xml | 27 + tests/regression_tests/lattice/test.py | 6 + .../regression_tests/lattice_hex/__init__.py | 0 .../regression_tests/lattice_hex/geometry.xml | 199 + .../lattice_hex/materials.xml | 42 + tests/regression_tests/lattice_hex/plots.xml | 32 + .../lattice_hex/results_true.dat | 2 + .../regression_tests/lattice_hex/settings.xml | 14 + tests/regression_tests/lattice_hex/test.py | 6 + .../lattice_hex_coincident/__init__.py | 0 .../lattice_hex_coincident/inputs_true.dat | 81 + .../lattice_hex_coincident/results_true.dat | 2 + .../lattice_hex_coincident/test.py | 151 + .../lattice_hex_x/__init__.py | 0 .../lattice_hex_x/inputs_true.dat | 123 + .../lattice_hex_x/results_true.dat | 2 + tests/regression_tests/lattice_hex_x/test.py | 206 + .../lattice_multiple/__init__.py | 0 .../lattice_multiple/inputs_true.dat | 53 + .../lattice_multiple/results_true.dat | 2 + .../regression_tests/lattice_multiple/test.py | 58 + .../lattice_rotated/__init__.py | 0 .../lattice_rotated/inputs_true.dat | 71 + .../lattice_rotated/results_true.dat | 2 + .../regression_tests/lattice_rotated/test.py | 85 + tests/regression_tests/mg_basic/__init__.py | 0 .../regression_tests/mg_basic/inputs_true.dat | 64 + .../mg_basic/results_true.dat | 2 + tests/regression_tests/mg_basic/test.py | 97 + .../mg_basic_delayed/__init__.py | 0 .../mg_basic_delayed/inputs_true.dat | 63 + .../mg_basic_delayed/results_true.dat | 2 + .../regression_tests/mg_basic_delayed/test.py | 131 + tests/regression_tests/mg_convert/__init__.py | 0 .../mg_convert/inputs_true.dat | 29 + .../mg_convert/results_true.dat | 24 + tests/regression_tests/mg_convert/test.py | 198 + .../regression_tests/mg_legendre/__init__.py | 0 .../mg_legendre/inputs_true.dat | 33 + .../mg_legendre/results_true.dat | 2 + tests/regression_tests/mg_legendre/test.py | 55 + .../regression_tests/mg_max_order/__init__.py | 0 .../mg_max_order/inputs_true.dat | 34 + .../mg_max_order/results_true.dat | 2 + tests/regression_tests/mg_max_order/test.py | 55 + .../mg_survival_biasing/__init__.py | 0 .../mg_survival_biasing/inputs_true.dat | 34 + .../mg_survival_biasing/results_true.dat | 2 + .../mg_survival_biasing/test.py | 55 + tests/regression_tests/mg_tallies/__init__.py | 0 .../mg_tallies/inputs_true.dat | 165 + .../mg_tallies/results_true.dat | 1 + tests/regression_tests/mg_tallies/test.py | 148 + .../mgxs_library_ce_to_mg/__init__.py | 0 .../mgxs_library_ce_to_mg/inputs_true.dat | 251 + .../mgxs_library_ce_to_mg/results_true.dat | 2 + .../mgxs_library_ce_to_mg/test.py | 85 + .../mgxs_library_condense/__init__.py | 0 .../mgxs_library_condense/inputs_true.dat | 1178 + .../mgxs_library_condense/results_true.dat | 273 + .../mgxs_library_condense/test.py | 67 + .../mgxs_library_correction/__init__.py | 0 .../mgxs_library_correction/inputs_true.dat | 344 + .../mgxs_library_correction/results_true.dat | 60 + .../mgxs_library_correction/test.py | 63 + .../mgxs_library_distribcell/__init__.py | 0 .../mgxs_library_distribcell/inputs_true.dat | 464 + .../mgxs_library_distribcell/results_true.dat | 91 + .../mgxs_library_distribcell/test.py | 70 + .../mgxs_library_hdf5/__init__.py | 0 .../mgxs_library_hdf5/inputs_true.dat | 1178 + .../mgxs_library_hdf5/results_true.dat | 579 + .../mgxs_library_hdf5/test.py | 83 + .../mgxs_library_histogram/__init__.py | 0 .../mgxs_library_histogram/inputs_true.dat | 269 + .../mgxs_library_histogram/results_true.dat | 540 + .../mgxs_library_histogram/test.py | 64 + .../mgxs_library_mesh/__init__.py | 0 .../mgxs_library_mesh/inputs_true.dat | 425 + .../mgxs_library_mesh/results_true.dat | 310 + .../mgxs_library_mesh/test.py | 95 + .../mgxs_library_no_nuclides/__init__.py | 0 .../mgxs_library_no_nuclides/inputs_true.dat | 1178 + .../mgxs_library_no_nuclides/results_true.dat | 621 + .../mgxs_library_no_nuclides/test.py | 63 + .../mgxs_library_nuclides/__init__.py | 0 .../mgxs_library_nuclides/inputs_true.dat | 995 + .../mgxs_library_nuclides/results_true.dat | 1 + .../mgxs_library_nuclides/test.py | 59 + tests/regression_tests/multipole/__init__.py | 0 .../multipole/inputs_true.dat | 55 + .../multipole/results_true.dat | 41 + tests/regression_tests/multipole/test.py | 80 + tests/regression_tests/output/__init__.py | 0 tests/regression_tests/output/geometry.xml | 8 + tests/regression_tests/output/materials.xml | 9 + .../regression_tests/output/results_true.dat | 2 + tests/regression_tests/output/settings.xml | 17 + tests/regression_tests/output/test.py | 28 + .../particle_restart_eigval/__init__.py | 0 .../particle_restart_eigval/geometry.xml | 9 + .../particle_restart_eigval/materials.xml | 9 + .../particle_restart_eigval/results_true.dat | 16 + .../particle_restart_eigval/settings.xml | 16 + .../particle_restart_eigval/test.py | 6 + .../particle_restart_fixed/__init__.py | 0 .../particle_restart_fixed/geometry.xml | 9 + .../particle_restart_fixed/materials.xml | 9 + .../particle_restart_fixed/results_true.dat | 16 + .../particle_restart_fixed/settings.xml | 14 + .../particle_restart_fixed/test.py | 6 + tests/regression_tests/periodic/__init__.py | 0 .../regression_tests/periodic/inputs_true.dat | 37 + .../periodic/results_true.dat | 2 + tests/regression_tests/periodic/test.py | 56 + .../photon_production/__init__.py | 0 .../photon_production/inputs_true.dat | 68 + .../photon_production/results_true.dat | 30 + .../photon_production/test.py | 90 + .../photon_source/__init__.py | 0 .../photon_source/inputs_true.dat | 45 + .../photon_source/results_true.dat | 3 + tests/regression_tests/photon_source/test.py | 61 + tests/regression_tests/plot/__init__.py | 0 tests/regression_tests/plot/geometry.xml | 13 + tests/regression_tests/plot/materials.xml | 19 + tests/regression_tests/plot/plots.xml | 33 + tests/regression_tests/plot/results_true.dat | 1 + tests/regression_tests/plot/settings.xml | 13 + tests/regression_tests/plot/tallies.xml | 20 + tests/regression_tests/plot/test.py | 61 + .../plot_overlaps/__init__.py | 0 .../plot_overlaps/geometry.xml | 14 + .../plot_overlaps/materials.xml | 19 + .../regression_tests/plot_overlaps/plots.xml | 35 + .../plot_overlaps/results_true.dat | 1 + .../plot_overlaps/settings.xml | 13 + tests/regression_tests/plot_overlaps/test.py | 61 + tests/regression_tests/plot_voxel/__init__.py | 0 .../regression_tests/plot_voxel/geometry.xml | 13 + .../regression_tests/plot_voxel/materials.xml | 19 + tests/regression_tests/plot_voxel/plots.xml | 10 + .../plot_voxel/results_true.dat | 1 + .../regression_tests/plot_voxel/settings.xml | 13 + tests/regression_tests/plot_voxel/test.py | 62 + .../regression_tests/ptables_off/__init__.py | 0 .../regression_tests/ptables_off/geometry.xml | 8 + .../ptables_off/materials.xml | 9 + .../ptables_off/results_true.dat | 2 + .../regression_tests/ptables_off/settings.xml | 17 + tests/regression_tests/ptables_off/test.py | 6 + .../quadric_surfaces/__init__.py | 0 .../quadric_surfaces/geometry.xml | 14 + .../quadric_surfaces/materials.xml | 11 + .../quadric_surfaces/results_true.dat | 2 + .../quadric_surfaces/settings.xml | 13 + .../regression_tests/quadric_surfaces/test.py | 6 + .../reflective_plane/__init__.py | 0 .../reflective_plane/geometry.xml | 13 + .../reflective_plane/materials.xml | 9 + .../reflective_plane/results_true.dat | 2 + .../reflective_plane/settings.xml | 15 + .../regression_tests/reflective_plane/test.py | 6 + .../resonance_scattering/__init__.py | 0 .../resonance_scattering/inputs_true.dat | 34 + .../resonance_scattering/results_true.dat | 2 + .../resonance_scattering/test.py | 47 + tests/regression_tests/rotation/__init__.py | 0 tests/regression_tests/rotation/geometry.xml | 11 + tests/regression_tests/rotation/materials.xml | 14 + .../rotation/results_true.dat | 2 + tests/regression_tests/rotation/settings.xml | 15 + tests/regression_tests/rotation/test.py | 6 + tests/regression_tests/salphabeta/__init__.py | 0 .../salphabeta/inputs_true.dat | 60 + .../salphabeta/results_true.dat | 2 + tests/regression_tests/salphabeta/test.py | 79 + .../score_current/__init__.py | 0 .../score_current/inputs_true.dat | 55 + .../score_current/results_true.dat | 1948 ++ tests/regression_tests/score_current/test.py | 53 + tests/regression_tests/seed/__init__.py | 0 tests/regression_tests/seed/geometry.xml | 8 + tests/regression_tests/seed/materials.xml | 9 + tests/regression_tests/seed/results_true.dat | 2 + tests/regression_tests/seed/settings.xml | 17 + tests/regression_tests/seed/test.py | 6 + tests/regression_tests/source/__init__.py | 0 tests/regression_tests/source/inputs_true.dat | 53 + .../regression_tests/source/results_true.dat | 2 + tests/regression_tests/source/test.py | 63 + .../regression_tests/source_file/__init__.py | 0 .../regression_tests/source_file/geometry.xml | 8 + .../source_file/materials.xml | 9 + .../source_file/results_true.dat | 2 + .../regression_tests/source_file/settings.xml | 15 + tests/regression_tests/source_file/test.py | 101 + .../sourcepoint_batch/__init__.py | 0 .../sourcepoint_batch/geometry.xml | 8 + .../sourcepoint_batch/materials.xml | 9 + .../sourcepoint_batch/results_true.dat | 3 + .../sourcepoint_batch/settings.xml | 18 + .../sourcepoint_batch/test.py | 31 + .../sourcepoint_latest/__init__.py | 0 .../sourcepoint_latest/geometry.xml | 8 + .../sourcepoint_latest/materials.xml | 9 + .../sourcepoint_latest/results_true.dat | 2 + .../sourcepoint_latest/settings.xml | 17 + .../sourcepoint_latest/test.py | 18 + .../sourcepoint_restart/__init__.py | 0 .../sourcepoint_restart/geometry.xml | 8 + .../sourcepoint_restart/materials.xml | 9 + .../sourcepoint_restart/results_true.dat | 972 + .../sourcepoint_restart/settings.xml | 18 + .../sourcepoint_restart/tallies.xml | 41 + .../sourcepoint_restart/test.py | 6 + .../statepoint_batch/__init__.py | 0 .../statepoint_batch/geometry.xml | 8 + .../statepoint_batch/materials.xml | 9 + .../statepoint_batch/results_true.dat | 2 + .../statepoint_batch/settings.xml | 17 + .../regression_tests/statepoint_batch/test.py | 18 + .../statepoint_restart/__init__.py | 0 .../statepoint_restart/geometry.xml | 8 + .../statepoint_restart/materials.xml | 9 + .../statepoint_restart/results_true.dat | 1452 + .../statepoint_restart/settings.xml | 17 + .../statepoint_restart/tallies.xml | 41 + .../statepoint_restart/test.py | 61 + .../statepoint_sourcesep/__init__.py | 0 .../statepoint_sourcesep/geometry.xml | 8 + .../statepoint_sourcesep/materials.xml | 9 + .../statepoint_sourcesep/results_true.dat | 2 + .../statepoint_sourcesep/settings.xml | 18 + .../statepoint_sourcesep/test.py | 25 + .../surface_tally/__init__.py | 0 .../surface_tally/inputs_true.dat | 103 + .../surface_tally/results_true.dat | 53 + tests/regression_tests/surface_tally/test.py | 179 + .../survival_biasing/__init__.py | 0 .../survival_biasing/geometry.xml | 8 + .../survival_biasing/materials.xml | 10 + .../survival_biasing/results_true.dat | 20 + .../survival_biasing/settings.xml | 22 + .../survival_biasing/tallies.xml | 16 + .../regression_tests/survival_biasing/test.py | 6 + tests/regression_tests/tallies/__init__.py | 0 .../regression_tests/tallies/inputs_true.dat | 517 + .../regression_tests/tallies/results_true.dat | 1 + tests/regression_tests/tallies/test.py | 183 + .../tally_aggregation/__init__.py | 0 .../tally_aggregation/inputs_true.dat | 57 + .../tally_aggregation/results_true.dat | 97 + .../tally_aggregation/test.py | 95 + .../tally_arithmetic/__init__.py | 0 .../tally_arithmetic/inputs_true.dat | 56 + .../tally_arithmetic/results_true.dat | 49 + .../regression_tests/tally_arithmetic/test.py | 103 + .../tally_assumesep/__init__.py | 0 .../tally_assumesep/geometry.xml | 9 + .../tally_assumesep/materials.xml | 15 + .../tally_assumesep/results_true.dat | 11 + .../tally_assumesep/settings.xml | 12 + .../tally_assumesep/tallies.xml | 36 + .../regression_tests/tally_assumesep/test.py | 6 + .../tally_nuclides/__init__.py | 0 .../tally_nuclides/geometry.xml | 10 + .../tally_nuclides/materials.xml | 11 + .../tally_nuclides/results_true.dat | 28 + .../tally_nuclides/settings.xml | 16 + .../tally_nuclides/tallies.xml | 14 + tests/regression_tests/tally_nuclides/test.py | 6 + .../tally_slice_merge/__init__.py | 0 .../tally_slice_merge/inputs_true.dat | 348 + .../tally_slice_merge/results_true.dat | 67 + .../tally_slice_merge/test.py | 170 + tests/regression_tests/trace/__init__.py | 0 tests/regression_tests/trace/geometry.xml | 8 + tests/regression_tests/trace/materials.xml | 9 + tests/regression_tests/trace/results_true.dat | 2 + tests/regression_tests/trace/settings.xml | 17 + tests/regression_tests/trace/test.py | 6 + .../regression_tests/track_output/__init__.py | 0 .../track_output/geometry.xml | 305 + .../track_output/materials.xml | 95 + .../track_output/results_true.dat | 9 + .../track_output/settings.xml | 22 + tests/regression_tests/track_output/test.py | 46 + .../regression_tests/translation/__init__.py | 0 .../regression_tests/translation/geometry.xml | 11 + .../translation/materials.xml | 14 + .../translation/results_true.dat | 2 + .../regression_tests/translation/settings.xml | 15 + tests/regression_tests/translation/test.py | 6 + .../trigger_batch_interval/__init__.py | 0 .../trigger_batch_interval/geometry.xml | 10 + .../trigger_batch_interval/materials.xml | 11 + .../trigger_batch_interval/results_true.dat | 28 + .../trigger_batch_interval/settings.xml | 25 + .../trigger_batch_interval/tallies.xml | 14 + .../trigger_batch_interval/test.py | 6 + .../trigger_no_batch_interval/__init__.py | 0 .../trigger_no_batch_interval/geometry.xml | 10 + .../trigger_no_batch_interval/materials.xml | 11 + .../results_true.dat | 28 + .../trigger_no_batch_interval/settings.xml | 24 + .../trigger_no_batch_interval/tallies.xml | 14 + .../trigger_no_batch_interval/test.py | 6 + .../trigger_no_status/__init__.py | 0 .../trigger_no_status/geometry.xml | 10 + .../trigger_no_status/materials.xml | 11 + .../trigger_no_status/results_true.dat | 28 + .../trigger_no_status/settings.xml | 25 + .../trigger_no_status/tallies.xml | 14 + .../trigger_no_status/test.py | 6 + .../trigger_tallies/__init__.py | 0 .../trigger_tallies/geometry.xml | 10 + .../trigger_tallies/materials.xml | 11 + .../trigger_tallies/results_true.dat | 28 + .../trigger_tallies/settings.xml | 25 + .../trigger_tallies/tallies.xml | 15 + .../regression_tests/trigger_tallies/test.py | 6 + tests/regression_tests/triso/__init__.py | 0 tests/regression_tests/triso/inputs_true.dat | 442 + tests/regression_tests/triso/results_true.dat | 2 + tests/regression_tests/triso/test.py | 97 + tests/regression_tests/uniform_fs/__init__.py | 0 .../regression_tests/uniform_fs/geometry.xml | 13 + .../regression_tests/uniform_fs/materials.xml | 9 + .../uniform_fs/results_true.dat | 2 + .../regression_tests/uniform_fs/settings.xml | 19 + tests/regression_tests/uniform_fs/test.py | 6 + tests/regression_tests/universe/__init__.py | 0 tests/regression_tests/universe/geometry.xml | 11 + tests/regression_tests/universe/materials.xml | 9 + .../universe/results_true.dat | 2 + tests/regression_tests/universe/settings.xml | 15 + tests/regression_tests/universe/test.py | 6 + tests/regression_tests/void/__init__.py | 0 tests/regression_tests/void/inputs_true.dat | 132 + tests/regression_tests/void/results_true.dat | 103 + tests/regression_tests/void/test.py | 39 + .../regression_tests/volume_calc/__init__.py | 0 .../volume_calc/inputs_true.dat | 51 + .../volume_calc/results_true.dat | 30 + tests/regression_tests/volume_calc/test.py | 77 + .../regression_tests/white_plane/__init__.py | 0 .../regression_tests/white_plane/geometry.xml | 13 + .../white_plane/materials.xml | 9 + .../white_plane/results_true.dat | 2 + .../regression_tests/white_plane/settings.xml | 15 + tests/regression_tests/white_plane/test.py | 6 + tests/testing_harness.py | 348 + tests/unit_tests/__init__.py | 16 + tests/unit_tests/conftest.py | 124 + tests/unit_tests/dagmc/__init__.py | 0 tests/unit_tests/dagmc/dagmc.h5m | 1 + tests/unit_tests/dagmc/test.py | 74 + tests/unit_tests/test_cell.py | 168 + tests/unit_tests/test_complex_cell_bb.py | 98 + tests/unit_tests/test_data_decay.py | 81 + tests/unit_tests/test_data_misc.py | 116 + tests/unit_tests/test_data_multipole.py | 48 + tests/unit_tests/test_data_neutron.py | 519 + tests/unit_tests/test_data_photon.py | 146 + tests/unit_tests/test_data_thermal.py | 264 + tests/unit_tests/test_deplete_atom_number.py | 147 + tests/unit_tests/test_deplete_chain.py | 459 + tests/unit_tests/test_deplete_cram.py | 37 + .../unit_tests/test_deplete_fission_yields.py | 293 + tests/unit_tests/test_deplete_integrator.py | 161 + tests/unit_tests/test_deplete_nuclide.py | 260 + tests/unit_tests/test_deplete_operator.py | 89 + tests/unit_tests/test_deplete_reaction.py | 63 + tests/unit_tests/test_deplete_restart.py | 94 + tests/unit_tests/test_deplete_resultslist.py | 51 + tests/unit_tests/test_element_wo.py | 41 + tests/unit_tests/test_endf.py | 29 + tests/unit_tests/test_filters.py | 165 + tests/unit_tests/test_geometry.py | 282 + tests/unit_tests/test_lattice.py | 353 + tests/unit_tests/test_lib.py | 521 + tests/unit_tests/test_material.py | 220 + tests/unit_tests/test_math.py | 246 + tests/unit_tests/test_mesh_from_lattice.py | 116 + tests/unit_tests/test_model_triso.py | 227 + tests/unit_tests/test_pin.py | 117 + tests/unit_tests/test_plots.py | 94 + tests/unit_tests/test_polynomials.py | 44 + tests/unit_tests/test_region.py | 180 + tests/unit_tests/test_settings.py | 106 + tests/unit_tests/test_source.py | 36 + tests/unit_tests/test_stats.py | 243 + tests/unit_tests/test_surface.py | 392 + tests/unit_tests/test_transfer_volumes.py | 46 + tests/unit_tests/test_universe.py | 112 + tools/ci/download-xs.sh | 13 + tools/ci/travis-before-script.sh | 5 + tools/ci/travis-install-dagmc.sh | 38 + tools/ci/travis-install-njoy.sh | 7 + tools/ci/travis-install.py | 73 + tools/ci/travis-install.sh | 32 + tools/ci/travis-script.sh | 9 + vendor/faddeeva/Faddeeva.cc | 2516 ++ vendor/faddeeva/Faddeeva.hh | 62 + vendor/gsl/include/gsl/gsl | 27 + vendor/gsl/include/gsl/gsl-lite.hpp | 2857 ++ vendor/pugixml/pugiconfig.hpp | 74 + vendor/pugixml/pugixml.cpp | 12622 +++++++ vendor/pugixml/pugixml.hpp | 1434 + vendor/xtensor/CMakeLists.txt | 191 + .../xtensor/include/xtensor/xaccumulator.hpp | 266 + vendor/xtensor/include/xtensor/xadapt.hpp | 322 + vendor/xtensor/include/xtensor/xarray.hpp | 550 + vendor/xtensor/include/xtensor/xassign.hpp | 783 + .../include/xtensor/xaxis_iterator.hpp | 197 + vendor/xtensor/include/xtensor/xbroadcast.hpp | 412 + .../include/xtensor/xbuffer_adaptor.hpp | 623 + vendor/xtensor/include/xtensor/xbuilder.hpp | 918 + vendor/xtensor/include/xtensor/xcomplex.hpp | 251 + vendor/xtensor/include/xtensor/xconcepts.hpp | 113 + vendor/xtensor/include/xtensor/xcontainer.hpp | 1418 + vendor/xtensor/include/xtensor/xcsv.hpp | 169 + vendor/xtensor/include/xtensor/xeval.hpp | 57 + vendor/xtensor/include/xtensor/xexception.hpp | 219 + .../xtensor/include/xtensor/xexpression.hpp | 307 + vendor/xtensor/include/xtensor/xfixed.hpp | 818 + vendor/xtensor/include/xtensor/xfunction.hpp | 1184 + .../xtensor/include/xtensor/xfunctor_view.hpp | 1349 + vendor/xtensor/include/xtensor/xgenerator.hpp | 401 + .../xtensor/include/xtensor/xindex_view.hpp | 745 + vendor/xtensor/include/xtensor/xinfo.hpp | 139 + vendor/xtensor/include/xtensor/xio.hpp | 634 + vendor/xtensor/include/xtensor/xiterable.hpp | 824 + vendor/xtensor/include/xtensor/xiterator.hpp | 1123 + vendor/xtensor/include/xtensor/xjson.hpp | 183 + vendor/xtensor/include/xtensor/xlayout.hpp | 93 + vendor/xtensor/include/xtensor/xmath.hpp | 2146 ++ vendor/xtensor/include/xtensor/xnoalias.hpp | 110 + vendor/xtensor/include/xtensor/xnorm.hpp | 477 + vendor/xtensor/include/xtensor/xnpy.hpp | 702 + .../xtensor/include/xtensor/xoffset_view.hpp | 41 + vendor/xtensor/include/xtensor/xoperation.hpp | 843 + vendor/xtensor/include/xtensor/xoptional.hpp | 503 + .../include/xtensor/xoptional_assembly.hpp | 661 + .../xtensor/xoptional_assembly_base.hpp | 948 + .../xtensor/xoptional_assembly_storage.hpp | 551 + vendor/xtensor/include/xtensor/xrandom.hpp | 314 + vendor/xtensor/include/xtensor/xreducer.hpp | 1039 + vendor/xtensor/include/xtensor/xscalar.hpp | 1108 + vendor/xtensor/include/xtensor/xsemantic.hpp | 656 + vendor/xtensor/include/xtensor/xshape.hpp | 119 + vendor/xtensor/include/xtensor/xslice.hpp | 970 + vendor/xtensor/include/xtensor/xsort.hpp | 316 + vendor/xtensor/include/xtensor/xstorage.hpp | 1346 + .../xtensor/include/xtensor/xstrided_view.hpp | 1307 + .../include/xtensor/xstrided_view_base.hpp | 773 + vendor/xtensor/include/xtensor/xstrides.hpp | 451 + vendor/xtensor/include/xtensor/xtensor.hpp | 479 + .../include/xtensor/xtensor_config.hpp | 63 + .../include/xtensor/xtensor_forward.hpp | 216 + .../xtensor/include/xtensor/xtensor_simd.hpp | 160 + vendor/xtensor/include/xtensor/xutils.hpp | 1040 + vendor/xtensor/include/xtensor/xvectorize.hpp | 101 + vendor/xtensor/include/xtensor/xview.hpp | 1538 + .../xtensor/include/xtensor/xview_utils.hpp | 274 + vendor/xtensor/xtensor.pc.in | 8 + vendor/xtensor/xtensorConfig.cmake.in | 21 + vendor/xtl/CMakeLists.txt | 113 + vendor/xtl/include/xtl/xany.hpp | 453 + vendor/xtl/include/xtl/xbase64.hpp | 75 + .../xtl/include/xtl/xbasic_fixed_string.hpp | 2250 ++ vendor/xtl/include/xtl/xclosure.hpp | 387 + vendor/xtl/include/xtl/xcomplex.hpp | 1337 + vendor/xtl/include/xtl/xcomplex_sequence.hpp | 576 + vendor/xtl/include/xtl/xdynamic_bitset.hpp | 1125 + vendor/xtl/include/xtl/xfunctional.hpp | 28 + vendor/xtl/include/xtl/xhash.hpp | 187 + .../xtl/include/xtl/xhierarchy_generator.hpp | 72 + vendor/xtl/include/xtl/xiterator_base.hpp | 196 + vendor/xtl/include/xtl/xjson.hpp | 40 + vendor/xtl/include/xtl/xmeta_utils.hpp | 482 + vendor/xtl/include/xtl/xoptional.hpp | 1425 + vendor/xtl/include/xtl/xoptional_sequence.hpp | 621 + vendor/xtl/include/xtl/xproxy_wrapper.hpp | 48 + vendor/xtl/include/xtl/xsequence.hpp | 173 + vendor/xtl/include/xtl/xtl_config.hpp | 16 + vendor/xtl/include/xtl/xtype_traits.hpp | 141 + vendor/xtl/include/xtl/xvariant.hpp | 155 + vendor/xtl/include/xtl/xvariant_impl.hpp | 2457 ++ vendor/xtl/xtlConfig.cmake.in | 21 + 1244 files changed, 301904 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 MANIFEST.in create mode 100644 README.md create mode 100644 cmake/Modules/FindDAGMC.cmake create mode 100644 docs/Makefile create mode 100644 docs/diagrams/cross_sections.dia create mode 100644 docs/diagrams/overview.dia create mode 100644 docs/requirements-rtd.txt create mode 100644 docs/source/_images/3dba.png create mode 100644 docs/source/_images/3dcore.png create mode 100644 docs/source/_images/3dgeomplot.png create mode 100644 docs/source/_images/Tracks.png create mode 100644 docs/source/_images/atr.png create mode 100644 docs/source/_images/cmfd_flow.png create mode 100644 docs/source/_images/cmfd_flow.tex create mode 100644 docs/source/_images/cosine-dist.png create mode 100644 docs/source/_images/fluxplot.png create mode 100644 docs/source/_images/fork.png create mode 100644 docs/source/_images/halfspace.svg create mode 100644 docs/source/_images/hex_lat.svg create mode 100644 docs/source/_images/loss.png create mode 100644 docs/source/_images/master-slave.png create mode 100644 docs/source/_images/meshfig.png create mode 100644 docs/source/_images/meshfig.tex create mode 100644 docs/source/_images/nearest-neighbor-example.png create mode 100644 docs/source/_images/nearest-neighbor.png create mode 100644 docs/source/_images/openmc_logo.png create mode 100644 docs/source/_images/openmc_logo.svg create mode 100644 docs/source/_images/plotmeshtally.png create mode 100644 docs/source/_images/prod.png create mode 100644 docs/source/_images/rect_lat.svg create mode 100644 docs/source/_images/union.svg create mode 100644 docs/source/_static/theme_overrides.css create mode 100644 docs/source/_templates/layout.html create mode 100644 docs/source/_templates/mycallable.rst create mode 100644 docs/source/_templates/myclass.rst create mode 100644 docs/source/_templates/myclassinherit.rst create mode 100644 docs/source/_templates/myfunction.rst create mode 100644 docs/source/_templates/myintegrator.rst create mode 100644 docs/source/capi/index.rst create mode 100644 docs/source/conf.py create mode 100644 docs/source/devguide/contributing.rst create mode 100644 docs/source/devguide/docbuild.rst create mode 100644 docs/source/devguide/docker.rst create mode 100644 docs/source/devguide/index.rst create mode 100644 docs/source/devguide/styleguide.rst create mode 100644 docs/source/devguide/tests.rst create mode 100644 docs/source/devguide/user-input.rst create mode 100644 docs/source/devguide/workflow.rst create mode 100644 docs/source/examples/cad-geom.rst create mode 100644 docs/source/examples/candu.rst create mode 100644 docs/source/examples/expansion-filters.rst create mode 100644 docs/source/examples/hexagonal.rst create mode 100644 docs/source/examples/index.rst create mode 100644 docs/source/examples/mdgxs-part-i.rst create mode 100644 docs/source/examples/mdgxs-part-ii.rst create mode 100644 docs/source/examples/mg-mode-part-i.rst create mode 100644 docs/source/examples/mg-mode-part-ii.rst create mode 100644 docs/source/examples/mg-mode-part-iii.rst create mode 100644 docs/source/examples/mgxs-part-i.rst create mode 100644 docs/source/examples/mgxs-part-ii.rst create mode 100644 docs/source/examples/mgxs-part-iii.rst create mode 100644 docs/source/examples/nuclear-data-resonance-covariance.rst create mode 100644 docs/source/examples/nuclear-data.rst create mode 100644 docs/source/examples/pandas-dataframes.rst create mode 100644 docs/source/examples/pincell-depletion.rst create mode 100644 docs/source/examples/pincell.rst create mode 100644 docs/source/examples/post-processing.rst create mode 100644 docs/source/examples/search.rst create mode 100644 docs/source/examples/tally-arithmetic.rst create mode 100644 docs/source/examples/triso.rst create mode 100644 docs/source/index.rst create mode 100644 docs/source/io_formats/cross_sections.rst create mode 100644 docs/source/io_formats/data_wmp.rst create mode 100644 docs/source/io_formats/depletion_chain.rst create mode 100644 docs/source/io_formats/depletion_results.rst create mode 100644 docs/source/io_formats/geometry.rst create mode 100644 docs/source/io_formats/index.rst create mode 100644 docs/source/io_formats/materials.rst create mode 100644 docs/source/io_formats/mgxs_library.rst create mode 100644 docs/source/io_formats/nuclear_data.rst create mode 100644 docs/source/io_formats/particle_restart.rst create mode 100644 docs/source/io_formats/plots.rst create mode 100644 docs/source/io_formats/settings.rst create mode 100644 docs/source/io_formats/source.rst create mode 100644 docs/source/io_formats/statepoint.rst create mode 100644 docs/source/io_formats/summary.rst create mode 100644 docs/source/io_formats/tallies.rst create mode 100644 docs/source/io_formats/track.rst create mode 100644 docs/source/io_formats/volume.rst create mode 100644 docs/source/io_formats/voxel.rst create mode 100644 docs/source/license.rst create mode 100644 docs/source/methods/cmfd.rst create mode 100644 docs/source/methods/cross_sections.rst create mode 100644 docs/source/methods/eigenvalue.rst create mode 100644 docs/source/methods/energy_deposition.rst create mode 100644 docs/source/methods/geometry.rst create mode 100644 docs/source/methods/index.rst create mode 100644 docs/source/methods/introduction.rst create mode 100644 docs/source/methods/neutron_physics.rst create mode 100644 docs/source/methods/parallelization.rst create mode 100644 docs/source/methods/photon_physics.rst create mode 100644 docs/source/methods/random_numbers.rst create mode 100644 docs/source/methods/tallies.rst create mode 100644 docs/source/publications.rst create mode 100644 docs/source/pythonapi/base.rst create mode 100644 docs/source/pythonapi/capi.rst create mode 100644 docs/source/pythonapi/data.rst create mode 100644 docs/source/pythonapi/deplete.rst create mode 100644 docs/source/pythonapi/examples.rst create mode 100644 docs/source/pythonapi/index.rst create mode 100644 docs/source/pythonapi/mgxs.rst create mode 100644 docs/source/pythonapi/model.rst create mode 100644 docs/source/pythonapi/openmoc.rst create mode 100644 docs/source/pythonapi/stats.rst create mode 100644 docs/source/quickinstall.rst create mode 100644 docs/source/releasenotes/0.10.0.rst create mode 100644 docs/source/releasenotes/0.11.0.rst create mode 100644 docs/source/releasenotes/0.4.0.rst create mode 100644 docs/source/releasenotes/0.4.1.rst create mode 100644 docs/source/releasenotes/0.4.2.rst create mode 100644 docs/source/releasenotes/0.4.3.rst create mode 100644 docs/source/releasenotes/0.4.4.rst create mode 100644 docs/source/releasenotes/0.5.0.rst create mode 100644 docs/source/releasenotes/0.5.1.rst create mode 100644 docs/source/releasenotes/0.5.2.rst create mode 100644 docs/source/releasenotes/0.5.3.rst create mode 100644 docs/source/releasenotes/0.5.4.rst create mode 100644 docs/source/releasenotes/0.6.0.rst create mode 100644 docs/source/releasenotes/0.6.1.rst create mode 100644 docs/source/releasenotes/0.6.2.rst create mode 100644 docs/source/releasenotes/0.7.0.rst create mode 100644 docs/source/releasenotes/0.7.1.rst create mode 100644 docs/source/releasenotes/0.8.0.rst create mode 100644 docs/source/releasenotes/0.9.0.rst create mode 100644 docs/source/releasenotes/index.rst create mode 100644 docs/source/usersguide/basics.rst create mode 100644 docs/source/usersguide/beginners.rst create mode 100644 docs/source/usersguide/cross_sections.rst create mode 100644 docs/source/usersguide/depletion.rst create mode 100644 docs/source/usersguide/geometry.rst create mode 100644 docs/source/usersguide/index.rst create mode 100644 docs/source/usersguide/install.rst create mode 100644 docs/source/usersguide/materials.rst create mode 100644 docs/source/usersguide/parallel.rst create mode 100644 docs/source/usersguide/plots.rst create mode 100644 docs/source/usersguide/processing.rst create mode 100644 docs/source/usersguide/scripts.rst create mode 100644 docs/source/usersguide/settings.rst create mode 100644 docs/source/usersguide/tallies.rst create mode 100644 docs/source/usersguide/troubleshoot.rst create mode 100644 docs/source/usersguide/volume.rst create mode 100644 docs/sphinxext/LICENSE create mode 100644 docs/sphinxext/notebook_sphinxext.py create mode 100644 examples/jupyter/c5g7.h5 create mode 100644 examples/jupyter/cad-based-geometry.ipynb create mode 100644 examples/jupyter/candu.ipynb create mode 120000 examples/jupyter/chain_simple.xml create mode 100644 examples/jupyter/expansion-filters.ipynb create mode 100644 examples/jupyter/hexagonal-lattice.ipynb create mode 100644 examples/jupyter/images/cylinder_mesh.png create mode 100644 examples/jupyter/images/mdgxs.png create mode 100644 examples/jupyter/images/mgxs.png create mode 100644 examples/jupyter/images/teapot.jpg create mode 100644 examples/jupyter/mdgxs-part-i.ipynb create mode 100644 examples/jupyter/mdgxs-part-ii.ipynb create mode 100644 examples/jupyter/mg-mode-part-i.ipynb create mode 100644 examples/jupyter/mg-mode-part-ii.ipynb create mode 100644 examples/jupyter/mg-mode-part-iii.ipynb create mode 100644 examples/jupyter/mgxs-part-i.ipynb create mode 100644 examples/jupyter/mgxs-part-ii.ipynb create mode 100644 examples/jupyter/mgxs-part-iii.ipynb create mode 100644 examples/jupyter/nuclear-data-resonance-covariance.ipynb create mode 100644 examples/jupyter/nuclear-data.ipynb create mode 100644 examples/jupyter/pandas-dataframes.ipynb create mode 100644 examples/jupyter/pincell.ipynb create mode 100644 examples/jupyter/pincell_depletion.ipynb create mode 100644 examples/jupyter/post-processing.ipynb create mode 100644 examples/jupyter/search.ipynb create mode 100644 examples/jupyter/tally-arithmetic.ipynb create mode 100644 examples/jupyter/triso.ipynb create mode 100644 examples/python/basic/build-xml.py create mode 100644 examples/python/boxes/build-xml.py create mode 100644 examples/python/lattice/hexagonal/build-xml.py create mode 100644 examples/python/lattice/nested/build-xml.py create mode 100644 examples/python/lattice/simple/build-xml.py create mode 100644 examples/python/pincell/build-xml.py create mode 100644 examples/python/pincell_depletion/chain_simple.xml create mode 100644 examples/python/pincell_depletion/restart_depletion.py create mode 100644 examples/python/pincell_depletion/run_depletion.py create mode 100644 examples/python/pincell_multigroup/build-xml.py create mode 100644 examples/python/reflective/build-xml.py create mode 100644 examples/xml/basic/geometry.xml create mode 100644 examples/xml/basic/materials.xml create mode 100644 examples/xml/basic/settings.xml create mode 100644 examples/xml/basic/tallies.xml create mode 100644 examples/xml/boxes/geometry.xml create mode 100644 examples/xml/boxes/materials.xml create mode 100644 examples/xml/boxes/plots.xml create mode 100644 examples/xml/boxes/settings.xml 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/pincell_multigroup/geometry.xml create mode 100644 examples/xml/pincell_multigroup/materials.xml create mode 100644 examples/xml/pincell_multigroup/mgxs.h5 create mode 100644 examples/xml/pincell_multigroup/plots.xml create mode 100644 examples/xml/pincell_multigroup/settings.xml create mode 100644 examples/xml/pincell_multigroup/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 create mode 100644 include/openmc/angle_energy.h create mode 100644 include/openmc/bank.h create mode 100644 include/openmc/bremsstrahlung.h create mode 100644 include/openmc/capi.h create mode 100644 include/openmc/cell.h create mode 100644 include/openmc/cmfd_solver.h create mode 100644 include/openmc/constants.h create mode 100644 include/openmc/container_util.h create mode 100644 include/openmc/cross_sections.h create mode 100644 include/openmc/dagmc.h create mode 100644 include/openmc/distribution.h create mode 100644 include/openmc/distribution_angle.h create mode 100644 include/openmc/distribution_energy.h create mode 100644 include/openmc/distribution_multi.h create mode 100644 include/openmc/distribution_spatial.h create mode 100644 include/openmc/eigenvalue.h create mode 100644 include/openmc/endf.h create mode 100644 include/openmc/error.h create mode 100644 include/openmc/file_utils.h create mode 100644 include/openmc/finalize.h create mode 100644 include/openmc/geometry.h create mode 100644 include/openmc/geometry_aux.h create mode 100644 include/openmc/hdf5_interface.h create mode 100644 include/openmc/initialize.h create mode 100644 include/openmc/lattice.h create mode 100644 include/openmc/material.h create mode 100644 include/openmc/math_functions.h create mode 100644 include/openmc/mesh.h create mode 100644 include/openmc/message_passing.h create mode 100644 include/openmc/mgxs.h create mode 100644 include/openmc/mgxs_interface.h create mode 100644 include/openmc/neighbor_list.h create mode 100644 include/openmc/nuclide.h create mode 100644 include/openmc/openmp_interface.h create mode 100644 include/openmc/output.h create mode 100644 include/openmc/particle.h create mode 100644 include/openmc/particle_restart.h create mode 100644 include/openmc/photon.h create mode 100644 include/openmc/physics.h create mode 100644 include/openmc/physics_common.h create mode 100644 include/openmc/physics_mg.h create mode 100644 include/openmc/plot.h create mode 100644 include/openmc/position.h create mode 100644 include/openmc/progress_bar.h create mode 100644 include/openmc/random_lcg.h create mode 100644 include/openmc/reaction.h create mode 100644 include/openmc/reaction_product.h create mode 100644 include/openmc/scattdata.h create mode 100644 include/openmc/search.h create mode 100644 include/openmc/secondary_correlated.h create mode 100644 include/openmc/secondary_kalbach.h create mode 100644 include/openmc/secondary_nbody.h create mode 100644 include/openmc/secondary_thermal.h create mode 100644 include/openmc/secondary_uncorrelated.h create mode 100644 include/openmc/settings.h create mode 100644 include/openmc/simulation.h create mode 100644 include/openmc/source.h create mode 100644 include/openmc/state_point.h create mode 100644 include/openmc/string_utils.h create mode 100644 include/openmc/summary.h create mode 100644 include/openmc/surface.h create mode 100644 include/openmc/tallies/derivative.h create mode 100644 include/openmc/tallies/filter.h create mode 100644 include/openmc/tallies/filter_azimuthal.h create mode 100644 include/openmc/tallies/filter_cell.h create mode 100644 include/openmc/tallies/filter_cellborn.h create mode 100644 include/openmc/tallies/filter_cellfrom.h create mode 100644 include/openmc/tallies/filter_delayedgroup.h create mode 100644 include/openmc/tallies/filter_distribcell.h create mode 100644 include/openmc/tallies/filter_energy.h create mode 100644 include/openmc/tallies/filter_energyfunc.h create mode 100644 include/openmc/tallies/filter_legendre.h create mode 100644 include/openmc/tallies/filter_material.h create mode 100644 include/openmc/tallies/filter_mesh.h create mode 100644 include/openmc/tallies/filter_meshsurface.h create mode 100644 include/openmc/tallies/filter_mu.h create mode 100644 include/openmc/tallies/filter_particle.h create mode 100644 include/openmc/tallies/filter_polar.h create mode 100644 include/openmc/tallies/filter_sph_harm.h create mode 100644 include/openmc/tallies/filter_sptl_legendre.h create mode 100644 include/openmc/tallies/filter_surface.h create mode 100644 include/openmc/tallies/filter_universe.h create mode 100644 include/openmc/tallies/filter_zernike.h create mode 100644 include/openmc/tallies/tally.h create mode 100644 include/openmc/tallies/tally_scoring.h create mode 100644 include/openmc/tallies/trigger.h create mode 100644 include/openmc/thermal.h create mode 100644 include/openmc/timer.h create mode 100644 include/openmc/track_output.h create mode 100644 include/openmc/urr.h create mode 100644 include/openmc/volume_calc.h create mode 100644 include/openmc/wmp.h create mode 100644 include/openmc/xml_interface.h create mode 100644 include/openmc/xsdata.h create mode 100644 man/man1/openmc.1 create mode 100644 openmc/__init__.py create mode 100644 openmc/_utils.py create mode 100644 openmc/_xml.py create mode 100644 openmc/arithmetic.py create mode 100644 openmc/cell.py create mode 100644 openmc/checkvalue.py create mode 100644 openmc/cmfd.py create mode 100644 openmc/data/BREMX.DAT create mode 100644 openmc/data/__init__.py create mode 100644 openmc/data/_endf.pyx create mode 100644 openmc/data/ace.py create mode 100644 openmc/data/angle_distribution.py create mode 100644 openmc/data/angle_energy.py create mode 100644 openmc/data/compton_profiles.h5 create mode 100644 openmc/data/correlated.py create mode 100644 openmc/data/data.py create mode 100644 openmc/data/decay.py create mode 100644 openmc/data/density_effect.h5 create mode 100644 openmc/data/endf.c create mode 100644 openmc/data/endf.py create mode 100644 openmc/data/energy_distribution.py create mode 100644 openmc/data/fission_energy.py create mode 100644 openmc/data/function.py create mode 100644 openmc/data/grid.py create mode 100644 openmc/data/kalbach_mann.py create mode 100644 openmc/data/laboratory.py create mode 100644 openmc/data/library.py create mode 100644 openmc/data/mass16.txt create mode 100644 openmc/data/multipole.py create mode 100644 openmc/data/nbody.py create mode 100644 openmc/data/neutron.py create mode 100644 openmc/data/njoy.py create mode 100644 openmc/data/photon.py create mode 100644 openmc/data/product.py create mode 100644 openmc/data/reaction.py create mode 100644 openmc/data/reconstruct.pyx create mode 100644 openmc/data/resonance.py create mode 100644 openmc/data/resonance_covariance.py create mode 100644 openmc/data/thermal.py create mode 100644 openmc/data/thermal_angle_energy.py create mode 100644 openmc/data/uncorrelated.py create mode 100644 openmc/data/urr.py create mode 100644 openmc/deplete/__init__.py create mode 100644 openmc/deplete/_matrix_funcs.py create mode 100644 openmc/deplete/abc.py create mode 100644 openmc/deplete/atom_number.py create mode 100644 openmc/deplete/chain.py create mode 100644 openmc/deplete/cram.py create mode 100644 openmc/deplete/dummy_comm.py create mode 100644 openmc/deplete/helpers.py create mode 100644 openmc/deplete/integrators.py create mode 100644 openmc/deplete/nuclide.py create mode 100644 openmc/deplete/operator.py create mode 100644 openmc/deplete/reaction_rates.py create mode 100644 openmc/deplete/results.py create mode 100644 openmc/deplete/results_list.py create mode 100644 openmc/element.py create mode 100644 openmc/examples.py create mode 100644 openmc/exceptions.py create mode 100644 openmc/executor.py create mode 100644 openmc/filter.py create mode 100644 openmc/filter_expansion.py create mode 100644 openmc/geometry.py create mode 100644 openmc/lattice.py create mode 100644 openmc/lib/__init__.py create mode 100644 openmc/lib/cell.py create mode 100644 openmc/lib/core.py create mode 100644 openmc/lib/error.py create mode 100644 openmc/lib/filter.py create mode 100644 openmc/lib/material.py create mode 100644 openmc/lib/math.py create mode 100644 openmc/lib/mesh.py create mode 100644 openmc/lib/nuclide.py create mode 100644 openmc/lib/plot.py create mode 100644 openmc/lib/settings.py create mode 100644 openmc/lib/tally.py create mode 100644 openmc/macroscopic.py create mode 100644 openmc/material.py create mode 100644 openmc/mesh.py create mode 100644 openmc/mgxs/__init__.py create mode 100644 openmc/mgxs/groups.py create mode 100644 openmc/mgxs/library.py create mode 100644 openmc/mgxs/mdgxs.py create mode 100644 openmc/mgxs/mgxs.py create mode 100644 openmc/mgxs_library.py create mode 100644 openmc/mixin.py create mode 100644 openmc/model/__init__.py create mode 100644 openmc/model/funcs.py create mode 100644 openmc/model/model.py create mode 100644 openmc/model/triso.py create mode 100644 openmc/nuclide.py create mode 100644 openmc/openmoc_compatible.py create mode 100644 openmc/particle_restart.py create mode 100644 openmc/plots.py create mode 100644 openmc/plotter.py create mode 100644 openmc/polynomial.py create mode 100644 openmc/region.py create mode 100644 openmc/search.py create mode 100644 openmc/settings.py create mode 100644 openmc/source.py create mode 100644 openmc/statepoint.py create mode 100644 openmc/stats/__init__.py create mode 100644 openmc/stats/multivariate.py create mode 100644 openmc/stats/univariate.py create mode 100644 openmc/summary.py create mode 100644 openmc/surface.py create mode 100644 openmc/tallies.py create mode 100644 openmc/tally_derivative.py create mode 100644 openmc/trigger.py create mode 100644 openmc/universe.py create mode 100644 openmc/volume.py create mode 100644 pyproject.toml create mode 100644 pytest.ini create mode 100644 schemas.xml create mode 100755 scripts/casl_chain.py create mode 100755 scripts/openmc-ace-to-hdf5 create mode 100755 scripts/openmc-get-photon-data create mode 100755 scripts/openmc-make-compton create mode 100755 scripts/openmc-make-depletion-chain create mode 100755 scripts/openmc-make-depletion-chain-casl create mode 100755 scripts/openmc-make-stopping-powers create mode 100755 scripts/openmc-make-test-data create mode 100755 scripts/openmc-plot-mesh-tally create mode 100755 scripts/openmc-track-to-vtk create mode 100755 scripts/openmc-update-inputs create mode 100755 scripts/openmc-update-mgxs create mode 100755 scripts/openmc-validate-xml create mode 100755 scripts/openmc-voxel-to-vtk create mode 100755 setup.py create mode 100644 src/bank.cpp create mode 100644 src/bremsstrahlung.cpp create mode 100644 src/cell.cpp create mode 100644 src/cmfd_solver.cpp create mode 100644 src/cross_sections.cpp create mode 100644 src/dagmc.cpp create mode 100644 src/distribution.cpp create mode 100644 src/distribution_angle.cpp create mode 100644 src/distribution_energy.cpp create mode 100644 src/distribution_multi.cpp create mode 100644 src/distribution_spatial.cpp create mode 100644 src/eigenvalue.cpp create mode 100644 src/endf.cpp create mode 100644 src/error.cpp create mode 100644 src/finalize.cpp create mode 100644 src/geometry.cpp create mode 100644 src/geometry_aux.cpp create mode 100644 src/hdf5_interface.cpp create mode 100644 src/initialize.cpp create mode 100644 src/lattice.cpp create mode 100644 src/main.cpp create mode 100644 src/material.cpp create mode 100644 src/math_functions.cpp create mode 100644 src/mesh.cpp create mode 100644 src/message_passing.cpp create mode 100644 src/mgxs.cpp create mode 100644 src/mgxs_interface.cpp create mode 100644 src/nuclide.cpp create mode 100644 src/output.cpp create mode 100644 src/particle.cpp create mode 100644 src/particle_restart.cpp create mode 100644 src/photon.cpp create mode 100644 src/physics.cpp create mode 100644 src/physics_common.cpp create mode 100644 src/physics_mg.cpp create mode 100644 src/plot.cpp create mode 100644 src/position.cpp create mode 100644 src/progress_bar.cpp create mode 100644 src/random_lcg.cpp create mode 100644 src/reaction.cpp create mode 100644 src/reaction_product.cpp create mode 100644 src/relaxng/cross_sections.rnc create mode 100644 src/relaxng/cross_sections.rng create mode 100644 src/relaxng/geometry.rnc create mode 100644 src/relaxng/geometry.rng create mode 100644 src/relaxng/materials.rnc create mode 100644 src/relaxng/materials.rng create mode 100644 src/relaxng/mg_cross_sections.rnc create mode 100644 src/relaxng/mg_cross_sections.rng create mode 100644 src/relaxng/plots.rnc create mode 100644 src/relaxng/plots.rng create mode 100644 src/relaxng/readme.rst create mode 100644 src/relaxng/settings.rnc create mode 100644 src/relaxng/settings.rng create mode 100644 src/relaxng/tallies.rnc create mode 100644 src/relaxng/tallies.rng create mode 100644 src/scattdata.cpp create mode 100644 src/secondary_correlated.cpp create mode 100644 src/secondary_kalbach.cpp create mode 100644 src/secondary_nbody.cpp create mode 100644 src/secondary_thermal.cpp create mode 100644 src/secondary_uncorrelated.cpp create mode 100644 src/settings.cpp create mode 100644 src/simulation.cpp create mode 100644 src/source.cpp create mode 100644 src/state_point.cpp create mode 100644 src/string_utils.cpp create mode 100644 src/summary.cpp create mode 100644 src/surface.cpp create mode 100644 src/tallies/derivative.cpp create mode 100644 src/tallies/filter.cpp create mode 100644 src/tallies/filter_azimuthal.cpp create mode 100644 src/tallies/filter_cell.cpp create mode 100644 src/tallies/filter_cellborn.cpp create mode 100644 src/tallies/filter_cellfrom.cpp create mode 100644 src/tallies/filter_delayedgroup.cpp create mode 100644 src/tallies/filter_distribcell.cpp create mode 100644 src/tallies/filter_energy.cpp create mode 100644 src/tallies/filter_energyfunc.cpp create mode 100644 src/tallies/filter_legendre.cpp create mode 100644 src/tallies/filter_material.cpp create mode 100644 src/tallies/filter_mesh.cpp create mode 100644 src/tallies/filter_meshsurface.cpp create mode 100644 src/tallies/filter_mu.cpp create mode 100644 src/tallies/filter_particle.cpp create mode 100644 src/tallies/filter_polar.cpp create mode 100644 src/tallies/filter_sph_harm.cpp create mode 100644 src/tallies/filter_sptl_legendre.cpp create mode 100644 src/tallies/filter_surface.cpp create mode 100644 src/tallies/filter_universe.cpp create mode 100644 src/tallies/filter_zernike.cpp create mode 100644 src/tallies/tally.cpp create mode 100644 src/tallies/tally_scoring.cpp create mode 100644 src/tallies/trigger.cpp create mode 100644 src/thermal.cpp create mode 100644 src/timer.cpp create mode 100644 src/track_output.cpp create mode 100644 src/urr.cpp create mode 100644 src/volume_calc.cpp create mode 100644 src/wmp.cpp create mode 100644 src/xml_interface.cpp create mode 100644 src/xsdata.cpp create mode 100644 tests/__init__.py create mode 100644 tests/chain_simple.xml create mode 100644 tests/conftest.py create mode 100644 tests/dummy_operator.py create mode 100644 tests/readme.rst create mode 100644 tests/regression_tests/__init__.py create mode 100644 tests/regression_tests/asymmetric_lattice/__init__.py create mode 100644 tests/regression_tests/asymmetric_lattice/inputs_true.dat create mode 100644 tests/regression_tests/asymmetric_lattice/results_true.dat create mode 100644 tests/regression_tests/asymmetric_lattice/test.py create mode 100644 tests/regression_tests/cmfd_feed/__init__.py create mode 100644 tests/regression_tests/cmfd_feed/geometry.xml create mode 100644 tests/regression_tests/cmfd_feed/materials.xml create mode 100644 tests/regression_tests/cmfd_feed/results_true.dat create mode 100644 tests/regression_tests/cmfd_feed/settings.xml create mode 100644 tests/regression_tests/cmfd_feed/tallies.xml create mode 100644 tests/regression_tests/cmfd_feed/test.py create mode 100644 tests/regression_tests/cmfd_feed_2g/__init__.py create mode 100644 tests/regression_tests/cmfd_feed_2g/geometry.xml create mode 100644 tests/regression_tests/cmfd_feed_2g/materials.xml create mode 100644 tests/regression_tests/cmfd_feed_2g/results_true.dat create mode 100644 tests/regression_tests/cmfd_feed_2g/settings.xml create mode 100644 tests/regression_tests/cmfd_feed_2g/tallies.xml create mode 100644 tests/regression_tests/cmfd_feed_2g/test.py create mode 100644 tests/regression_tests/cmfd_feed_expanding_window/__init__.py create mode 100644 tests/regression_tests/cmfd_feed_expanding_window/geometry.xml create mode 100644 tests/regression_tests/cmfd_feed_expanding_window/materials.xml create mode 100644 tests/regression_tests/cmfd_feed_expanding_window/results_true.dat create mode 100644 tests/regression_tests/cmfd_feed_expanding_window/settings.xml create mode 100644 tests/regression_tests/cmfd_feed_expanding_window/tallies.xml create mode 100644 tests/regression_tests/cmfd_feed_expanding_window/test.py create mode 100644 tests/regression_tests/cmfd_feed_ng/__init__.py create mode 100644 tests/regression_tests/cmfd_feed_ng/geometry.xml create mode 100644 tests/regression_tests/cmfd_feed_ng/materials.xml create mode 100644 tests/regression_tests/cmfd_feed_ng/results_true.dat create mode 100644 tests/regression_tests/cmfd_feed_ng/settings.xml create mode 100644 tests/regression_tests/cmfd_feed_ng/tallies.xml create mode 100644 tests/regression_tests/cmfd_feed_ng/test.py create mode 100644 tests/regression_tests/cmfd_feed_ref_d/__init__.py create mode 100644 tests/regression_tests/cmfd_feed_ref_d/geometry.xml create mode 100644 tests/regression_tests/cmfd_feed_ref_d/materials.xml create mode 100644 tests/regression_tests/cmfd_feed_ref_d/results_true.dat create mode 100644 tests/regression_tests/cmfd_feed_ref_d/settings.xml create mode 100644 tests/regression_tests/cmfd_feed_ref_d/tallies.xml create mode 100644 tests/regression_tests/cmfd_feed_ref_d/test.py create mode 100644 tests/regression_tests/cmfd_feed_rolling_window/__init__.py create mode 100644 tests/regression_tests/cmfd_feed_rolling_window/geometry.xml create mode 100644 tests/regression_tests/cmfd_feed_rolling_window/materials.xml create mode 100644 tests/regression_tests/cmfd_feed_rolling_window/results_true.dat create mode 100644 tests/regression_tests/cmfd_feed_rolling_window/settings.xml create mode 100644 tests/regression_tests/cmfd_feed_rolling_window/tallies.xml create mode 100644 tests/regression_tests/cmfd_feed_rolling_window/test.py create mode 100644 tests/regression_tests/cmfd_nofeed/__init__.py create mode 100644 tests/regression_tests/cmfd_nofeed/geometry.xml create mode 100644 tests/regression_tests/cmfd_nofeed/materials.xml create mode 100644 tests/regression_tests/cmfd_nofeed/results_true.dat create mode 100644 tests/regression_tests/cmfd_nofeed/settings.xml create mode 100644 tests/regression_tests/cmfd_nofeed/tallies.xml create mode 100644 tests/regression_tests/cmfd_nofeed/test.py create mode 100644 tests/regression_tests/cmfd_restart/__init__.py create mode 100644 tests/regression_tests/cmfd_restart/geometry.xml create mode 100644 tests/regression_tests/cmfd_restart/materials.xml create mode 100644 tests/regression_tests/cmfd_restart/results_true.dat create mode 100644 tests/regression_tests/cmfd_restart/settings.xml create mode 100644 tests/regression_tests/cmfd_restart/tallies.xml create mode 100644 tests/regression_tests/cmfd_restart/test.py create mode 100644 tests/regression_tests/complex_cell/__init__.py create mode 100644 tests/regression_tests/complex_cell/geometry.xml create mode 100644 tests/regression_tests/complex_cell/materials.xml create mode 100644 tests/regression_tests/complex_cell/results_true.dat create mode 100644 tests/regression_tests/complex_cell/settings.xml create mode 100644 tests/regression_tests/complex_cell/tallies.xml create mode 100755 tests/regression_tests/complex_cell/test.py create mode 100644 tests/regression_tests/confidence_intervals/__init__.py create mode 100644 tests/regression_tests/confidence_intervals/geometry.xml create mode 100644 tests/regression_tests/confidence_intervals/materials.xml create mode 100644 tests/regression_tests/confidence_intervals/results_true.dat create mode 100644 tests/regression_tests/confidence_intervals/settings.xml create mode 100644 tests/regression_tests/confidence_intervals/tallies.xml create mode 100755 tests/regression_tests/confidence_intervals/test.py create mode 100644 tests/regression_tests/conftest.py create mode 100644 tests/regression_tests/create_fission_neutrons/__init__.py create mode 100644 tests/regression_tests/create_fission_neutrons/inputs_true.dat create mode 100644 tests/regression_tests/create_fission_neutrons/results_true.dat create mode 100755 tests/regression_tests/create_fission_neutrons/test.py create mode 100644 tests/regression_tests/dagmc/__init__.py create mode 100644 tests/regression_tests/dagmc/legacy/__init__.py create mode 100644 tests/regression_tests/dagmc/legacy/dagmc.h5m create mode 100644 tests/regression_tests/dagmc/legacy/inputs_true.dat create mode 100644 tests/regression_tests/dagmc/legacy/results_true.dat create mode 100644 tests/regression_tests/dagmc/legacy/test.py create mode 100644 tests/regression_tests/dagmc/refl/__init__.py create mode 100644 tests/regression_tests/dagmc/refl/dagmc.h5m create mode 100644 tests/regression_tests/dagmc/refl/inputs_true.dat create mode 100644 tests/regression_tests/dagmc/refl/results_true.dat create mode 100644 tests/regression_tests/dagmc/refl/test.py create mode 100644 tests/regression_tests/dagmc/uwuw/__init__.py create mode 100644 tests/regression_tests/dagmc/uwuw/dagmc.h5m create mode 100644 tests/regression_tests/dagmc/uwuw/inputs_true.dat create mode 120000 tests/regression_tests/dagmc/uwuw/results_true.dat create mode 100644 tests/regression_tests/dagmc/uwuw/test.py create mode 100644 tests/regression_tests/density/__init__.py create mode 100644 tests/regression_tests/density/geometry.xml create mode 100644 tests/regression_tests/density/materials.xml create mode 100644 tests/regression_tests/density/results_true.dat create mode 100644 tests/regression_tests/density/settings.xml create mode 100644 tests/regression_tests/density/test.py create mode 100644 tests/regression_tests/deplete/example_geometry.py create mode 100644 tests/regression_tests/deplete/test.py create mode 100644 tests/regression_tests/deplete/test_reference.h5 create mode 100644 tests/regression_tests/diff_tally/__init__.py create mode 100644 tests/regression_tests/diff_tally/inputs_true.dat create mode 100644 tests/regression_tests/diff_tally/results_true.dat create mode 100644 tests/regression_tests/diff_tally/test.py create mode 100644 tests/regression_tests/distribmat/__init__.py create mode 100644 tests/regression_tests/distribmat/inputs_true.dat create mode 100644 tests/regression_tests/distribmat/results_true.dat create mode 100644 tests/regression_tests/distribmat/test.py create mode 100644 tests/regression_tests/eigenvalue_genperbatch/__init__.py create mode 100644 tests/regression_tests/eigenvalue_genperbatch/geometry.xml create mode 100644 tests/regression_tests/eigenvalue_genperbatch/materials.xml create mode 100644 tests/regression_tests/eigenvalue_genperbatch/results_true.dat create mode 100644 tests/regression_tests/eigenvalue_genperbatch/settings.xml create mode 100644 tests/regression_tests/eigenvalue_genperbatch/test.py create mode 100644 tests/regression_tests/eigenvalue_no_inactive/__init__.py create mode 100644 tests/regression_tests/eigenvalue_no_inactive/geometry.xml create mode 100644 tests/regression_tests/eigenvalue_no_inactive/materials.xml create mode 100644 tests/regression_tests/eigenvalue_no_inactive/results_true.dat create mode 100644 tests/regression_tests/eigenvalue_no_inactive/settings.xml create mode 100644 tests/regression_tests/eigenvalue_no_inactive/test.py create mode 100644 tests/regression_tests/energy_cutoff/__init__.py create mode 100644 tests/regression_tests/energy_cutoff/inputs_true.dat create mode 100644 tests/regression_tests/energy_cutoff/results_true.dat create mode 100755 tests/regression_tests/energy_cutoff/test.py create mode 100644 tests/regression_tests/energy_grid/__init__.py create mode 100644 tests/regression_tests/energy_grid/geometry.xml create mode 100644 tests/regression_tests/energy_grid/materials.xml create mode 100644 tests/regression_tests/energy_grid/results_true.dat create mode 100644 tests/regression_tests/energy_grid/settings.xml create mode 100644 tests/regression_tests/energy_grid/test.py create mode 100644 tests/regression_tests/energy_laws/__init__.py create mode 100644 tests/regression_tests/energy_laws/inputs_true.dat create mode 100644 tests/regression_tests/energy_laws/results_true.dat create mode 100644 tests/regression_tests/energy_laws/test.py create mode 100644 tests/regression_tests/enrichment/__init__.py create mode 100644 tests/regression_tests/enrichment/test.py create mode 100644 tests/regression_tests/entropy/__init__.py create mode 100644 tests/regression_tests/entropy/geometry.xml create mode 100644 tests/regression_tests/entropy/materials.xml create mode 100644 tests/regression_tests/entropy/results_true.dat create mode 100644 tests/regression_tests/entropy/settings.xml create mode 100644 tests/regression_tests/entropy/test.py create mode 100644 tests/regression_tests/filter_distribcell/__init__.py create mode 100644 tests/regression_tests/filter_distribcell/case-1/geometry.xml create mode 100644 tests/regression_tests/filter_distribcell/case-1/materials.xml create mode 100644 tests/regression_tests/filter_distribcell/case-1/results_true.dat create mode 100644 tests/regression_tests/filter_distribcell/case-1/settings.xml create mode 100644 tests/regression_tests/filter_distribcell/case-1/tallies.xml create mode 100644 tests/regression_tests/filter_distribcell/case-2/geometry.xml create mode 100644 tests/regression_tests/filter_distribcell/case-2/materials.xml create mode 100644 tests/regression_tests/filter_distribcell/case-2/results_true.dat create mode 100644 tests/regression_tests/filter_distribcell/case-2/settings.xml create mode 100644 tests/regression_tests/filter_distribcell/case-2/tallies.xml create mode 100644 tests/regression_tests/filter_distribcell/case-3/geometry.xml create mode 100644 tests/regression_tests/filter_distribcell/case-3/materials.xml create mode 100644 tests/regression_tests/filter_distribcell/case-3/results_true.dat create mode 100644 tests/regression_tests/filter_distribcell/case-3/settings.xml create mode 100644 tests/regression_tests/filter_distribcell/case-3/tallies.xml create mode 100644 tests/regression_tests/filter_distribcell/case-4/geometry.xml create mode 100644 tests/regression_tests/filter_distribcell/case-4/materials.xml create mode 100644 tests/regression_tests/filter_distribcell/case-4/results_true.dat create mode 100644 tests/regression_tests/filter_distribcell/case-4/settings.xml create mode 100644 tests/regression_tests/filter_distribcell/case-4/tallies.xml create mode 100644 tests/regression_tests/filter_distribcell/test.py create mode 100644 tests/regression_tests/filter_energyfun/__init__.py create mode 100644 tests/regression_tests/filter_energyfun/inputs_true.dat create mode 100644 tests/regression_tests/filter_energyfun/results_true.dat create mode 100644 tests/regression_tests/filter_energyfun/test.py create mode 100644 tests/regression_tests/filter_mesh/__init__.py create mode 100644 tests/regression_tests/filter_mesh/inputs_true.dat create mode 100644 tests/regression_tests/filter_mesh/results_true.dat create mode 100644 tests/regression_tests/filter_mesh/test.py create mode 100644 tests/regression_tests/fixed_source/__init__.py create mode 100644 tests/regression_tests/fixed_source/inputs_true.dat create mode 100644 tests/regression_tests/fixed_source/results_true.dat create mode 100644 tests/regression_tests/fixed_source/test.py create mode 100644 tests/regression_tests/infinite_cell/__init__.py create mode 100644 tests/regression_tests/infinite_cell/geometry.xml create mode 100644 tests/regression_tests/infinite_cell/materials.xml create mode 100644 tests/regression_tests/infinite_cell/results_true.dat create mode 100644 tests/regression_tests/infinite_cell/settings.xml create mode 100644 tests/regression_tests/infinite_cell/test.py create mode 100644 tests/regression_tests/iso_in_lab/__init__.py create mode 100644 tests/regression_tests/iso_in_lab/inputs_true.dat create mode 100644 tests/regression_tests/iso_in_lab/results_true.dat create mode 100644 tests/regression_tests/iso_in_lab/test.py create mode 100644 tests/regression_tests/lattice/__init__.py create mode 100644 tests/regression_tests/lattice/geometry.xml create mode 100644 tests/regression_tests/lattice/materials.xml create mode 100644 tests/regression_tests/lattice/results_true.dat create mode 100644 tests/regression_tests/lattice/settings.xml create mode 100644 tests/regression_tests/lattice/test.py create mode 100644 tests/regression_tests/lattice_hex/__init__.py create mode 100644 tests/regression_tests/lattice_hex/geometry.xml create mode 100644 tests/regression_tests/lattice_hex/materials.xml create mode 100644 tests/regression_tests/lattice_hex/plots.xml create mode 100644 tests/regression_tests/lattice_hex/results_true.dat create mode 100644 tests/regression_tests/lattice_hex/settings.xml create mode 100644 tests/regression_tests/lattice_hex/test.py create mode 100644 tests/regression_tests/lattice_hex_coincident/__init__.py create mode 100644 tests/regression_tests/lattice_hex_coincident/inputs_true.dat create mode 100644 tests/regression_tests/lattice_hex_coincident/results_true.dat create mode 100644 tests/regression_tests/lattice_hex_coincident/test.py create mode 100644 tests/regression_tests/lattice_hex_x/__init__.py create mode 100644 tests/regression_tests/lattice_hex_x/inputs_true.dat create mode 100644 tests/regression_tests/lattice_hex_x/results_true.dat create mode 100644 tests/regression_tests/lattice_hex_x/test.py create mode 100644 tests/regression_tests/lattice_multiple/__init__.py create mode 100644 tests/regression_tests/lattice_multiple/inputs_true.dat create mode 100644 tests/regression_tests/lattice_multiple/results_true.dat create mode 100644 tests/regression_tests/lattice_multiple/test.py create mode 100644 tests/regression_tests/lattice_rotated/__init__.py create mode 100644 tests/regression_tests/lattice_rotated/inputs_true.dat create mode 100644 tests/regression_tests/lattice_rotated/results_true.dat create mode 100644 tests/regression_tests/lattice_rotated/test.py create mode 100644 tests/regression_tests/mg_basic/__init__.py create mode 100644 tests/regression_tests/mg_basic/inputs_true.dat create mode 100644 tests/regression_tests/mg_basic/results_true.dat create mode 100644 tests/regression_tests/mg_basic/test.py create mode 100644 tests/regression_tests/mg_basic_delayed/__init__.py create mode 100644 tests/regression_tests/mg_basic_delayed/inputs_true.dat create mode 100644 tests/regression_tests/mg_basic_delayed/results_true.dat create mode 100644 tests/regression_tests/mg_basic_delayed/test.py create mode 100644 tests/regression_tests/mg_convert/__init__.py create mode 100644 tests/regression_tests/mg_convert/inputs_true.dat create mode 100644 tests/regression_tests/mg_convert/results_true.dat create mode 100755 tests/regression_tests/mg_convert/test.py create mode 100644 tests/regression_tests/mg_legendre/__init__.py create mode 100644 tests/regression_tests/mg_legendre/inputs_true.dat create mode 100644 tests/regression_tests/mg_legendre/results_true.dat create mode 100644 tests/regression_tests/mg_legendre/test.py create mode 100644 tests/regression_tests/mg_max_order/__init__.py create mode 100644 tests/regression_tests/mg_max_order/inputs_true.dat create mode 100644 tests/regression_tests/mg_max_order/results_true.dat create mode 100644 tests/regression_tests/mg_max_order/test.py create mode 100644 tests/regression_tests/mg_survival_biasing/__init__.py create mode 100644 tests/regression_tests/mg_survival_biasing/inputs_true.dat create mode 100644 tests/regression_tests/mg_survival_biasing/results_true.dat create mode 100644 tests/regression_tests/mg_survival_biasing/test.py create mode 100644 tests/regression_tests/mg_tallies/__init__.py create mode 100644 tests/regression_tests/mg_tallies/inputs_true.dat create mode 100644 tests/regression_tests/mg_tallies/results_true.dat create mode 100644 tests/regression_tests/mg_tallies/test.py create mode 100644 tests/regression_tests/mgxs_library_ce_to_mg/__init__.py create mode 100644 tests/regression_tests/mgxs_library_ce_to_mg/inputs_true.dat create mode 100644 tests/regression_tests/mgxs_library_ce_to_mg/results_true.dat create mode 100644 tests/regression_tests/mgxs_library_ce_to_mg/test.py create mode 100644 tests/regression_tests/mgxs_library_condense/__init__.py create mode 100644 tests/regression_tests/mgxs_library_condense/inputs_true.dat create mode 100644 tests/regression_tests/mgxs_library_condense/results_true.dat create mode 100644 tests/regression_tests/mgxs_library_condense/test.py create mode 100644 tests/regression_tests/mgxs_library_correction/__init__.py create mode 100644 tests/regression_tests/mgxs_library_correction/inputs_true.dat create mode 100644 tests/regression_tests/mgxs_library_correction/results_true.dat create mode 100644 tests/regression_tests/mgxs_library_correction/test.py create mode 100644 tests/regression_tests/mgxs_library_distribcell/__init__.py create mode 100644 tests/regression_tests/mgxs_library_distribcell/inputs_true.dat create mode 100644 tests/regression_tests/mgxs_library_distribcell/results_true.dat create mode 100644 tests/regression_tests/mgxs_library_distribcell/test.py create mode 100644 tests/regression_tests/mgxs_library_hdf5/__init__.py create mode 100644 tests/regression_tests/mgxs_library_hdf5/inputs_true.dat create mode 100644 tests/regression_tests/mgxs_library_hdf5/results_true.dat create mode 100644 tests/regression_tests/mgxs_library_hdf5/test.py create mode 100644 tests/regression_tests/mgxs_library_histogram/__init__.py create mode 100644 tests/regression_tests/mgxs_library_histogram/inputs_true.dat create mode 100644 tests/regression_tests/mgxs_library_histogram/results_true.dat create mode 100644 tests/regression_tests/mgxs_library_histogram/test.py create mode 100644 tests/regression_tests/mgxs_library_mesh/__init__.py create mode 100644 tests/regression_tests/mgxs_library_mesh/inputs_true.dat create mode 100644 tests/regression_tests/mgxs_library_mesh/results_true.dat create mode 100644 tests/regression_tests/mgxs_library_mesh/test.py create mode 100644 tests/regression_tests/mgxs_library_no_nuclides/__init__.py create mode 100644 tests/regression_tests/mgxs_library_no_nuclides/inputs_true.dat create mode 100644 tests/regression_tests/mgxs_library_no_nuclides/results_true.dat create mode 100644 tests/regression_tests/mgxs_library_no_nuclides/test.py create mode 100644 tests/regression_tests/mgxs_library_nuclides/__init__.py create mode 100644 tests/regression_tests/mgxs_library_nuclides/inputs_true.dat create mode 100644 tests/regression_tests/mgxs_library_nuclides/results_true.dat create mode 100644 tests/regression_tests/mgxs_library_nuclides/test.py create mode 100644 tests/regression_tests/multipole/__init__.py create mode 100644 tests/regression_tests/multipole/inputs_true.dat create mode 100644 tests/regression_tests/multipole/results_true.dat create mode 100644 tests/regression_tests/multipole/test.py create mode 100644 tests/regression_tests/output/__init__.py create mode 100644 tests/regression_tests/output/geometry.xml create mode 100644 tests/regression_tests/output/materials.xml create mode 100644 tests/regression_tests/output/results_true.dat create mode 100644 tests/regression_tests/output/settings.xml create mode 100644 tests/regression_tests/output/test.py create mode 100644 tests/regression_tests/particle_restart_eigval/__init__.py create mode 100644 tests/regression_tests/particle_restart_eigval/geometry.xml create mode 100644 tests/regression_tests/particle_restart_eigval/materials.xml create mode 100644 tests/regression_tests/particle_restart_eigval/results_true.dat create mode 100644 tests/regression_tests/particle_restart_eigval/settings.xml create mode 100644 tests/regression_tests/particle_restart_eigval/test.py create mode 100644 tests/regression_tests/particle_restart_fixed/__init__.py create mode 100644 tests/regression_tests/particle_restart_fixed/geometry.xml create mode 100644 tests/regression_tests/particle_restart_fixed/materials.xml create mode 100644 tests/regression_tests/particle_restart_fixed/results_true.dat create mode 100644 tests/regression_tests/particle_restart_fixed/settings.xml create mode 100644 tests/regression_tests/particle_restart_fixed/test.py create mode 100644 tests/regression_tests/periodic/__init__.py create mode 100644 tests/regression_tests/periodic/inputs_true.dat create mode 100644 tests/regression_tests/periodic/results_true.dat create mode 100644 tests/regression_tests/periodic/test.py create mode 100644 tests/regression_tests/photon_production/__init__.py create mode 100644 tests/regression_tests/photon_production/inputs_true.dat create mode 100644 tests/regression_tests/photon_production/results_true.dat create mode 100644 tests/regression_tests/photon_production/test.py create mode 100644 tests/regression_tests/photon_source/__init__.py create mode 100644 tests/regression_tests/photon_source/inputs_true.dat create mode 100644 tests/regression_tests/photon_source/results_true.dat create mode 100644 tests/regression_tests/photon_source/test.py create mode 100644 tests/regression_tests/plot/__init__.py create mode 100644 tests/regression_tests/plot/geometry.xml create mode 100644 tests/regression_tests/plot/materials.xml create mode 100644 tests/regression_tests/plot/plots.xml create mode 100644 tests/regression_tests/plot/results_true.dat create mode 100644 tests/regression_tests/plot/settings.xml create mode 100644 tests/regression_tests/plot/tallies.xml create mode 100644 tests/regression_tests/plot/test.py create mode 100644 tests/regression_tests/plot_overlaps/__init__.py create mode 100644 tests/regression_tests/plot_overlaps/geometry.xml create mode 100644 tests/regression_tests/plot_overlaps/materials.xml create mode 100644 tests/regression_tests/plot_overlaps/plots.xml create mode 100644 tests/regression_tests/plot_overlaps/results_true.dat create mode 100644 tests/regression_tests/plot_overlaps/settings.xml create mode 100644 tests/regression_tests/plot_overlaps/test.py create mode 100644 tests/regression_tests/plot_voxel/__init__.py create mode 100644 tests/regression_tests/plot_voxel/geometry.xml create mode 100644 tests/regression_tests/plot_voxel/materials.xml create mode 100644 tests/regression_tests/plot_voxel/plots.xml create mode 100644 tests/regression_tests/plot_voxel/results_true.dat create mode 100644 tests/regression_tests/plot_voxel/settings.xml create mode 100644 tests/regression_tests/plot_voxel/test.py create mode 100644 tests/regression_tests/ptables_off/__init__.py create mode 100644 tests/regression_tests/ptables_off/geometry.xml create mode 100644 tests/regression_tests/ptables_off/materials.xml create mode 100644 tests/regression_tests/ptables_off/results_true.dat create mode 100644 tests/regression_tests/ptables_off/settings.xml create mode 100644 tests/regression_tests/ptables_off/test.py create mode 100644 tests/regression_tests/quadric_surfaces/__init__.py create mode 100644 tests/regression_tests/quadric_surfaces/geometry.xml create mode 100644 tests/regression_tests/quadric_surfaces/materials.xml create mode 100644 tests/regression_tests/quadric_surfaces/results_true.dat create mode 100644 tests/regression_tests/quadric_surfaces/settings.xml create mode 100755 tests/regression_tests/quadric_surfaces/test.py create mode 100644 tests/regression_tests/reflective_plane/__init__.py create mode 100644 tests/regression_tests/reflective_plane/geometry.xml create mode 100644 tests/regression_tests/reflective_plane/materials.xml create mode 100644 tests/regression_tests/reflective_plane/results_true.dat create mode 100644 tests/regression_tests/reflective_plane/settings.xml create mode 100644 tests/regression_tests/reflective_plane/test.py create mode 100644 tests/regression_tests/resonance_scattering/__init__.py create mode 100644 tests/regression_tests/resonance_scattering/inputs_true.dat create mode 100644 tests/regression_tests/resonance_scattering/results_true.dat create mode 100644 tests/regression_tests/resonance_scattering/test.py create mode 100644 tests/regression_tests/rotation/__init__.py create mode 100644 tests/regression_tests/rotation/geometry.xml create mode 100644 tests/regression_tests/rotation/materials.xml create mode 100644 tests/regression_tests/rotation/results_true.dat create mode 100644 tests/regression_tests/rotation/settings.xml create mode 100644 tests/regression_tests/rotation/test.py create mode 100644 tests/regression_tests/salphabeta/__init__.py create mode 100644 tests/regression_tests/salphabeta/inputs_true.dat create mode 100644 tests/regression_tests/salphabeta/results_true.dat create mode 100644 tests/regression_tests/salphabeta/test.py create mode 100644 tests/regression_tests/score_current/__init__.py create mode 100644 tests/regression_tests/score_current/inputs_true.dat create mode 100644 tests/regression_tests/score_current/results_true.dat create mode 100644 tests/regression_tests/score_current/test.py create mode 100644 tests/regression_tests/seed/__init__.py create mode 100644 tests/regression_tests/seed/geometry.xml create mode 100644 tests/regression_tests/seed/materials.xml create mode 100644 tests/regression_tests/seed/results_true.dat create mode 100644 tests/regression_tests/seed/settings.xml create mode 100644 tests/regression_tests/seed/test.py create mode 100644 tests/regression_tests/source/__init__.py create mode 100644 tests/regression_tests/source/inputs_true.dat create mode 100644 tests/regression_tests/source/results_true.dat create mode 100644 tests/regression_tests/source/test.py create mode 100644 tests/regression_tests/source_file/__init__.py create mode 100644 tests/regression_tests/source_file/geometry.xml create mode 100644 tests/regression_tests/source_file/materials.xml create mode 100644 tests/regression_tests/source_file/results_true.dat create mode 100644 tests/regression_tests/source_file/settings.xml create mode 100644 tests/regression_tests/source_file/test.py create mode 100644 tests/regression_tests/sourcepoint_batch/__init__.py create mode 100644 tests/regression_tests/sourcepoint_batch/geometry.xml create mode 100644 tests/regression_tests/sourcepoint_batch/materials.xml create mode 100644 tests/regression_tests/sourcepoint_batch/results_true.dat create mode 100644 tests/regression_tests/sourcepoint_batch/settings.xml create mode 100644 tests/regression_tests/sourcepoint_batch/test.py create mode 100644 tests/regression_tests/sourcepoint_latest/__init__.py create mode 100644 tests/regression_tests/sourcepoint_latest/geometry.xml create mode 100644 tests/regression_tests/sourcepoint_latest/materials.xml create mode 100644 tests/regression_tests/sourcepoint_latest/results_true.dat create mode 100644 tests/regression_tests/sourcepoint_latest/settings.xml create mode 100644 tests/regression_tests/sourcepoint_latest/test.py create mode 100644 tests/regression_tests/sourcepoint_restart/__init__.py create mode 100644 tests/regression_tests/sourcepoint_restart/geometry.xml create mode 100644 tests/regression_tests/sourcepoint_restart/materials.xml create mode 100644 tests/regression_tests/sourcepoint_restart/results_true.dat create mode 100644 tests/regression_tests/sourcepoint_restart/settings.xml create mode 100644 tests/regression_tests/sourcepoint_restart/tallies.xml create mode 100644 tests/regression_tests/sourcepoint_restart/test.py create mode 100644 tests/regression_tests/statepoint_batch/__init__.py create mode 100644 tests/regression_tests/statepoint_batch/geometry.xml create mode 100644 tests/regression_tests/statepoint_batch/materials.xml create mode 100644 tests/regression_tests/statepoint_batch/results_true.dat create mode 100644 tests/regression_tests/statepoint_batch/settings.xml create mode 100644 tests/regression_tests/statepoint_batch/test.py create mode 100644 tests/regression_tests/statepoint_restart/__init__.py create mode 100644 tests/regression_tests/statepoint_restart/geometry.xml create mode 100644 tests/regression_tests/statepoint_restart/materials.xml create mode 100644 tests/regression_tests/statepoint_restart/results_true.dat create mode 100644 tests/regression_tests/statepoint_restart/settings.xml create mode 100644 tests/regression_tests/statepoint_restart/tallies.xml create mode 100644 tests/regression_tests/statepoint_restart/test.py create mode 100644 tests/regression_tests/statepoint_sourcesep/__init__.py create mode 100644 tests/regression_tests/statepoint_sourcesep/geometry.xml create mode 100644 tests/regression_tests/statepoint_sourcesep/materials.xml create mode 100644 tests/regression_tests/statepoint_sourcesep/results_true.dat create mode 100644 tests/regression_tests/statepoint_sourcesep/settings.xml create mode 100644 tests/regression_tests/statepoint_sourcesep/test.py create mode 100644 tests/regression_tests/surface_tally/__init__.py create mode 100644 tests/regression_tests/surface_tally/inputs_true.dat create mode 100644 tests/regression_tests/surface_tally/results_true.dat create mode 100644 tests/regression_tests/surface_tally/test.py create mode 100644 tests/regression_tests/survival_biasing/__init__.py create mode 100644 tests/regression_tests/survival_biasing/geometry.xml create mode 100644 tests/regression_tests/survival_biasing/materials.xml create mode 100644 tests/regression_tests/survival_biasing/results_true.dat create mode 100644 tests/regression_tests/survival_biasing/settings.xml create mode 100644 tests/regression_tests/survival_biasing/tallies.xml create mode 100644 tests/regression_tests/survival_biasing/test.py create mode 100644 tests/regression_tests/tallies/__init__.py create mode 100644 tests/regression_tests/tallies/inputs_true.dat create mode 100644 tests/regression_tests/tallies/results_true.dat create mode 100644 tests/regression_tests/tallies/test.py create mode 100644 tests/regression_tests/tally_aggregation/__init__.py create mode 100644 tests/regression_tests/tally_aggregation/inputs_true.dat create mode 100644 tests/regression_tests/tally_aggregation/results_true.dat create mode 100644 tests/regression_tests/tally_aggregation/test.py create mode 100644 tests/regression_tests/tally_arithmetic/__init__.py create mode 100644 tests/regression_tests/tally_arithmetic/inputs_true.dat create mode 100644 tests/regression_tests/tally_arithmetic/results_true.dat create mode 100644 tests/regression_tests/tally_arithmetic/test.py create mode 100644 tests/regression_tests/tally_assumesep/__init__.py create mode 100644 tests/regression_tests/tally_assumesep/geometry.xml create mode 100644 tests/regression_tests/tally_assumesep/materials.xml create mode 100644 tests/regression_tests/tally_assumesep/results_true.dat create mode 100644 tests/regression_tests/tally_assumesep/settings.xml create mode 100644 tests/regression_tests/tally_assumesep/tallies.xml create mode 100644 tests/regression_tests/tally_assumesep/test.py create mode 100644 tests/regression_tests/tally_nuclides/__init__.py create mode 100644 tests/regression_tests/tally_nuclides/geometry.xml create mode 100644 tests/regression_tests/tally_nuclides/materials.xml create mode 100644 tests/regression_tests/tally_nuclides/results_true.dat create mode 100644 tests/regression_tests/tally_nuclides/settings.xml create mode 100644 tests/regression_tests/tally_nuclides/tallies.xml create mode 100644 tests/regression_tests/tally_nuclides/test.py create mode 100644 tests/regression_tests/tally_slice_merge/__init__.py create mode 100644 tests/regression_tests/tally_slice_merge/inputs_true.dat create mode 100644 tests/regression_tests/tally_slice_merge/results_true.dat create mode 100644 tests/regression_tests/tally_slice_merge/test.py create mode 100644 tests/regression_tests/trace/__init__.py create mode 100644 tests/regression_tests/trace/geometry.xml create mode 100644 tests/regression_tests/trace/materials.xml create mode 100644 tests/regression_tests/trace/results_true.dat create mode 100644 tests/regression_tests/trace/settings.xml create mode 100644 tests/regression_tests/trace/test.py create mode 100644 tests/regression_tests/track_output/__init__.py create mode 100644 tests/regression_tests/track_output/geometry.xml create mode 100644 tests/regression_tests/track_output/materials.xml create mode 100644 tests/regression_tests/track_output/results_true.dat create mode 100644 tests/regression_tests/track_output/settings.xml create mode 100644 tests/regression_tests/track_output/test.py create mode 100644 tests/regression_tests/translation/__init__.py create mode 100644 tests/regression_tests/translation/geometry.xml create mode 100644 tests/regression_tests/translation/materials.xml create mode 100644 tests/regression_tests/translation/results_true.dat create mode 100644 tests/regression_tests/translation/settings.xml create mode 100644 tests/regression_tests/translation/test.py create mode 100644 tests/regression_tests/trigger_batch_interval/__init__.py create mode 100644 tests/regression_tests/trigger_batch_interval/geometry.xml create mode 100644 tests/regression_tests/trigger_batch_interval/materials.xml create mode 100644 tests/regression_tests/trigger_batch_interval/results_true.dat create mode 100644 tests/regression_tests/trigger_batch_interval/settings.xml create mode 100644 tests/regression_tests/trigger_batch_interval/tallies.xml create mode 100644 tests/regression_tests/trigger_batch_interval/test.py create mode 100644 tests/regression_tests/trigger_no_batch_interval/__init__.py create mode 100644 tests/regression_tests/trigger_no_batch_interval/geometry.xml create mode 100644 tests/regression_tests/trigger_no_batch_interval/materials.xml create mode 100644 tests/regression_tests/trigger_no_batch_interval/results_true.dat create mode 100644 tests/regression_tests/trigger_no_batch_interval/settings.xml create mode 100644 tests/regression_tests/trigger_no_batch_interval/tallies.xml create mode 100644 tests/regression_tests/trigger_no_batch_interval/test.py create mode 100644 tests/regression_tests/trigger_no_status/__init__.py create mode 100644 tests/regression_tests/trigger_no_status/geometry.xml create mode 100644 tests/regression_tests/trigger_no_status/materials.xml create mode 100644 tests/regression_tests/trigger_no_status/results_true.dat create mode 100644 tests/regression_tests/trigger_no_status/settings.xml create mode 100644 tests/regression_tests/trigger_no_status/tallies.xml create mode 100644 tests/regression_tests/trigger_no_status/test.py create mode 100644 tests/regression_tests/trigger_tallies/__init__.py create mode 100644 tests/regression_tests/trigger_tallies/geometry.xml create mode 100644 tests/regression_tests/trigger_tallies/materials.xml create mode 100644 tests/regression_tests/trigger_tallies/results_true.dat create mode 100644 tests/regression_tests/trigger_tallies/settings.xml create mode 100644 tests/regression_tests/trigger_tallies/tallies.xml create mode 100644 tests/regression_tests/trigger_tallies/test.py create mode 100644 tests/regression_tests/triso/__init__.py create mode 100644 tests/regression_tests/triso/inputs_true.dat create mode 100644 tests/regression_tests/triso/results_true.dat create mode 100644 tests/regression_tests/triso/test.py create mode 100644 tests/regression_tests/uniform_fs/__init__.py create mode 100644 tests/regression_tests/uniform_fs/geometry.xml create mode 100644 tests/regression_tests/uniform_fs/materials.xml create mode 100644 tests/regression_tests/uniform_fs/results_true.dat create mode 100644 tests/regression_tests/uniform_fs/settings.xml create mode 100644 tests/regression_tests/uniform_fs/test.py create mode 100644 tests/regression_tests/universe/__init__.py create mode 100644 tests/regression_tests/universe/geometry.xml create mode 100644 tests/regression_tests/universe/materials.xml create mode 100644 tests/regression_tests/universe/results_true.dat create mode 100644 tests/regression_tests/universe/settings.xml create mode 100644 tests/regression_tests/universe/test.py create mode 100644 tests/regression_tests/void/__init__.py create mode 100644 tests/regression_tests/void/inputs_true.dat create mode 100644 tests/regression_tests/void/results_true.dat create mode 100644 tests/regression_tests/void/test.py create mode 100644 tests/regression_tests/volume_calc/__init__.py create mode 100644 tests/regression_tests/volume_calc/inputs_true.dat create mode 100644 tests/regression_tests/volume_calc/results_true.dat create mode 100644 tests/regression_tests/volume_calc/test.py create mode 100644 tests/regression_tests/white_plane/__init__.py create mode 100644 tests/regression_tests/white_plane/geometry.xml create mode 100644 tests/regression_tests/white_plane/materials.xml create mode 100644 tests/regression_tests/white_plane/results_true.dat create mode 100644 tests/regression_tests/white_plane/settings.xml create mode 100644 tests/regression_tests/white_plane/test.py create mode 100644 tests/testing_harness.py create mode 100644 tests/unit_tests/__init__.py create mode 100644 tests/unit_tests/conftest.py create mode 100644 tests/unit_tests/dagmc/__init__.py create mode 120000 tests/unit_tests/dagmc/dagmc.h5m create mode 100644 tests/unit_tests/dagmc/test.py create mode 100644 tests/unit_tests/test_cell.py create mode 100644 tests/unit_tests/test_complex_cell_bb.py create mode 100644 tests/unit_tests/test_data_decay.py create mode 100644 tests/unit_tests/test_data_misc.py create mode 100644 tests/unit_tests/test_data_multipole.py create mode 100644 tests/unit_tests/test_data_neutron.py create mode 100644 tests/unit_tests/test_data_photon.py create mode 100644 tests/unit_tests/test_data_thermal.py create mode 100644 tests/unit_tests/test_deplete_atom_number.py create mode 100644 tests/unit_tests/test_deplete_chain.py create mode 100644 tests/unit_tests/test_deplete_cram.py create mode 100644 tests/unit_tests/test_deplete_fission_yields.py create mode 100644 tests/unit_tests/test_deplete_integrator.py create mode 100644 tests/unit_tests/test_deplete_nuclide.py create mode 100644 tests/unit_tests/test_deplete_operator.py create mode 100644 tests/unit_tests/test_deplete_reaction.py create mode 100644 tests/unit_tests/test_deplete_restart.py create mode 100644 tests/unit_tests/test_deplete_resultslist.py create mode 100644 tests/unit_tests/test_element_wo.py create mode 100644 tests/unit_tests/test_endf.py create mode 100644 tests/unit_tests/test_filters.py create mode 100644 tests/unit_tests/test_geometry.py create mode 100644 tests/unit_tests/test_lattice.py create mode 100644 tests/unit_tests/test_lib.py create mode 100644 tests/unit_tests/test_material.py create mode 100644 tests/unit_tests/test_math.py create mode 100644 tests/unit_tests/test_mesh_from_lattice.py create mode 100644 tests/unit_tests/test_model_triso.py create mode 100644 tests/unit_tests/test_pin.py create mode 100644 tests/unit_tests/test_plots.py create mode 100644 tests/unit_tests/test_polynomials.py create mode 100644 tests/unit_tests/test_region.py create mode 100644 tests/unit_tests/test_settings.py create mode 100644 tests/unit_tests/test_source.py create mode 100644 tests/unit_tests/test_stats.py create mode 100644 tests/unit_tests/test_surface.py create mode 100644 tests/unit_tests/test_transfer_volumes.py create mode 100644 tests/unit_tests/test_universe.py create mode 100755 tools/ci/download-xs.sh create mode 100755 tools/ci/travis-before-script.sh create mode 100755 tools/ci/travis-install-dagmc.sh create mode 100755 tools/ci/travis-install-njoy.sh create mode 100644 tools/ci/travis-install.py create mode 100755 tools/ci/travis-install.sh create mode 100755 tools/ci/travis-script.sh create mode 100644 vendor/faddeeva/Faddeeva.cc create mode 100644 vendor/faddeeva/Faddeeva.hh create mode 100644 vendor/gsl/include/gsl/gsl create mode 100644 vendor/gsl/include/gsl/gsl-lite.hpp create mode 100644 vendor/pugixml/pugiconfig.hpp create mode 100644 vendor/pugixml/pugixml.cpp create mode 100644 vendor/pugixml/pugixml.hpp create mode 100644 vendor/xtensor/CMakeLists.txt create mode 100644 vendor/xtensor/include/xtensor/xaccumulator.hpp create mode 100644 vendor/xtensor/include/xtensor/xadapt.hpp create mode 100644 vendor/xtensor/include/xtensor/xarray.hpp create mode 100644 vendor/xtensor/include/xtensor/xassign.hpp create mode 100644 vendor/xtensor/include/xtensor/xaxis_iterator.hpp create mode 100644 vendor/xtensor/include/xtensor/xbroadcast.hpp create mode 100644 vendor/xtensor/include/xtensor/xbuffer_adaptor.hpp create mode 100644 vendor/xtensor/include/xtensor/xbuilder.hpp create mode 100644 vendor/xtensor/include/xtensor/xcomplex.hpp create mode 100644 vendor/xtensor/include/xtensor/xconcepts.hpp create mode 100644 vendor/xtensor/include/xtensor/xcontainer.hpp create mode 100644 vendor/xtensor/include/xtensor/xcsv.hpp create mode 100644 vendor/xtensor/include/xtensor/xeval.hpp create mode 100644 vendor/xtensor/include/xtensor/xexception.hpp create mode 100644 vendor/xtensor/include/xtensor/xexpression.hpp create mode 100644 vendor/xtensor/include/xtensor/xfixed.hpp create mode 100644 vendor/xtensor/include/xtensor/xfunction.hpp create mode 100644 vendor/xtensor/include/xtensor/xfunctor_view.hpp create mode 100644 vendor/xtensor/include/xtensor/xgenerator.hpp create mode 100644 vendor/xtensor/include/xtensor/xindex_view.hpp create mode 100644 vendor/xtensor/include/xtensor/xinfo.hpp create mode 100644 vendor/xtensor/include/xtensor/xio.hpp create mode 100644 vendor/xtensor/include/xtensor/xiterable.hpp create mode 100644 vendor/xtensor/include/xtensor/xiterator.hpp create mode 100644 vendor/xtensor/include/xtensor/xjson.hpp create mode 100644 vendor/xtensor/include/xtensor/xlayout.hpp create mode 100644 vendor/xtensor/include/xtensor/xmath.hpp create mode 100644 vendor/xtensor/include/xtensor/xnoalias.hpp create mode 100644 vendor/xtensor/include/xtensor/xnorm.hpp create mode 100644 vendor/xtensor/include/xtensor/xnpy.hpp create mode 100644 vendor/xtensor/include/xtensor/xoffset_view.hpp create mode 100644 vendor/xtensor/include/xtensor/xoperation.hpp create mode 100644 vendor/xtensor/include/xtensor/xoptional.hpp create mode 100644 vendor/xtensor/include/xtensor/xoptional_assembly.hpp create mode 100644 vendor/xtensor/include/xtensor/xoptional_assembly_base.hpp create mode 100644 vendor/xtensor/include/xtensor/xoptional_assembly_storage.hpp create mode 100644 vendor/xtensor/include/xtensor/xrandom.hpp create mode 100644 vendor/xtensor/include/xtensor/xreducer.hpp create mode 100644 vendor/xtensor/include/xtensor/xscalar.hpp create mode 100644 vendor/xtensor/include/xtensor/xsemantic.hpp create mode 100644 vendor/xtensor/include/xtensor/xshape.hpp create mode 100644 vendor/xtensor/include/xtensor/xslice.hpp create mode 100644 vendor/xtensor/include/xtensor/xsort.hpp create mode 100644 vendor/xtensor/include/xtensor/xstorage.hpp create mode 100644 vendor/xtensor/include/xtensor/xstrided_view.hpp create mode 100644 vendor/xtensor/include/xtensor/xstrided_view_base.hpp create mode 100644 vendor/xtensor/include/xtensor/xstrides.hpp create mode 100644 vendor/xtensor/include/xtensor/xtensor.hpp create mode 100644 vendor/xtensor/include/xtensor/xtensor_config.hpp create mode 100644 vendor/xtensor/include/xtensor/xtensor_forward.hpp create mode 100644 vendor/xtensor/include/xtensor/xtensor_simd.hpp create mode 100644 vendor/xtensor/include/xtensor/xutils.hpp create mode 100644 vendor/xtensor/include/xtensor/xvectorize.hpp create mode 100644 vendor/xtensor/include/xtensor/xview.hpp create mode 100644 vendor/xtensor/include/xtensor/xview_utils.hpp create mode 100644 vendor/xtensor/xtensor.pc.in create mode 100644 vendor/xtensor/xtensorConfig.cmake.in create mode 100644 vendor/xtl/CMakeLists.txt create mode 100644 vendor/xtl/include/xtl/xany.hpp create mode 100644 vendor/xtl/include/xtl/xbase64.hpp create mode 100644 vendor/xtl/include/xtl/xbasic_fixed_string.hpp create mode 100644 vendor/xtl/include/xtl/xclosure.hpp create mode 100644 vendor/xtl/include/xtl/xcomplex.hpp create mode 100644 vendor/xtl/include/xtl/xcomplex_sequence.hpp create mode 100644 vendor/xtl/include/xtl/xdynamic_bitset.hpp create mode 100644 vendor/xtl/include/xtl/xfunctional.hpp create mode 100644 vendor/xtl/include/xtl/xhash.hpp create mode 100644 vendor/xtl/include/xtl/xhierarchy_generator.hpp create mode 100644 vendor/xtl/include/xtl/xiterator_base.hpp create mode 100644 vendor/xtl/include/xtl/xjson.hpp create mode 100644 vendor/xtl/include/xtl/xmeta_utils.hpp create mode 100644 vendor/xtl/include/xtl/xoptional.hpp create mode 100644 vendor/xtl/include/xtl/xoptional_sequence.hpp create mode 100644 vendor/xtl/include/xtl/xproxy_wrapper.hpp create mode 100644 vendor/xtl/include/xtl/xsequence.hpp create mode 100644 vendor/xtl/include/xtl/xtl_config.hpp create mode 100644 vendor/xtl/include/xtl/xtype_traits.hpp create mode 100644 vendor/xtl/include/xtl/xvariant.hpp create mode 100644 vendor/xtl/include/xtl/xvariant_impl.hpp create mode 100644 vendor/xtl/xtlConfig.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..626aadae8 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,354 @@ +cmake_minimum_required(VERSION 3.3 FATAL_ERROR) +project(openmc C CXX) + +# Setup output directories +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + +# Set module path +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) + +#=============================================================================== +# Command line options +#=============================================================================== + +option(openmp "Enable shared-memory parallelism with OpenMP" ON) +option(profile "Compile with profiling flags" OFF) +option(debug "Compile with debug flags" OFF) +option(optimize "Turn on all compiler optimization flags" OFF) +option(coverage "Compile with coverage analysis flags" OFF) +option(dagmc "Enable support for DAGMC (CAD) geometry" OFF) + +#=============================================================================== +# MPI for distributed-memory parallelism +#=============================================================================== + +set(MPI_ENABLED FALSE) +if($ENV{CXX} MATCHES "(mpi[^/]*|CC)$") + message(STATUS "Detected MPI wrapper: $ENV{CXX}") + set(MPI_ENABLED TRUE) +endif() + +#=============================================================================== +# DAGMC Geometry Support - need DAGMC/MOAB +#=============================================================================== +if(dagmc) + find_package(DAGMC REQUIRED) + link_directories(${DAGMC_LIBRARY_DIRS}) +endif() + +#=============================================================================== +# HDF5 for binary output +#=============================================================================== + +# Allow user to specify HDF5_ROOT +if (NOT (CMAKE_VERSION VERSION_LESS 3.12)) + cmake_policy(SET CMP0074 NEW) +endif() + +# Unfortunately FindHDF5.cmake will always prefer a serial HDF5 installation +# over a parallel installation if both appear on the user's PATH. To get around +# this, we check for the environment variable HDF5_ROOT and if it exists, use it +# to check whether its a parallel version. + +if(NOT DEFINED HDF5_PREFER_PARALLEL) + if(DEFINED ENV{HDF5_ROOT} AND EXISTS $ENV{HDF5_ROOT}/bin/h5pcc) + set(HDF5_PREFER_PARALLEL TRUE) + else() + set(HDF5_PREFER_PARALLEL FALSE) + endif() +endif() + +find_package(HDF5 REQUIRED COMPONENTS C HL) +if(HDF5_IS_PARALLEL) + if(NOT MPI_ENABLED) + message(FATAL_ERROR "Parallel HDF5 must be used with MPI.") + endif() + message(STATUS "Using parallel HDF5") +endif() + +#=============================================================================== +# Set compile/link flags based on which compiler is being used +#=============================================================================== + +# Skip for Visual Stduio which has its own configurations through GUI +if(NOT MSVC) + +if(openmp) + # Requires CMake 3.1+ + find_package(OpenMP) + if(OPENMP_FOUND) + list(APPEND cxxflags ${OpenMP_CXX_FLAGS}) + list(APPEND ldflags ${OpenMP_CXX_FLAGS}) + endif() +endif() + +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +list(APPEND cxxflags -O2) +if(debug) + list(REMOVE_ITEM cxxflags -O2) + list(APPEND cxxflags -g -O0) +endif() +if(profile) + list(APPEND cxxflags -g -fno-omit-frame-pointer) +endif() +if(optimize) + list(REMOVE_ITEM cxxflags -O2) + list(APPEND cxxflags -O3) +endif() +if(coverage) + list(APPEND cxxflags --coverage) + list(APPEND ldflags --coverage) +endif() + +# Show flags being used +message(STATUS "OpenMC C++ flags: ${cxxflags}") +message(STATUS "OpenMC Linker flags: ${ldflags}") + +endif() + +#=============================================================================== +# pugixml library +#=============================================================================== + +add_library(pugixml vendor/pugixml/pugixml.cpp) +target_include_directories(pugixml PUBLIC vendor/pugixml/) + +#=============================================================================== +# xtensor header-only library +#=============================================================================== + +# CMake 3.13+ will complain about policy CMP0079 unless it is set explicitly +if (NOT (CMAKE_VERSION VERSION_LESS 3.13)) + cmake_policy(SET CMP0079 NEW) +endif() + +add_subdirectory(vendor/xtl) +add_subdirectory(vendor/xtensor) +target_link_libraries(xtensor INTERFACE xtl) + +#=============================================================================== +# GSL header-only library +#=============================================================================== + +add_library(gsl INTERFACE) +target_include_directories(gsl INTERFACE vendor/gsl/include) + +# Make sure contract violations throw exceptions +target_compile_definitions(gsl INTERFACE GSL_THROW_ON_CONTRACT_VIOLATION) + +#=============================================================================== +# RPATH information +#=============================================================================== + +# This block of code ensures that dynamic libraries can be found via the RPATH +# whether the executable is the original one from the build directory or the +# installed one in CMAKE_INSTALL_PREFIX. Ref: +# https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/RPATH-handling + +# use, i.e. don't skip the full RPATH for the build tree +set(CMAKE_SKIP_BUILD_RPATH FALSE) + +# when building, don't use the install RPATH already +# (but later on when installing) +set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + +set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + +# add the automatically determined parts of the RPATH +# which point to directories outside the build tree to the install RPATH +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + +# the RPATH to be used when installing, but only if it's not a system directory +list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir) +if("${isSystemDir}" STREQUAL "-1") + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") +endif() + +#=============================================================================== +# faddeeva library +#=============================================================================== + +add_library(faddeeva STATIC vendor/faddeeva/Faddeeva.cc) +target_include_directories(faddeeva PUBLIC vendor/faddeeva/) +target_compile_options(faddeeva PRIVATE ${cxxflags}) + +#=============================================================================== +# libopenmc +#=============================================================================== + +list(APPEND libopenmc_SOURCES + src/bank.cpp + src/bremsstrahlung.cpp + src/dagmc.cpp + src/cell.cpp + src/cmfd_solver.cpp + src/cross_sections.cpp + src/distribution.cpp + src/distribution_angle.cpp + src/distribution_energy.cpp + src/distribution_multi.cpp + src/distribution_spatial.cpp + src/eigenvalue.cpp + src/endf.cpp + src/error.cpp + src/initialize.cpp + src/finalize.cpp + src/geometry.cpp + src/geometry_aux.cpp + src/hdf5_interface.cpp + src/lattice.cpp + src/material.cpp + src/math_functions.cpp + src/mesh.cpp + src/message_passing.cpp + src/mgxs.cpp + src/mgxs_interface.cpp + src/nuclide.cpp + src/output.cpp + src/particle.cpp + src/particle_restart.cpp + src/photon.cpp + src/physics.cpp + src/physics_common.cpp + src/physics_mg.cpp + src/plot.cpp + src/position.cpp + src/progress_bar.cpp + src/random_lcg.cpp + src/reaction.cpp + src/reaction_product.cpp + src/scattdata.cpp + src/secondary_correlated.cpp + src/secondary_kalbach.cpp + src/secondary_nbody.cpp + src/secondary_thermal.cpp + src/secondary_uncorrelated.cpp + src/settings.cpp + src/simulation.cpp + src/source.cpp + src/state_point.cpp + src/string_utils.cpp + src/summary.cpp + src/surface.cpp + src/tallies/derivative.cpp + src/tallies/filter.cpp + src/tallies/filter_azimuthal.cpp + src/tallies/filter_cellborn.cpp + src/tallies/filter_cellfrom.cpp + src/tallies/filter_cell.cpp + src/tallies/filter_delayedgroup.cpp + src/tallies/filter_distribcell.cpp + src/tallies/filter_energyfunc.cpp + src/tallies/filter_energy.cpp + src/tallies/filter_legendre.cpp + src/tallies/filter_material.cpp + src/tallies/filter_mesh.cpp + src/tallies/filter_meshsurface.cpp + src/tallies/filter_mu.cpp + src/tallies/filter_particle.cpp + src/tallies/filter_polar.cpp + src/tallies/filter_sph_harm.cpp + src/tallies/filter_sptl_legendre.cpp + src/tallies/filter_surface.cpp + src/tallies/filter_universe.cpp + src/tallies/filter_zernike.cpp + src/tallies/tally.cpp + src/tallies/tally_scoring.cpp + src/tallies/trigger.cpp + src/timer.cpp + src/thermal.cpp + src/track_output.cpp + src/urr.cpp + src/volume_calc.cpp + src/wmp.cpp + src/xml_interface.cpp + src/xsdata.cpp) + +# For Visual Studio compilers +if(MSVC) + # Use static library (otherwise explicit symbol portings are needed) + add_library(libopenmc STATIC ${libopenmc_SOURCES}) + + # To use the shared HDF5 libraries on Windows, the H5_BUILT_AS_DYNAMIC_LIB + # compile definition must be specified. + target_compile_definitions(libopenmc PRIVATE -DH5_BUILT_AS_DYNAMIC_LIB) +else() + add_library(libopenmc SHARED ${libopenmc_SOURCES}) +endif() + +set_target_properties(libopenmc PROPERTIES + OUTPUT_NAME openmc) + +target_include_directories(libopenmc + PUBLIC include ${HDF5_INCLUDE_DIRS}) + +# Set compile flags +target_compile_options(libopenmc PRIVATE ${cxxflags}) + +if (HDF5_IS_PARALLEL) + target_compile_definitions(libopenmc PRIVATE -DPHDF5) +endif() +if (MPI_ENABLED) + target_compile_definitions(libopenmc PUBLIC -DOPENMC_MPI) +endif() + +# Set git SHA1 hash as a compile definition +execute_process(COMMAND git rev-parse HEAD + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE GIT_SHA1_SUCCESS + OUTPUT_VARIABLE GIT_SHA1 + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) +if(GIT_SHA1_SUCCESS EQUAL 0) + target_compile_definitions(libopenmc PRIVATE -DGIT_SHA1="${GIT_SHA1}") +endif() + +# target_link_libraries treats any arguments starting with - but not -l as +# linker flags. Thus, we can pass both linker flags and libraries together. +target_link_libraries(libopenmc ${ldflags} ${HDF5_LIBRARIES} ${HDF5_HL_LIBRARIES} + pugixml faddeeva xtensor gsl) + +if(dagmc) + target_compile_definitions(libopenmc PRIVATE DAGMC) + target_link_libraries(libopenmc ${DAGMC_LIBRARIES}) + target_include_directories(libopenmc PRIVATE ${DAGMC_INCLUDE_DIRS}) +endif() + +#=============================================================================== +# openmc executable +#=============================================================================== +add_executable(openmc src/main.cpp) +target_compile_options(openmc PRIVATE ${cxxflags}) +target_link_libraries(openmc libopenmc) + +# Ensure C++14 standard is used. Starting with CMake 3.8, another way this could +# be done is using the cxx_std_14 compiler feature. +set_target_properties( + openmc libopenmc faddeeva pugixml + PROPERTIES CXX_STANDARD 14 CXX_EXTENSIONS OFF) + +#=============================================================================== +# Python package +#=============================================================================== + +add_custom_command(TARGET libopenmc POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + ${CMAKE_CURRENT_SOURCE_DIR}/openmc/lib/$ + COMMENT "Copying libopenmc to Python module directory") + +#=============================================================================== +# Install executable, scripts, manpage, license +#=============================================================================== + +install(TARGETS openmc libopenmc + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) +install(DIRECTORY src/relaxng DESTINATION share/openmc) +install(FILES man/man1/openmc.1 DESTINATION share/man/man1) +install(FILES LICENSE DESTINATION "share/doc/openmc" RENAME copyright) +install(DIRECTORY include/ DESTINATION include) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..d29d42adc --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at openmc@anl.gov. All complaints will +be reviewed and investigated and will result in a response that is deemed +necessary and appropriate to the circumstances. The project team is obligated to +maintain confidentiality with regard to the reporter of an incident. However, +note that some project team members may have a legal obligation to report +certain forms of harassment because of their affiliation (for example, staff and +faculty at universities in the United States). Further details of specific +enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..be506f919 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,46 @@ +# Contributing to OpenMC + +Welcome, and thank you for considering contributing to OpenMC! We look forward +to welcoming new members to the community and will do our best to help you get +up to speed. + +## Code of Conduct + +Participants in the OpenMC project are expected to follow and uphold the [Code +of Conduct](CODE_OF_CONDUCT.md). Please report any unacceptable behavior to +openmc@anl.gov. + +## Resources + +- [GitHub Repository](https://github.com/openmc-dev/openmc) +- [Documentation](http://openmc.readthedocs.io/en/latest) +- [User's Mailing List](openmc-users@googlegroups.com) +- [Developer's Mailing List](openmc-dev@googlegroups.com) +- [Slack Community](https://openmc.slack.com/signup) (If you don't see your + domain listed, contact openmc@anl.gov) + +## How to Report Bugs + +OpenMC is hosted on GitHub and all bugs are reported and tracked through the +[Issues](https://github.com/openmc-dev/openmc/issues) listed on GitHub. + +## How to Suggest Enhancements + +We welcome suggestions for new features or enhancements to the code and +encourage you to submit them as Issues on GitHub. However, it's important to +recognize that our development team is relatively small and does not have +unlimited time to devote to new feature suggestions. If you are interested in +working on the feature you are requesting, indicate so in the issue and the +development team will be happy to discuss it. + +## How to Submit Changes + +All changes to OpenMC happen through pull requests. For a full overview of the +process, see the developer's guide section on [Contributing to +OpenMC](http://openmc.readthedocs.io/en/latest/devguide/contributing.html). + +## Code Style + +Before you run off to make changes to the code, please have a look at our [style +guide](http://openmc.readthedocs.io/en/latest/devguide/styleguide.html), which +is used when reviewing new contributions. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..6466c7685 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +FROM ubuntu:latest + +# Setup environment variables for Docker image +ENV FC=/usr/bin/mpif90 CC=/usr/bin/mpicc CXX=/usr/bin/mpicxx \ + PATH=/opt/openmc/bin:/opt/NJOY2016/build:$PATH \ + LD_LIBRARY_PATH=/opt/openmc/lib:$LD_LIBRARY_PATH \ + OPENMC_CROSS_SECTIONS=/root/nndc_hdf5/cross_sections.xml \ + OPENMC_ENDF_DATA=/root/endf-b-vii.1 + +# Install dependencies from Debian package manager +RUN apt-get update -y && \ + apt-get upgrade -y && \ + apt-get install -y python3-pip && \ + apt-get install -y wget git emacs && \ + apt-get install -y gfortran g++ cmake && \ + apt-get install -y mpich libmpich-dev && \ + apt-get install -y libhdf5-serial-dev libhdf5-mpich-dev && \ + apt-get install -y imagemagick && \ + apt-get autoremove + +# Update system-provided pip +RUN pip3 install --upgrade pip + +# Clone and install NJOY2016 +RUN git clone https://github.com/njoy/NJOY2016 /opt/NJOY2016 && \ + cd /opt/NJOY2016 && \ + mkdir build && cd build && \ + cmake -Dstatic=on .. && make 2>/dev/null && make install + +# Clone and install OpenMC +RUN git clone https://github.com/openmc-dev/openmc.git /opt/openmc && \ + cd /opt/openmc && mkdir -p build && cd build && \ + cmake -Doptimize=on -DHDF5_PREFER_PARALLEL=on .. && \ + make && make install && \ + cd .. && pip install -e .[test] + +# Download cross sections (NNDC and WMP) and ENDF data needed by test suite +RUN ./opt/openmc/tools/ci/download-xs.sh diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..cfa34033c --- /dev/null +++ b/LICENSE @@ -0,0 +1,18 @@ +Copyright (c) 2011-2018 Massachusetts Institute of Technology and OpenMC contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 000000000..5715bfb44 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,46 @@ +include CMakeLists.txt +include LICENSE +include CODE_OF_CONDUCT.md +include CONTRIBUTING.md +include schemas.xml +include pyproject.toml +include pytest.ini +include openmc/data/reconstruct.pyx +include docs/source/_templates/layout.html +include docs/sphinxext/LICENSE +recursive-include . *.rst +recursive-include cmake *.cmake +recursive-include docs *.css +recursive-include docs *.dia +recursive-include docs *.png +recursive-include docs *.py +recursive-include docs *.svg +recursive-include docs *.tex +recursive-include docs *.txt +recursive-include docs Makefile +recursive-include examples *.h5 +recursive-include examples *.ipynb +recursive-include examples *.png +recursive-include examples *.py +recursive-include examples *.xml +recursive-include man *.1 +recursive-include src *.F90 +recursive-include src *.c +recursive-include src *.cc +recursive-include src *.cpp +recursive-include src *.h +recursive-include src *.hpp +recursive-include src *.rnc +recursive-include src *.rng +recursive-include tests *.dat +recursive-include tests *.h5 +recursive-include tests *.py +recursive-include tests *.xml +recursive-include vendor CMakeLists.txt +recursive-include vendor *.cmake.in +recursive-include vendor *.cc +recursive-include vendor *.cpp +recursive-include vendor *.hh +recursive-include vendor *.hpp +prune docs/build +prune docs/source/pythonapi/generated/ diff --git a/README.md b/README.md new file mode 100644 index 000000000..57197c363 --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +# OpenMC Monte Carlo Particle Transport Code + +[![License](https://img.shields.io/github/license/openmc-dev/openmc.svg)](http://openmc.readthedocs.io/en/latest/license.html) +[![Travis CI build status (Linux)](https://travis-ci.org/openmc-dev/openmc.svg?branch=develop)](https://travis-ci.org/openmc-dev/openmc) +[![Code Coverage](https://coveralls.io/repos/github/openmc-dev/openmc/badge.svg?branch=develop)](https://coveralls.io/github/openmc-dev/openmc?branch=develop) + +The OpenMC project aims to provide a fully-featured Monte Carlo particle +transport code based on modern methods. It is a constructive solid geometry, +continuous-energy transport code that uses HDF5 format cross sections. The +project started under the Computational Reactor Physics Group at MIT. + +Complete documentation on the usage of OpenMC is hosted on Read the Docs (both +for the [latest release](http://openmc.readthedocs.io/en/stable/) and +[developmental](http://openmc.readthedocs.io/en/latest/) version). If you are +interested in the project or would like to help and contribute, please send a +message to the OpenMC User's Group [mailing +list](https://groups.google.com/forum/?fromgroups=#!forum/openmc-users). + +## Installation + +Detailed [installation +instructions](http://openmc.readthedocs.io/en/stable/usersguide/install.html) +can be found in the User's Guide. + +## Citing + +If you use OpenMC in your research, please consider giving proper attribution by +citing the following publication: + +- Paul K. Romano, Nicholas E. Horelik, Bryan R. Herman, Adam G. Nelson, Benoit + Forget, and Kord Smith, "[OpenMC: A State-of-the-Art Monte Carlo Code for + Research and Development](https://doi.org/10.1016/j.anucene.2014.07.048)," + *Ann. Nucl. Energy*, **82**, 90--97 (2015). + +## Troubleshooting + +If you run into problems compiling, installing, or running OpenMC, first check +the [Troubleshooting +section](http://openmc.readthedocs.io/en/stable/usersguide/troubleshoot.html) in +the User's Guide. If you are not able to find a solution to your problem there, +please send a message to the User's Group [mailing +list](https://groups.google.com/forum/?fromgroups=#!forum/openmc-users). + +## Reporting Bugs + +OpenMC is hosted on GitHub and all bugs are reported and tracked through the +[Issues](https://github.com/openmc-dev/openmc/issues) feature on GitHub. However, +GitHub Issues should not be used for common troubleshooting purposes. If you are +having trouble installing the code or getting your model to run properly, you +should first send a message to the User's Group mailing list. If it turns out +your issue really is a bug in the code, an issue will then be created on +GitHub. If you want to request that a feature be added to the code, you may +create an Issue on github. + +## License + +OpenMC is distributed under the MIT/X +[license](http://openmc.readthedocs.io/en/stable/license.html). diff --git a/cmake/Modules/FindDAGMC.cmake b/cmake/Modules/FindDAGMC.cmake new file mode 100644 index 000000000..c644c8886 --- /dev/null +++ b/cmake/Modules/FindDAGMC.cmake @@ -0,0 +1,18 @@ +# Try to find DAGMC +# +# Once done this will define +# +# DAGMC_FOUND - system has DAGMC +# DAGMC_INCLUDE_DIRS - the DAGMC include directory +# DAGMC_LIBRARIES - Link these to use DAGMC +# DAGMC_DEFINITIONS - Compiler switches required for using DAGMC + +find_path(DAGMC_CMAKE_CONFIG NAMES DAGMCConfig.cmake + HINTS ${DAGMC_ROOT} $ENV{DAGMC_ROOT} + PATHS ENV LD_LIBRARY_PATH + PATH_SUFFIXES lib Lib cmake lib/cmake + NO_DEFAULT_PATH) + +message(STATUS "Found DAGMC in ${DAGMC_CMAKE_CONFIG}") + +include(${DAGMC_CMAKE_CONFIG}/DAGMCConfig.cmake) diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 000000000..a93338df3 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,141 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = build +IMAGEDIR = source/_images + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +# Tikz to PNG conversion +PNGS = $(patsubst %.tex,%.png,$(wildcard $(IMAGEDIR)/*.tex)) + +.PHONY: help images clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +%.png: %.tex + pdflatex --interaction=nonstopmode --output-directory=$(IMAGEDIR) $< + pdftoppm -r 120 -singlefile $(patsubst %.tex,%.pdf, $<) $(basename $<) + convert -trim -fuzz 2% -transparent white $(patsubst %.tex,%.ppm,$<) $@ + +clean: + -rm -rf $(BUILDDIR)/* + -rm -rf source/pythonapi/generated/ + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + sed -i -e 's/div.body/div.content/' $(BUILDDIR)/html/_static/basic.css + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pyne.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pyne.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/pyne" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/pyne" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: images + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: images + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/diagrams/cross_sections.dia b/docs/diagrams/cross_sections.dia new file mode 100644 index 0000000000000000000000000000000000000000..b5495767bdad9480e8de4fac58924132418de907 GIT binary patch literal 2387 zcmZ{mX*3&%7RN&fs_?ss*0#e+D@YtO9dr%EmbK| zOWJAeJA+ngiLGT~sU;d>t1Vt%&w205JMaF^x#xfW-|qe24_ApK4ET5P1J}GfZ?Z0f z6F5F*jOw7fVWAxua>ZNr7-E1uVsB?+7v@;&Xlm44b%DI-k3X>P7SScnibgv$n7kt! zK#QJDsoz0-`L;C0K|E+%N`I8u!}v4~9o~3|OlV{=_OXW>yDj*fw3Y_^?po4t_{ay3 zp@>r2L#Ly!*v53dy#PI2T-@0me2TZIyW^GZ>wD!W z>$avU%(I6?HkR#p{DJ=P4I{Ymr>yMFIVkwqFLKi$Yq9 z$qM()7nL^K4zD;TGsefvTNM1Tp3cMc!h^DAc(uLWNpl27 zV6{t6%1xka(G4EA>28EY&p3!uOSH0Bl z0J+8V-lv^gPBUKcZnYmR{Dm9LieXCOjo}j~68>yl2pzXEYCu*l4g^FWY5O)UoPXk- z6VRo1T_ud`n_<(GfTjiauub5Tuk>a3KIx{Dj{kn;lE&qG@0KsMt%{FN*rhu7a!dxY zaegK|?&ea*QV-$z@;6g+X~Dl=Hf&T6`#M10*j;fVU8{IW{^pOk+WBWq?*IaufZMpN zKC_wHCF*ipt_rwQ=^GpZc|%0nGMjbLz6Q=c{9xFTyQP0p1YOM^Uh7{vU74+lu|8Rs zaws;pni6ku7n#4jnmuYeA?2twREozQnc5v@7+0jGqSCd&t9^0y&LJ`*>R0pPyQo*Q zBJDgzSu%03+CfcHvdhAlo`wG|B30uwAW&e`s*pjpKJ)vcB#Z|4%V_+!LhY z3@^N6wk%@8DU#tDAGKNBV&Zo`p`$et>vrL@U{+?3+;b4O^47a%D?{O_OD^7a&UNeJZbMus!;=buy^(Ybl+o&K^={$VY9F zfg=DzA4IT<=;>C_E56X+w(qA<8Pml7B@GXR6W#-&^WD8~$O0k>`PBi#j$!0!p=bi+ zTDe-ZVl4H(%XcX>UJ-J2^P{`Usdc`1KvB1+#P&U2ypdVsA|g2qFeC{my$CcBwObWK zv@FQg2=bX(nEqDp^;cPf7C=CJi7#&DnL1w_L9w`8InLEoVhFfpU?t(Xf!YBT6=l}8 z_-}{-q)ZJ2B*Pvo#R%YM=S!G z@}vqE{un&j9iZ@0dt*QboxkuCt?bk_fd!76k@O|jzkU6Ourhdeh2|;M~ zZpdO1jlvl=*ujk@xrxi^#|(|nb%XZD0@h@h3IFh_J|~tKG`$X1{?zHvU&pF8)IjaB zxtZ5XZUHST#h3-#hrIbR_H3CrU15w`OSX`>s!hx}QG$;#Y@N`EZA!k!?9qtzO1;M% z)j&m@^6WHNlkZT8F2}O&B!wP~8T8tkpb+P*Ebb_0Y>^?qca8Fzs<`8p?-;afjeX{`-znv zp@BPZ#~+Jc6!^iGYMt`18V%>?okssfNUc$U7(0C0E z7#sgfFt6x^5X?Xr7KNGCO@X6(57FpAahSjl3;?i^nj+X2a}Z_519pRc)Un5<45=RH z1yjA~C{q3u)XYM~toy0BNG(EE#DgGk_XlEaKL^C*kDQH38;o)#ndSUpA2Th|jv*sQ zo$74L3J0ySM0u)g8{w;RgpBuJM|J3Ur6I`aUCz#rS7x2}>6lNt^#p~u1pxdDeY%%* literal 0 HcmV?d00001 diff --git a/docs/diagrams/overview.dia b/docs/diagrams/overview.dia new file mode 100644 index 0000000000000000000000000000000000000000..5aa02e448413a5cf9eb312a8869c4170c435859d GIT binary patch literal 2640 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