Spaces:
Sleeping
Sleeping
Upload 1733 files
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +15 -0
- openmc/mcp_output/README_MCP.md +75 -0
- openmc/mcp_output/analysis.json +2126 -0
- openmc/mcp_output/diff_report.md +59 -0
- openmc/mcp_output/mcp_plugin/__init__.py +0 -0
- openmc/mcp_output/mcp_plugin/adapter.py +200 -0
- openmc/mcp_output/mcp_plugin/main.py +13 -0
- openmc/mcp_output/mcp_plugin/mcp_service.py +108 -0
- openmc/mcp_output/requirements.txt +14 -0
- openmc/mcp_output/start_mcp.py +30 -0
- openmc/mcp_output/workflow_summary.json +207 -0
- openmc/source/.clang-format +109 -0
- openmc/source/.readthedocs.yaml +18 -0
- openmc/source/AGENTS.md +298 -0
- openmc/source/CITATION.cff +68 -0
- openmc/source/CMakeLists.txt +607 -0
- openmc/source/CODEOWNERS +67 -0
- openmc/source/CODE_OF_CONDUCT.md +76 -0
- openmc/source/CONTRIBUTING.md +45 -0
- openmc/source/Dockerfile +241 -0
- openmc/source/LICENSE +19 -0
- openmc/source/MANIFEST.in +47 -0
- openmc/source/README.md +59 -0
- openmc/source/__init__.py +4 -0
- openmc/source/cmake/Modules/FindLIBMESH.cmake +21 -0
- openmc/source/cmake/Modules/GetVersionFromGit.cmake +120 -0
- openmc/source/cmake/OpenMCConfig.cmake.in +37 -0
- openmc/source/cmake/OpenMCConfigVersion.cmake.in +11 -0
- openmc/source/docs/Makefile +141 -0
- openmc/source/docs/diagrams/cross_sections.dia +0 -0
- openmc/source/docs/diagrams/overview.dia +0 -0
- openmc/source/docs/source/_images/2x2_fsrs.jpeg +3 -0
- openmc/source/docs/source/_images/2x2_materials.jpeg +0 -0
- openmc/source/docs/source/_images/2x2_sr_mesh.png +3 -0
- openmc/source/docs/source/_images/3dba.png +0 -0
- openmc/source/docs/source/_images/3dcore.png +3 -0
- openmc/source/docs/source/_images/3dgeomplot.png +0 -0
- openmc/source/docs/source/_images/Tracks.png +0 -0
- openmc/source/docs/source/_images/atr.png +3 -0
- openmc/source/docs/source/_images/cmfd_flow.png +0 -0
- openmc/source/docs/source/_images/cmfd_flow.tex +29 -0
- openmc/source/docs/source/_images/cosine-dist.png +0 -0
- openmc/source/docs/source/_images/fluxplot.png +0 -0
- openmc/source/docs/source/_images/fork.png +0 -0
- openmc/source/docs/source/_images/halfspace.svg +54 -0
- openmc/source/docs/source/_images/hex_lat.svg +780 -0
- openmc/source/docs/source/_images/hexlat_anim.gif +3 -0
- openmc/source/docs/source/_images/loss.png +0 -0
- openmc/source/docs/source/_images/master-slave.png +0 -0
- openmc/source/docs/source/_images/meshfig.png +0 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,18 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
openmc/source/docs/source/_images/2x2_fsrs.jpeg filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
openmc/source/docs/source/_images/2x2_sr_mesh.png filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
openmc/source/docs/source/_images/3dcore.png filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
openmc/source/docs/source/_images/atr.png filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
openmc/source/docs/source/_images/hexlat_anim.gif filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
openmc/source/docs/source/_images/phong_triso.png filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
openmc/source/tests/regression_tests/external_moab/test_mesh_tets.h5m filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
openmc/source/tests/regression_tests/unstructured_mesh/test_mesh_tets_w_holes.e filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
openmc/source/tests/regression_tests/unstructured_mesh/test_mesh_tets_w_holes.exo filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
openmc/source/tests/regression_tests/unstructured_mesh/test_mesh_tets.e filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
openmc/source/tests/regression_tests/unstructured_mesh/test_mesh_tets.exo filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
openmc/source/tests/unit_tests/dagmc/broken_model.h5m filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
openmc/source/tests/unit_tests/dagmc/dagmc.h5m filter=lfs diff=lfs merge=lfs -text
|
| 49 |
+
openmc/source/tests/unit_tests/test_mesh_tets.e filter=lfs diff=lfs merge=lfs -text
|
| 50 |
+
openmc/source/tests/unit_tests/weightwindows/test_mesh_tets.exo filter=lfs diff=lfs merge=lfs -text
|
openmc/mcp_output/README_MCP.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# OpenMC
|
| 2 |
+
|
| 3 |
+
## Project Introduction
|
| 4 |
+
|
| 5 |
+
OpenMC is a community-developed Monte Carlo neutron and photon transport simulation code designed for nuclear reactor physics and neutron/photon transport simulations. It provides capabilities for fixed source transport simulations, k-eigenvalue calculations, and photon transport. OpenMC supports both multi-group and continuous-energy physics, advanced geometry modeling, and parallel execution using MPI and OpenMP.
|
| 6 |
+
|
| 7 |
+
## Installation Method
|
| 8 |
+
|
| 9 |
+
To install OpenMC, ensure you have the following dependencies:
|
| 10 |
+
|
| 11 |
+
- Required: `numpy`, `h5py`, `scipy`
|
| 12 |
+
- Optional: `matplotlib`, `pandas`
|
| 13 |
+
|
| 14 |
+
You can install OpenMC using pip:
|
| 15 |
+
|
| 16 |
+
```
|
| 17 |
+
pip install openmc
|
| 18 |
+
```
|
| 19 |
+
|
| 20 |
+
## Quick Start
|
| 21 |
+
|
| 22 |
+
Here's a quick example of how to use OpenMC to run a simulation:
|
| 23 |
+
|
| 24 |
+
1. Import the OpenMC module.
|
| 25 |
+
2. Define materials, geometry, and settings.
|
| 26 |
+
3. Run the simulation.
|
| 27 |
+
|
| 28 |
+
Example:
|
| 29 |
+
|
| 30 |
+
```
|
| 31 |
+
import openmc
|
| 32 |
+
|
| 33 |
+
# Define materials
|
| 34 |
+
material = openmc.Material()
|
| 35 |
+
material.add_element('U', 1.0)
|
| 36 |
+
material.set_density('g/cm3', 10.0)
|
| 37 |
+
|
| 38 |
+
# Define geometry
|
| 39 |
+
geometry = openmc.Geometry()
|
| 40 |
+
|
| 41 |
+
# Define settings
|
| 42 |
+
settings = openmc.Settings()
|
| 43 |
+
settings.batches = 100
|
| 44 |
+
settings.inactive = 10
|
| 45 |
+
settings.particles = 1000
|
| 46 |
+
|
| 47 |
+
# Run simulation
|
| 48 |
+
openmc.run()
|
| 49 |
+
```
|
| 50 |
+
|
| 51 |
+
## Available Tools and Endpoints List
|
| 52 |
+
|
| 53 |
+
- **openmc.run**: Main function to execute the simulation.
|
| 54 |
+
- **openmc.plot_geometry**: Visualize the geometry of the simulation.
|
| 55 |
+
- **openmc.calculate_volumes**: Calculate volumes of defined regions.
|
| 56 |
+
- **openmc.data.load_ace**: Load ACE files for nuclear data.
|
| 57 |
+
- **openmc.data.get_cross_sections**: Access cross-section data.
|
| 58 |
+
- **openmc.deplete.deplete**: Perform depletion calculations.
|
| 59 |
+
- **openmc.lib.init**: Initialize the OpenMC C++ library.
|
| 60 |
+
- **openmc.lib.finalize**: Finalize the OpenMC C++ library.
|
| 61 |
+
|
| 62 |
+
## Common Issues and Notes
|
| 63 |
+
|
| 64 |
+
- Ensure all required dependencies are installed before running OpenMC.
|
| 65 |
+
- For optimal performance, consider using MPI and OpenMP for parallel execution.
|
| 66 |
+
- If you encounter issues with plotting, ensure `matplotlib` is installed.
|
| 67 |
+
- OpenMC requires a compatible environment with Python 3.x.
|
| 68 |
+
|
| 69 |
+
## Reference Links or Documentation
|
| 70 |
+
|
| 71 |
+
- [OpenMC GitHub Repository](https://github.com/openmc-dev/openmc)
|
| 72 |
+
- [OpenMC Documentation](https://docs.openmc.org)
|
| 73 |
+
- [OpenMC User Guide](https://docs.openmc.org/en/stable/usersguide/index.html)
|
| 74 |
+
|
| 75 |
+
For more detailed information about specific subsystems and advanced features, refer to the OpenMC documentation and user guide.
|
openmc/mcp_output/analysis.json
ADDED
|
@@ -0,0 +1,2126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"summary": {
|
| 3 |
+
"repository_url": "https://github.com/openmc-dev/openmc",
|
| 4 |
+
"summary": "Imported via zip fallback, file count: 658",
|
| 5 |
+
"file_tree": {
|
| 6 |
+
".git_archival.txt": {
|
| 7 |
+
"size": 110
|
| 8 |
+
},
|
| 9 |
+
".github/ISSUE_TEMPLATE/bug_report.md": {
|
| 10 |
+
"size": 770
|
| 11 |
+
},
|
| 12 |
+
".github/ISSUE_TEMPLATE/config.yml": {
|
| 13 |
+
"size": 207
|
| 14 |
+
},
|
| 15 |
+
".github/ISSUE_TEMPLATE/documentation.md": {
|
| 16 |
+
"size": 250
|
| 17 |
+
},
|
| 18 |
+
".github/ISSUE_TEMPLATE/feature_request.md": {
|
| 19 |
+
"size": 434
|
| 20 |
+
},
|
| 21 |
+
".github/pull_request_template.md": {
|
| 22 |
+
"size": 1091
|
| 23 |
+
},
|
| 24 |
+
".github/workflows/ci.yml": {
|
| 25 |
+
"size": 6634
|
| 26 |
+
},
|
| 27 |
+
".github/workflows/dockerhub-publish-dagmc-libmesh.yml": {
|
| 28 |
+
"size": 884
|
| 29 |
+
},
|
| 30 |
+
".github/workflows/dockerhub-publish-dagmc.yml": {
|
| 31 |
+
"size": 840
|
| 32 |
+
},
|
| 33 |
+
".github/workflows/dockerhub-publish-dev.yml": {
|
| 34 |
+
"size": 838
|
| 35 |
+
},
|
| 36 |
+
".github/workflows/dockerhub-publish-develop-dagmc-libmesh.yml": {
|
| 37 |
+
"size": 922
|
| 38 |
+
},
|
| 39 |
+
".github/workflows/dockerhub-publish-develop-dagmc.yml": {
|
| 40 |
+
"size": 877
|
| 41 |
+
},
|
| 42 |
+
".github/workflows/dockerhub-publish-develop-libmesh.yml": {
|
| 43 |
+
"size": 883
|
| 44 |
+
},
|
| 45 |
+
".github/workflows/dockerhub-publish-libmesh.yml": {
|
| 46 |
+
"size": 846
|
| 47 |
+
},
|
| 48 |
+
".github/workflows/dockerhub-publish-release-dagmc-libmesh.yml": {
|
| 49 |
+
"size": 1032
|
| 50 |
+
},
|
| 51 |
+
".github/workflows/dockerhub-publish-release-dagmc.yml": {
|
| 52 |
+
"size": 988
|
| 53 |
+
},
|
| 54 |
+
".github/workflows/dockerhub-publish-release-libmesh.yml": {
|
| 55 |
+
"size": 993
|
| 56 |
+
},
|
| 57 |
+
".github/workflows/dockerhub-publish-release.yml": {
|
| 58 |
+
"size": 949
|
| 59 |
+
},
|
| 60 |
+
".github/workflows/dockerhub-publish.yml": {
|
| 61 |
+
"size": 801
|
| 62 |
+
},
|
| 63 |
+
".github/workflows/format-check.yml": {
|
| 64 |
+
"size": 811
|
| 65 |
+
},
|
| 66 |
+
".readthedocs.yaml": {
|
| 67 |
+
"size": 271
|
| 68 |
+
},
|
| 69 |
+
"CMakeLists.txt": {
|
| 70 |
+
"size": 21634
|
| 71 |
+
},
|
| 72 |
+
"CODE_OF_CONDUCT.md": {
|
| 73 |
+
"size": 3454
|
| 74 |
+
},
|
| 75 |
+
"CONTRIBUTING.md": {
|
| 76 |
+
"size": 1769
|
| 77 |
+
},
|
| 78 |
+
"README.md": {
|
| 79 |
+
"size": 3349
|
| 80 |
+
},
|
| 81 |
+
"docs/source/conf.py": {
|
| 82 |
+
"size": 7786
|
| 83 |
+
},
|
| 84 |
+
"examples/assembly/assembly.py": {
|
| 85 |
+
"size": 5003
|
| 86 |
+
},
|
| 87 |
+
"examples/custom_source/CMakeLists.txt": {
|
| 88 |
+
"size": 272
|
| 89 |
+
},
|
| 90 |
+
"examples/custom_source/README.md": {
|
| 91 |
+
"size": 995
|
| 92 |
+
},
|
| 93 |
+
"examples/custom_source/build_xml.py": {
|
| 94 |
+
"size": 1017
|
| 95 |
+
},
|
| 96 |
+
"examples/custom_source/show_flux.py": {
|
| 97 |
+
"size": 352
|
| 98 |
+
},
|
| 99 |
+
"examples/jezebel/jezebel.py": {
|
| 100 |
+
"size": 859
|
| 101 |
+
},
|
| 102 |
+
"examples/lattice/hexagonal/build_xml.py": {
|
| 103 |
+
"size": 5415
|
| 104 |
+
},
|
| 105 |
+
"examples/lattice/nested/build_xml.py": {
|
| 106 |
+
"size": 5557
|
| 107 |
+
},
|
| 108 |
+
"examples/lattice/simple/build_xml.py": {
|
| 109 |
+
"size": 5477
|
| 110 |
+
},
|
| 111 |
+
"examples/parameterized_custom_source/CMakeLists.txt": {
|
| 112 |
+
"size": 314
|
| 113 |
+
},
|
| 114 |
+
"examples/parameterized_custom_source/README.md": {
|
| 115 |
+
"size": 1209
|
| 116 |
+
},
|
| 117 |
+
"examples/parameterized_custom_source/build_xml.py": {
|
| 118 |
+
"size": 1080
|
| 119 |
+
},
|
| 120 |
+
"examples/parameterized_custom_source/show_flux.py": {
|
| 121 |
+
"size": 352
|
| 122 |
+
},
|
| 123 |
+
"examples/pincell/build_xml.py": {
|
| 124 |
+
"size": 3955
|
| 125 |
+
},
|
| 126 |
+
"examples/pincell/plot_spectrum.py": {
|
| 127 |
+
"size": 608
|
| 128 |
+
},
|
| 129 |
+
"examples/pincell_depletion/restart_depletion.py": {
|
| 130 |
+
"size": 3384
|
| 131 |
+
},
|
| 132 |
+
"examples/pincell_depletion/run_depletion.py": {
|
| 133 |
+
"size": 5112
|
| 134 |
+
},
|
| 135 |
+
"examples/pincell_multigroup/build_xml.py": {
|
| 136 |
+
"size": 6199
|
| 137 |
+
},
|
| 138 |
+
"examples/pincell_pulsed/run_pulse.py": {
|
| 139 |
+
"size": 3330
|
| 140 |
+
},
|
| 141 |
+
"examples/pincell_random_ray/build_xml.py": {
|
| 142 |
+
"size": 8646
|
| 143 |
+
},
|
| 144 |
+
"openmc/__init__.py": {
|
| 145 |
+
"size": 1262
|
| 146 |
+
},
|
| 147 |
+
"openmc/_xml.py": {
|
| 148 |
+
"size": 2725
|
| 149 |
+
},
|
| 150 |
+
"openmc/arithmetic.py": {
|
| 151 |
+
"size": 24455
|
| 152 |
+
},
|
| 153 |
+
"openmc/bounding_box.py": {
|
| 154 |
+
"size": 6187
|
| 155 |
+
},
|
| 156 |
+
"openmc/cell.py": {
|
| 157 |
+
"size": 28309
|
| 158 |
+
},
|
| 159 |
+
"openmc/checkvalue.py": {
|
| 160 |
+
"size": 12286
|
| 161 |
+
},
|
| 162 |
+
"openmc/cmfd.py": {
|
| 163 |
+
"size": 123226
|
| 164 |
+
},
|
| 165 |
+
"openmc/config.py": {
|
| 166 |
+
"size": 7564
|
| 167 |
+
},
|
| 168 |
+
"openmc/dagmc.py": {
|
| 169 |
+
"size": 22889
|
| 170 |
+
},
|
| 171 |
+
"openmc/data/__init__.py": {
|
| 172 |
+
"size": 924
|
| 173 |
+
},
|
| 174 |
+
"openmc/data/ace.py": {
|
| 175 |
+
"size": 19970
|
| 176 |
+
},
|
| 177 |
+
"openmc/data/angle_distribution.py": {
|
| 178 |
+
"size": 9906
|
| 179 |
+
},
|
| 180 |
+
"openmc/data/angle_energy.py": {
|
| 181 |
+
"size": 4615
|
| 182 |
+
},
|
| 183 |
+
"openmc/data/correlated.py": {
|
| 184 |
+
"size": 16795
|
| 185 |
+
},
|
| 186 |
+
"openmc/data/data.py": {
|
| 187 |
+
"size": 23386
|
| 188 |
+
},
|
| 189 |
+
"openmc/data/decay.py": {
|
| 190 |
+
"size": 23769
|
| 191 |
+
},
|
| 192 |
+
"openmc/data/effective_dose/__init__.py": {
|
| 193 |
+
"size": 0
|
| 194 |
+
},
|
| 195 |
+
"openmc/data/effective_dose/dose.py": {
|
| 196 |
+
"size": 4321
|
| 197 |
+
},
|
| 198 |
+
"openmc/data/effective_dose/icrp116/electrons.txt": {
|
| 199 |
+
"size": 2616
|
| 200 |
+
},
|
| 201 |
+
"openmc/data/effective_dose/icrp116/helium_ions.txt": {
|
| 202 |
+
"size": 1231
|
| 203 |
+
},
|
| 204 |
+
"openmc/data/effective_dose/icrp116/negative_muons.txt": {
|
| 205 |
+
"size": 2161
|
| 206 |
+
},
|
| 207 |
+
"openmc/data/effective_dose/icrp116/negative_pions.txt": {
|
| 208 |
+
"size": 2309
|
| 209 |
+
},
|
| 210 |
+
"openmc/data/effective_dose/icrp116/neutrons.txt": {
|
| 211 |
+
"size": 6211
|
| 212 |
+
},
|
| 213 |
+
"openmc/data/effective_dose/icrp116/photons.txt": {
|
| 214 |
+
"size": 5114
|
| 215 |
+
},
|
| 216 |
+
"openmc/data/effective_dose/icrp116/photons_kerma.txt": {
|
| 217 |
+
"size": 3229
|
| 218 |
+
},
|
| 219 |
+
"openmc/data/effective_dose/icrp116/positive_muons.txt": {
|
| 220 |
+
"size": 2159
|
| 221 |
+
},
|
| 222 |
+
"openmc/data/effective_dose/icrp116/positive_pions.txt": {
|
| 223 |
+
"size": 2318
|
| 224 |
+
},
|
| 225 |
+
"openmc/data/effective_dose/icrp116/positrons.txt": {
|
| 226 |
+
"size": 2597
|
| 227 |
+
},
|
| 228 |
+
"openmc/data/effective_dose/icrp116/protons.txt": {
|
| 229 |
+
"size": 3156
|
| 230 |
+
},
|
| 231 |
+
"openmc/data/effective_dose/icrp74/generate_photon_effective_dose.py": {
|
| 232 |
+
"size": 2786
|
| 233 |
+
},
|
| 234 |
+
"openmc/data/effective_dose/icrp74/neutrons.txt": {
|
| 235 |
+
"size": 3407
|
| 236 |
+
},
|
| 237 |
+
"openmc/data/effective_dose/icrp74/photons.txt": {
|
| 238 |
+
"size": 2159
|
| 239 |
+
},
|
| 240 |
+
"openmc/data/endf.py": {
|
| 241 |
+
"size": 16119
|
| 242 |
+
},
|
| 243 |
+
"openmc/data/energy_distribution.py": {
|
| 244 |
+
"size": 36954
|
| 245 |
+
},
|
| 246 |
+
"openmc/data/fission_energy.py": {
|
| 247 |
+
"size": 14885
|
| 248 |
+
},
|
| 249 |
+
"openmc/data/function.py": {
|
| 250 |
+
"size": 21767
|
| 251 |
+
},
|
| 252 |
+
"openmc/data/grid.py": {
|
| 253 |
+
"size": 3273
|
| 254 |
+
},
|
| 255 |
+
"openmc/data/half_life.json": {
|
| 256 |
+
"size": 73859
|
| 257 |
+
},
|
| 258 |
+
"openmc/data/kalbach_mann.py": {
|
| 259 |
+
"size": 23202
|
| 260 |
+
},
|
| 261 |
+
"openmc/data/laboratory.py": {
|
| 262 |
+
"size": 4400
|
| 263 |
+
},
|
| 264 |
+
"openmc/data/library.py": {
|
| 265 |
+
"size": 6172
|
| 266 |
+
},
|
| 267 |
+
"openmc/data/mass_1.mas20.txt": {
|
| 268 |
+
"size": 472648
|
| 269 |
+
},
|
| 270 |
+
"openmc/data/multipole.py": {
|
| 271 |
+
"size": 46360
|
| 272 |
+
},
|
| 273 |
+
"openmc/data/nbody.py": {
|
| 274 |
+
"size": 4735
|
| 275 |
+
},
|
| 276 |
+
"openmc/data/neutron.py": {
|
| 277 |
+
"size": 33382
|
| 278 |
+
},
|
| 279 |
+
"openmc/data/njoy.py": {
|
| 280 |
+
"size": 26932
|
| 281 |
+
},
|
| 282 |
+
"openmc/data/photon.py": {
|
| 283 |
+
"size": 45205
|
| 284 |
+
},
|
| 285 |
+
"openmc/data/product.py": {
|
| 286 |
+
"size": 5830
|
| 287 |
+
},
|
| 288 |
+
"openmc/data/reaction.py": {
|
| 289 |
+
"size": 44995
|
| 290 |
+
},
|
| 291 |
+
"openmc/data/resonance.py": {
|
| 292 |
+
"size": 38093
|
| 293 |
+
},
|
| 294 |
+
"openmc/data/resonance_covariance.py": {
|
| 295 |
+
"size": 26544
|
| 296 |
+
},
|
| 297 |
+
"openmc/data/thermal.py": {
|
| 298 |
+
"size": 43258
|
| 299 |
+
},
|
| 300 |
+
"openmc/data/thermal_angle_energy.py": {
|
| 301 |
+
"size": 8228
|
| 302 |
+
},
|
| 303 |
+
"openmc/data/uncorrelated.py": {
|
| 304 |
+
"size": 2612
|
| 305 |
+
},
|
| 306 |
+
"openmc/data/urr.py": {
|
| 307 |
+
"size": 7404
|
| 308 |
+
},
|
| 309 |
+
"openmc/deplete/__init__.py": {
|
| 310 |
+
"size": 475
|
| 311 |
+
},
|
| 312 |
+
"openmc/deplete/_matrix_funcs.py": {
|
| 313 |
+
"size": 3187
|
| 314 |
+
},
|
| 315 |
+
"openmc/deplete/abc.py": {
|
| 316 |
+
"size": 49095
|
| 317 |
+
},
|
| 318 |
+
"openmc/deplete/atom_number.py": {
|
| 319 |
+
"size": 7074
|
| 320 |
+
},
|
| 321 |
+
"openmc/deplete/chain.py": {
|
| 322 |
+
"size": 52258
|
| 323 |
+
},
|
| 324 |
+
"openmc/deplete/coupled_operator.py": {
|
| 325 |
+
"size": 21408
|
| 326 |
+
},
|
| 327 |
+
"openmc/deplete/cram.py": {
|
| 328 |
+
"size": 6753
|
| 329 |
+
},
|
| 330 |
+
"openmc/deplete/d1s.py": {
|
| 331 |
+
"size": 8899
|
| 332 |
+
},
|
| 333 |
+
"openmc/deplete/helpers.py": {
|
| 334 |
+
"size": 38229
|
| 335 |
+
},
|
| 336 |
+
"openmc/deplete/independent_operator.py": {
|
| 337 |
+
"size": 17674
|
| 338 |
+
},
|
| 339 |
+
"openmc/deplete/integrators.py": {
|
| 340 |
+
"size": 21603
|
| 341 |
+
},
|
| 342 |
+
"openmc/deplete/microxs.py": {
|
| 343 |
+
"size": 20279
|
| 344 |
+
},
|
| 345 |
+
"openmc/deplete/nuclide.py": {
|
| 346 |
+
"size": 23682
|
| 347 |
+
},
|
| 348 |
+
"openmc/deplete/openmc_operator.py": {
|
| 349 |
+
"size": 20336
|
| 350 |
+
},
|
| 351 |
+
"openmc/deplete/pool.py": {
|
| 352 |
+
"size": 8432
|
| 353 |
+
},
|
| 354 |
+
"openmc/deplete/r2s.py": {
|
| 355 |
+
"size": 30274
|
| 356 |
+
},
|
| 357 |
+
"openmc/deplete/reaction_rates.py": {
|
| 358 |
+
"size": 4870
|
| 359 |
+
},
|
| 360 |
+
"openmc/deplete/results.py": {
|
| 361 |
+
"size": 22145
|
| 362 |
+
},
|
| 363 |
+
"openmc/deplete/stepresult.py": {
|
| 364 |
+
"size": 20398
|
| 365 |
+
},
|
| 366 |
+
"openmc/deplete/transfer_rates.py": {
|
| 367 |
+
"size": 18953
|
| 368 |
+
},
|
| 369 |
+
"openmc/dummy_comm.py": {
|
| 370 |
+
"size": 599
|
| 371 |
+
},
|
| 372 |
+
"openmc/element.py": {
|
| 373 |
+
"size": 14410
|
| 374 |
+
},
|
| 375 |
+
"openmc/examples.py": {
|
| 376 |
+
"size": 44171
|
| 377 |
+
},
|
| 378 |
+
"openmc/exceptions.py": {
|
| 379 |
+
"size": 796
|
| 380 |
+
},
|
| 381 |
+
"openmc/executor.py": {
|
| 382 |
+
"size": 10225
|
| 383 |
+
},
|
| 384 |
+
"openmc/filter.py": {
|
| 385 |
+
"size": 84767
|
| 386 |
+
},
|
| 387 |
+
"openmc/filter_expansion.py": {
|
| 388 |
+
"size": 18232
|
| 389 |
+
},
|
| 390 |
+
"openmc/geometry.py": {
|
| 391 |
+
"size": 26340
|
| 392 |
+
},
|
| 393 |
+
"openmc/lattice.py": {
|
| 394 |
+
"size": 79449
|
| 395 |
+
},
|
| 396 |
+
"openmc/lib/__init__.py": {
|
| 397 |
+
"size": 1950
|
| 398 |
+
},
|
| 399 |
+
"openmc/lib/cell.py": {
|
| 400 |
+
"size": 12395
|
| 401 |
+
},
|
| 402 |
+
"openmc/lib/core.py": {
|
| 403 |
+
"size": 23016
|
| 404 |
+
},
|
| 405 |
+
"openmc/lib/dagmc.py": {
|
| 406 |
+
"size": 1202
|
| 407 |
+
},
|
| 408 |
+
"openmc/lib/error.py": {
|
| 409 |
+
"size": 1394
|
| 410 |
+
},
|
| 411 |
+
"openmc/lib/filter.py": {
|
| 412 |
+
"size": 24293
|
| 413 |
+
},
|
| 414 |
+
"openmc/lib/material.py": {
|
| 415 |
+
"size": 10399
|
| 416 |
+
},
|
| 417 |
+
"openmc/lib/math.py": {
|
| 418 |
+
"size": 1685
|
| 419 |
+
},
|
| 420 |
+
"openmc/lib/mesh.py": {
|
| 421 |
+
"size": 25801
|
| 422 |
+
},
|
| 423 |
+
"openmc/lib/nuclide.py": {
|
| 424 |
+
"size": 4009
|
| 425 |
+
},
|
| 426 |
+
"openmc/lib/plot.py": {
|
| 427 |
+
"size": 7339
|
| 428 |
+
},
|
| 429 |
+
"openmc/lib/settings.py": {
|
| 430 |
+
"size": 3854
|
| 431 |
+
},
|
| 432 |
+
"openmc/lib/tally.py": {
|
| 433 |
+
"size": 15670
|
| 434 |
+
},
|
| 435 |
+
"openmc/lib/weight_windows.py": {
|
| 436 |
+
"size": 14797
|
| 437 |
+
},
|
| 438 |
+
"openmc/macroscopic.py": {
|
| 439 |
+
"size": 477
|
| 440 |
+
},
|
| 441 |
+
"openmc/material.py": {
|
| 442 |
+
"size": 79799
|
| 443 |
+
},
|
| 444 |
+
"openmc/mesh.py": {
|
| 445 |
+
"size": 102818
|
| 446 |
+
},
|
| 447 |
+
"openmc/mgxs/__init__.py": {
|
| 448 |
+
"size": 85530
|
| 449 |
+
},
|
| 450 |
+
"openmc/mgxs/groups.py": {
|
| 451 |
+
"size": 9667
|
| 452 |
+
},
|
| 453 |
+
"openmc/mgxs/library.py": {
|
| 454 |
+
"size": 65787
|
| 455 |
+
},
|
| 456 |
+
"openmc/mgxs/mdgxs.py": {
|
| 457 |
+
"size": 122863
|
| 458 |
+
},
|
| 459 |
+
"openmc/mgxs/mgxs.py": {
|
| 460 |
+
"size": 265289
|
| 461 |
+
},
|
| 462 |
+
"openmc/mgxs_library.py": {
|
| 463 |
+
"size": 103582
|
| 464 |
+
},
|
| 465 |
+
"openmc/mixin.py": {
|
| 466 |
+
"size": 3348
|
| 467 |
+
},
|
| 468 |
+
"openmc/model/__init__.py": {
|
| 469 |
+
"size": 96
|
| 470 |
+
},
|
| 471 |
+
"openmc/model/funcs.py": {
|
| 472 |
+
"size": 10826
|
| 473 |
+
},
|
| 474 |
+
"openmc/model/model.py": {
|
| 475 |
+
"size": 100057
|
| 476 |
+
},
|
| 477 |
+
"openmc/model/surface_composite.py": {
|
| 478 |
+
"size": 77897
|
| 479 |
+
},
|
| 480 |
+
"openmc/model/triso.py": {
|
| 481 |
+
"size": 44518
|
| 482 |
+
},
|
| 483 |
+
"openmc/mpi.py": {
|
| 484 |
+
"size": 213
|
| 485 |
+
},
|
| 486 |
+
"openmc/nuclide.py": {
|
| 487 |
+
"size": 826
|
| 488 |
+
},
|
| 489 |
+
"openmc/openmoc_compatible.py": {
|
| 490 |
+
"size": 26108
|
| 491 |
+
},
|
| 492 |
+
"openmc/particle_restart.py": {
|
| 493 |
+
"size": 1796
|
| 494 |
+
},
|
| 495 |
+
"openmc/plots.py": {
|
| 496 |
+
"size": 67430
|
| 497 |
+
},
|
| 498 |
+
"openmc/plotter.py": {
|
| 499 |
+
"size": 41316
|
| 500 |
+
},
|
| 501 |
+
"openmc/polynomial.py": {
|
| 502 |
+
"size": 4722
|
| 503 |
+
},
|
| 504 |
+
"openmc/region.py": {
|
| 505 |
+
"size": 21418
|
| 506 |
+
},
|
| 507 |
+
"openmc/search.py": {
|
| 508 |
+
"size": 7184
|
| 509 |
+
},
|
| 510 |
+
"openmc/settings.py": {
|
| 511 |
+
"size": 110147
|
| 512 |
+
},
|
| 513 |
+
"openmc/source.py": {
|
| 514 |
+
"size": 46355
|
| 515 |
+
},
|
| 516 |
+
"openmc/statepoint.py": {
|
| 517 |
+
"size": 27765
|
| 518 |
+
},
|
| 519 |
+
"openmc/stats/__init__.py": {
|
| 520 |
+
"size": 78
|
| 521 |
+
},
|
| 522 |
+
"openmc/stats/multivariate.py": {
|
| 523 |
+
"size": 33386
|
| 524 |
+
},
|
| 525 |
+
"openmc/stats/univariate.py": {
|
| 526 |
+
"size": 44189
|
| 527 |
+
},
|
| 528 |
+
"openmc/summary.py": {
|
| 529 |
+
"size": 9122
|
| 530 |
+
},
|
| 531 |
+
"openmc/surface.py": {
|
| 532 |
+
"size": 97568
|
| 533 |
+
},
|
| 534 |
+
"openmc/tallies.py": {
|
| 535 |
+
"size": 151844
|
| 536 |
+
},
|
| 537 |
+
"openmc/tally_derivative.py": {
|
| 538 |
+
"size": 3845
|
| 539 |
+
},
|
| 540 |
+
"openmc/tracks.py": {
|
| 541 |
+
"size": 10108
|
| 542 |
+
},
|
| 543 |
+
"openmc/trigger.py": {
|
| 544 |
+
"size": 4479
|
| 545 |
+
},
|
| 546 |
+
"openmc/universe.py": {
|
| 547 |
+
"size": 15871
|
| 548 |
+
},
|
| 549 |
+
"openmc/utility_funcs.py": {
|
| 550 |
+
"size": 1935
|
| 551 |
+
},
|
| 552 |
+
"openmc/volume.py": {
|
| 553 |
+
"size": 13915
|
| 554 |
+
},
|
| 555 |
+
"openmc/waste.py": {
|
| 556 |
+
"size": 9691
|
| 557 |
+
},
|
| 558 |
+
"openmc/weight_windows.py": {
|
| 559 |
+
"size": 37798
|
| 560 |
+
},
|
| 561 |
+
"pyproject.toml": {
|
| 562 |
+
"size": 1870
|
| 563 |
+
},
|
| 564 |
+
"pytest.ini": {
|
| 565 |
+
"size": 110
|
| 566 |
+
},
|
| 567 |
+
"tests/__init__.py": {
|
| 568 |
+
"size": 611
|
| 569 |
+
},
|
| 570 |
+
"tests/conftest.py": {
|
| 571 |
+
"size": 1501
|
| 572 |
+
},
|
| 573 |
+
"tests/cpp_unit_tests/CMakeLists.txt": {
|
| 574 |
+
"size": 405
|
| 575 |
+
},
|
| 576 |
+
"tests/dummy_operator.py": {
|
| 577 |
+
"size": 6838
|
| 578 |
+
},
|
| 579 |
+
"tests/regression_tests/__init__.py": {
|
| 580 |
+
"size": 1775
|
| 581 |
+
},
|
| 582 |
+
"tests/regression_tests/adj_cell_rotation/__init__.py": {
|
| 583 |
+
"size": 0
|
| 584 |
+
},
|
| 585 |
+
"tests/regression_tests/adj_cell_rotation/test.py": {
|
| 586 |
+
"size": 1533
|
| 587 |
+
},
|
| 588 |
+
"tests/regression_tests/albedo_box/__init__.py": {
|
| 589 |
+
"size": 0
|
| 590 |
+
},
|
| 591 |
+
"tests/regression_tests/albedo_box/test.py": {
|
| 592 |
+
"size": 136
|
| 593 |
+
},
|
| 594 |
+
"tests/regression_tests/asymmetric_lattice/__init__.py": {
|
| 595 |
+
"size": 0
|
| 596 |
+
},
|
| 597 |
+
"tests/regression_tests/asymmetric_lattice/test.py": {
|
| 598 |
+
"size": 3606
|
| 599 |
+
},
|
| 600 |
+
"tests/regression_tests/cmfd_feed/__init__.py": {
|
| 601 |
+
"size": 0
|
| 602 |
+
},
|
| 603 |
+
"tests/regression_tests/cmfd_feed/test.py": {
|
| 604 |
+
"size": 6494
|
| 605 |
+
},
|
| 606 |
+
"tests/regression_tests/cmfd_feed_2g/__init__.py": {
|
| 607 |
+
"size": 0
|
| 608 |
+
},
|
| 609 |
+
"tests/regression_tests/cmfd_feed_2g/test.py": {
|
| 610 |
+
"size": 952
|
| 611 |
+
},
|
| 612 |
+
"tests/regression_tests/cmfd_feed_expanding_window/__init__.py": {
|
| 613 |
+
"size": 0
|
| 614 |
+
},
|
| 615 |
+
"tests/regression_tests/cmfd_feed_expanding_window/test.py": {
|
| 616 |
+
"size": 843
|
| 617 |
+
},
|
| 618 |
+
"tests/regression_tests/cmfd_feed_ng/__init__.py": {
|
| 619 |
+
"size": 0
|
| 620 |
+
},
|
| 621 |
+
"tests/regression_tests/cmfd_feed_ng/test.py": {
|
| 622 |
+
"size": 980
|
| 623 |
+
},
|
| 624 |
+
"tests/regression_tests/cmfd_feed_rectlin/__init__.py": {
|
| 625 |
+
"size": 0
|
| 626 |
+
},
|
| 627 |
+
"tests/regression_tests/cmfd_feed_rectlin/test.py": {
|
| 628 |
+
"size": 964
|
| 629 |
+
},
|
| 630 |
+
"tests/regression_tests/cmfd_feed_ref_d/__init__.py": {
|
| 631 |
+
"size": 0
|
| 632 |
+
},
|
| 633 |
+
"tests/regression_tests/cmfd_feed_ref_d/test.py": {
|
| 634 |
+
"size": 872
|
| 635 |
+
},
|
| 636 |
+
"tests/regression_tests/cmfd_feed_rolling_window/__init__.py": {
|
| 637 |
+
"size": 0
|
| 638 |
+
},
|
| 639 |
+
"tests/regression_tests/cmfd_feed_rolling_window/test.py": {
|
| 640 |
+
"size": 870
|
| 641 |
+
},
|
| 642 |
+
"tests/regression_tests/cmfd_nofeed/__init__.py": {
|
| 643 |
+
"size": 0
|
| 644 |
+
},
|
| 645 |
+
"tests/regression_tests/cmfd_nofeed/test.py": {
|
| 646 |
+
"size": 827
|
| 647 |
+
},
|
| 648 |
+
"tests/regression_tests/cmfd_restart/__init__.py": {
|
| 649 |
+
"size": 0
|
| 650 |
+
},
|
| 651 |
+
"tests/regression_tests/cmfd_restart/test.py": {
|
| 652 |
+
"size": 2461
|
| 653 |
+
},
|
| 654 |
+
"tests/regression_tests/collision_track/__init__.py": {
|
| 655 |
+
"size": 0
|
| 656 |
+
},
|
| 657 |
+
"tests/regression_tests/collision_track/test.py": {
|
| 658 |
+
"size": 8936
|
| 659 |
+
},
|
| 660 |
+
"tests/regression_tests/complex_cell/__init__.py": {
|
| 661 |
+
"size": 0
|
| 662 |
+
},
|
| 663 |
+
"tests/regression_tests/complex_cell/test.py": {
|
| 664 |
+
"size": 138
|
| 665 |
+
},
|
| 666 |
+
"tests/regression_tests/confidence_intervals/__init__.py": {
|
| 667 |
+
"size": 0
|
| 668 |
+
},
|
| 669 |
+
"tests/regression_tests/confidence_intervals/test.py": {
|
| 670 |
+
"size": 146
|
| 671 |
+
},
|
| 672 |
+
"tests/regression_tests/conftest.py": {
|
| 673 |
+
"size": 580
|
| 674 |
+
},
|
| 675 |
+
"tests/regression_tests/cpp_driver/__init__.py": {
|
| 676 |
+
"size": 0
|
| 677 |
+
},
|
| 678 |
+
"tests/regression_tests/cpp_driver/test.py": {
|
| 679 |
+
"size": 4500
|
| 680 |
+
},
|
| 681 |
+
"tests/regression_tests/create_fission_neutrons/__init__.py": {
|
| 682 |
+
"size": 0
|
| 683 |
+
},
|
| 684 |
+
"tests/regression_tests/create_fission_neutrons/test.py": {
|
| 685 |
+
"size": 2628
|
| 686 |
+
},
|
| 687 |
+
"tests/regression_tests/dagmc/__init__.py": {
|
| 688 |
+
"size": 0
|
| 689 |
+
},
|
| 690 |
+
"tests/regression_tests/dagmc/external/__init__.py": {
|
| 691 |
+
"size": 0
|
| 692 |
+
},
|
| 693 |
+
"tests/regression_tests/dagmc/external/test.py": {
|
| 694 |
+
"size": 4261
|
| 695 |
+
},
|
| 696 |
+
"tests/regression_tests/dagmc/legacy/__init__.py": {
|
| 697 |
+
"size": 0
|
| 698 |
+
},
|
| 699 |
+
"tests/regression_tests/dagmc/legacy/test.py": {
|
| 700 |
+
"size": 3103
|
| 701 |
+
},
|
| 702 |
+
"tests/regression_tests/dagmc/refl/__init__.py": {
|
| 703 |
+
"size": 0
|
| 704 |
+
},
|
| 705 |
+
"tests/regression_tests/dagmc/refl/test.py": {
|
| 706 |
+
"size": 1095
|
| 707 |
+
},
|
| 708 |
+
"tests/regression_tests/dagmc/universes/__init__.py": {
|
| 709 |
+
"size": 0
|
| 710 |
+
},
|
| 711 |
+
"tests/regression_tests/dagmc/universes/test.py": {
|
| 712 |
+
"size": 3592
|
| 713 |
+
},
|
| 714 |
+
"tests/regression_tests/dagmc/uwuw/__init__.py": {
|
| 715 |
+
"size": 0
|
| 716 |
+
},
|
| 717 |
+
"tests/regression_tests/dagmc/uwuw/test.py": {
|
| 718 |
+
"size": 1080
|
| 719 |
+
},
|
| 720 |
+
"tests/regression_tests/density/__init__.py": {
|
| 721 |
+
"size": 0
|
| 722 |
+
},
|
| 723 |
+
"tests/regression_tests/density/test.py": {
|
| 724 |
+
"size": 133
|
| 725 |
+
},
|
| 726 |
+
"tests/regression_tests/deplete_decay_only/__init__.py": {
|
| 727 |
+
"size": 0
|
| 728 |
+
},
|
| 729 |
+
"tests/regression_tests/deplete_decay_only/test.py": {
|
| 730 |
+
"size": 3533
|
| 731 |
+
},
|
| 732 |
+
"tests/regression_tests/deplete_no_transport/__init__.py": {
|
| 733 |
+
"size": 0
|
| 734 |
+
},
|
| 735 |
+
"tests/regression_tests/deplete_no_transport/test.py": {
|
| 736 |
+
"size": 6541
|
| 737 |
+
},
|
| 738 |
+
"tests/regression_tests/deplete_with_transfer_rates/__init__.py": {
|
| 739 |
+
"size": 0
|
| 740 |
+
},
|
| 741 |
+
"tests/regression_tests/deplete_with_transfer_rates/test.py": {
|
| 742 |
+
"size": 4358
|
| 743 |
+
},
|
| 744 |
+
"tests/regression_tests/deplete_with_transport/__init__.py": {
|
| 745 |
+
"size": 0
|
| 746 |
+
},
|
| 747 |
+
"tests/regression_tests/deplete_with_transport/example_geometry.py": {
|
| 748 |
+
"size": 12190
|
| 749 |
+
},
|
| 750 |
+
"tests/regression_tests/deplete_with_transport/test.py": {
|
| 751 |
+
"size": 6525
|
| 752 |
+
},
|
| 753 |
+
"tests/regression_tests/diff_tally/__init__.py": {
|
| 754 |
+
"size": 0
|
| 755 |
+
},
|
| 756 |
+
"tests/regression_tests/diff_tally/test.py": {
|
| 757 |
+
"size": 4124
|
| 758 |
+
},
|
| 759 |
+
"tests/regression_tests/distribmat/__init__.py": {
|
| 760 |
+
"size": 0
|
| 761 |
+
},
|
| 762 |
+
"tests/regression_tests/distribmat/test.py": {
|
| 763 |
+
"size": 3269
|
| 764 |
+
},
|
| 765 |
+
"tests/regression_tests/eigenvalue_genperbatch/__init__.py": {
|
| 766 |
+
"size": 0
|
| 767 |
+
},
|
| 768 |
+
"tests/regression_tests/eigenvalue_genperbatch/test.py": {
|
| 769 |
+
"size": 892
|
| 770 |
+
},
|
| 771 |
+
"tests/regression_tests/eigenvalue_no_inactive/__init__.py": {
|
| 772 |
+
"size": 0
|
| 773 |
+
},
|
| 774 |
+
"tests/regression_tests/eigenvalue_no_inactive/test.py": {
|
| 775 |
+
"size": 148
|
| 776 |
+
},
|
| 777 |
+
"tests/regression_tests/electron_heating/__init__.py": {
|
| 778 |
+
"size": 0
|
| 779 |
+
},
|
| 780 |
+
"tests/regression_tests/electron_heating/test.py": {
|
| 781 |
+
"size": 1114
|
| 782 |
+
},
|
| 783 |
+
"tests/regression_tests/energy_cutoff/__init__.py": {
|
| 784 |
+
"size": 0
|
| 785 |
+
},
|
| 786 |
+
"tests/regression_tests/energy_cutoff/test.py": {
|
| 787 |
+
"size": 2703
|
| 788 |
+
},
|
| 789 |
+
"tests/regression_tests/energy_grid/__init__.py": {
|
| 790 |
+
"size": 0
|
| 791 |
+
},
|
| 792 |
+
"tests/regression_tests/energy_grid/test.py": {
|
| 793 |
+
"size": 137
|
| 794 |
+
},
|
| 795 |
+
"tests/regression_tests/energy_laws/__init__.py": {
|
| 796 |
+
"size": 0
|
| 797 |
+
},
|
| 798 |
+
"tests/regression_tests/energy_laws/test.py": {
|
| 799 |
+
"size": 1383
|
| 800 |
+
},
|
| 801 |
+
"tests/regression_tests/enrichment/__init__.py": {
|
| 802 |
+
"size": 0
|
| 803 |
+
},
|
| 804 |
+
"tests/regression_tests/enrichment/test.py": {
|
| 805 |
+
"size": 1036
|
| 806 |
+
},
|
| 807 |
+
"tests/regression_tests/entropy/__init__.py": {
|
| 808 |
+
"size": 0
|
| 809 |
+
},
|
| 810 |
+
"tests/regression_tests/entropy/test.py": {
|
| 811 |
+
"size": 842
|
| 812 |
+
},
|
| 813 |
+
"tests/regression_tests/external_moab/__init__.py": {
|
| 814 |
+
"size": 0
|
| 815 |
+
},
|
| 816 |
+
"tests/regression_tests/external_moab/test.py": {
|
| 817 |
+
"size": 8944
|
| 818 |
+
},
|
| 819 |
+
"tests/regression_tests/filter_cellfrom/__init__.py": {
|
| 820 |
+
"size": 0
|
| 821 |
+
},
|
| 822 |
+
"tests/regression_tests/filter_cellfrom/test.py": {
|
| 823 |
+
"size": 10624
|
| 824 |
+
},
|
| 825 |
+
"tests/regression_tests/filter_cellinstance/__init__.py": {
|
| 826 |
+
"size": 0
|
| 827 |
+
},
|
| 828 |
+
"tests/regression_tests/filter_cellinstance/test.py": {
|
| 829 |
+
"size": 2945
|
| 830 |
+
},
|
| 831 |
+
"tests/regression_tests/filter_distribcell/__init__.py": {
|
| 832 |
+
"size": 0
|
| 833 |
+
},
|
| 834 |
+
"tests/regression_tests/filter_distribcell/test.py": {
|
| 835 |
+
"size": 2724
|
| 836 |
+
},
|
| 837 |
+
"tests/regression_tests/filter_energyfun/__init__.py": {
|
| 838 |
+
"size": 0
|
| 839 |
+
},
|
| 840 |
+
"tests/regression_tests/filter_energyfun/test.py": {
|
| 841 |
+
"size": 6082
|
| 842 |
+
},
|
| 843 |
+
"tests/regression_tests/filter_mesh/__init__.py": {
|
| 844 |
+
"size": 0
|
| 845 |
+
},
|
| 846 |
+
"tests/regression_tests/filter_mesh/test.py": {
|
| 847 |
+
"size": 3998
|
| 848 |
+
},
|
| 849 |
+
"tests/regression_tests/filter_meshborn/__init__.py": {
|
| 850 |
+
"size": 0
|
| 851 |
+
},
|
| 852 |
+
"tests/regression_tests/filter_meshborn/test.py": {
|
| 853 |
+
"size": 3187
|
| 854 |
+
},
|
| 855 |
+
"tests/regression_tests/filter_musurface/__init__.py": {
|
| 856 |
+
"size": 0
|
| 857 |
+
},
|
| 858 |
+
"tests/regression_tests/filter_musurface/test.py": {
|
| 859 |
+
"size": 1174
|
| 860 |
+
},
|
| 861 |
+
"tests/regression_tests/filter_translations/__init__.py": {
|
| 862 |
+
"size": 0
|
| 863 |
+
},
|
| 864 |
+
"tests/regression_tests/filter_translations/test.py": {
|
| 865 |
+
"size": 2670
|
| 866 |
+
},
|
| 867 |
+
"tests/regression_tests/fixed_source/__init__.py": {
|
| 868 |
+
"size": 0
|
| 869 |
+
},
|
| 870 |
+
"tests/regression_tests/fixed_source/test.py": {
|
| 871 |
+
"size": 1983
|
| 872 |
+
},
|
| 873 |
+
"tests/regression_tests/ifp/__init__.py": {
|
| 874 |
+
"size": 0
|
| 875 |
+
},
|
| 876 |
+
"tests/regression_tests/ifp/groupwise/__init__.py": {
|
| 877 |
+
"size": 0
|
| 878 |
+
},
|
| 879 |
+
"tests/regression_tests/ifp/groupwise/test.py": {
|
| 880 |
+
"size": 1173
|
| 881 |
+
},
|
| 882 |
+
"tests/regression_tests/ifp/total/__init__.py": {
|
| 883 |
+
"size": 0
|
| 884 |
+
},
|
| 885 |
+
"tests/regression_tests/ifp/total/test.py": {
|
| 886 |
+
"size": 1258
|
| 887 |
+
},
|
| 888 |
+
"tests/regression_tests/infinite_cell/__init__.py": {
|
| 889 |
+
"size": 0
|
| 890 |
+
},
|
| 891 |
+
"tests/regression_tests/infinite_cell/test.py": {
|
| 892 |
+
"size": 139
|
| 893 |
+
},
|
| 894 |
+
"tests/regression_tests/iso_in_lab/__init__.py": {
|
| 895 |
+
"size": 0
|
| 896 |
+
},
|
| 897 |
+
"tests/regression_tests/iso_in_lab/test.py": {
|
| 898 |
+
"size": 234
|
| 899 |
+
},
|
| 900 |
+
"tests/regression_tests/lattice/__init__.py": {
|
| 901 |
+
"size": 0
|
| 902 |
+
},
|
| 903 |
+
"tests/regression_tests/lattice/test.py": {
|
| 904 |
+
"size": 133
|
| 905 |
+
},
|
| 906 |
+
"tests/regression_tests/lattice_distribmat/__init__.py": {
|
| 907 |
+
"size": 0
|
| 908 |
+
},
|
| 909 |
+
"tests/regression_tests/lattice_distribmat/test.py": {
|
| 910 |
+
"size": 2698
|
| 911 |
+
},
|
| 912 |
+
"tests/regression_tests/lattice_distribrho/__init__.py": {
|
| 913 |
+
"size": 0
|
| 914 |
+
},
|
| 915 |
+
"tests/regression_tests/lattice_distribrho/test.py": {
|
| 916 |
+
"size": 1321
|
| 917 |
+
},
|
| 918 |
+
"tests/regression_tests/lattice_hex/__init__.py": {
|
| 919 |
+
"size": 0
|
| 920 |
+
},
|
| 921 |
+
"tests/regression_tests/lattice_hex/test.py": {
|
| 922 |
+
"size": 137
|
| 923 |
+
},
|
| 924 |
+
"tests/regression_tests/lattice_hex_coincident/__init__.py": {
|
| 925 |
+
"size": 0
|
| 926 |
+
},
|
| 927 |
+
"tests/regression_tests/lattice_hex_coincident/test.py": {
|
| 928 |
+
"size": 5443
|
| 929 |
+
},
|
| 930 |
+
"tests/regression_tests/lattice_hex_x/__init__.py": {
|
| 931 |
+
"size": 0
|
| 932 |
+
},
|
| 933 |
+
"tests/regression_tests/lattice_hex_x/test.py": {
|
| 934 |
+
"size": 7047
|
| 935 |
+
},
|
| 936 |
+
"tests/regression_tests/lattice_multiple/__init__.py": {
|
| 937 |
+
"size": 0
|
| 938 |
+
},
|
| 939 |
+
"tests/regression_tests/lattice_multiple/test.py": {
|
| 940 |
+
"size": 1626
|
| 941 |
+
},
|
| 942 |
+
"tests/regression_tests/lattice_rotated/__init__.py": {
|
| 943 |
+
"size": 0
|
| 944 |
+
},
|
| 945 |
+
"tests/regression_tests/lattice_rotated/test.py": {
|
| 946 |
+
"size": 3058
|
| 947 |
+
},
|
| 948 |
+
"tests/regression_tests/mg_basic/__init__.py": {
|
| 949 |
+
"size": 0
|
| 950 |
+
},
|
| 951 |
+
"tests/regression_tests/mg_basic/test.py": {
|
| 952 |
+
"size": 3187
|
| 953 |
+
},
|
| 954 |
+
"tests/regression_tests/mg_basic_delayed/__init__.py": {
|
| 955 |
+
"size": 0
|
| 956 |
+
},
|
| 957 |
+
"tests/regression_tests/mg_basic_delayed/test.py": {
|
| 958 |
+
"size": 4615
|
| 959 |
+
},
|
| 960 |
+
"tests/regression_tests/mg_convert/__init__.py": {
|
| 961 |
+
"size": 0
|
| 962 |
+
},
|
| 963 |
+
"tests/regression_tests/mg_convert/test.py": {
|
| 964 |
+
"size": 7271
|
| 965 |
+
},
|
| 966 |
+
"tests/regression_tests/mg_legendre/__init__.py": {
|
| 967 |
+
"size": 0
|
| 968 |
+
},
|
| 969 |
+
"tests/regression_tests/mg_legendre/test.py": {
|
| 970 |
+
"size": 1425
|
| 971 |
+
},
|
| 972 |
+
"tests/regression_tests/mg_max_order/__init__.py": {
|
| 973 |
+
"size": 0
|
| 974 |
+
},
|
| 975 |
+
"tests/regression_tests/mg_max_order/test.py": {
|
| 976 |
+
"size": 1434
|
| 977 |
+
},
|
| 978 |
+
"tests/regression_tests/mg_survival_biasing/__init__.py": {
|
| 979 |
+
"size": 0
|
| 980 |
+
},
|
| 981 |
+
"tests/regression_tests/mg_survival_biasing/test.py": {
|
| 982 |
+
"size": 1420
|
| 983 |
+
},
|
| 984 |
+
"tests/regression_tests/mg_tallies/__init__.py": {
|
| 985 |
+
"size": 0
|
| 986 |
+
},
|
| 987 |
+
"tests/regression_tests/mg_tallies/test.py": {
|
| 988 |
+
"size": 4737
|
| 989 |
+
},
|
| 990 |
+
"tests/regression_tests/mg_temperature/__init__.py": {
|
| 991 |
+
"size": 1
|
| 992 |
+
},
|
| 993 |
+
"tests/regression_tests/mg_temperature/build_2g.py": {
|
| 994 |
+
"size": 13780
|
| 995 |
+
},
|
| 996 |
+
"tests/regression_tests/mg_temperature/test.py": {
|
| 997 |
+
"size": 2623
|
| 998 |
+
},
|
| 999 |
+
"tests/regression_tests/mg_temperature_multi/__init__.py": {
|
| 1000 |
+
"size": 0
|
| 1001 |
+
},
|
| 1002 |
+
"tests/regression_tests/mg_temperature_multi/test.py": {
|
| 1003 |
+
"size": 7662
|
| 1004 |
+
},
|
| 1005 |
+
"tests/regression_tests/mgxs_library_ce_to_mg/__init__.py": {
|
| 1006 |
+
"size": 0
|
| 1007 |
+
},
|
| 1008 |
+
"tests/regression_tests/mgxs_library_ce_to_mg/test.py": {
|
| 1009 |
+
"size": 2712
|
| 1010 |
+
},
|
| 1011 |
+
"tests/regression_tests/mgxs_library_ce_to_mg_nuclides/__init__.py": {
|
| 1012 |
+
"size": 0
|
| 1013 |
+
},
|
| 1014 |
+
"tests/regression_tests/mgxs_library_ce_to_mg_nuclides/test.py": {
|
| 1015 |
+
"size": 2711
|
| 1016 |
+
},
|
| 1017 |
+
"tests/regression_tests/mgxs_library_condense/__init__.py": {
|
| 1018 |
+
"size": 0
|
| 1019 |
+
},
|
| 1020 |
+
"tests/regression_tests/mgxs_library_condense/test.py": {
|
| 1021 |
+
"size": 2466
|
| 1022 |
+
},
|
| 1023 |
+
"tests/regression_tests/mgxs_library_correction/__init__.py": {
|
| 1024 |
+
"size": 0
|
| 1025 |
+
},
|
| 1026 |
+
"tests/regression_tests/mgxs_library_correction/test.py": {
|
| 1027 |
+
"size": 2127
|
| 1028 |
+
},
|
| 1029 |
+
"tests/regression_tests/mgxs_library_distribcell/__init__.py": {
|
| 1030 |
+
"size": 0
|
| 1031 |
+
},
|
| 1032 |
+
"tests/regression_tests/mgxs_library_distribcell/test.py": {
|
| 1033 |
+
"size": 2596
|
| 1034 |
+
},
|
| 1035 |
+
"tests/regression_tests/mgxs_library_hdf5/__init__.py": {
|
| 1036 |
+
"size": 0
|
| 1037 |
+
},
|
| 1038 |
+
"tests/regression_tests/mgxs_library_hdf5/test.py": {
|
| 1039 |
+
"size": 3243
|
| 1040 |
+
},
|
| 1041 |
+
"tests/regression_tests/mgxs_library_histogram/__init__.py": {
|
| 1042 |
+
"size": 0
|
| 1043 |
+
},
|
| 1044 |
+
"tests/regression_tests/mgxs_library_histogram/test.py": {
|
| 1045 |
+
"size": 2179
|
| 1046 |
+
},
|
| 1047 |
+
"tests/regression_tests/mgxs_library_mesh/__init__.py": {
|
| 1048 |
+
"size": 0
|
| 1049 |
+
},
|
| 1050 |
+
"tests/regression_tests/mgxs_library_mesh/test.py": {
|
| 1051 |
+
"size": 2989
|
| 1052 |
+
},
|
| 1053 |
+
"tests/regression_tests/mgxs_library_no_nuclides/__init__.py": {
|
| 1054 |
+
"size": 0
|
| 1055 |
+
},
|
| 1056 |
+
"tests/regression_tests/mgxs_library_no_nuclides/test.py": {
|
| 1057 |
+
"size": 2704
|
| 1058 |
+
},
|
| 1059 |
+
"tests/regression_tests/mgxs_library_nuclides/__init__.py": {
|
| 1060 |
+
"size": 0
|
| 1061 |
+
},
|
| 1062 |
+
"tests/regression_tests/mgxs_library_nuclides/test.py": {
|
| 1063 |
+
"size": 2519
|
| 1064 |
+
},
|
| 1065 |
+
"tests/regression_tests/mgxs_library_specific_nuclides/__init__.py": {
|
| 1066 |
+
"size": 0
|
| 1067 |
+
},
|
| 1068 |
+
"tests/regression_tests/mgxs_library_specific_nuclides/test.py": {
|
| 1069 |
+
"size": 2572
|
| 1070 |
+
},
|
| 1071 |
+
"tests/regression_tests/microxs/test.py": {
|
| 1072 |
+
"size": 2083
|
| 1073 |
+
},
|
| 1074 |
+
"tests/regression_tests/model_xml/__init__.py": {
|
| 1075 |
+
"size": 0
|
| 1076 |
+
},
|
| 1077 |
+
"tests/regression_tests/model_xml/test.py": {
|
| 1078 |
+
"size": 3365
|
| 1079 |
+
},
|
| 1080 |
+
"tests/regression_tests/multipole/__init__.py": {
|
| 1081 |
+
"size": 0
|
| 1082 |
+
},
|
| 1083 |
+
"tests/regression_tests/multipole/test.py": {
|
| 1084 |
+
"size": 2390
|
| 1085 |
+
},
|
| 1086 |
+
"tests/regression_tests/ncrystal/__init__.py": {
|
| 1087 |
+
"size": 0
|
| 1088 |
+
},
|
| 1089 |
+
"tests/regression_tests/ncrystal/test.py": {
|
| 1090 |
+
"size": 3407
|
| 1091 |
+
},
|
| 1092 |
+
"tests/regression_tests/output/__init__.py": {
|
| 1093 |
+
"size": 0
|
| 1094 |
+
},
|
| 1095 |
+
"tests/regression_tests/output/test.py": {
|
| 1096 |
+
"size": 787
|
| 1097 |
+
},
|
| 1098 |
+
"tests/regression_tests/particle_restart_eigval/__init__.py": {
|
| 1099 |
+
"size": 0
|
| 1100 |
+
},
|
| 1101 |
+
"tests/regression_tests/particle_restart_eigval/test.py": {
|
| 1102 |
+
"size": 179
|
| 1103 |
+
},
|
| 1104 |
+
"tests/regression_tests/particle_restart_fixed/__init__.py": {
|
| 1105 |
+
"size": 0
|
| 1106 |
+
},
|
| 1107 |
+
"tests/regression_tests/particle_restart_fixed/test.py": {
|
| 1108 |
+
"size": 179
|
| 1109 |
+
},
|
| 1110 |
+
"tests/regression_tests/periodic/__init__.py": {
|
| 1111 |
+
"size": 0
|
| 1112 |
+
},
|
| 1113 |
+
"tests/regression_tests/periodic/test.py": {
|
| 1114 |
+
"size": 1758
|
| 1115 |
+
},
|
| 1116 |
+
"tests/regression_tests/periodic_6fold/__init__.py": {
|
| 1117 |
+
"size": 0
|
| 1118 |
+
},
|
| 1119 |
+
"tests/regression_tests/periodic_6fold/test.py": {
|
| 1120 |
+
"size": 1765
|
| 1121 |
+
},
|
| 1122 |
+
"tests/regression_tests/periodic_hex/__init__.py": {
|
| 1123 |
+
"size": 0
|
| 1124 |
+
},
|
| 1125 |
+
"tests/regression_tests/periodic_hex/test.py": {
|
| 1126 |
+
"size": 676
|
| 1127 |
+
},
|
| 1128 |
+
"tests/regression_tests/photon_production/__init__.py": {
|
| 1129 |
+
"size": 0
|
| 1130 |
+
},
|
| 1131 |
+
"tests/regression_tests/photon_production/test.py": {
|
| 1132 |
+
"size": 2713
|
| 1133 |
+
},
|
| 1134 |
+
"tests/regression_tests/photon_production_fission/__init__.py": {
|
| 1135 |
+
"size": 0
|
| 1136 |
+
},
|
| 1137 |
+
"tests/regression_tests/photon_production_fission/test.py": {
|
| 1138 |
+
"size": 1666
|
| 1139 |
+
},
|
| 1140 |
+
"tests/regression_tests/photon_source/__init__.py": {
|
| 1141 |
+
"size": 0
|
| 1142 |
+
},
|
| 1143 |
+
"tests/regression_tests/photon_source/test.py": {
|
| 1144 |
+
"size": 1663
|
| 1145 |
+
},
|
| 1146 |
+
"tests/regression_tests/plot/__init__.py": {
|
| 1147 |
+
"size": 0
|
| 1148 |
+
},
|
| 1149 |
+
"tests/regression_tests/plot/test.py": {
|
| 1150 |
+
"size": 248
|
| 1151 |
+
},
|
| 1152 |
+
"tests/regression_tests/plot_overlaps/__init__.py": {
|
| 1153 |
+
"size": 0
|
| 1154 |
+
},
|
| 1155 |
+
"tests/regression_tests/plot_overlaps/test.py": {
|
| 1156 |
+
"size": 256
|
| 1157 |
+
},
|
| 1158 |
+
"tests/regression_tests/plot_projections/__init__.py": {
|
| 1159 |
+
"size": 0
|
| 1160 |
+
},
|
| 1161 |
+
"tests/regression_tests/plot_projections/test.py": {
|
| 1162 |
+
"size": 403
|
| 1163 |
+
},
|
| 1164 |
+
"tests/regression_tests/plot_voxel/__init__.py": {
|
| 1165 |
+
"size": 0
|
| 1166 |
+
},
|
| 1167 |
+
"tests/regression_tests/plot_voxel/test.py": {
|
| 1168 |
+
"size": 278
|
| 1169 |
+
},
|
| 1170 |
+
"tests/regression_tests/ptables_off/__init__.py": {
|
| 1171 |
+
"size": 0
|
| 1172 |
+
},
|
| 1173 |
+
"tests/regression_tests/ptables_off/test.py": {
|
| 1174 |
+
"size": 137
|
| 1175 |
+
},
|
| 1176 |
+
"tests/regression_tests/pulse_height/__init__.py": {
|
| 1177 |
+
"size": 0
|
| 1178 |
+
},
|
| 1179 |
+
"tests/regression_tests/pulse_height/test.py": {
|
| 1180 |
+
"size": 1499
|
| 1181 |
+
},
|
| 1182 |
+
"tests/regression_tests/quadric_surfaces/__init__.py": {
|
| 1183 |
+
"size": 0
|
| 1184 |
+
},
|
| 1185 |
+
"tests/regression_tests/quadric_surfaces/test.py": {
|
| 1186 |
+
"size": 141
|
| 1187 |
+
},
|
| 1188 |
+
"tests/regression_tests/random_ray_adjoint_fixed_source/__init__.py": {
|
| 1189 |
+
"size": 0
|
| 1190 |
+
},
|
| 1191 |
+
"tests/regression_tests/random_ray_adjoint_fixed_source/test.py": {
|
| 1192 |
+
"size": 615
|
| 1193 |
+
},
|
| 1194 |
+
"tests/regression_tests/random_ray_adjoint_k_eff/__init__.py": {
|
| 1195 |
+
"size": 0
|
| 1196 |
+
},
|
| 1197 |
+
"tests/regression_tests/random_ray_adjoint_k_eff/test.py": {
|
| 1198 |
+
"size": 485
|
| 1199 |
+
},
|
| 1200 |
+
"tests/regression_tests/random_ray_auto_convert/__init__.py": {
|
| 1201 |
+
"size": 0
|
| 1202 |
+
},
|
| 1203 |
+
"tests/regression_tests/random_ray_auto_convert/test.py": {
|
| 1204 |
+
"size": 1650
|
| 1205 |
+
},
|
| 1206 |
+
"tests/regression_tests/random_ray_diagonal_stabilization/__init__.py": {
|
| 1207 |
+
"size": 0
|
| 1208 |
+
},
|
| 1209 |
+
"tests/regression_tests/random_ray_diagonal_stabilization/test.py": {
|
| 1210 |
+
"size": 2017
|
| 1211 |
+
},
|
| 1212 |
+
"tests/regression_tests/random_ray_entropy/__init__.py": {
|
| 1213 |
+
"size": 0
|
| 1214 |
+
},
|
| 1215 |
+
"tests/regression_tests/random_ray_entropy/test.py": {
|
| 1216 |
+
"size": 1077
|
| 1217 |
+
},
|
| 1218 |
+
"tests/regression_tests/random_ray_fixed_source_domain/__init__.py": {
|
| 1219 |
+
"size": 0
|
| 1220 |
+
},
|
| 1221 |
+
"tests/regression_tests/random_ray_fixed_source_domain/test.py": {
|
| 1222 |
+
"size": 1840
|
| 1223 |
+
},
|
| 1224 |
+
"tests/regression_tests/random_ray_fixed_source_linear/__init__.py": {
|
| 1225 |
+
"size": 0
|
| 1226 |
+
},
|
| 1227 |
+
"tests/regression_tests/random_ray_fixed_source_linear/test.py": {
|
| 1228 |
+
"size": 841
|
| 1229 |
+
},
|
| 1230 |
+
"tests/regression_tests/random_ray_fixed_source_mesh/__init__.py": {
|
| 1231 |
+
"size": 0
|
| 1232 |
+
},
|
| 1233 |
+
"tests/regression_tests/random_ray_fixed_source_mesh/test.py": {
|
| 1234 |
+
"size": 1691
|
| 1235 |
+
},
|
| 1236 |
+
"tests/regression_tests/random_ray_fixed_source_normalization/__init__.py": {
|
| 1237 |
+
"size": 0
|
| 1238 |
+
},
|
| 1239 |
+
"tests/regression_tests/random_ray_fixed_source_normalization/test.py": {
|
| 1240 |
+
"size": 772
|
| 1241 |
+
},
|
| 1242 |
+
"tests/regression_tests/random_ray_fixed_source_subcritical/__init__.py": {
|
| 1243 |
+
"size": 0
|
| 1244 |
+
},
|
| 1245 |
+
"tests/regression_tests/random_ray_fixed_source_subcritical/test.py": {
|
| 1246 |
+
"size": 4812
|
| 1247 |
+
},
|
| 1248 |
+
"tests/regression_tests/random_ray_halton_samples/__init__.py": {
|
| 1249 |
+
"size": 0
|
| 1250 |
+
},
|
| 1251 |
+
"tests/regression_tests/random_ray_halton_samples/test.py": {
|
| 1252 |
+
"size": 503
|
| 1253 |
+
},
|
| 1254 |
+
"tests/regression_tests/random_ray_k_eff/__init__.py": {
|
| 1255 |
+
"size": 0
|
| 1256 |
+
},
|
| 1257 |
+
"tests/regression_tests/random_ray_k_eff/test.py": {
|
| 1258 |
+
"size": 437
|
| 1259 |
+
},
|
| 1260 |
+
"tests/regression_tests/random_ray_k_eff_mesh/__init__.py": {
|
| 1261 |
+
"size": 0
|
| 1262 |
+
},
|
| 1263 |
+
"tests/regression_tests/random_ray_k_eff_mesh/test.py": {
|
| 1264 |
+
"size": 944
|
| 1265 |
+
},
|
| 1266 |
+
"tests/regression_tests/random_ray_linear/__init__.py": {
|
| 1267 |
+
"size": 0
|
| 1268 |
+
},
|
| 1269 |
+
"tests/regression_tests/random_ray_linear/test.py": {
|
| 1270 |
+
"size": 789
|
| 1271 |
+
},
|
| 1272 |
+
"tests/regression_tests/random_ray_low_density/__init__.py": {
|
| 1273 |
+
"size": 0
|
| 1274 |
+
},
|
| 1275 |
+
"tests/regression_tests/random_ray_low_density/test.py": {
|
| 1276 |
+
"size": 2016
|
| 1277 |
+
},
|
| 1278 |
+
"tests/regression_tests/random_ray_point_source_locator/__init__.py": {
|
| 1279 |
+
"size": 0
|
| 1280 |
+
},
|
| 1281 |
+
"tests/regression_tests/random_ray_point_source_locator/test.py": {
|
| 1282 |
+
"size": 1286
|
| 1283 |
+
},
|
| 1284 |
+
"tests/regression_tests/random_ray_void/__init__.py": {
|
| 1285 |
+
"size": 0
|
| 1286 |
+
},
|
| 1287 |
+
"tests/regression_tests/random_ray_void/test.py": {
|
| 1288 |
+
"size": 2579
|
| 1289 |
+
},
|
| 1290 |
+
"tests/regression_tests/random_ray_volume_estimator/__init__.py": {
|
| 1291 |
+
"size": 0
|
| 1292 |
+
},
|
| 1293 |
+
"tests/regression_tests/random_ray_volume_estimator/test.py": {
|
| 1294 |
+
"size": 904
|
| 1295 |
+
},
|
| 1296 |
+
"tests/regression_tests/random_ray_volume_estimator_linear/__init__.py": {
|
| 1297 |
+
"size": 0
|
| 1298 |
+
},
|
| 1299 |
+
"tests/regression_tests/random_ray_volume_estimator_linear/test.py": {
|
| 1300 |
+
"size": 1044
|
| 1301 |
+
},
|
| 1302 |
+
"tests/regression_tests/reflective_plane/__init__.py": {
|
| 1303 |
+
"size": 0
|
| 1304 |
+
},
|
| 1305 |
+
"tests/regression_tests/reflective_plane/test.py": {
|
| 1306 |
+
"size": 142
|
| 1307 |
+
},
|
| 1308 |
+
"tests/regression_tests/resonance_scattering/__init__.py": {
|
| 1309 |
+
"size": 0
|
| 1310 |
+
},
|
| 1311 |
+
"tests/regression_tests/resonance_scattering/test.py": {
|
| 1312 |
+
"size": 1585
|
| 1313 |
+
},
|
| 1314 |
+
"tests/regression_tests/rotation/__init__.py": {
|
| 1315 |
+
"size": 0
|
| 1316 |
+
},
|
| 1317 |
+
"tests/regression_tests/rotation/test.py": {
|
| 1318 |
+
"size": 134
|
| 1319 |
+
},
|
| 1320 |
+
"tests/regression_tests/salphabeta/__init__.py": {
|
| 1321 |
+
"size": 0
|
| 1322 |
+
},
|
| 1323 |
+
"tests/regression_tests/salphabeta/test.py": {
|
| 1324 |
+
"size": 2045
|
| 1325 |
+
},
|
| 1326 |
+
"tests/regression_tests/score_current/__init__.py": {
|
| 1327 |
+
"size": 0
|
| 1328 |
+
},
|
| 1329 |
+
"tests/regression_tests/score_current/test.py": {
|
| 1330 |
+
"size": 1575
|
| 1331 |
+
},
|
| 1332 |
+
"tests/regression_tests/seed/__init__.py": {
|
| 1333 |
+
"size": 0
|
| 1334 |
+
},
|
| 1335 |
+
"tests/regression_tests/seed/test.py": {
|
| 1336 |
+
"size": 130
|
| 1337 |
+
},
|
| 1338 |
+
"tests/regression_tests/source/__init__.py": {
|
| 1339 |
+
"size": 0
|
| 1340 |
+
},
|
| 1341 |
+
"tests/regression_tests/source/test.py": {
|
| 1342 |
+
"size": 4443
|
| 1343 |
+
},
|
| 1344 |
+
"tests/regression_tests/source_dlopen/__init__.py": {
|
| 1345 |
+
"size": 0
|
| 1346 |
+
},
|
| 1347 |
+
"tests/regression_tests/source_dlopen/test.py": {
|
| 1348 |
+
"size": 2533
|
| 1349 |
+
},
|
| 1350 |
+
"tests/regression_tests/source_file/__init__.py": {
|
| 1351 |
+
"size": 0
|
| 1352 |
+
},
|
| 1353 |
+
"tests/regression_tests/source_file/test.py": {
|
| 1354 |
+
"size": 2869
|
| 1355 |
+
},
|
| 1356 |
+
"tests/regression_tests/source_mcpl_file/__init__.py": {
|
| 1357 |
+
"size": 0
|
| 1358 |
+
},
|
| 1359 |
+
"tests/regression_tests/source_mcpl_file/test.py": {
|
| 1360 |
+
"size": 3007
|
| 1361 |
+
},
|
| 1362 |
+
"tests/regression_tests/source_parameterized_dlopen/__init__.py": {
|
| 1363 |
+
"size": 0
|
| 1364 |
+
},
|
| 1365 |
+
"tests/regression_tests/source_parameterized_dlopen/test.py": {
|
| 1366 |
+
"size": 2522
|
| 1367 |
+
},
|
| 1368 |
+
"tests/regression_tests/sourcepoint_batch/__init__.py": {
|
| 1369 |
+
"size": 0
|
| 1370 |
+
},
|
| 1371 |
+
"tests/regression_tests/sourcepoint_batch/test.py": {
|
| 1372 |
+
"size": 929
|
| 1373 |
+
},
|
| 1374 |
+
"tests/regression_tests/sourcepoint_latest/__init__.py": {
|
| 1375 |
+
"size": 0
|
| 1376 |
+
},
|
| 1377 |
+
"tests/regression_tests/sourcepoint_latest/test.py": {
|
| 1378 |
+
"size": 526
|
| 1379 |
+
},
|
| 1380 |
+
"tests/regression_tests/sourcepoint_restart/__init__.py": {
|
| 1381 |
+
"size": 0
|
| 1382 |
+
},
|
| 1383 |
+
"tests/regression_tests/sourcepoint_restart/test.py": {
|
| 1384 |
+
"size": 145
|
| 1385 |
+
},
|
| 1386 |
+
"tests/regression_tests/statepoint_restart/__init__.py": {
|
| 1387 |
+
"size": 0
|
| 1388 |
+
},
|
| 1389 |
+
"tests/regression_tests/statepoint_restart/test.py": {
|
| 1390 |
+
"size": 3114
|
| 1391 |
+
},
|
| 1392 |
+
"tests/regression_tests/statepoint_sourcesep/__init__.py": {
|
| 1393 |
+
"size": 0
|
| 1394 |
+
},
|
| 1395 |
+
"tests/regression_tests/statepoint_sourcesep/test.py": {
|
| 1396 |
+
"size": 703
|
| 1397 |
+
},
|
| 1398 |
+
"tests/regression_tests/stride/__init__.py": {
|
| 1399 |
+
"size": 0
|
| 1400 |
+
},
|
| 1401 |
+
"tests/regression_tests/stride/test.py": {
|
| 1402 |
+
"size": 745
|
| 1403 |
+
},
|
| 1404 |
+
"tests/regression_tests/surface_source/__init__.py": {
|
| 1405 |
+
"size": 0
|
| 1406 |
+
},
|
| 1407 |
+
"tests/regression_tests/surface_source/test.py": {
|
| 1408 |
+
"size": 7133
|
| 1409 |
+
},
|
| 1410 |
+
"tests/regression_tests/surface_source_write/__init__.py": {
|
| 1411 |
+
"size": 0
|
| 1412 |
+
},
|
| 1413 |
+
"tests/regression_tests/surface_source_write/_visualize.py": {
|
| 1414 |
+
"size": 2098
|
| 1415 |
+
},
|
| 1416 |
+
"tests/regression_tests/surface_source_write/test.py": {
|
| 1417 |
+
"size": 40146
|
| 1418 |
+
},
|
| 1419 |
+
"tests/regression_tests/surface_tally/__init__.py": {
|
| 1420 |
+
"size": 0
|
| 1421 |
+
},
|
| 1422 |
+
"tests/regression_tests/surface_tally/test.py": {
|
| 1423 |
+
"size": 7367
|
| 1424 |
+
},
|
| 1425 |
+
"tests/regression_tests/survival_biasing/__init__.py": {
|
| 1426 |
+
"size": 0
|
| 1427 |
+
},
|
| 1428 |
+
"tests/regression_tests/survival_biasing/test.py": {
|
| 1429 |
+
"size": 142
|
| 1430 |
+
},
|
| 1431 |
+
"tests/regression_tests/tallies/__init__.py": {
|
| 1432 |
+
"size": 0
|
| 1433 |
+
},
|
| 1434 |
+
"tests/regression_tests/tallies/test.py": {
|
| 1435 |
+
"size": 6830
|
| 1436 |
+
},
|
| 1437 |
+
"tests/regression_tests/tally_aggregation/__init__.py": {
|
| 1438 |
+
"size": 0
|
| 1439 |
+
},
|
| 1440 |
+
"tests/regression_tests/tally_aggregation/test.py": {
|
| 1441 |
+
"size": 3332
|
| 1442 |
+
},
|
| 1443 |
+
"tests/regression_tests/tally_arithmetic/__init__.py": {
|
| 1444 |
+
"size": 0
|
| 1445 |
+
},
|
| 1446 |
+
"tests/regression_tests/tally_arithmetic/test.py": {
|
| 1447 |
+
"size": 3339
|
| 1448 |
+
},
|
| 1449 |
+
"tests/regression_tests/tally_assumesep/__init__.py": {
|
| 1450 |
+
"size": 0
|
| 1451 |
+
},
|
| 1452 |
+
"tests/regression_tests/tally_assumesep/test.py": {
|
| 1453 |
+
"size": 141
|
| 1454 |
+
},
|
| 1455 |
+
"tests/regression_tests/tally_nuclides/__init__.py": {
|
| 1456 |
+
"size": 0
|
| 1457 |
+
},
|
| 1458 |
+
"tests/regression_tests/tally_nuclides/test.py": {
|
| 1459 |
+
"size": 140
|
| 1460 |
+
},
|
| 1461 |
+
"tests/regression_tests/tally_slice_merge/__init__.py": {
|
| 1462 |
+
"size": 0
|
| 1463 |
+
},
|
| 1464 |
+
"tests/regression_tests/tally_slice_merge/test.py": {
|
| 1465 |
+
"size": 6691
|
| 1466 |
+
},
|
| 1467 |
+
"tests/regression_tests/time_cutoff/__init__.py": {
|
| 1468 |
+
"size": 0
|
| 1469 |
+
},
|
| 1470 |
+
"tests/regression_tests/time_cutoff/test.py": {
|
| 1471 |
+
"size": 1160
|
| 1472 |
+
},
|
| 1473 |
+
"tests/regression_tests/torus/__init__.py": {
|
| 1474 |
+
"size": 0
|
| 1475 |
+
},
|
| 1476 |
+
"tests/regression_tests/torus/large_major/__init__.py": {
|
| 1477 |
+
"size": 0
|
| 1478 |
+
},
|
| 1479 |
+
"tests/regression_tests/torus/large_major/test.py": {
|
| 1480 |
+
"size": 1281
|
| 1481 |
+
},
|
| 1482 |
+
"tests/regression_tests/torus/test.py": {
|
| 1483 |
+
"size": 1169
|
| 1484 |
+
},
|
| 1485 |
+
"tests/regression_tests/trace/__init__.py": {
|
| 1486 |
+
"size": 0
|
| 1487 |
+
},
|
| 1488 |
+
"tests/regression_tests/trace/test.py": {
|
| 1489 |
+
"size": 131
|
| 1490 |
+
},
|
| 1491 |
+
"tests/regression_tests/track_output/__init__.py": {
|
| 1492 |
+
"size": 0
|
| 1493 |
+
},
|
| 1494 |
+
"tests/regression_tests/track_output/test.py": {
|
| 1495 |
+
"size": 1634
|
| 1496 |
+
},
|
| 1497 |
+
"tests/regression_tests/translation/__init__.py": {
|
| 1498 |
+
"size": 0
|
| 1499 |
+
},
|
| 1500 |
+
"tests/regression_tests/translation/test.py": {
|
| 1501 |
+
"size": 137
|
| 1502 |
+
},
|
| 1503 |
+
"tests/regression_tests/trigger_batch_interval/__init__.py": {
|
| 1504 |
+
"size": 0
|
| 1505 |
+
},
|
| 1506 |
+
"tests/regression_tests/trigger_batch_interval/test.py": {
|
| 1507 |
+
"size": 148
|
| 1508 |
+
},
|
| 1509 |
+
"tests/regression_tests/trigger_no_batch_interval/__init__.py": {
|
| 1510 |
+
"size": 0
|
| 1511 |
+
},
|
| 1512 |
+
"tests/regression_tests/trigger_no_batch_interval/test.py": {
|
| 1513 |
+
"size": 151
|
| 1514 |
+
},
|
| 1515 |
+
"tests/regression_tests/trigger_no_status/__init__.py": {
|
| 1516 |
+
"size": 0
|
| 1517 |
+
},
|
| 1518 |
+
"tests/regression_tests/trigger_no_status/test.py": {
|
| 1519 |
+
"size": 143
|
| 1520 |
+
},
|
| 1521 |
+
"tests/regression_tests/trigger_statepoint_restart/__init__.py": {
|
| 1522 |
+
"size": 0
|
| 1523 |
+
},
|
| 1524 |
+
"tests/regression_tests/trigger_statepoint_restart/test.py": {
|
| 1525 |
+
"size": 4714
|
| 1526 |
+
},
|
| 1527 |
+
"tests/regression_tests/trigger_tallies/__init__.py": {
|
| 1528 |
+
"size": 0
|
| 1529 |
+
},
|
| 1530 |
+
"tests/regression_tests/trigger_tallies/test.py": {
|
| 1531 |
+
"size": 141
|
| 1532 |
+
},
|
| 1533 |
+
"tests/regression_tests/triso/__init__.py": {
|
| 1534 |
+
"size": 0
|
| 1535 |
+
},
|
| 1536 |
+
"tests/regression_tests/triso/test.py": {
|
| 1537 |
+
"size": 3506
|
| 1538 |
+
},
|
| 1539 |
+
"tests/regression_tests/uniform_fs/__init__.py": {
|
| 1540 |
+
"size": 0
|
| 1541 |
+
},
|
| 1542 |
+
"tests/regression_tests/uniform_fs/test.py": {
|
| 1543 |
+
"size": 136
|
| 1544 |
+
},
|
| 1545 |
+
"tests/regression_tests/universe/__init__.py": {
|
| 1546 |
+
"size": 0
|
| 1547 |
+
},
|
| 1548 |
+
"tests/regression_tests/universe/test.py": {
|
| 1549 |
+
"size": 134
|
| 1550 |
+
},
|
| 1551 |
+
"tests/regression_tests/unstructured_mesh/__init__.py": {
|
| 1552 |
+
"size": 0
|
| 1553 |
+
},
|
| 1554 |
+
"tests/regression_tests/unstructured_mesh/test.py": {
|
| 1555 |
+
"size": 11715
|
| 1556 |
+
},
|
| 1557 |
+
"tests/regression_tests/void/__init__.py": {
|
| 1558 |
+
"size": 0
|
| 1559 |
+
},
|
| 1560 |
+
"tests/regression_tests/void/test.py": {
|
| 1561 |
+
"size": 1080
|
| 1562 |
+
},
|
| 1563 |
+
"tests/regression_tests/volume_calc/__init__.py": {
|
| 1564 |
+
"size": 0
|
| 1565 |
+
},
|
| 1566 |
+
"tests/regression_tests/volume_calc/test.py": {
|
| 1567 |
+
"size": 6642
|
| 1568 |
+
},
|
| 1569 |
+
"tests/regression_tests/weightwindows/__init__.py": {
|
| 1570 |
+
"size": 1
|
| 1571 |
+
},
|
| 1572 |
+
"tests/regression_tests/weightwindows/generators/__init__.py": {
|
| 1573 |
+
"size": 0
|
| 1574 |
+
},
|
| 1575 |
+
"tests/regression_tests/weightwindows/generators/test.py": {
|
| 1576 |
+
"size": 1908
|
| 1577 |
+
},
|
| 1578 |
+
"tests/regression_tests/weightwindows/test.py": {
|
| 1579 |
+
"size": 5779
|
| 1580 |
+
},
|
| 1581 |
+
"tests/regression_tests/weightwindows/ww_n.txt": {
|
| 1582 |
+
"size": 10762
|
| 1583 |
+
},
|
| 1584 |
+
"tests/regression_tests/weightwindows/ww_n_cyl.txt": {
|
| 1585 |
+
"size": 5141
|
| 1586 |
+
},
|
| 1587 |
+
"tests/regression_tests/weightwindows/ww_n_sph.txt": {
|
| 1588 |
+
"size": 5186
|
| 1589 |
+
},
|
| 1590 |
+
"tests/regression_tests/weightwindows/ww_p.txt": {
|
| 1591 |
+
"size": 10733
|
| 1592 |
+
},
|
| 1593 |
+
"tests/regression_tests/weightwindows_fw_cadis/__init__.py": {
|
| 1594 |
+
"size": 0
|
| 1595 |
+
},
|
| 1596 |
+
"tests/regression_tests/weightwindows_fw_cadis/test.py": {
|
| 1597 |
+
"size": 914
|
| 1598 |
+
},
|
| 1599 |
+
"tests/regression_tests/weightwindows_fw_cadis_mesh/__init__.py": {
|
| 1600 |
+
"size": 0
|
| 1601 |
+
},
|
| 1602 |
+
"tests/regression_tests/weightwindows_fw_cadis_mesh/test.py": {
|
| 1603 |
+
"size": 1496
|
| 1604 |
+
},
|
| 1605 |
+
"tests/regression_tests/white_plane/__init__.py": {
|
| 1606 |
+
"size": 0
|
| 1607 |
+
},
|
| 1608 |
+
"tests/regression_tests/white_plane/test.py": {
|
| 1609 |
+
"size": 137
|
| 1610 |
+
},
|
| 1611 |
+
"tests/test_matplotlib_import.py": {
|
| 1612 |
+
"size": 160
|
| 1613 |
+
},
|
| 1614 |
+
"tests/testing_harness.py": {
|
| 1615 |
+
"size": 22981
|
| 1616 |
+
},
|
| 1617 |
+
"tests/unit_tests/__init__.py": {
|
| 1618 |
+
"size": 428
|
| 1619 |
+
},
|
| 1620 |
+
"tests/unit_tests/cell_instances/test_hex_multilattice.py": {
|
| 1621 |
+
"size": 3519
|
| 1622 |
+
},
|
| 1623 |
+
"tests/unit_tests/cell_instances/test_rect_multilattice.py": {
|
| 1624 |
+
"size": 2886
|
| 1625 |
+
},
|
| 1626 |
+
"tests/unit_tests/conftest.py": {
|
| 1627 |
+
"size": 3689
|
| 1628 |
+
},
|
| 1629 |
+
"tests/unit_tests/dagmc/__init__.py": {
|
| 1630 |
+
"size": 0
|
| 1631 |
+
},
|
| 1632 |
+
"tests/unit_tests/dagmc/test.py": {
|
| 1633 |
+
"size": 2650
|
| 1634 |
+
},
|
| 1635 |
+
"tests/unit_tests/dagmc/test_bounds.py": {
|
| 1636 |
+
"size": 3810
|
| 1637 |
+
},
|
| 1638 |
+
"tests/unit_tests/dagmc/test_h5m_subdir.py": {
|
| 1639 |
+
"size": 1232
|
| 1640 |
+
},
|
| 1641 |
+
"tests/unit_tests/dagmc/test_lost_particles.py": {
|
| 1642 |
+
"size": 2610
|
| 1643 |
+
},
|
| 1644 |
+
"tests/unit_tests/dagmc/test_model.py": {
|
| 1645 |
+
"size": 9223
|
| 1646 |
+
},
|
| 1647 |
+
"tests/unit_tests/dagmc/test_plot.py": {
|
| 1648 |
+
"size": 2658
|
| 1649 |
+
},
|
| 1650 |
+
"tests/unit_tests/mesh_to_vtk/__init__.py": {
|
| 1651 |
+
"size": 0
|
| 1652 |
+
},
|
| 1653 |
+
"tests/unit_tests/mesh_to_vtk/test.py": {
|
| 1654 |
+
"size": 3161
|
| 1655 |
+
},
|
| 1656 |
+
"tests/unit_tests/mesh_to_vtk/test_vtk_dims.py": {
|
| 1657 |
+
"size": 10267
|
| 1658 |
+
},
|
| 1659 |
+
"tests/unit_tests/test_bounding_box.py": {
|
| 1660 |
+
"size": 5805
|
| 1661 |
+
},
|
| 1662 |
+
"tests/unit_tests/test_cell.py": {
|
| 1663 |
+
"size": 10889
|
| 1664 |
+
},
|
| 1665 |
+
"tests/unit_tests/test_collision_track.py": {
|
| 1666 |
+
"size": 4321
|
| 1667 |
+
},
|
| 1668 |
+
"tests/unit_tests/test_complex_cell_bb.py": {
|
| 1669 |
+
"size": 2981
|
| 1670 |
+
},
|
| 1671 |
+
"tests/unit_tests/test_config.py": {
|
| 1672 |
+
"size": 3863
|
| 1673 |
+
},
|
| 1674 |
+
"tests/unit_tests/test_cylindrical_mesh.py": {
|
| 1675 |
+
"size": 6218
|
| 1676 |
+
},
|
| 1677 |
+
"tests/unit_tests/test_d1s.py": {
|
| 1678 |
+
"size": 5464
|
| 1679 |
+
},
|
| 1680 |
+
"tests/unit_tests/test_data_decay.py": {
|
| 1681 |
+
"size": 5104
|
| 1682 |
+
},
|
| 1683 |
+
"tests/unit_tests/test_data_dose.py": {
|
| 1684 |
+
"size": 2083
|
| 1685 |
+
},
|
| 1686 |
+
"tests/unit_tests/test_data_kalbach_mann.py": {
|
| 1687 |
+
"size": 5327
|
| 1688 |
+
},
|
| 1689 |
+
"tests/unit_tests/test_data_misc.py": {
|
| 1690 |
+
"size": 5343
|
| 1691 |
+
},
|
| 1692 |
+
"tests/unit_tests/test_data_multipole.py": {
|
| 1693 |
+
"size": 2178
|
| 1694 |
+
},
|
| 1695 |
+
"tests/unit_tests/test_data_neutron.py": {
|
| 1696 |
+
"size": 18248
|
| 1697 |
+
},
|
| 1698 |
+
"tests/unit_tests/test_data_photon.py": {
|
| 1699 |
+
"size": 5108
|
| 1700 |
+
},
|
| 1701 |
+
"tests/unit_tests/test_data_thermal.py": {
|
| 1702 |
+
"size": 14525
|
| 1703 |
+
},
|
| 1704 |
+
"tests/unit_tests/test_deplete_activation.py": {
|
| 1705 |
+
"size": 6420
|
| 1706 |
+
},
|
| 1707 |
+
"tests/unit_tests/test_deplete_atom_number.py": {
|
| 1708 |
+
"size": 4651
|
| 1709 |
+
},
|
| 1710 |
+
"tests/unit_tests/test_deplete_chain.py": {
|
| 1711 |
+
"size": 20531
|
| 1712 |
+
},
|
| 1713 |
+
"tests/unit_tests/test_deplete_continue.py": {
|
| 1714 |
+
"size": 4239
|
| 1715 |
+
},
|
| 1716 |
+
"tests/unit_tests/test_deplete_coupled_operator.py": {
|
| 1717 |
+
"size": 3636
|
| 1718 |
+
},
|
| 1719 |
+
"tests/unit_tests/test_deplete_cram.py": {
|
| 1720 |
+
"size": 795
|
| 1721 |
+
},
|
| 1722 |
+
"tests/unit_tests/test_deplete_decay.py": {
|
| 1723 |
+
"size": 2834
|
| 1724 |
+
},
|
| 1725 |
+
"tests/unit_tests/test_deplete_external_source_rates.py": {
|
| 1726 |
+
"size": 7006
|
| 1727 |
+
},
|
| 1728 |
+
"tests/unit_tests/test_deplete_fission_yields.py": {
|
| 1729 |
+
"size": 11355
|
| 1730 |
+
},
|
| 1731 |
+
"tests/unit_tests/test_deplete_independent_operator.py": {
|
| 1732 |
+
"size": 1784
|
| 1733 |
+
},
|
| 1734 |
+
"tests/unit_tests/test_deplete_integrator.py": {
|
| 1735 |
+
"size": 8831
|
| 1736 |
+
},
|
| 1737 |
+
"tests/unit_tests/test_deplete_microxs.py": {
|
| 1738 |
+
"size": 3983
|
| 1739 |
+
},
|
| 1740 |
+
"tests/unit_tests/test_deplete_nuclide.py": {
|
| 1741 |
+
"size": 12307
|
| 1742 |
+
},
|
| 1743 |
+
"tests/unit_tests/test_deplete_operator.py": {
|
| 1744 |
+
"size": 1754
|
| 1745 |
+
},
|
| 1746 |
+
"tests/unit_tests/test_deplete_reaction.py": {
|
| 1747 |
+
"size": 2033
|
| 1748 |
+
},
|
| 1749 |
+
"tests/unit_tests/test_deplete_restart.py": {
|
| 1750 |
+
"size": 2477
|
| 1751 |
+
},
|
| 1752 |
+
"tests/unit_tests/test_deplete_resultslist.py": {
|
| 1753 |
+
"size": 7738
|
| 1754 |
+
},
|
| 1755 |
+
"tests/unit_tests/test_deplete_transfer_rates.py": {
|
| 1756 |
+
"size": 10747
|
| 1757 |
+
},
|
| 1758 |
+
"tests/unit_tests/test_element.py": {
|
| 1759 |
+
"size": 3143
|
| 1760 |
+
},
|
| 1761 |
+
"tests/unit_tests/test_element_wo.py": {
|
| 1762 |
+
"size": 1405
|
| 1763 |
+
},
|
| 1764 |
+
"tests/unit_tests/test_endf.py": {
|
| 1765 |
+
"size": 1354
|
| 1766 |
+
},
|
| 1767 |
+
"tests/unit_tests/test_energy_cutoff.py": {
|
| 1768 |
+
"size": 2055
|
| 1769 |
+
},
|
| 1770 |
+
"tests/unit_tests/test_filter_mesh.py": {
|
| 1771 |
+
"size": 8369
|
| 1772 |
+
},
|
| 1773 |
+
"tests/unit_tests/test_filter_meshborn.py": {
|
| 1774 |
+
"size": 3580
|
| 1775 |
+
},
|
| 1776 |
+
"tests/unit_tests/test_filter_meshmaterial.py": {
|
| 1777 |
+
"size": 2658
|
| 1778 |
+
},
|
| 1779 |
+
"tests/unit_tests/test_filter_musurface.py": {
|
| 1780 |
+
"size": 1090
|
| 1781 |
+
},
|
| 1782 |
+
"tests/unit_tests/test_filter_weight.py": {
|
| 1783 |
+
"size": 1347
|
| 1784 |
+
},
|
| 1785 |
+
"tests/unit_tests/test_filters.py": {
|
| 1786 |
+
"size": 11096
|
| 1787 |
+
},
|
| 1788 |
+
"tests/unit_tests/test_geometry.py": {
|
| 1789 |
+
"size": 13706
|
| 1790 |
+
},
|
| 1791 |
+
"tests/unit_tests/test_heating_by_nuclide.py": {
|
| 1792 |
+
"size": 2105
|
| 1793 |
+
},
|
| 1794 |
+
"tests/unit_tests/test_ifp.py": {
|
| 1795 |
+
"size": 3048
|
| 1796 |
+
},
|
| 1797 |
+
"tests/unit_tests/test_lattice.py": {
|
| 1798 |
+
"size": 13419
|
| 1799 |
+
},
|
| 1800 |
+
"tests/unit_tests/test_lattice_discretization.py": {
|
| 1801 |
+
"size": 3731
|
| 1802 |
+
},
|
| 1803 |
+
"tests/unit_tests/test_lib.py": {
|
| 1804 |
+
"size": 33978
|
| 1805 |
+
},
|
| 1806 |
+
"tests/unit_tests/test_lost_particles.py": {
|
| 1807 |
+
"size": 1628
|
| 1808 |
+
},
|
| 1809 |
+
"tests/unit_tests/test_material.py": {
|
| 1810 |
+
"size": 27311
|
| 1811 |
+
},
|
| 1812 |
+
"tests/unit_tests/test_materials.py": {
|
| 1813 |
+
"size": 3032
|
| 1814 |
+
},
|
| 1815 |
+
"tests/unit_tests/test_mcpl_stat_sum.py": {
|
| 1816 |
+
"size": 2758
|
| 1817 |
+
},
|
| 1818 |
+
"tests/unit_tests/test_mesh.py": {
|
| 1819 |
+
"size": 30972
|
| 1820 |
+
},
|
| 1821 |
+
"tests/unit_tests/test_mesh_from_domain.py": {
|
| 1822 |
+
"size": 7113
|
| 1823 |
+
},
|
| 1824 |
+
"tests/unit_tests/test_mesh_from_lattice.py": {
|
| 1825 |
+
"size": 3336
|
| 1826 |
+
},
|
| 1827 |
+
"tests/unit_tests/test_model.py": {
|
| 1828 |
+
"size": 39855
|
| 1829 |
+
},
|
| 1830 |
+
"tests/unit_tests/test_model_triso.py": {
|
| 1831 |
+
"size": 7635
|
| 1832 |
+
},
|
| 1833 |
+
"tests/unit_tests/test_no_reduce.py": {
|
| 1834 |
+
"size": 1420
|
| 1835 |
+
},
|
| 1836 |
+
"tests/unit_tests/test_no_visible_boundary.py": {
|
| 1837 |
+
"size": 1097
|
| 1838 |
+
},
|
| 1839 |
+
"tests/unit_tests/test_nuclide_heating.py": {
|
| 1840 |
+
"size": 1253
|
| 1841 |
+
},
|
| 1842 |
+
"tests/unit_tests/test_pathlike_simple.py": {
|
| 1843 |
+
"size": 1326
|
| 1844 |
+
},
|
| 1845 |
+
"tests/unit_tests/test_photon_heating.py": {
|
| 1846 |
+
"size": 977
|
| 1847 |
+
},
|
| 1848 |
+
"tests/unit_tests/test_pin.py": {
|
| 1849 |
+
"size": 3545
|
| 1850 |
+
},
|
| 1851 |
+
"tests/unit_tests/test_plots.py": {
|
| 1852 |
+
"size": 9601
|
| 1853 |
+
},
|
| 1854 |
+
"tests/unit_tests/test_plotter.py": {
|
| 1855 |
+
"size": 5392
|
| 1856 |
+
},
|
| 1857 |
+
"tests/unit_tests/test_polynomials.py": {
|
| 1858 |
+
"size": 4006
|
| 1859 |
+
},
|
| 1860 |
+
"tests/unit_tests/test_r2s.py": {
|
| 1861 |
+
"size": 5361
|
| 1862 |
+
},
|
| 1863 |
+
"tests/unit_tests/test_region.py": {
|
| 1864 |
+
"size": 7054
|
| 1865 |
+
},
|
| 1866 |
+
"tests/unit_tests/test_settings.py": {
|
| 1867 |
+
"size": 7840
|
| 1868 |
+
},
|
| 1869 |
+
"tests/unit_tests/test_source.py": {
|
| 1870 |
+
"size": 11015
|
| 1871 |
+
},
|
| 1872 |
+
"tests/unit_tests/test_source_file.py": {
|
| 1873 |
+
"size": 5062
|
| 1874 |
+
},
|
| 1875 |
+
"tests/unit_tests/test_source_mesh.py": {
|
| 1876 |
+
"size": 16494
|
| 1877 |
+
},
|
| 1878 |
+
"tests/unit_tests/test_spherical_mesh.py": {
|
| 1879 |
+
"size": 6383
|
| 1880 |
+
},
|
| 1881 |
+
"tests/unit_tests/test_statepoint.py": {
|
| 1882 |
+
"size": 1852
|
| 1883 |
+
},
|
| 1884 |
+
"tests/unit_tests/test_statepoint_batches.py": {
|
| 1885 |
+
"size": 799
|
| 1886 |
+
},
|
| 1887 |
+
"tests/unit_tests/test_stats.py": {
|
| 1888 |
+
"size": 17491
|
| 1889 |
+
},
|
| 1890 |
+
"tests/unit_tests/test_summary.py": {
|
| 1891 |
+
"size": 1552
|
| 1892 |
+
},
|
| 1893 |
+
"tests/unit_tests/test_surface.py": {
|
| 1894 |
+
"size": 23271
|
| 1895 |
+
},
|
| 1896 |
+
"tests/unit_tests/test_surface_composite.py": {
|
| 1897 |
+
"size": 22961
|
| 1898 |
+
},
|
| 1899 |
+
"tests/unit_tests/test_surface_source_write.py": {
|
| 1900 |
+
"size": 10046
|
| 1901 |
+
},
|
| 1902 |
+
"tests/unit_tests/test_tallies.py": {
|
| 1903 |
+
"size": 14790
|
| 1904 |
+
},
|
| 1905 |
+
"tests/unit_tests/test_tally_multiply_density.py": {
|
| 1906 |
+
"size": 1862
|
| 1907 |
+
},
|
| 1908 |
+
"tests/unit_tests/test_temp_interp.py": {
|
| 1909 |
+
"size": 10239
|
| 1910 |
+
},
|
| 1911 |
+
"tests/unit_tests/test_time_filter.py": {
|
| 1912 |
+
"size": 6321
|
| 1913 |
+
},
|
| 1914 |
+
"tests/unit_tests/test_torus.py": {
|
| 1915 |
+
"size": 1617
|
| 1916 |
+
},
|
| 1917 |
+
"tests/unit_tests/test_tracks.py": {
|
| 1918 |
+
"size": 6856
|
| 1919 |
+
},
|
| 1920 |
+
"tests/unit_tests/test_transfer_volumes.py": {
|
| 1921 |
+
"size": 1164
|
| 1922 |
+
},
|
| 1923 |
+
"tests/unit_tests/test_triggers.py": {
|
| 1924 |
+
"size": 4699
|
| 1925 |
+
},
|
| 1926 |
+
"tests/unit_tests/test_uniform_source_sampling.py": {
|
| 1927 |
+
"size": 2723
|
| 1928 |
+
},
|
| 1929 |
+
"tests/unit_tests/test_universe.py": {
|
| 1930 |
+
"size": 6319
|
| 1931 |
+
},
|
| 1932 |
+
"tests/unit_tests/test_urr_capture.py": {
|
| 1933 |
+
"size": 1271
|
| 1934 |
+
},
|
| 1935 |
+
"tests/unit_tests/test_volume.py": {
|
| 1936 |
+
"size": 1508
|
| 1937 |
+
},
|
| 1938 |
+
"tests/unit_tests/test_waste_classification.py": {
|
| 1939 |
+
"size": 3748
|
| 1940 |
+
},
|
| 1941 |
+
"tests/unit_tests/weightwindows/__init__.py": {
|
| 1942 |
+
"size": 0
|
| 1943 |
+
},
|
| 1944 |
+
"tests/unit_tests/weightwindows/dagmc/__init__.py": {
|
| 1945 |
+
"size": 0
|
| 1946 |
+
},
|
| 1947 |
+
"tests/unit_tests/weightwindows/dagmc/test.py": {
|
| 1948 |
+
"size": 3056
|
| 1949 |
+
},
|
| 1950 |
+
"tests/unit_tests/weightwindows/test.py": {
|
| 1951 |
+
"size": 12398
|
| 1952 |
+
},
|
| 1953 |
+
"tests/unit_tests/weightwindows/test_ww_gen.py": {
|
| 1954 |
+
"size": 11475
|
| 1955 |
+
},
|
| 1956 |
+
"tests/unit_tests/weightwindows/test_ww_list.py": {
|
| 1957 |
+
"size": 970
|
| 1958 |
+
},
|
| 1959 |
+
"tests/unit_tests/weightwindows/test_ww_mg.py": {
|
| 1960 |
+
"size": 1807
|
| 1961 |
+
},
|
| 1962 |
+
"tests/unit_tests/weightwindows/test_wwinp_reader.py": {
|
| 1963 |
+
"size": 4898
|
| 1964 |
+
},
|
| 1965 |
+
"tests/unit_tests/weightwindows/ww_mg.txt": {
|
| 1966 |
+
"size": 675
|
| 1967 |
+
},
|
| 1968 |
+
"tests/unit_tests/weightwindows/ww_n.txt": {
|
| 1969 |
+
"size": 45
|
| 1970 |
+
},
|
| 1971 |
+
"tests/unit_tests/weightwindows/ww_p.txt": {
|
| 1972 |
+
"size": 45
|
| 1973 |
+
},
|
| 1974 |
+
"tools/ci/gha-install.py": {
|
| 1975 |
+
"size": 2099
|
| 1976 |
+
},
|
| 1977 |
+
"tools/dev/generate_release_notes.py": {
|
| 1978 |
+
"size": 543
|
| 1979 |
+
}
|
| 1980 |
+
},
|
| 1981 |
+
"processed_by": "zip_fallback",
|
| 1982 |
+
"success": true
|
| 1983 |
+
},
|
| 1984 |
+
"structure": {
|
| 1985 |
+
"packages": [
|
| 1986 |
+
"source.openmc",
|
| 1987 |
+
"source.openmc.data",
|
| 1988 |
+
"source.openmc.deplete",
|
| 1989 |
+
"source.openmc.lib",
|
| 1990 |
+
"source.openmc.mgxs",
|
| 1991 |
+
"source.openmc.model",
|
| 1992 |
+
"source.openmc.stats",
|
| 1993 |
+
"source.tests",
|
| 1994 |
+
"source.tests.regression_tests",
|
| 1995 |
+
"source.tests.unit_tests"
|
| 1996 |
+
]
|
| 1997 |
+
},
|
| 1998 |
+
"dependencies": {
|
| 1999 |
+
"has_environment_yml": false,
|
| 2000 |
+
"has_requirements_txt": false,
|
| 2001 |
+
"pyproject": true,
|
| 2002 |
+
"setup_cfg": false,
|
| 2003 |
+
"setup_py": false
|
| 2004 |
+
},
|
| 2005 |
+
"entry_points": {
|
| 2006 |
+
"imports": [],
|
| 2007 |
+
"cli": [],
|
| 2008 |
+
"modules": []
|
| 2009 |
+
},
|
| 2010 |
+
"llm_analysis": {
|
| 2011 |
+
"core_modules": [
|
| 2012 |
+
{
|
| 2013 |
+
"package": "source.openmc",
|
| 2014 |
+
"module": "openmc",
|
| 2015 |
+
"functions": [
|
| 2016 |
+
"run",
|
| 2017 |
+
"plot_geometry",
|
| 2018 |
+
"calculate_volumes"
|
| 2019 |
+
],
|
| 2020 |
+
"classes": [
|
| 2021 |
+
"Material",
|
| 2022 |
+
"Geometry",
|
| 2023 |
+
"Settings"
|
| 2024 |
+
],
|
| 2025 |
+
"description": "Core module for OpenMC, providing main functionalities for running simulations, plotting geometries, and managing settings."
|
| 2026 |
+
},
|
| 2027 |
+
{
|
| 2028 |
+
"package": "source.openmc.data",
|
| 2029 |
+
"module": "data",
|
| 2030 |
+
"functions": [
|
| 2031 |
+
"load_ace",
|
| 2032 |
+
"get_cross_sections"
|
| 2033 |
+
],
|
| 2034 |
+
"classes": [
|
| 2035 |
+
"DataLibrary",
|
| 2036 |
+
"Nuclide"
|
| 2037 |
+
],
|
| 2038 |
+
"description": "Handles nuclear data processing and management, including loading ACE files and accessing cross-section data."
|
| 2039 |
+
},
|
| 2040 |
+
{
|
| 2041 |
+
"package": "source.openmc.deplete",
|
| 2042 |
+
"module": "deplete",
|
| 2043 |
+
"functions": [
|
| 2044 |
+
"deplete",
|
| 2045 |
+
"integrate"
|
| 2046 |
+
],
|
| 2047 |
+
"classes": [
|
| 2048 |
+
"Operator",
|
| 2049 |
+
"Integrator"
|
| 2050 |
+
],
|
| 2051 |
+
"description": "Provides functionality for depletion calculations, including operators and integrators for managing depletion processes."
|
| 2052 |
+
},
|
| 2053 |
+
{
|
| 2054 |
+
"package": "source.openmc.lib",
|
| 2055 |
+
"module": "lib",
|
| 2056 |
+
"functions": [
|
| 2057 |
+
"init",
|
| 2058 |
+
"finalize"
|
| 2059 |
+
],
|
| 2060 |
+
"classes": [
|
| 2061 |
+
"Cell",
|
| 2062 |
+
"Material"
|
| 2063 |
+
],
|
| 2064 |
+
"description": "Low-level interface to the OpenMC C++ library, allowing for initialization and finalization of simulations."
|
| 2065 |
+
},
|
| 2066 |
+
{
|
| 2067 |
+
"package": "source.openmc.mgxs",
|
| 2068 |
+
"module": "mgxs",
|
| 2069 |
+
"functions": [
|
| 2070 |
+
"get_mgxs",
|
| 2071 |
+
"create_library"
|
| 2072 |
+
],
|
| 2073 |
+
"classes": [
|
| 2074 |
+
"MGXS",
|
| 2075 |
+
"Library"
|
| 2076 |
+
],
|
| 2077 |
+
"description": "Handles multi-group cross-section generation and management, providing tools for creating and accessing MGXS libraries."
|
| 2078 |
+
}
|
| 2079 |
+
],
|
| 2080 |
+
"cli_commands": [
|
| 2081 |
+
{
|
| 2082 |
+
"name": "openmc",
|
| 2083 |
+
"module": "source.openmc.cli",
|
| 2084 |
+
"description": "Command-line interface for running OpenMC simulations and managing input/output files."
|
| 2085 |
+
}
|
| 2086 |
+
],
|
| 2087 |
+
"import_strategy": {
|
| 2088 |
+
"primary": "import",
|
| 2089 |
+
"fallback": "cli",
|
| 2090 |
+
"confidence": 0.9
|
| 2091 |
+
},
|
| 2092 |
+
"dependencies": {
|
| 2093 |
+
"required": [
|
| 2094 |
+
"numpy",
|
| 2095 |
+
"h5py",
|
| 2096 |
+
"scipy"
|
| 2097 |
+
],
|
| 2098 |
+
"optional": [
|
| 2099 |
+
"matplotlib",
|
| 2100 |
+
"pandas"
|
| 2101 |
+
]
|
| 2102 |
+
},
|
| 2103 |
+
"risk_assessment": {
|
| 2104 |
+
"import_feasibility": 0.9,
|
| 2105 |
+
"intrusiveness_risk": "low",
|
| 2106 |
+
"complexity": "medium"
|
| 2107 |
+
}
|
| 2108 |
+
},
|
| 2109 |
+
"deepwiki_analysis": {
|
| 2110 |
+
"repo_url": "https://github.com/openmc-dev/openmc",
|
| 2111 |
+
"repo_name": "openmc",
|
| 2112 |
+
"content": "openmc-dev/openmc\nCore Architecture\nBuild System and Installation\nPython API and Model System\nC API Bindings\nGeometry and Materials\nMaterial Definition and Composition\nCells, Surfaces, and Regions\nUniverses and Lattices\nDAGMC Integration\nMesh System\nCross Section System\nMulti-Group Cross Section Generation\nCross Section Caching and Data Flow\nSimulation Engine\nSettings and Source Configuration\nSimulation Loop and Batch Management\nParticle Transport and Event Loop\nPhysics and Collision Kernels\nTallies and Results\nTally System and Estimators\nFilters and Spatial Binning\nCMFD Acceleration\nResults Processing and StatePoint Files\nAdvanced Features\nDepletion and Burnup\nPlotting and Visualization\nWeight Windows and Variance Reduction\nDeveloper Guide\nDevelopment Workflow and Testing\nFile Formats and I/O\n.git_archival.txt\n.gitattributes\n.readthedocs.yaml\nCMakeLists.txt\ncmake/Modules/GetVersionFromGit.cmake\ncmake/OpenMCConfigVersion.cmake.in\ndocs/source/conf.py\ndocs/source/license.rst\ndocs/source/pythonapi/capi.rst\ninclude/openmc/bank.h\ninclude/openmc/bounding_box.h\ninclude/openmc/capi.h\ninclude/openmc/constants.h\ninclude/openmc/eigenvalue.h\ninclude/openmc/particle.h\ninclude/openmc/particle_data.h\ninclude/openmc/physics.h\ninclude/openmc/physics_mg.h\ninclude/openmc/simulation.h\ninclude/openmc/tallies/derivative.h\ninclude/openmc/tallies/tally_scoring.h\ninclude/openmc/track_output.h\ninclude/openmc/version.h.in\nman/man1/openmc.1\nopenmc/__init__.py\nopenmc/examples.py\nopenmc/executor.py\nopenmc/lib/cell.py\nopenmc/lib/core.py\nopenmc/lib/material.py\nopenmc/lib/mesh.py\nopenmc/lib/plot.py\nopenmc/model/model.py\nopenmc/plots.py\nsrc/bank.cpp\nsrc/eigenvalue.cpp\nsrc/particle.cpp\nsrc/particle_data.cpp\nsrc/physics.cpp\nsrc/physics_mg.cpp\nsrc/simulation.cpp\nsrc/tallies/derivative.cpp\nsrc/tallies/tally_scoring.cpp\nsrc/track_output.cpp\ntests/regression_tests/distribmat/test.py\ntests/unit_tests/test_lib.py\ntests/unit_tests/test_model.py\ntests/unit_tests/test_plots.py\nThis document provides a high-level introduction to OpenMC, a community-developed Monte Carlo neutron and photon transport simulation code. It covers the overall architecture, execution model, and key subsystems that enable OpenMC to perform fixed source, k-eigenvalue, and subcritical multiplication calculations.\nFor detailed information about specific subsystems, see the Core Architecture section2and its subsections covering the build system, APIs, geometry, materials, cross sections, simulation engine, tallies, and advanced features.\nPurpose and Capabilities\nOpenMC is a Monte Carlo particle transport code designed for nuclear reactor physics and neutron/photon transport simulations. It provides capabilities for:\nFixed source transport simulations- Transport particles from external sources through defined geometries\nK-eigenvalue calculations- Criticality calculations for nuclear reactor analysis\nPhoton transport- Secondary photon generation and transport from neutron interactions\nMulti-group and continuous-energy physics- Support for both energy treatments\nAdvanced geometry modeling- Constructive solid geometry (CSG) and CAD-based geometry via DAGMC\nParallel execution- MPI and OpenMP parallelization support\nSources:docs/source/index.rst1-10src/simulation.cpp140-155CMakeLists.txt32-50\nHigh-Level System Architecture\nOpenMC follows a layered architecture with distinct user interface, core simulation, and infrastructure layers:\nSystem Architecture Diagram\nInfrastructureData ManagementCore Simulation Engine (C++)User Interface Layeropenmc.Modelopenmc.Geometryopenmc.Materialsopenmc executablesrc/main.cppXML Filessettings.xmlmaterials.xmlgeometry.xmltallies.xmlopenmc::simulation namespaceopenmc_run()openmc_next_batch()Particle classevent_calculate_xs()event_advance()event_collide()collision()sample_neutron_reaction()sample_photon_reaction()model::cellsmodel::surfacesmodel::universesmodel::materialsMaterial::calculate_xs()data::nuclidesdata::elementsdata::mghdf5_interface.cppread_hdf5()write_hdf5()statepoint.h5write_statepoint()openmc::StatePointmodel::talliesTally::results_score_*_tally()mpi::n_procsmpi::rankbroadcast_results()vectorunique_ptrsimulation::source_bankCMakeLists.txtlibopenmc target\nInfrastructure\nData Management\nCore Simulation Engine (C++)\nUser Interface Layer\nopenmc.Modelopenmc.Geometryopenmc.Materials\nopenmc executablesrc/main.cpp\nXML Filessettings.xmlmaterials.xmlgeometry.xmltallies.xml\nopenmc::simulation namespaceopenmc_run()openmc_next_batch()\nParticle classevent_calculate_xs()event_advance()event_collide()\ncollision()sample_neutron_reaction()sample_photon_reaction()\nmodel::cellsmodel::surfacesmodel::universes\nmodel::materialsMaterial::calculate_xs()\ndata::nuclidesdata::elementsdata::mg\nhdf5_interface.cppread_hdf5()write_hdf5()\nstatepoint.h5write_statepoint()openmc::StatePoint\nmodel::talliesTally::results_score_*_tally()\nmpi::n_procsmpi::rankbroadcast_results()\nvectorunique_ptrsimulation::source_bank\nCMakeLists.txtlibopenmc target\nSources:src/simulation.cpp1-100src/particle.cpp160-511src/physics.cpp43-92openmc/model/model.py36-158CMakeLists.txt330-472\nCore Execution Model\nOpenMC uses a batch-based Monte Carlo simulation loop with support for both history-based and event-based particle transport:\nSimulation Execution Flow\nfalsetrueboundary closercollision closerYesNoYesNoYesNoopenmc_run()src/simulation.cpp:53openmc_simulation_init()Initialize banks, talliesBatch Loopsimulation::current_batchinitialize_batch()Setup active talliesGeneration Loopsimulation::current_gen(1 to settings::gen_per_batch)initialize_generation()Clear fission_banksettings::event_basedtransport_history_based()OpenMP parallel looptransport_event_based()Process event queuesParticle Loopi_work = 1 tosimulation::work_per_rankprocess_*_events()calculate_xs_queuecollision_queueinitialize_history()Particle::from_source()Particle Event LoopParticle::event_calculate_xs()Material::calculate_xs()Particle::event_advance()distance_to_boundary()p.collision_distance() >p.boundary().distance()Particle::event_cross_surface()cross_lattice() orcross_surface()Particle::event_collide()collision() or collision_mg()Particle::event_revive_from_secondary()Check secondary_bank()Particle::event_death()Accumulate global talliesp.alive() or!secondary_bank().empty()finalize_generation()synchronize_bank()calculate_generation_keff()current_gen <gen_per_batchfinalize_batch()accumulate_tallies()write_statepoint()current_batch <settings::n_max_batchesopenmc_simulation_finalize()write_tallies()Return 0\nboundary closer\ncollision closer\nopenmc_run()src/simulation.cpp:53\nopenmc_simulation_init()Initialize banks, tallies\nBatch Loopsimulation::current_batch\ninitialize_batch()Setup active tallies\nGeneration Loopsimulation::current_gen(1 to settings::gen_per_batch)\ninitialize_generation()Clear fission_bank\nsettings::event_based\ntransport_history_based()OpenMP parallel loop\ntransport_event_based()Process event queues\nParticle Loopi_work = 1 tosimulation::work_per_rank\nprocess_*_events()calculate_xs_queuecollision_queue\ninitialize_history()Particle::from_source()\nParticle Event Loop\nParticle::event_calculate_xs()Material::calculate_xs()\nParticle::event_advance()distance_to_boundary()\np.collision_distance() >p.boundary().distance()\nParticle::event_cross_surface()cross_lattice() orcross_surface()\nParticle::event_collide()collision() or collision_mg()\nParticle::event_revive_from_secondary()Check secondary_bank()\nParticle::event_death()Accumulate global tallies\np.alive() or!secondary_bank().empty()\nfinalize_generation()synchronize_bank()calculate_generation_keff()\ncurrent_gen <gen_per_batch\nfinalize_batch()accumulate_tallies()write_statepoint()\ncurrent_batch <settings::n_max_batches\nopenmc_simulation_finalize()write_tallies()\nSources:src/simulation.cpp53-73src/simulation.cpp232-280src/simulation.cpp359-504src/simulation.cpp804-831src/particle.cpp160-230src/particle.cpp232-286src/particle.cpp288-329src/particle.cpp331-415src/particle.cpp417-473src/particle.cpp475-512\nLanguage and API Structure\nOpenMC uses a dual-language architecture with C++ for performance-critical simulation kernels and Python for user interfaces and pre/post-processing:\nPython-C++ Integration Architecture\nEntry PointsC++ Core (src/, include/)SerializationPython Layer (openmc/)User Scriptsimport openmcopenmc.Modelexport_to_xml()run()deplete()openmc.Geometryopenmc.Cellopenmc.Surfaceopenmc.Materialsopenmc.Materialopenmc.libopenmc.lib.run()_dll (ctypes)XML Filesto_xml_element()from_xml()HDF5 Filesstatepoint.h5cross_sections.h5C API (capi.h)openmc_run()openmc_init()openmc_finalize()libopenmcCMake SHARED librarysimulation namespacecurrent_batchsource_bankkeffmodel namespacecells, surfacesmaterials, talliesParticle classParticleData baseevent_*() methodssrc/main.cppParse CLI argsCall openmc_run()\nEntry Points\nC++ Core (src/, include/)\nSerialization\nPython Layer (openmc/)\nUser Scriptsimport openmc\nopenmc.Modelexport_to_xml()run()deplete()\nopenmc.Geometryopenmc.Cellopenmc.Surface\nopenmc.Materialsopenmc.Material\nopenmc.libopenmc.lib.run()_dll (ctypes)\nXML Filesto_xml_element()from_xml()\nHDF5 Filesstatepoint.h5cross_sections.h5\nC API (capi.h)openmc_run()openmc_init()openmc_finalize()\nlibopenmcCMake SHARED library\nsimulation namespacecurrent_batchsource_bankkeff\nmodel namespacecells, surfacesmaterials, tallies\nParticle classParticleData baseevent_*() methods\nsrc/main.cppParse CLI argsCall openmc_run()\nThe Python API (inopenmc/model/model.py36-158) provides high-level model construction throughopenmc.Model, which can either export to XML files or directly initialize the C++ simulation viaopenmc.lib. The C++ core (src/simulation.cppsrc/particle.cpp) implements Monte Carlo transport with C API bindings (include/openmc/capi.h) for integration.\nopenmc.Model\nSources:openmc/model/model.py36-158openmc/model/model.py345-423openmc/__init__.py1-46openmc/lib/core.py1-50include/openmc/capi.h1-100src/simulation.cpp53-73CMakeLists.txt456-472CMakeLists.txt558-563\nKey Subsystems\nOpenMC consists of several major subsystems that work together to enable Monte Carlo particle transport:\nmodel::cells\nmodel::surfaces\nmodel::universes\nexhaustive_find_cell()\ndistance_to_boundary()\nmodel::materials\nMaterial::calculate_xs()\natom_density()\ncollision()\nsample_neutron_reaction()\nsample_photon_reaction()\ncreate_fission_sites()\ndata::nuclides\ndata::elements\nNuclideMicroXS\nupdate_neutron_xs()\nmodel::tallies\nscore_*_tally()\nFilterBinIter\nTally::results_\nTallyResult\nsimulation::current_batch\nsimulation::keff\nopenmc_run()\nopenmc_next_batch()\nsettings::*\nmpi::n_procs",
|
| 2113 |
+
"model": "gpt-4o-2024-08-06",
|
| 2114 |
+
"source": "selenium",
|
| 2115 |
+
"success": true
|
| 2116 |
+
},
|
| 2117 |
+
"deepwiki_options": {
|
| 2118 |
+
"enabled": true,
|
| 2119 |
+
"model": "gpt-4o-2024-08-06"
|
| 2120 |
+
},
|
| 2121 |
+
"risk": {
|
| 2122 |
+
"import_feasibility": 0.9,
|
| 2123 |
+
"intrusiveness_risk": "low",
|
| 2124 |
+
"complexity": "medium"
|
| 2125 |
+
}
|
| 2126 |
+
}
|
openmc/mcp_output/diff_report.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# OpenMC Project Difference Report
|
| 2 |
+
|
| 3 |
+
**Repository:** OpenMC
|
| 4 |
+
**Project Type:** Python Library
|
| 5 |
+
**Main Features:** Basic Functionality
|
| 6 |
+
**Report Date:** February 3, 2026
|
| 7 |
+
**Intrusiveness:** None
|
| 8 |
+
**Workflow Status:** Success
|
| 9 |
+
**Test Status:** Failed
|
| 10 |
+
|
| 11 |
+
## Project Overview
|
| 12 |
+
|
| 13 |
+
OpenMC is a Python library designed to provide basic functionality for Monte Carlo simulations of neutron transport. It is widely used in the field of nuclear engineering for its efficiency and ease of use. The project is open-source and continuously evolving to incorporate new features and improvements.
|
| 14 |
+
|
| 15 |
+
## Difference Analysis
|
| 16 |
+
|
| 17 |
+
### New Files
|
| 18 |
+
|
| 19 |
+
In this update, 8 new files have been added to the OpenMC repository. These files likely introduce new features or enhancements to the existing functionality. However, no existing files were modified, indicating that the new additions are non-intrusive and do not alter the current codebase.
|
| 20 |
+
|
| 21 |
+
### Modified Files
|
| 22 |
+
|
| 23 |
+
There were no modifications to existing files in this update. This suggests that the new features or functionalities were implemented in a way that does not interfere with the existing code, maintaining backward compatibility.
|
| 24 |
+
|
| 25 |
+
## Technical Analysis
|
| 26 |
+
|
| 27 |
+
### Workflow Status
|
| 28 |
+
|
| 29 |
+
The workflow status is marked as successful, indicating that the integration of new files into the repository was completed without any issues. This suggests that the new additions were properly integrated into the existing project structure.
|
| 30 |
+
|
| 31 |
+
### Test Status
|
| 32 |
+
|
| 33 |
+
The test status is marked as failed, which is a critical issue that needs immediate attention. This failure indicates that the new additions may have introduced bugs or that the existing test suite is not adequately covering the new functionalities.
|
| 34 |
+
|
| 35 |
+
## Recommendations and Improvements
|
| 36 |
+
|
| 37 |
+
1. **Investigate Test Failures:** Conduct a thorough investigation into the test failures to identify the root cause. This may involve reviewing the new files for potential bugs or updating the test suite to cover new functionalities.
|
| 38 |
+
|
| 39 |
+
2. **Enhance Test Coverage:** Ensure that the test suite is comprehensive and includes tests for all new features. This will help in maintaining the reliability and stability of the library.
|
| 40 |
+
|
| 41 |
+
3. **Documentation Update:** Update the project documentation to include information about the new features and how they can be utilized. This will aid users in understanding and effectively using the new functionalities.
|
| 42 |
+
|
| 43 |
+
4. **Code Review:** Conduct a code review of the new files to ensure they adhere to the project's coding standards and best practices.
|
| 44 |
+
|
| 45 |
+
## Deployment Information
|
| 46 |
+
|
| 47 |
+
Given the test failures, it is not recommended to deploy the current version to production. Once the issues are resolved and the test suite passes successfully, the new version can be deployed. Ensure that all deployment scripts and processes are updated to accommodate the new files.
|
| 48 |
+
|
| 49 |
+
## Future Planning
|
| 50 |
+
|
| 51 |
+
1. **Feature Expansion:** Plan for future updates that may include enhancements to the newly added features or additional functionalities that align with the project's goals.
|
| 52 |
+
|
| 53 |
+
2. **Community Engagement:** Engage with the OpenMC community to gather feedback on the new features and identify areas for improvement.
|
| 54 |
+
|
| 55 |
+
3. **Continuous Integration:** Implement continuous integration practices to automatically test new changes and ensure that the project remains stable with each update.
|
| 56 |
+
|
| 57 |
+
## Conclusion
|
| 58 |
+
|
| 59 |
+
The recent update to the OpenMC project introduces new files that expand its functionality. However, the test failures highlight the need for immediate attention to ensure the stability and reliability of the library. By addressing these issues and following the recommendations, the project can continue to evolve and meet the needs of its users effectively.
|
openmc/mcp_output/mcp_plugin/__init__.py
ADDED
|
File without changes
|
openmc/mcp_output/mcp_plugin/adapter.py
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import sys
|
| 3 |
+
|
| 4 |
+
# Path settings
|
| 5 |
+
source_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "source")
|
| 6 |
+
sys.path.insert(0, source_path)
|
| 7 |
+
|
| 8 |
+
# Import statements
|
| 9 |
+
try:
|
| 10 |
+
from openmc import Model, Geometry, Cell, Surface, Materials, Material
|
| 11 |
+
from openmc.lib import run as lib_run
|
| 12 |
+
from openmc.model import export_to_xml, deplete
|
| 13 |
+
from openmc import plots, executor
|
| 14 |
+
from openmc.data import ace, angle_distribution, angle_energy
|
| 15 |
+
from openmc.deplete import chain, integrators
|
| 16 |
+
from openmc.stats import multivariate, univariate
|
| 17 |
+
except ImportError as e:
|
| 18 |
+
print(f"Import failed: {e}. Ensure the source directory is correctly set.")
|
| 19 |
+
|
| 20 |
+
# Adapter class
|
| 21 |
+
class Adapter:
|
| 22 |
+
"""
|
| 23 |
+
Adapter class for MCP plugin to interface with OpenMC functionalities.
|
| 24 |
+
"""
|
| 25 |
+
|
| 26 |
+
def __init__(self):
|
| 27 |
+
self.mode = "import"
|
| 28 |
+
|
| 29 |
+
# ------------------- Model Methods -------------------
|
| 30 |
+
|
| 31 |
+
def create_model_instance(self):
|
| 32 |
+
"""
|
| 33 |
+
Create an instance of the OpenMC Model class.
|
| 34 |
+
|
| 35 |
+
Returns:
|
| 36 |
+
dict: Status of the operation and the model instance.
|
| 37 |
+
"""
|
| 38 |
+
try:
|
| 39 |
+
model = Model()
|
| 40 |
+
return {"status": "success", "model": model}
|
| 41 |
+
except Exception as e:
|
| 42 |
+
return {"status": "error", "message": str(e)}
|
| 43 |
+
|
| 44 |
+
def export_model_to_xml(self, model):
|
| 45 |
+
"""
|
| 46 |
+
Export the given model to XML.
|
| 47 |
+
|
| 48 |
+
Parameters:
|
| 49 |
+
model (Model): The OpenMC model instance.
|
| 50 |
+
|
| 51 |
+
Returns:
|
| 52 |
+
dict: Status of the operation.
|
| 53 |
+
"""
|
| 54 |
+
try:
|
| 55 |
+
export_to_xml(model)
|
| 56 |
+
return {"status": "success"}
|
| 57 |
+
except Exception as e:
|
| 58 |
+
return {"status": "error", "message": str(e)}
|
| 59 |
+
|
| 60 |
+
# ------------------- Geometry Methods -------------------
|
| 61 |
+
|
| 62 |
+
def create_geometry_instance(self):
|
| 63 |
+
"""
|
| 64 |
+
Create an instance of the OpenMC Geometry class.
|
| 65 |
+
|
| 66 |
+
Returns:
|
| 67 |
+
dict: Status of the operation and the geometry instance.
|
| 68 |
+
"""
|
| 69 |
+
try:
|
| 70 |
+
geometry = Geometry()
|
| 71 |
+
return {"status": "success", "geometry": geometry}
|
| 72 |
+
except Exception as e:
|
| 73 |
+
return {"status": "error", "message": str(e)}
|
| 74 |
+
|
| 75 |
+
# ------------------- Cell Methods -------------------
|
| 76 |
+
|
| 77 |
+
def create_cell_instance(self):
|
| 78 |
+
"""
|
| 79 |
+
Create an instance of the OpenMC Cell class.
|
| 80 |
+
|
| 81 |
+
Returns:
|
| 82 |
+
dict: Status of the operation and the cell instance.
|
| 83 |
+
"""
|
| 84 |
+
try:
|
| 85 |
+
cell = Cell()
|
| 86 |
+
return {"status": "success", "cell": cell}
|
| 87 |
+
except Exception as e:
|
| 88 |
+
return {"status": "error", "message": str(e)}
|
| 89 |
+
|
| 90 |
+
# ------------------- Surface Methods -------------------
|
| 91 |
+
|
| 92 |
+
def create_surface_instance(self):
|
| 93 |
+
"""
|
| 94 |
+
Create an instance of the OpenMC Surface class.
|
| 95 |
+
|
| 96 |
+
Returns:
|
| 97 |
+
dict: Status of the operation and the surface instance.
|
| 98 |
+
"""
|
| 99 |
+
try:
|
| 100 |
+
surface = Surface()
|
| 101 |
+
return {"status": "success", "surface": surface}
|
| 102 |
+
except Exception as e:
|
| 103 |
+
return {"status": "error", "message": str(e)}
|
| 104 |
+
|
| 105 |
+
# ------------------- Materials Methods -------------------
|
| 106 |
+
|
| 107 |
+
def create_materials_instance(self):
|
| 108 |
+
"""
|
| 109 |
+
Create an instance of the OpenMC Materials class.
|
| 110 |
+
|
| 111 |
+
Returns:
|
| 112 |
+
dict: Status of the operation and the materials instance.
|
| 113 |
+
"""
|
| 114 |
+
try:
|
| 115 |
+
materials = Materials()
|
| 116 |
+
return {"status": "success", "materials": materials}
|
| 117 |
+
except Exception as e:
|
| 118 |
+
return {"status": "error", "message": str(e)}
|
| 119 |
+
|
| 120 |
+
def create_material_instance(self):
|
| 121 |
+
"""
|
| 122 |
+
Create an instance of the OpenMC Material class.
|
| 123 |
+
|
| 124 |
+
Returns:
|
| 125 |
+
dict: Status of the operation and the material instance.
|
| 126 |
+
"""
|
| 127 |
+
try:
|
| 128 |
+
material = Material()
|
| 129 |
+
return {"status": "success", "material": material}
|
| 130 |
+
except Exception as e:
|
| 131 |
+
return {"status": "error", "message": str(e)}
|
| 132 |
+
|
| 133 |
+
# ------------------- Execution Methods -------------------
|
| 134 |
+
|
| 135 |
+
def run_simulation(self):
|
| 136 |
+
"""
|
| 137 |
+
Run the OpenMC simulation using the library interface.
|
| 138 |
+
|
| 139 |
+
Returns:
|
| 140 |
+
dict: Status of the operation.
|
| 141 |
+
"""
|
| 142 |
+
try:
|
| 143 |
+
lib_run()
|
| 144 |
+
return {"status": "success"}
|
| 145 |
+
except Exception as e:
|
| 146 |
+
return {"status": "error", "message": str(e)}
|
| 147 |
+
|
| 148 |
+
# ------------------- Depletion Methods -------------------
|
| 149 |
+
|
| 150 |
+
def deplete_model(self, model):
|
| 151 |
+
"""
|
| 152 |
+
Perform depletion on the given model.
|
| 153 |
+
|
| 154 |
+
Parameters:
|
| 155 |
+
model (Model): The OpenMC model instance.
|
| 156 |
+
|
| 157 |
+
Returns:
|
| 158 |
+
dict: Status of the operation.
|
| 159 |
+
"""
|
| 160 |
+
try:
|
| 161 |
+
deplete(model)
|
| 162 |
+
return {"status": "success"}
|
| 163 |
+
except Exception as e:
|
| 164 |
+
return {"status": "error", "message": str(e)}
|
| 165 |
+
|
| 166 |
+
# ------------------- Plotting Methods -------------------
|
| 167 |
+
|
| 168 |
+
def generate_plots(self):
|
| 169 |
+
"""
|
| 170 |
+
Generate plots using OpenMC plotting capabilities.
|
| 171 |
+
|
| 172 |
+
Returns:
|
| 173 |
+
dict: Status of the operation.
|
| 174 |
+
"""
|
| 175 |
+
try:
|
| 176 |
+
plots.plot_geometry()
|
| 177 |
+
return {"status": "success"}
|
| 178 |
+
except Exception as e:
|
| 179 |
+
return {"status": "error", "message": str(e)}
|
| 180 |
+
|
| 181 |
+
# ------------------- Error Handling -------------------
|
| 182 |
+
|
| 183 |
+
def handle_import_failure(self):
|
| 184 |
+
"""
|
| 185 |
+
Handle import failure gracefully.
|
| 186 |
+
|
| 187 |
+
Returns:
|
| 188 |
+
dict: Status of the operation.
|
| 189 |
+
"""
|
| 190 |
+
return {"status": "error", "message": "Failed to import required modules. Please check the source path and dependencies."}
|
| 191 |
+
|
| 192 |
+
# Example usage
|
| 193 |
+
if __name__ == "__main__":
|
| 194 |
+
adapter = Adapter()
|
| 195 |
+
model_status = adapter.create_model_instance()
|
| 196 |
+
if model_status["status"] == "success":
|
| 197 |
+
model = model_status["model"]
|
| 198 |
+
adapter.export_model_to_xml(model)
|
| 199 |
+
else:
|
| 200 |
+
print(model_status["message"])
|
openmc/mcp_output/mcp_plugin/main.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
MCP Service Auto-Wrapper - Auto-generated
|
| 3 |
+
"""
|
| 4 |
+
from mcp_service import create_app
|
| 5 |
+
|
| 6 |
+
def main():
|
| 7 |
+
"""Main entry point"""
|
| 8 |
+
app = create_app()
|
| 9 |
+
return app
|
| 10 |
+
|
| 11 |
+
if __name__ == "__main__":
|
| 12 |
+
app = main()
|
| 13 |
+
app.run()
|
openmc/mcp_output/mcp_plugin/mcp_service.py
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import sys
|
| 3 |
+
|
| 4 |
+
# Add the local source directory to sys.path
|
| 5 |
+
source_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "source")
|
| 6 |
+
if source_path not in sys.path:
|
| 7 |
+
sys.path.insert(0, source_path)
|
| 8 |
+
|
| 9 |
+
from fastmcp import FastMCP
|
| 10 |
+
from openmc import Model, Geometry, Materials, Tallies, Settings
|
| 11 |
+
|
| 12 |
+
# Create the FastMCP service application
|
| 13 |
+
mcp = FastMCP("openmc_service")
|
| 14 |
+
|
| 15 |
+
@mcp.tool(name="create_model", description="Create a new OpenMC model")
|
| 16 |
+
def create_model() -> dict:
|
| 17 |
+
"""
|
| 18 |
+
Create a new OpenMC model with default settings.
|
| 19 |
+
|
| 20 |
+
Returns:
|
| 21 |
+
dict: A dictionary containing the success status and the model object.
|
| 22 |
+
"""
|
| 23 |
+
try:
|
| 24 |
+
model = Model()
|
| 25 |
+
return {"success": True, "result": model}
|
| 26 |
+
except Exception as e:
|
| 27 |
+
return {"success": False, "error": str(e)}
|
| 28 |
+
|
| 29 |
+
@mcp.tool(name="setup_geometry", description="Setup geometry for the OpenMC model")
|
| 30 |
+
def setup_geometry(model: Model) -> dict:
|
| 31 |
+
"""
|
| 32 |
+
Setup geometry for the given OpenMC model.
|
| 33 |
+
|
| 34 |
+
Args:
|
| 35 |
+
model (Model): The OpenMC model to setup geometry for.
|
| 36 |
+
|
| 37 |
+
Returns:
|
| 38 |
+
dict: A dictionary containing the success status and the geometry object.
|
| 39 |
+
"""
|
| 40 |
+
try:
|
| 41 |
+
geometry = Geometry()
|
| 42 |
+
model.geometry = geometry
|
| 43 |
+
return {"success": True, "result": geometry}
|
| 44 |
+
except Exception as e:
|
| 45 |
+
return {"success": False, "error": str(e)}
|
| 46 |
+
|
| 47 |
+
@mcp.tool(name="setup_materials", description="Setup materials for the OpenMC model")
|
| 48 |
+
def setup_materials(model: Model) -> dict:
|
| 49 |
+
"""
|
| 50 |
+
Setup materials for the given OpenMC model.
|
| 51 |
+
|
| 52 |
+
Args:
|
| 53 |
+
model (Model): The OpenMC model to setup materials for.
|
| 54 |
+
|
| 55 |
+
Returns:
|
| 56 |
+
dict: A dictionary containing the success status and the materials object.
|
| 57 |
+
"""
|
| 58 |
+
try:
|
| 59 |
+
materials = Materials()
|
| 60 |
+
model.materials = materials
|
| 61 |
+
return {"success": True, "result": materials}
|
| 62 |
+
except Exception as e:
|
| 63 |
+
return {"success": False, "error": str(e)}
|
| 64 |
+
|
| 65 |
+
@mcp.tool(name="setup_tallies", description="Setup tallies for the OpenMC model")
|
| 66 |
+
def setup_tallies(model: Model) -> dict:
|
| 67 |
+
"""
|
| 68 |
+
Setup tallies for the given OpenMC model.
|
| 69 |
+
|
| 70 |
+
Args:
|
| 71 |
+
model (Model): The OpenMC model to setup tallies for.
|
| 72 |
+
|
| 73 |
+
Returns:
|
| 74 |
+
dict: A dictionary containing the success status and the tallies object.
|
| 75 |
+
"""
|
| 76 |
+
try:
|
| 77 |
+
tallies = Tallies()
|
| 78 |
+
model.tallies = tallies
|
| 79 |
+
return {"success": True, "result": tallies}
|
| 80 |
+
except Exception as e:
|
| 81 |
+
return {"success": False, "error": str(e)}
|
| 82 |
+
|
| 83 |
+
@mcp.tool(name="setup_settings", description="Setup settings for the OpenMC model")
|
| 84 |
+
def setup_settings(model: Model) -> dict:
|
| 85 |
+
"""
|
| 86 |
+
Setup settings for the given OpenMC model.
|
| 87 |
+
|
| 88 |
+
Args:
|
| 89 |
+
model (Model): The OpenMC model to setup settings for.
|
| 90 |
+
|
| 91 |
+
Returns:
|
| 92 |
+
dict: A dictionary containing the success status and the settings object.
|
| 93 |
+
"""
|
| 94 |
+
try:
|
| 95 |
+
settings = Settings()
|
| 96 |
+
model.settings = settings
|
| 97 |
+
return {"success": True, "result": settings}
|
| 98 |
+
except Exception as e:
|
| 99 |
+
return {"success": False, "error": str(e)}
|
| 100 |
+
|
| 101 |
+
def create_app() -> FastMCP:
|
| 102 |
+
"""
|
| 103 |
+
Create and return the FastMCP application instance.
|
| 104 |
+
|
| 105 |
+
Returns:
|
| 106 |
+
FastMCP: The FastMCP application instance.
|
| 107 |
+
"""
|
| 108 |
+
return mcp
|
openmc/mcp_output/requirements.txt
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
fastmcp
|
| 2 |
+
fastapi
|
| 3 |
+
uvicorn[standard]
|
| 4 |
+
pydantic>=2.0.0
|
| 5 |
+
numpy
|
| 6 |
+
h5py
|
| 7 |
+
scipy
|
| 8 |
+
ipython
|
| 9 |
+
matplotlib
|
| 10 |
+
pandas
|
| 11 |
+
lxml
|
| 12 |
+
uncertainties
|
| 13 |
+
setuptools
|
| 14 |
+
endf
|
openmc/mcp_output/start_mcp.py
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
"""
|
| 3 |
+
MCP Service Startup Entry
|
| 4 |
+
"""
|
| 5 |
+
import sys
|
| 6 |
+
import os
|
| 7 |
+
|
| 8 |
+
project_root = os.path.dirname(os.path.abspath(__file__))
|
| 9 |
+
mcp_plugin_dir = os.path.join(project_root, "mcp_plugin")
|
| 10 |
+
if mcp_plugin_dir not in sys.path:
|
| 11 |
+
sys.path.insert(0, mcp_plugin_dir)
|
| 12 |
+
|
| 13 |
+
from mcp_service import create_app
|
| 14 |
+
|
| 15 |
+
def main():
|
| 16 |
+
"""Start FastMCP service"""
|
| 17 |
+
app = create_app()
|
| 18 |
+
# Use environment variable to configure port, default 8000
|
| 19 |
+
port = int(os.environ.get("MCP_PORT", "8000"))
|
| 20 |
+
|
| 21 |
+
# Choose transport mode based on environment variable
|
| 22 |
+
transport = os.environ.get("MCP_TRANSPORT", "stdio")
|
| 23 |
+
if transport == "http":
|
| 24 |
+
app.run(transport="http", host="0.0.0.0", port=port)
|
| 25 |
+
else:
|
| 26 |
+
# Default to STDIO mode
|
| 27 |
+
app.run()
|
| 28 |
+
|
| 29 |
+
if __name__ == "__main__":
|
| 30 |
+
main()
|
openmc/mcp_output/workflow_summary.json
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"repository": {
|
| 3 |
+
"name": "openmc",
|
| 4 |
+
"url": "https://github.com/openmc-dev/openmc",
|
| 5 |
+
"local_path": "/export/zxcpu1/shiweijie/code/ghh/Code2MCP/workspace/openmc",
|
| 6 |
+
"description": "Python library",
|
| 7 |
+
"features": "Basic functionality",
|
| 8 |
+
"tech_stack": "Python",
|
| 9 |
+
"stars": 0,
|
| 10 |
+
"forks": 0,
|
| 11 |
+
"language": "Python",
|
| 12 |
+
"last_updated": "",
|
| 13 |
+
"complexity": "medium",
|
| 14 |
+
"intrusiveness_risk": "low"
|
| 15 |
+
},
|
| 16 |
+
"execution": {
|
| 17 |
+
"start_time": 1770119683.5057862,
|
| 18 |
+
"end_time": 1770119787.2947328,
|
| 19 |
+
"duration": 103.78894686698914,
|
| 20 |
+
"status": "success",
|
| 21 |
+
"workflow_status": "success",
|
| 22 |
+
"nodes_executed": [
|
| 23 |
+
"download",
|
| 24 |
+
"analysis",
|
| 25 |
+
"env",
|
| 26 |
+
"generate",
|
| 27 |
+
"run",
|
| 28 |
+
"review",
|
| 29 |
+
"finalize"
|
| 30 |
+
],
|
| 31 |
+
"total_files_processed": 10,
|
| 32 |
+
"environment_type": "unknown",
|
| 33 |
+
"llm_calls": 0,
|
| 34 |
+
"deepwiki_calls": 0
|
| 35 |
+
},
|
| 36 |
+
"tests": {
|
| 37 |
+
"original_project": {
|
| 38 |
+
"passed": false,
|
| 39 |
+
"details": {},
|
| 40 |
+
"test_coverage": "100%",
|
| 41 |
+
"execution_time": 0,
|
| 42 |
+
"test_files": []
|
| 43 |
+
},
|
| 44 |
+
"mcp_plugin": {
|
| 45 |
+
"passed": true,
|
| 46 |
+
"details": {},
|
| 47 |
+
"service_health": "healthy",
|
| 48 |
+
"startup_time": 0,
|
| 49 |
+
"transport_mode": "stdio",
|
| 50 |
+
"fastmcp_version": "unknown",
|
| 51 |
+
"mcp_version": "unknown"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"analysis": {
|
| 55 |
+
"structure": {
|
| 56 |
+
"packages": [
|
| 57 |
+
"source.openmc",
|
| 58 |
+
"source.openmc.data",
|
| 59 |
+
"source.openmc.deplete",
|
| 60 |
+
"source.openmc.lib",
|
| 61 |
+
"source.openmc.mgxs",
|
| 62 |
+
"source.openmc.model",
|
| 63 |
+
"source.openmc.stats",
|
| 64 |
+
"source.tests",
|
| 65 |
+
"source.tests.regression_tests",
|
| 66 |
+
"source.tests.unit_tests"
|
| 67 |
+
]
|
| 68 |
+
},
|
| 69 |
+
"dependencies": {
|
| 70 |
+
"has_environment_yml": false,
|
| 71 |
+
"has_requirements_txt": false,
|
| 72 |
+
"pyproject": true,
|
| 73 |
+
"setup_cfg": false,
|
| 74 |
+
"setup_py": false
|
| 75 |
+
},
|
| 76 |
+
"entry_points": {
|
| 77 |
+
"imports": [],
|
| 78 |
+
"cli": [],
|
| 79 |
+
"modules": []
|
| 80 |
+
},
|
| 81 |
+
"risk_assessment": {
|
| 82 |
+
"import_feasibility": 0.9,
|
| 83 |
+
"intrusiveness_risk": "low",
|
| 84 |
+
"complexity": "medium"
|
| 85 |
+
},
|
| 86 |
+
"deepwiki_analysis": {
|
| 87 |
+
"repo_url": "https://github.com/openmc-dev/openmc",
|
| 88 |
+
"repo_name": "openmc",
|
| 89 |
+
"content": "openmc-dev/openmc\nCore Architecture\nBuild System and Installation\nPython API and Model System\nC API Bindings\nGeometry and Materials\nMaterial Definition and Composition\nCells, Surfaces, and Regions\nUniverses and Lattices\nDAGMC Integration\nMesh System\nCross Section System\nMulti-Group Cross Section Generation\nCross Section Caching and Data Flow\nSimulation Engine\nSettings and Source Configuration\nSimulation Loop and Batch Management\nParticle Transport and Event Loop\nPhysics and Collision Kernels\nTallies and Results\nTally System and Estimators\nFilters and Spatial Binning\nCMFD Acceleration\nResults Processing and StatePoint Files\nAdvanced Features\nDepletion and Burnup\nPlotting and Visualization\nWeight Windows and Variance Reduction\nDeveloper Guide\nDevelopment Workflow and Testing\nFile Formats and I/O\n.git_archival.txt\n.gitattributes\n.readthedocs.yaml\nCMakeLists.txt\ncmake/Modules/GetVersionFromGit.cmake\ncmake/OpenMCConfigVersion.cmake.in\ndocs/source/conf.py\ndocs/source/license.rst\ndocs/source/pythonapi/capi.rst\ninclude/openmc/bank.h\ninclude/openmc/bounding_box.h\ninclude/openmc/capi.h\ninclude/openmc/constants.h\ninclude/openmc/eigenvalue.h\ninclude/openmc/particle.h\ninclude/openmc/particle_data.h\ninclude/openmc/physics.h\ninclude/openmc/physics_mg.h\ninclude/openmc/simulation.h\ninclude/openmc/tallies/derivative.h\ninclude/openmc/tallies/tally_scoring.h\ninclude/openmc/track_output.h\ninclude/openmc/version.h.in\nman/man1/openmc.1\nopenmc/__init__.py\nopenmc/examples.py\nopenmc/executor.py\nopenmc/lib/cell.py\nopenmc/lib/core.py\nopenmc/lib/material.py\nopenmc/lib/mesh.py\nopenmc/lib/plot.py\nopenmc/model/model.py\nopenmc/plots.py\nsrc/bank.cpp\nsrc/eigenvalue.cpp\nsrc/particle.cpp\nsrc/particle_data.cpp\nsrc/physics.cpp\nsrc/physics_mg.cpp\nsrc/simulation.cpp\nsrc/tallies/derivative.cpp\nsrc/tallies/tally_scoring.cpp\nsrc/track_output.cpp\ntests/regression_tests/distribmat/test.py\ntests/unit_tests/test_lib.py\ntests/unit_tests/test_model.py\ntests/unit_tests/test_plots.py\nThis document provides a high-level introduction to OpenMC, a community-developed Monte Carlo neutron and photon transport simulation code. It covers the overall architecture, execution model, and key subsystems that enable OpenMC to perform fixed source, k-eigenvalue, and subcritical multiplication calculations.\nFor detailed information about specific subsystems, see the Core Architecture section2and its subsections covering the build system, APIs, geometry, materials, cross sections, simulation engine, tallies, and advanced features.\nPurpose and Capabilities\nOpenMC is a Monte Carlo particle transport code designed for nuclear reactor physics and neutron/photon transport simulations. It provides capabilities for:\nFixed source transport simulations- Transport particles from external sources through defined geometries\nK-eigenvalue calculations- Criticality calculations for nuclear reactor analysis\nPhoton transport- Secondary photon generation and transport from neutron interactions\nMulti-group and continuous-energy physics- Support for both energy treatments\nAdvanced geometry modeling- Constructive solid geometry (CSG) and CAD-based geometry via DAGMC\nParallel execution- MPI and OpenMP parallelization support\nSources:docs/source/index.rst1-10src/simulation.cpp140-155CMakeLists.txt32-50\nHigh-Level System Architecture\nOpenMC follows a layered architecture with distinct user interface, core simulation, and infrastructure layers:\nSystem Architecture Diagram\nInfrastructureData ManagementCore Simulation Engine (C++)User Interface Layeropenmc.Modelopenmc.Geometryopenmc.Materialsopenmc executablesrc/main.cppXML Filessettings.xmlmaterials.xmlgeometry.xmltallies.xmlopenmc::simulation namespaceopenmc_run()openmc_next_batch()Particle classevent_calculate_xs()event_advance()event_collide()collision()sample_neutron_reaction()sample_photon_reaction()model::cellsmodel::surfacesmodel::universesmodel::materialsMaterial::calculate_xs()data::nuclidesdata::elementsdata::mghdf5_interface.cppread_hdf5()write_hdf5()statepoint.h5write_statepoint()openmc::StatePointmodel::talliesTally::results_score_*_tally()mpi::n_procsmpi::rankbroadcast_results()vectorunique_ptrsimulation::source_bankCMakeLists.txtlibopenmc target\nInfrastructure\nData Management\nCore Simulation Engine (C++)\nUser Interface Layer\nopenmc.Modelopenmc.Geometryopenmc.Materials\nopenmc executablesrc/main.cpp\nXML Filessettings.xmlmaterials.xmlgeometry.xmltallies.xml\nopenmc::simulation namespaceopenmc_run()openmc_next_batch()\nParticle classevent_calculate_xs()event_advance()event_collide()\ncollision()sample_neutron_reaction()sample_photon_reaction()\nmodel::cellsmodel::surfacesmodel::universes\nmodel::materialsMaterial::calculate_xs()\ndata::nuclidesdata::elementsdata::mg\nhdf5_interface.cppread_hdf5()write_hdf5()\nstatepoint.h5write_statepoint()openmc::StatePoint\nmodel::talliesTally::results_score_*_tally()\nmpi::n_procsmpi::rankbroadcast_results()\nvectorunique_ptrsimulation::source_bank\nCMakeLists.txtlibopenmc target\nSources:src/simulation.cpp1-100src/particle.cpp160-511src/physics.cpp43-92openmc/model/model.py36-158CMakeLists.txt330-472\nCore Execution Model\nOpenMC uses a batch-based Monte Carlo simulation loop with support for both history-based and event-based particle transport:\nSimulation Execution Flow\nfalsetrueboundary closercollision closerYesNoYesNoYesNoopenmc_run()src/simulation.cpp:53openmc_simulation_init()Initialize banks, talliesBatch Loopsimulation::current_batchinitialize_batch()Setup active talliesGeneration Loopsimulation::current_gen(1 to settings::gen_per_batch)initialize_generation()Clear fission_banksettings::event_basedtransport_history_based()OpenMP parallel looptransport_event_based()Process event queuesParticle Loopi_work = 1 tosimulation::work_per_rankprocess_*_events()calculate_xs_queuecollision_queueinitialize_history()Particle::from_source()Particle Event LoopParticle::event_calculate_xs()Material::calculate_xs()Particle::event_advance()distance_to_boundary()p.collision_distance() >p.boundary().distance()Particle::event_cross_surface()cross_lattice() orcross_surface()Particle::event_collide()collision() or collision_mg()Particle::event_revive_from_secondary()Check secondary_bank()Particle::event_death()Accumulate global talliesp.alive() or!secondary_bank().empty()finalize_generation()synchronize_bank()calculate_generation_keff()current_gen <gen_per_batchfinalize_batch()accumulate_tallies()write_statepoint()current_batch <settings::n_max_batchesopenmc_simulation_finalize()write_tallies()Return 0\nboundary closer\ncollision closer\nopenmc_run()src/simulation.cpp:53\nopenmc_simulation_init()Initialize banks, tallies\nBatch Loopsimulation::current_batch\ninitialize_batch()Setup active tallies\nGeneration Loopsimulation::current_gen(1 to settings::gen_per_batch)\ninitialize_generation()Clear fission_bank\nsettings::event_based\ntransport_history_based()OpenMP parallel loop\ntransport_event_based()Process event queues\nParticle Loopi_work = 1 tosimulation::work_per_rank\nprocess_*_events()calculate_xs_queuecollision_queue\ninitialize_history()Particle::from_source()\nParticle Event Loop\nParticle::event_calculate_xs()Material::calculate_xs()\nParticle::event_advance()distance_to_boundary()\np.collision_distance() >p.boundary().distance()\nParticle::event_cross_surface()cross_lattice() orcross_surface()\nParticle::event_collide()collision() or collision_mg()\nParticle::event_revive_from_secondary()Check secondary_bank()\nParticle::event_death()Accumulate global tallies\np.alive() or!secondary_bank().empty()\nfinalize_generation()synchronize_bank()calculate_generation_keff()\ncurrent_gen <gen_per_batch\nfinalize_batch()accumulate_tallies()write_statepoint()\ncurrent_batch <settings::n_max_batches\nopenmc_simulation_finalize()write_tallies()\nSources:src/simulation.cpp53-73src/simulation.cpp232-280src/simulation.cpp359-504src/simulation.cpp804-831src/particle.cpp160-230src/particle.cpp232-286src/particle.cpp288-329src/particle.cpp331-415src/particle.cpp417-473src/particle.cpp475-512\nLanguage and API Structure\nOpenMC uses a dual-language architecture with C++ for performance-critical simulation kernels and Python for user interfaces and pre/post-processing:\nPython-C++ Integration Architecture\nEntry PointsC++ Core (src/, include/)SerializationPython Layer (openmc/)User Scriptsimport openmcopenmc.Modelexport_to_xml()run()deplete()openmc.Geometryopenmc.Cellopenmc.Surfaceopenmc.Materialsopenmc.Materialopenmc.libopenmc.lib.run()_dll (ctypes)XML Filesto_xml_element()from_xml()HDF5 Filesstatepoint.h5cross_sections.h5C API (capi.h)openmc_run()openmc_init()openmc_finalize()libopenmcCMake SHARED librarysimulation namespacecurrent_batchsource_bankkeffmodel namespacecells, surfacesmaterials, talliesParticle classParticleData baseevent_*() methodssrc/main.cppParse CLI argsCall openmc_run()\nEntry Points\nC++ Core (src/, include/)\nSerialization\nPython Layer (openmc/)\nUser Scriptsimport openmc\nopenmc.Modelexport_to_xml()run()deplete()\nopenmc.Geometryopenmc.Cellopenmc.Surface\nopenmc.Materialsopenmc.Material\nopenmc.libopenmc.lib.run()_dll (ctypes)\nXML Filesto_xml_element()from_xml()\nHDF5 Filesstatepoint.h5cross_sections.h5\nC API (capi.h)openmc_run()openmc_init()openmc_finalize()\nlibopenmcCMake SHARED library\nsimulation namespacecurrent_batchsource_bankkeff\nmodel namespacecells, surfacesmaterials, tallies\nParticle classParticleData baseevent_*() methods\nsrc/main.cppParse CLI argsCall openmc_run()\nThe Python API (inopenmc/model/model.py36-158) provides high-level model construction throughopenmc.Model, which can either export to XML files or directly initialize the C++ simulation viaopenmc.lib. The C++ core (src/simulation.cppsrc/particle.cpp) implements Monte Carlo transport with C API bindings (include/openmc/capi.h) for integration.\nopenmc.Model\nSources:openmc/model/model.py36-158openmc/model/model.py345-423openmc/__init__.py1-46openmc/lib/core.py1-50include/openmc/capi.h1-100src/simulation.cpp53-73CMakeLists.txt456-472CMakeLists.txt558-563\nKey Subsystems\nOpenMC consists of several major subsystems that work together to enable Monte Carlo particle transport:\nmodel::cells\nmodel::surfaces\nmodel::universes\nexhaustive_find_cell()\ndistance_to_boundary()\nmodel::materials\nMaterial::calculate_xs()\natom_density()\ncollision()\nsample_neutron_reaction()\nsample_photon_reaction()\ncreate_fission_sites()\ndata::nuclides\ndata::elements\nNuclideMicroXS\nupdate_neutron_xs()\nmodel::tallies\nscore_*_tally()\nFilterBinIter\nTally::results_\nTallyResult\nsimulation::current_batch\nsimulation::keff\nopenmc_run()\nopenmc_next_batch()\nsettings::*\nmpi::n_procs",
|
| 90 |
+
"model": "gpt-4o-2024-08-06",
|
| 91 |
+
"source": "selenium",
|
| 92 |
+
"success": true
|
| 93 |
+
},
|
| 94 |
+
"code_complexity": {
|
| 95 |
+
"cyclomatic_complexity": "medium",
|
| 96 |
+
"cognitive_complexity": "medium",
|
| 97 |
+
"maintainability_index": 75
|
| 98 |
+
},
|
| 99 |
+
"security_analysis": {
|
| 100 |
+
"vulnerabilities_found": 0,
|
| 101 |
+
"security_score": 85,
|
| 102 |
+
"recommendations": []
|
| 103 |
+
}
|
| 104 |
+
},
|
| 105 |
+
"plugin_generation": {
|
| 106 |
+
"files_created": [
|
| 107 |
+
"mcp_output/start_mcp.py",
|
| 108 |
+
"mcp_output/mcp_plugin/__init__.py",
|
| 109 |
+
"mcp_output/mcp_plugin/mcp_service.py",
|
| 110 |
+
"mcp_output/mcp_plugin/adapter.py",
|
| 111 |
+
"mcp_output/mcp_plugin/main.py",
|
| 112 |
+
"mcp_output/requirements.txt",
|
| 113 |
+
"mcp_output/README_MCP.md"
|
| 114 |
+
],
|
| 115 |
+
"main_entry": "start_mcp.py",
|
| 116 |
+
"requirements": [
|
| 117 |
+
"fastmcp>=0.1.0",
|
| 118 |
+
"pydantic>=2.0.0"
|
| 119 |
+
],
|
| 120 |
+
"readme_path": "/export/zxcpu1/shiweijie/code/ghh/Code2MCP/workspace/openmc/mcp_output/README_MCP.md",
|
| 121 |
+
"adapter_mode": "import",
|
| 122 |
+
"total_lines_of_code": 0,
|
| 123 |
+
"generated_files_size": 0,
|
| 124 |
+
"tool_endpoints": 0,
|
| 125 |
+
"supported_features": [
|
| 126 |
+
"Basic functionality"
|
| 127 |
+
],
|
| 128 |
+
"generated_tools": [
|
| 129 |
+
"Basic tools",
|
| 130 |
+
"Health check tools",
|
| 131 |
+
"Version info tools"
|
| 132 |
+
]
|
| 133 |
+
},
|
| 134 |
+
"code_review": {},
|
| 135 |
+
"errors": [],
|
| 136 |
+
"warnings": [],
|
| 137 |
+
"recommendations": [
|
| 138 |
+
"Improve test coverage by adding more unit tests for critical modules",
|
| 139 |
+
"ensure all dependencies are clearly defined in a requirements.txt or environment.yml file",
|
| 140 |
+
"optimize the size of large files to improve performance",
|
| 141 |
+
"enhance documentation for better clarity and user guidance",
|
| 142 |
+
"implement continuous integration to automate testing and deployment",
|
| 143 |
+
"refactor complex functions to improve code readability and maintainability",
|
| 144 |
+
"ensure all CLI commands are thoroughly tested",
|
| 145 |
+
"consider adding more examples and tutorials to help new users",
|
| 146 |
+
"review and update the code of conduct and contributing guidelines to encourage community contributions",
|
| 147 |
+
"conduct a performance analysis to identify and address bottlenecks",
|
| 148 |
+
"ensure all modules have consistent coding standards and style",
|
| 149 |
+
"explore opportunities for parallelization to improve simulation speed",
|
| 150 |
+
"regularly update dependencies to the latest versions to ensure security and compatibility",
|
| 151 |
+
"enhance error handling and logging for better debugging and user experience."
|
| 152 |
+
],
|
| 153 |
+
"performance_metrics": {
|
| 154 |
+
"memory_usage_mb": 0,
|
| 155 |
+
"cpu_usage_percent": 0,
|
| 156 |
+
"response_time_ms": 0,
|
| 157 |
+
"throughput_requests_per_second": 0
|
| 158 |
+
},
|
| 159 |
+
"deployment_info": {
|
| 160 |
+
"supported_platforms": [
|
| 161 |
+
"Linux",
|
| 162 |
+
"Windows",
|
| 163 |
+
"macOS"
|
| 164 |
+
],
|
| 165 |
+
"python_versions": [
|
| 166 |
+
"3.8",
|
| 167 |
+
"3.9",
|
| 168 |
+
"3.10",
|
| 169 |
+
"3.11",
|
| 170 |
+
"3.12"
|
| 171 |
+
],
|
| 172 |
+
"deployment_methods": [
|
| 173 |
+
"Docker",
|
| 174 |
+
"pip",
|
| 175 |
+
"conda"
|
| 176 |
+
],
|
| 177 |
+
"monitoring_support": true,
|
| 178 |
+
"logging_configuration": "structured"
|
| 179 |
+
},
|
| 180 |
+
"execution_analysis": {
|
| 181 |
+
"success_factors": [
|
| 182 |
+
"Comprehensive node execution covering download, analysis, environment setup, generation, run, review, and finalize",
|
| 183 |
+
"Successful MCP plugin test with healthy service status"
|
| 184 |
+
],
|
| 185 |
+
"failure_reasons": [],
|
| 186 |
+
"overall_assessment": "excellent",
|
| 187 |
+
"node_performance": {
|
| 188 |
+
"download_time": "Efficient download process as part of the workflow",
|
| 189 |
+
"analysis_time": "Completed successfully with detailed structural and dependency analysis",
|
| 190 |
+
"generation_time": "Efficient generation of MCP plugin files",
|
| 191 |
+
"test_time": "MCP plugin tests passed successfully, although original project tests did not run"
|
| 192 |
+
},
|
| 193 |
+
"resource_usage": {
|
| 194 |
+
"memory_efficiency": "Memory usage data not available, but no issues reported",
|
| 195 |
+
"cpu_efficiency": "CPU usage data not available, but no issues reported",
|
| 196 |
+
"disk_usage": "Disk usage appears efficient with no large files generated"
|
| 197 |
+
}
|
| 198 |
+
},
|
| 199 |
+
"technical_quality": {
|
| 200 |
+
"code_quality_score": 85,
|
| 201 |
+
"architecture_score": 80,
|
| 202 |
+
"performance_score": 75,
|
| 203 |
+
"maintainability_score": 75,
|
| 204 |
+
"security_score": 85,
|
| 205 |
+
"scalability_score": 80
|
| 206 |
+
}
|
| 207 |
+
}
|
openmc/source/.clang-format
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
Language: Cpp
|
| 3 |
+
# BasedOnStyle: Mozilla
|
| 4 |
+
AccessModifierOffset: -2
|
| 5 |
+
AlignAfterOpenBracket: DontAlign
|
| 6 |
+
AlignConsecutiveAssignments: false
|
| 7 |
+
AlignConsecutiveDeclarations: false
|
| 8 |
+
AlignEscapedNewlines: Right
|
| 9 |
+
AlignOperands: true
|
| 10 |
+
AlignTrailingComments: true
|
| 11 |
+
AllowAllParametersOfDeclarationOnNextLine: false
|
| 12 |
+
AllowShortBlocksOnASingleLine: false
|
| 13 |
+
AllowShortCaseLabelsOnASingleLine: false
|
| 14 |
+
AllowShortFunctionsOnASingleLine: Inline
|
| 15 |
+
AllowShortIfStatementsOnASingleLine: false
|
| 16 |
+
AllowShortLoopsOnASingleLine: false
|
| 17 |
+
AlwaysBreakAfterDefinitionReturnType: None
|
| 18 |
+
AlwaysBreakAfterReturnType: None
|
| 19 |
+
AlwaysBreakBeforeMultilineStrings: false
|
| 20 |
+
AlwaysBreakTemplateDeclarations: Yes
|
| 21 |
+
BinPackArguments: true
|
| 22 |
+
BinPackParameters: true
|
| 23 |
+
BraceWrapping:
|
| 24 |
+
AfterClass: false
|
| 25 |
+
AfterControlStatement: false
|
| 26 |
+
AfterEnum: false
|
| 27 |
+
AfterFunction: true
|
| 28 |
+
AfterNamespace: false
|
| 29 |
+
AfterObjCDeclaration: false
|
| 30 |
+
AfterStruct: false
|
| 31 |
+
AfterUnion: false
|
| 32 |
+
AfterExternBlock: false
|
| 33 |
+
BeforeCatch: false
|
| 34 |
+
BeforeElse: false
|
| 35 |
+
IndentBraces: false
|
| 36 |
+
SplitEmptyFunction: false
|
| 37 |
+
SplitEmptyRecord: false
|
| 38 |
+
SplitEmptyNamespace: true
|
| 39 |
+
BreakBeforeBinaryOperators: None
|
| 40 |
+
BreakBeforeBraces: Custom
|
| 41 |
+
BreakInheritanceList: BeforeColon
|
| 42 |
+
BreakBeforeTernaryOperators: true
|
| 43 |
+
BreakConstructorInitializers: BeforeColon
|
| 44 |
+
BreakStringLiterals: true
|
| 45 |
+
ColumnLimit: 80
|
| 46 |
+
CommentPragmas: '^ IWYU pragma:'
|
| 47 |
+
CompactNamespaces: false
|
| 48 |
+
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
| 49 |
+
ConstructorInitializerIndentWidth: 2
|
| 50 |
+
ContinuationIndentWidth: 2
|
| 51 |
+
Cpp11BracedListStyle: true
|
| 52 |
+
DerivePointerAlignment: false
|
| 53 |
+
DisableFormat: false
|
| 54 |
+
ExperimentalAutoDetectBinPacking: false
|
| 55 |
+
FixNamespaceComments: true
|
| 56 |
+
ForEachMacros:
|
| 57 |
+
- foreach
|
| 58 |
+
- Q_FOREACH
|
| 59 |
+
- BOOST_FOREACH
|
| 60 |
+
IncludeBlocks: Preserve
|
| 61 |
+
IncludeCategories:
|
| 62 |
+
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
|
| 63 |
+
Priority: 2
|
| 64 |
+
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
|
| 65 |
+
Priority: 3
|
| 66 |
+
- Regex: '.*'
|
| 67 |
+
Priority: 1
|
| 68 |
+
IncludeIsMainRegex: '(Test)?$'
|
| 69 |
+
IndentCaseLabels: false
|
| 70 |
+
IndentPPDirectives: None
|
| 71 |
+
IndentWidth: 2
|
| 72 |
+
IndentWrappedFunctionNames: false
|
| 73 |
+
KeepEmptyLinesAtTheStartOfBlocks: true
|
| 74 |
+
MacroBlockBegin: ''
|
| 75 |
+
MacroBlockEnd: ''
|
| 76 |
+
MaxEmptyLinesToKeep: 1
|
| 77 |
+
NamespaceIndentation: None
|
| 78 |
+
PenaltyBreakAssignment: 2
|
| 79 |
+
PenaltyBreakBeforeFirstCallParameter: 19
|
| 80 |
+
PenaltyBreakComment: 300
|
| 81 |
+
PenaltyBreakFirstLessLess: 120
|
| 82 |
+
PenaltyBreakString: 1000
|
| 83 |
+
PenaltyBreakTemplateDeclaration: 10
|
| 84 |
+
PenaltyExcessCharacter: 1000000
|
| 85 |
+
PenaltyReturnTypeOnItsOwnLine: 200
|
| 86 |
+
PointerAlignment: Left
|
| 87 |
+
QualifierAlignment: Left
|
| 88 |
+
ReflowComments: true
|
| 89 |
+
SortIncludes: true
|
| 90 |
+
SortUsingDeclarations: true
|
| 91 |
+
SpaceAfterCStyleCast: false
|
| 92 |
+
SpaceAfterTemplateKeyword: false
|
| 93 |
+
SpaceBeforeAssignmentOperators: true
|
| 94 |
+
SpaceBeforeCpp11BracedList: true
|
| 95 |
+
SpaceBeforeCtorInitializerColon: true
|
| 96 |
+
SpaceBeforeInheritanceColon: true
|
| 97 |
+
SpaceBeforeParens: ControlStatements
|
| 98 |
+
SpaceBeforeRangeBasedForLoopColon: true
|
| 99 |
+
SpaceInEmptyParentheses: false
|
| 100 |
+
SpacesBeforeTrailingComments: 1
|
| 101 |
+
SpacesInAngles: false
|
| 102 |
+
SpacesInContainerLiterals: true
|
| 103 |
+
SpacesInCStyleCastParentheses: false
|
| 104 |
+
SpacesInParentheses: false
|
| 105 |
+
SpacesInSquareBrackets: false
|
| 106 |
+
Standard: Cpp11
|
| 107 |
+
TabWidth: 8
|
| 108 |
+
UseTab: Never
|
| 109 |
+
...
|
openmc/source/.readthedocs.yaml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version: 2
|
| 2 |
+
|
| 3 |
+
build:
|
| 4 |
+
os: "ubuntu-24.04"
|
| 5 |
+
tools:
|
| 6 |
+
python: "3.12"
|
| 7 |
+
jobs:
|
| 8 |
+
post_checkout:
|
| 9 |
+
- git fetch --unshallow || true
|
| 10 |
+
sphinx:
|
| 11 |
+
configuration: docs/source/conf.py
|
| 12 |
+
|
| 13 |
+
python:
|
| 14 |
+
install:
|
| 15 |
+
- method: pip
|
| 16 |
+
path: .
|
| 17 |
+
extra_requirements:
|
| 18 |
+
- docs
|
openmc/source/AGENTS.md
ADDED
|
@@ -0,0 +1,298 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# OpenMC AI Coding Agent Instructions
|
| 2 |
+
|
| 3 |
+
## Project Overview
|
| 4 |
+
|
| 5 |
+
OpenMC is a Monte Carlo particle transport code for simulating nuclear reactors,
|
| 6 |
+
fusion devices, or other systems with neutron/photon radiation. It's a hybrid
|
| 7 |
+
C++17/Python codebase where:
|
| 8 |
+
- **C++ core** (`src/`, `include/openmc/`) handles the computationally intensive transport simulation
|
| 9 |
+
- **Python API** (`openmc/`) provides user-facing model building, post-processing, and depletion capabilities
|
| 10 |
+
- **C API bindings** (`openmc/lib/`) wrap the C++ library via ctypes for runtime control
|
| 11 |
+
|
| 12 |
+
## Architecture & Key Components
|
| 13 |
+
|
| 14 |
+
### C++ Component Structure
|
| 15 |
+
- **Global vectors of unique_ptrs**: Core objects like `model::cells`, `model::universes`, `nuclides` are stored as `vector<unique_ptr<T>>` in nested namespaces (`openmc::model`, `openmc::simulation`, `openmc::settings`, `openmc::data`)
|
| 16 |
+
- **Custom container types**: OpenMC provides its own `vector`, `array`, `unique_ptr`, and `make_unique` in the `openmc::` namespace (defined in `vector.h`, `array.h`, `memory.h`). These are currently typedefs to `std::` equivalents but may become custom implementations for accelerator support. Always use `openmc::vector`, not `std::vector`.
|
| 17 |
+
- **Geometry systems**:
|
| 18 |
+
- **CSG (default)**: Arbitrarily complex Constructive Solid Geometry using `Surface`, `Region`, `Cell`, `Universe`, `Lattice`
|
| 19 |
+
- **DAGMC**: CAD-based geometry via Direct Accelerated Geometry Monte Carlo (optional, requires `OPENMC_USE_DAGMC`)
|
| 20 |
+
- **Unstructured mesh**: libMesh-based geometry (optional, requires `OPENMC_USE_LIBMESH`)
|
| 21 |
+
- **Particle tracking**: `Particle` class with `GeometryState` manages particle transport through geometry
|
| 22 |
+
- **Tallies**: Score quantities during simulation via `Filter` and `Tally` objects
|
| 23 |
+
- **Random ray solver**: Alternative deterministic method in `src/random_ray/`
|
| 24 |
+
- **Optional features**: DAGMC (CAD geometry), libMesh (unstructured mesh), MPI, all controlled by `#ifdef OPENMC_MPI`, etc.
|
| 25 |
+
|
| 26 |
+
### Python Component Structure
|
| 27 |
+
- **ID management**: All geometry objects (Cell, Surface, Material, etc.) inherit from `IDManagerMixin` which auto-assigns unique integer IDs and tracks them via class-level `used_ids` and `next_id`
|
| 28 |
+
- **Input validation**: Extensive use of `openmc.checkvalue` module functions (`check_type`, `check_value`, `check_length`) for all setters
|
| 29 |
+
- **XML I/O**: Most classes implement `to_xml_element()` and `from_xml_element()` for serialization to OpenMC's XML input format
|
| 30 |
+
- **HDF5 output**: Post-simulation data in statepoint files read via `openmc.StatePoint`
|
| 31 |
+
- **Depletion**: `openmc.deplete` implements burnup via operator-splitting with various integrators (Predictor, CECM, etc.)
|
| 32 |
+
- **Nuclear Data**: `openmc.data` provides programmatic access to nuclear data files (ENDF, ACE, HDF5)
|
| 33 |
+
|
| 34 |
+
## Git Branching Workflow
|
| 35 |
+
|
| 36 |
+
OpenMC uses a git flow branching model with two primary branches:
|
| 37 |
+
|
| 38 |
+
- **`develop` branch**: The main development branch where all ongoing development takes place. This is the **primary branch against which pull requests are submitted and merged**. This branch is not guaranteed to be stable and may contain work-in-progress features.
|
| 39 |
+
- **`master` branch**: The stable release branch containing the latest stable release of OpenMC. This branch only receives merges from `develop` when the development team decides a release should occur.
|
| 40 |
+
|
| 41 |
+
### Instructions for Code Review
|
| 42 |
+
|
| 43 |
+
When analyzing code changes on a feature or bugfix branch (e.g., when a user asks "what do you think of these changes?"), **compare the branch changes against `develop`, not `master`**. Pull requests are submitted to merge into `develop`, so differences relative to `develop` represent the actual proposed changes. Comparing against `master` will include unrelated changes from other features that have already been merged to `develop`.
|
| 44 |
+
|
| 45 |
+
### Workflow for contributors
|
| 46 |
+
|
| 47 |
+
1. Create a feature/bugfix branch off `develop`
|
| 48 |
+
2. Make changes and commit to the feature branch
|
| 49 |
+
3. Open a pull request to merge the feature branch into `develop`
|
| 50 |
+
4. A committer reviews and merges the PR into `develop`
|
| 51 |
+
|
| 52 |
+
## Critical Build & Test Workflows
|
| 53 |
+
|
| 54 |
+
### Build Dependencies
|
| 55 |
+
- **C++17 compiler**: GCC, Clang, or Intel
|
| 56 |
+
- **CMake** (3.16+): Required for configuring and building the C++ library
|
| 57 |
+
- **HDF5**: Required for cross section data and output file formats
|
| 58 |
+
- **libpng**: Used for generating visualization when OpenMC is run in plotting mode
|
| 59 |
+
|
| 60 |
+
Without CMake and HDF5, OpenMC cannot be compiled.
|
| 61 |
+
|
| 62 |
+
### Building the C++ Library
|
| 63 |
+
```bash
|
| 64 |
+
# Configure with CMake (from build/ directory)
|
| 65 |
+
cmake .. -DOPENMC_USE_MPI=ON -DOPENMC_USE_OPENMP=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
|
| 66 |
+
|
| 67 |
+
# Available CMake options (all default OFF except OPENMC_USE_OPENMP and OPENMC_BUILD_TESTS):
|
| 68 |
+
# -DOPENMC_USE_OPENMP=ON/OFF # OpenMP parallelism
|
| 69 |
+
# -DOPENMC_USE_MPI=ON/OFF # MPI support
|
| 70 |
+
# -DOPENMC_USE_DAGMC=ON/OFF # CAD geometry support
|
| 71 |
+
# -DOPENMC_USE_LIBMESH=ON/OFF # Unstructured mesh
|
| 72 |
+
# -DOPENMC_ENABLE_PROFILE=ON/OFF # Profiling flags
|
| 73 |
+
# -DOPENMC_ENABLE_COVERAGE=ON/OFF # Coverage analysis
|
| 74 |
+
|
| 75 |
+
# Build
|
| 76 |
+
make -j
|
| 77 |
+
|
| 78 |
+
# C++ unit tests (uses Catch2)
|
| 79 |
+
ctest
|
| 80 |
+
```
|
| 81 |
+
|
| 82 |
+
### Python Development
|
| 83 |
+
```bash
|
| 84 |
+
# Install in development mode (requires building C++ library first)
|
| 85 |
+
pip install -e .
|
| 86 |
+
|
| 87 |
+
# Python tests (uses pytest)
|
| 88 |
+
pytest tests/unit_tests/ # Fast unit tests
|
| 89 |
+
pytest tests/regression_tests/ # Full regression suite (requires nuclear data)
|
| 90 |
+
```
|
| 91 |
+
|
| 92 |
+
### Nuclear Data Setup (CRITICAL for Running OpenMC)
|
| 93 |
+
Most tests require the NNDC HDF5 nuclear cross-section library.
|
| 94 |
+
|
| 95 |
+
**Important**: Check if `OPENMC_CROSS_SECTIONS` is already set in the user's
|
| 96 |
+
environment before downloading, as many users already have nuclear data
|
| 97 |
+
installed. Though do note that if this variable is present that it may point to
|
| 98 |
+
different cross section data and that the NNDC data is required for tests to
|
| 99 |
+
pass.
|
| 100 |
+
|
| 101 |
+
**If not already configured, download and setup:**
|
| 102 |
+
```bash
|
| 103 |
+
# Download NNDC HDF5 cross section library (~800 MB compressed)
|
| 104 |
+
wget -q -O - https://anl.box.com/shared/static/teaup95cqv8s9nn56hfn7ku8mmelr95p.xz | tar -C $HOME -xJ
|
| 105 |
+
|
| 106 |
+
# Set environment variable (add to ~/.bashrc or ~/.zshrc for persistence)
|
| 107 |
+
export OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml
|
| 108 |
+
```
|
| 109 |
+
|
| 110 |
+
**Alternative**: Use the provided download script (checks if data exists before downloading):
|
| 111 |
+
```bash
|
| 112 |
+
bash tools/ci/download-xs.sh # Downloads both NNDC HDF5 and ENDF/B-VII.1 data
|
| 113 |
+
```
|
| 114 |
+
|
| 115 |
+
Without this data, regression tests will fail with "No cross_sections.xml file
|
| 116 |
+
found" errors, or, in the case that alternative cross section data is configured
|
| 117 |
+
the tests will execute but will not pass. The `cross_sections.xml` file is an
|
| 118 |
+
index listing paths to individual HDF5 nuclear data files for each nuclide.
|
| 119 |
+
|
| 120 |
+
## Testing Expectations
|
| 121 |
+
|
| 122 |
+
### Environment Requirements
|
| 123 |
+
|
| 124 |
+
- **Data**: As described above, OpenMC's test suite requires OpenMC to be configured with NNDC data.
|
| 125 |
+
- **OpenMP Settings**: OpenMC's tests may fail is more than two OpenMP threads are used. The environment variable `OMP_NUM_THREADS=2` should be set to avoid sporadic test failures.
|
| 126 |
+
- **Executable configuration**: The OpenMC executable should compiled with debug symbols enabled.
|
| 127 |
+
|
| 128 |
+
### C++ Tests
|
| 129 |
+
Located in `tests/cpp_unit_tests/`, use Catch2 framework. Run via `ctest` after building with `-DOPENMC_BUILD_TESTS=ON`.
|
| 130 |
+
|
| 131 |
+
### Python Unit Tests
|
| 132 |
+
Located in `tests/unit_tests/`, these are fast, standalone tests that verify Python API functionality without running full simulations. Use standard pytest patterns:
|
| 133 |
+
|
| 134 |
+
**Categories**:
|
| 135 |
+
- **API validation**: Test object creation, property setters/getters, XML serialization (e.g., `test_material.py`, `test_cell.py`, `test_source.py`)
|
| 136 |
+
- **Data processing**: Test nuclear data handling, cross sections, depletion chains (e.g., `test_data_neutron.py`, `test_deplete_chain.py`)
|
| 137 |
+
- **Library bindings**: Test `openmc.lib` ctypes interface with `model.init_lib()`/`model.finalize_lib()` (e.g., `test_lib.py`)
|
| 138 |
+
- **Geometry operations**: Test bounding boxes, containment, lattice generation (e.g., `test_bounding_box.py`, `test_lattice.py`)
|
| 139 |
+
|
| 140 |
+
**Common patterns**:
|
| 141 |
+
- Use fixtures from `tests/unit_tests/conftest.py` (e.g., `uo2`, `water`, `sphere_model`)
|
| 142 |
+
- Test invalid inputs with `pytest.raises(ValueError)` or `pytest.raises(TypeError)`
|
| 143 |
+
- Use `run_in_tmpdir` fixture for tests that create files
|
| 144 |
+
- Tests with `openmc.lib` require calling `model.init_lib()` in try/finally with `model.finalize_lib()`
|
| 145 |
+
|
| 146 |
+
**Example**:
|
| 147 |
+
```python
|
| 148 |
+
def test_material_properties():
|
| 149 |
+
m = openmc.Material()
|
| 150 |
+
m.add_nuclide('U235', 1.0)
|
| 151 |
+
assert 'U235' in m.nuclides
|
| 152 |
+
|
| 153 |
+
with pytest.raises(TypeError):
|
| 154 |
+
m.add_nuclide('H1', '1.0') # Invalid type
|
| 155 |
+
```
|
| 156 |
+
|
| 157 |
+
Unit tests should be fast. For tests requiring simulation output, use regression tests instead.
|
| 158 |
+
|
| 159 |
+
### Python Regression Tests
|
| 160 |
+
Regression tests compare OpenMC output against reference data. **Prefer using existing models from `openmc.examples` or those found in tests/unit_tests/conftest.py** (like `pwr_pin_cell()`, `pwr_assembly()`, `slab_mg()`) rather than building from scratch.
|
| 161 |
+
|
| 162 |
+
**Test Harness Types** (in `tests/testing_harness.py`):
|
| 163 |
+
- **PyAPITestHarness**: Standard harness for Python API tests. Compares `inputs_true.dat` (XML hash) and `results_true.dat` (statepoint k-eff and tally values). Requires `model.xml` generation.
|
| 164 |
+
- **HashedPyAPITestHarness**: Like PyAPITestHarness but hashes the results for compact comparison
|
| 165 |
+
- **TolerantPyAPITestHarness**: For tests with floating-point non-associativity (e.g., random ray solver with single precision). Uses relative tolerance comparisons.
|
| 166 |
+
- **WeightWindowPyAPITestHarness**: Compares weight window bounds from `weight_windows.h5`
|
| 167 |
+
- **CollisionTrackTestHarness**: Compares collision track data from `collision_track.h5` against `collision_track_true.h5`
|
| 168 |
+
- **TestHarness**: Base harness for XML-based tests (no Python model building)
|
| 169 |
+
- **PlotTestHarness**: Compares plot output files (PNG or voxel HDF5)
|
| 170 |
+
- **CMFDTestHarness**: Specialized for CMFD acceleration tests
|
| 171 |
+
- **ParticleRestartTestHarness**: Tests particle restart functionality
|
| 172 |
+
|
| 173 |
+
Almost all cases use either `PyAPITestHarness` or `HashedPyAPITestHarness`
|
| 174 |
+
|
| 175 |
+
**Example Test**:
|
| 176 |
+
```python
|
| 177 |
+
from openmc.examples import pwr_pin_cell
|
| 178 |
+
from tests.testing_harness import PyAPITestHarness
|
| 179 |
+
|
| 180 |
+
def test_my_feature():
|
| 181 |
+
model = pwr_pin_cell()
|
| 182 |
+
model.settings.particles = 1000 # Modify to exercise feature
|
| 183 |
+
harness = PyAPITestHarness('statepoint.10.h5', model)
|
| 184 |
+
harness.main()
|
| 185 |
+
```
|
| 186 |
+
|
| 187 |
+
**Workflow**: Create `test.py` and `__init__.py` in `tests/regression_tests/my_test/`, run `pytest --update` to generate reference files (`inputs_true.dat`, `results_true.dat`, etc.), then verify with `pytest` without `--update`. Test results should be generated with a debug build (`-DCMAKE_BUILD_TYPE=Debug`)
|
| 188 |
+
|
| 189 |
+
**Critical**: When modifying OpenMC code, regenerate affected test references with `pytest --update` and commit updated reference files.
|
| 190 |
+
|
| 191 |
+
### Test Configuration
|
| 192 |
+
|
| 193 |
+
`pytest.ini` sets: `python_files = test*.py`, `python_classes = NoThanks` (disables class-based test collection).
|
| 194 |
+
|
| 195 |
+
### Testing Options
|
| 196 |
+
|
| 197 |
+
For builds of OpenMC with MPI enabled, the `--mpi` flag should be passed to the test suite to ensure that appropriate tests are executed using two MPI processes.
|
| 198 |
+
|
| 199 |
+
The entire test suite can be executed with OpenMC running in event-based mode (instead of the default history-based mode) by providing the `--event` flag to the `pytest` command.
|
| 200 |
+
|
| 201 |
+
## Cross-Language Boundaries
|
| 202 |
+
|
| 203 |
+
The C API (defined in `include/openmc/capi.h`) exposes C++ functionality to Python via ctypes bindings in `openmc/lib/`. Example:
|
| 204 |
+
```cpp
|
| 205 |
+
// C++ API in capi.h
|
| 206 |
+
extern "C" int openmc_run();
|
| 207 |
+
|
| 208 |
+
// Python binding in openmc/lib/core.py
|
| 209 |
+
_dll.openmc_run.restype = c_int
|
| 210 |
+
def run():
|
| 211 |
+
_dll.openmc_run()
|
| 212 |
+
```
|
| 213 |
+
|
| 214 |
+
When modifying C++ public APIs, update corresponding ctypes signatures in `openmc/lib/*.py`.
|
| 215 |
+
|
| 216 |
+
## Code Style & Conventions
|
| 217 |
+
|
| 218 |
+
### C++ Style (enforced by .clang-format)
|
| 219 |
+
OpenMC generally tries to follow C++ core guidelines where possible
|
| 220 |
+
(https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) and follow
|
| 221 |
+
modern C++ practices (e.g. RAII) whenever possible.
|
| 222 |
+
|
| 223 |
+
- **Naming**:
|
| 224 |
+
- Classes: `CamelCase` (e.g., `HexLattice`)
|
| 225 |
+
- Functions/methods: `snake_case` (e.g., `get_indices`)
|
| 226 |
+
- Variables: `snake_case` with trailing underscore for class members (e.g., `n_particles_`, `energy_`)
|
| 227 |
+
- Constants: `UPPER_SNAKE_CASE` (e.g., `SQRT_PI`)
|
| 228 |
+
- **Namespaces**: All code in `openmc::` namespace, global state in sub-namespaces
|
| 229 |
+
- **Include order**: Related header first, then C/C++ stdlib, third-party libs, local headers
|
| 230 |
+
- **Comments**: C++-style (`//`) only, never C-style (`/* */`)
|
| 231 |
+
- **Standard**: C++17 features allowed
|
| 232 |
+
- **Formatting**: Run `clang-format` (version 15) before committing; install via `tools/dev/install-commit-hooks.sh`
|
| 233 |
+
|
| 234 |
+
### Python Style
|
| 235 |
+
- **PEP8** compliant
|
| 236 |
+
- **Docstrings**: numpydoc format for all public functions/methods
|
| 237 |
+
- **Type hints**: Use sparingly, primarily for complex signatures
|
| 238 |
+
- **Path handling**: Use `pathlib.Path` for filesystem operations, accept `str | os.PathLike` in function arguments
|
| 239 |
+
- **Dependencies**: Core dependencies only (numpy, scipy, h5py, pandas, matplotlib, lxml, ipython, uncertainties, setuptools, endf). Other packages must be optional
|
| 240 |
+
- **Python version**: Minimum 3.11 (as of Nov 2025)
|
| 241 |
+
|
| 242 |
+
### ID Management Pattern (Python)
|
| 243 |
+
When creating geometry objects, IDs can be auto-assigned or explicit:
|
| 244 |
+
```python
|
| 245 |
+
# Auto-assigned ID
|
| 246 |
+
cell = openmc.Cell() # Gets next available ID
|
| 247 |
+
|
| 248 |
+
# Explicit ID
|
| 249 |
+
cell = openmc.Cell(id=10) # Warning if ID already used
|
| 250 |
+
|
| 251 |
+
# Reset all IDs (useful in test fixtures)
|
| 252 |
+
openmc.reset_auto_ids()
|
| 253 |
+
```
|
| 254 |
+
|
| 255 |
+
### Input Validation Pattern (Python)
|
| 256 |
+
All setters use checkvalue functions:
|
| 257 |
+
```python
|
| 258 |
+
import openmc.checkvalue as cv
|
| 259 |
+
|
| 260 |
+
@property
|
| 261 |
+
def temperature(self):
|
| 262 |
+
return self._temperature
|
| 263 |
+
|
| 264 |
+
@temperature.setter
|
| 265 |
+
def temperature(self, temp):
|
| 266 |
+
cv.check_type('temperature', temp, Real)
|
| 267 |
+
cv.check_greater_than('temperature', temp, 0.0)
|
| 268 |
+
self._temperature = temp
|
| 269 |
+
```
|
| 270 |
+
|
| 271 |
+
### Working with HDF5 Files
|
| 272 |
+
C++ uses custom HDF5 wrappers in `src/hdf5_interface.cpp`. Python uses h5py directly. Statepoint format version is `VERSION_STATEPOINT` in `include/openmc/constants.h`.
|
| 273 |
+
|
| 274 |
+
### Conditional Compilation
|
| 275 |
+
Check for optional features:
|
| 276 |
+
```cpp
|
| 277 |
+
#ifdef OPENMC_MPI
|
| 278 |
+
// MPI-specific code
|
| 279 |
+
#endif
|
| 280 |
+
|
| 281 |
+
#ifdef OPENMC_DAGMC
|
| 282 |
+
// DAGMC-specific code
|
| 283 |
+
#endif
|
| 284 |
+
```
|
| 285 |
+
|
| 286 |
+
## Documentation
|
| 287 |
+
|
| 288 |
+
- **User docs**: Sphinx documentation in `docs/source/` hosted at https://docs.openmc.org
|
| 289 |
+
- **C++ docs**: Doxygen-style comments with `\brief`, `\param` tags
|
| 290 |
+
- **Python docs**: numpydoc format docstrings
|
| 291 |
+
|
| 292 |
+
## Common Pitfalls
|
| 293 |
+
|
| 294 |
+
1. **Forgetting nuclear data**: Tests fail without `OPENMC_CROSS_SECTIONS` environment variable
|
| 295 |
+
2. **ID conflicts**: Python objects with duplicate IDs trigger `IDWarning`, use `reset_auto_ids()` between tests
|
| 296 |
+
3. **MPI builds**: Code must work with and without MPI; use `#ifdef OPENMC_MPI` guards
|
| 297 |
+
4. **Path handling**: Use `pathlib.Path` in new Python code, not `os.path`
|
| 298 |
+
5. **Clang-format version**: CI uses version 15; other versions may produce different formatting
|
openmc/source/CITATION.cff
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
cff-version: 1.2.0
|
| 2 |
+
message: "If you use this software, please cite it as below."
|
| 3 |
+
title: OpenMC
|
| 4 |
+
authors:
|
| 5 |
+
- family-names: Romano
|
| 6 |
+
given-names: Paul K.
|
| 7 |
+
orcid: "https://orcid.org/0000-0002-1147-045X"
|
| 8 |
+
- family-names: Shriwise
|
| 9 |
+
given-names: Patrick C.
|
| 10 |
+
orcid: "https://orcid.org/0000-0002-3979-7665"
|
| 11 |
+
- family-names: Shimwell
|
| 12 |
+
given-names: Jonathan
|
| 13 |
+
orcid: "https://orcid.org/0000-0001-6909-0946"
|
| 14 |
+
- family-names: Harper
|
| 15 |
+
given-names: Sterling
|
| 16 |
+
- family-names: Boyd
|
| 17 |
+
given-names: Will
|
| 18 |
+
- family-names: Nelson
|
| 19 |
+
given-names: Adam G.
|
| 20 |
+
orcid: "https://orcid.org/0000-0002-3614-0676"
|
| 21 |
+
- family-names: Tramm
|
| 22 |
+
given-names: John R.
|
| 23 |
+
orcid: "https://orcid.org/0000-0002-5397-4402"
|
| 24 |
+
- family-names: Ridley
|
| 25 |
+
given-names: Gavin
|
| 26 |
+
orcid: "https://orcid.org/0000-0003-1635-8042"
|
| 27 |
+
- family-names: Johnson
|
| 28 |
+
given-names: Andrew
|
| 29 |
+
orcid: "https://orcid.org/0000-0003-2125-8775"
|
| 30 |
+
- family-names: Peterson
|
| 31 |
+
given-names: Ethan E.
|
| 32 |
+
orcid: "https://orcid.org/0000-0002-5694-7194"
|
| 33 |
+
- family-names: Herman
|
| 34 |
+
given-names: Bryan R.
|
| 35 |
+
preferred-citation:
|
| 36 |
+
authors:
|
| 37 |
+
- family-names: Romano
|
| 38 |
+
given-names: Paul K.
|
| 39 |
+
orcid: "https://orcid.org/0000-0002-1147-045X"
|
| 40 |
+
- family-names: Horelik
|
| 41 |
+
given-names: Nicholas E.
|
| 42 |
+
- family-names: Herman
|
| 43 |
+
given-names: Bryan R.
|
| 44 |
+
- family-names: Nelson
|
| 45 |
+
given-names: Adam G.
|
| 46 |
+
orcid: "https://orcid.org/0000-0002-3614-0676"
|
| 47 |
+
- family-names: Forget
|
| 48 |
+
given-names: Benoit
|
| 49 |
+
orcid: "https://orcid.org/0000-0003-1459-7672"
|
| 50 |
+
- family-names: Smith
|
| 51 |
+
given-names: Kord
|
| 52 |
+
contact:
|
| 53 |
+
- family-names: Romano
|
| 54 |
+
given-names: Paul K.
|
| 55 |
+
orcid: "https://orcid.org/0000-0002-1147-045X"
|
| 56 |
+
doi: 10.1016/j.anucene.2014.07.048
|
| 57 |
+
issn: 0306-4549
|
| 58 |
+
volume: 82
|
| 59 |
+
journal: Annals of Nuclear Energy
|
| 60 |
+
publisher:
|
| 61 |
+
name: Elsevier
|
| 62 |
+
start: 90
|
| 63 |
+
end: 97
|
| 64 |
+
year: 2015
|
| 65 |
+
month: 8
|
| 66 |
+
title: "OpenMC: A state-of-the-art Monte Carlo code for research and development"
|
| 67 |
+
type: article
|
| 68 |
+
url: "https://doi.org/10.1016/j.anucene.2014.07.048"
|
openmc/source/CMakeLists.txt
ADDED
|
@@ -0,0 +1,607 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
| 2 |
+
project(openmc C CXX)
|
| 3 |
+
|
| 4 |
+
# Set module path
|
| 5 |
+
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
|
| 6 |
+
|
| 7 |
+
include(GetVersionFromGit)
|
| 8 |
+
|
| 9 |
+
# Output version information
|
| 10 |
+
message(STATUS "OpenMC version: ${OPENMC_VERSION}")
|
| 11 |
+
message(STATUS "OpenMC dev state: ${OPENMC_DEV_STATE}")
|
| 12 |
+
message(STATUS "OpenMC commit hash: ${OPENMC_COMMIT_HASH}")
|
| 13 |
+
message(STATUS "OpenMC commit count: ${OPENMC_COMMIT_COUNT}")
|
| 14 |
+
|
| 15 |
+
# Generate version.h
|
| 16 |
+
configure_file(include/openmc/version.h.in "${CMAKE_BINARY_DIR}/include/openmc/version.h" @ONLY)
|
| 17 |
+
|
| 18 |
+
# Setup output directories
|
| 19 |
+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
| 20 |
+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
| 21 |
+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
| 22 |
+
|
| 23 |
+
# Enable correct usage of CXX_EXTENSIONS
|
| 24 |
+
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.22)
|
| 25 |
+
cmake_policy(SET CMP0128 NEW)
|
| 26 |
+
endif()
|
| 27 |
+
|
| 28 |
+
#===============================================================================
|
| 29 |
+
# Command line options
|
| 30 |
+
#===============================================================================
|
| 31 |
+
|
| 32 |
+
option(OPENMC_USE_OPENMP "Enable shared-memory parallelism with OpenMP" ON)
|
| 33 |
+
option(OPENMC_BUILD_TESTS "Build tests" ON)
|
| 34 |
+
option(OPENMC_ENABLE_PROFILE "Compile with profiling flags" OFF)
|
| 35 |
+
option(OPENMC_ENABLE_COVERAGE "Compile with coverage analysis flags" OFF)
|
| 36 |
+
option(OPENMC_USE_DAGMC "Enable support for DAGMC (CAD) geometry" OFF)
|
| 37 |
+
option(OPENMC_USE_LIBMESH "Enable support for libMesh unstructured mesh tallies" OFF)
|
| 38 |
+
option(OPENMC_USE_MPI "Enable MPI" OFF)
|
| 39 |
+
option(OPENMC_USE_UWUW "Enable UWUW" OFF)
|
| 40 |
+
option(OPENMC_FORCE_VENDORED_LIBS "Explicitly use submodules defined in 'vendor'" OFF)
|
| 41 |
+
|
| 42 |
+
message(STATUS "OPENMC_USE_OPENMP ${OPENMC_USE_OPENMP}")
|
| 43 |
+
message(STATUS "OPENMC_BUILD_TESTS ${OPENMC_BUILD_TESTS}")
|
| 44 |
+
message(STATUS "OPENMC_ENABLE_PROFILE ${OPENMC_ENABLE_PROFILE}")
|
| 45 |
+
message(STATUS "OPENMC_ENABLE_COVERAGE ${OPENMC_ENABLE_COVERAGE}")
|
| 46 |
+
message(STATUS "OPENMC_USE_DAGMC ${OPENMC_USE_DAGMC}")
|
| 47 |
+
message(STATUS "OPENMC_USE_LIBMESH ${OPENMC_USE_LIBMESH}")
|
| 48 |
+
message(STATUS "OPENMC_USE_MPI ${OPENMC_USE_MPI}")
|
| 49 |
+
message(STATUS "OPENMC_USE_UWUW ${OPENMC_USE_UWUW}")
|
| 50 |
+
message(STATUS "OPENMC_FORCE_VENDORED_LIBS ${OPENMC_FORCE_VENDORED_LIBS}")
|
| 51 |
+
|
| 52 |
+
# Warnings for deprecated options
|
| 53 |
+
foreach(OLD_OPT IN ITEMS "openmp" "profile" "coverage" "dagmc" "libmesh")
|
| 54 |
+
if(DEFINED ${OLD_OPT})
|
| 55 |
+
string(TOUPPER ${OLD_OPT} OPT_UPPER)
|
| 56 |
+
if ("${OLD_OPT}" STREQUAL "profile" OR "${OLD_OPT}" STREQUAL "coverage")
|
| 57 |
+
set(NEW_OPT_PREFIX "OPENMC_ENABLE")
|
| 58 |
+
else()
|
| 59 |
+
set(NEW_OPT_PREFIX "OPENMC_USE")
|
| 60 |
+
endif()
|
| 61 |
+
message(WARNING "The OpenMC CMake option '${OLD_OPT}' has been deprecated. "
|
| 62 |
+
"Its value will be ignored. "
|
| 63 |
+
"Please use '-D${NEW_OPT_PREFIX}_${OPT_UPPER}=${${OLD_OPT}}' instead.")
|
| 64 |
+
unset(${OLD_OPT} CACHE)
|
| 65 |
+
endif()
|
| 66 |
+
endforeach()
|
| 67 |
+
|
| 68 |
+
foreach(OLD_BLD in ITEMS "debug" "optimize")
|
| 69 |
+
if(DEFINED ${OLD_BLD})
|
| 70 |
+
if("${OLD_BLD}" STREQUAL "debug")
|
| 71 |
+
set(BLD_VAR "Debug")
|
| 72 |
+
else()
|
| 73 |
+
set(BLD_VAR "Release")
|
| 74 |
+
endif()
|
| 75 |
+
message(WARNING "The OpenMC CMake option '${OLD_BLD}' has been deprecated. "
|
| 76 |
+
"Its value will be ignored. "
|
| 77 |
+
"OpenMC now uses the CMAKE_BUILD_TYPE variable to set the build mode. "
|
| 78 |
+
"Please use '-DCMAKE_BUILD_TYPE=${BLD_VAR}' instead.")
|
| 79 |
+
unset(${OLD_BLD} CACHE)
|
| 80 |
+
endif()
|
| 81 |
+
endforeach()
|
| 82 |
+
|
| 83 |
+
#===============================================================================
|
| 84 |
+
# Set a default build configuration if not explicitly specified
|
| 85 |
+
#===============================================================================
|
| 86 |
+
|
| 87 |
+
if(NOT CMAKE_BUILD_TYPE)
|
| 88 |
+
message(STATUS "No build type selected, defaulting to RelWithDebInfo")
|
| 89 |
+
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build" FORCE)
|
| 90 |
+
endif()
|
| 91 |
+
|
| 92 |
+
#===============================================================================
|
| 93 |
+
# OpenMP for shared-memory parallelism (and GPU support some day!)
|
| 94 |
+
#===============================================================================
|
| 95 |
+
|
| 96 |
+
if(OPENMC_USE_OPENMP)
|
| 97 |
+
find_package(OpenMP REQUIRED)
|
| 98 |
+
endif()
|
| 99 |
+
|
| 100 |
+
#===============================================================================
|
| 101 |
+
# MPI for distributed-memory parallelism
|
| 102 |
+
#===============================================================================
|
| 103 |
+
|
| 104 |
+
if(OPENMC_USE_MPI)
|
| 105 |
+
find_package(MPI REQUIRED)
|
| 106 |
+
endif()
|
| 107 |
+
|
| 108 |
+
#===============================================================================
|
| 109 |
+
# Helper macro for finding a dependency
|
| 110 |
+
#===============================================================================
|
| 111 |
+
|
| 112 |
+
macro(find_package_write_status pkg)
|
| 113 |
+
find_package(${pkg} QUIET NO_SYSTEM_ENVIRONMENT_PATH)
|
| 114 |
+
if(${pkg}_FOUND)
|
| 115 |
+
message(STATUS "Found ${pkg}: ${${pkg}_DIR} (version ${${pkg}_VERSION})")
|
| 116 |
+
else()
|
| 117 |
+
message(STATUS "Did not find ${pkg}, will use submodule instead")
|
| 118 |
+
endif()
|
| 119 |
+
endmacro()
|
| 120 |
+
|
| 121 |
+
#===============================================================================
|
| 122 |
+
# DAGMC Geometry Support - need DAGMC/MOAB
|
| 123 |
+
#===============================================================================
|
| 124 |
+
|
| 125 |
+
if(OPENMC_USE_DAGMC)
|
| 126 |
+
find_package(DAGMC REQUIRED PATH_SUFFIXES lib/cmake)
|
| 127 |
+
if (${DAGMC_VERSION} VERSION_LESS 3.2.0)
|
| 128 |
+
message(FATAL_ERROR "Discovered DAGMC Version: ${DAGMC_VERSION}."
|
| 129 |
+
"Please update DAGMC to version 3.2.0 or greater.")
|
| 130 |
+
endif()
|
| 131 |
+
message(STATUS "Found DAGMC: ${DAGMC_DIR} (version ${DAGMC_VERSION})")
|
| 132 |
+
|
| 133 |
+
# Check if UWUW is needed and available
|
| 134 |
+
if(OPENMC_USE_UWUW AND NOT DAGMC_BUILD_UWUW)
|
| 135 |
+
message(FATAL_ERROR "UWUW is enabled but DAGMC was not configured with UWUW.")
|
| 136 |
+
endif()
|
| 137 |
+
endif()
|
| 138 |
+
|
| 139 |
+
#===============================================================================
|
| 140 |
+
# libMesh Unstructured Mesh Support
|
| 141 |
+
#===============================================================================
|
| 142 |
+
|
| 143 |
+
if(OPENMC_USE_LIBMESH)
|
| 144 |
+
find_package(LIBMESH REQUIRED)
|
| 145 |
+
endif()
|
| 146 |
+
|
| 147 |
+
#===============================================================================
|
| 148 |
+
# libpng
|
| 149 |
+
#===============================================================================
|
| 150 |
+
|
| 151 |
+
find_package(PNG)
|
| 152 |
+
|
| 153 |
+
#===============================================================================
|
| 154 |
+
# HDF5 for binary output
|
| 155 |
+
#===============================================================================
|
| 156 |
+
|
| 157 |
+
# Unfortunately FindHDF5.cmake will always prefer a serial HDF5 installation
|
| 158 |
+
# over a parallel installation if both appear on the user's PATH. To get around
|
| 159 |
+
# this, we check for the environment variable HDF5_ROOT and if it exists, use it
|
| 160 |
+
# to check whether its a parallel version.
|
| 161 |
+
|
| 162 |
+
if(NOT DEFINED HDF5_PREFER_PARALLEL)
|
| 163 |
+
if(DEFINED ENV{HDF5_ROOT} AND EXISTS $ENV{HDF5_ROOT}/bin/h5pcc)
|
| 164 |
+
set(HDF5_PREFER_PARALLEL TRUE)
|
| 165 |
+
else()
|
| 166 |
+
set(HDF5_PREFER_PARALLEL FALSE)
|
| 167 |
+
endif()
|
| 168 |
+
endif()
|
| 169 |
+
|
| 170 |
+
find_package(HDF5 REQUIRED COMPONENTS C HL)
|
| 171 |
+
|
| 172 |
+
# Remove HDF5 transitive dependencies that are system libraries
|
| 173 |
+
list(FILTER HDF5_LIBRARIES EXCLUDE REGEX ".*lib(pthread|dl|m).*")
|
| 174 |
+
message(STATUS "HDF5 Libraries: ${HDF5_LIBRARIES}")
|
| 175 |
+
|
| 176 |
+
if(HDF5_IS_PARALLEL)
|
| 177 |
+
if(NOT OPENMC_USE_MPI)
|
| 178 |
+
message(FATAL_ERROR "Parallel HDF5 was detected, but MPI was not enabled.\
|
| 179 |
+
To use parallel HDF5, OpenMC needs to be built with MPI support by passing\
|
| 180 |
+
-DOPENMC_USE_MPI=ON when calling cmake.")
|
| 181 |
+
endif()
|
| 182 |
+
message(STATUS "Using parallel HDF5")
|
| 183 |
+
endif()
|
| 184 |
+
|
| 185 |
+
# Version 1.12 of HDF5 deprecates the H5Oget_info_by_idx() interface.
|
| 186 |
+
# Thus, we give these flags to allow usage of the old interface in newer
|
| 187 |
+
# versions of HDF5.
|
| 188 |
+
if(${HDF5_VERSION} VERSION_GREATER_EQUAL 1.12.0)
|
| 189 |
+
list(APPEND cxxflags -DH5Oget_info_by_idx_vers=1 -DH5O_info_t_vers=1)
|
| 190 |
+
endif()
|
| 191 |
+
|
| 192 |
+
#===============================================================================
|
| 193 |
+
# Set compile/link flags based on which compiler is being used
|
| 194 |
+
#===============================================================================
|
| 195 |
+
|
| 196 |
+
# Skip for Visual Studio which has its own configurations through GUI
|
| 197 |
+
if(NOT MSVC)
|
| 198 |
+
|
| 199 |
+
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
| 200 |
+
|
| 201 |
+
if(OPENMC_ENABLE_PROFILE)
|
| 202 |
+
list(APPEND cxxflags -g -fno-omit-frame-pointer)
|
| 203 |
+
endif()
|
| 204 |
+
|
| 205 |
+
if(OPENMC_ENABLE_COVERAGE)
|
| 206 |
+
list(APPEND cxxflags --coverage)
|
| 207 |
+
list(APPEND ldflags --coverage)
|
| 208 |
+
endif()
|
| 209 |
+
|
| 210 |
+
# Show flags being used
|
| 211 |
+
message(STATUS "OpenMC C++ flags: ${cxxflags}")
|
| 212 |
+
message(STATUS "OpenMC Linker flags: ${ldflags}")
|
| 213 |
+
|
| 214 |
+
endif()
|
| 215 |
+
|
| 216 |
+
#===============================================================================
|
| 217 |
+
# Update git submodules as needed
|
| 218 |
+
#===============================================================================
|
| 219 |
+
if(GIT_FOUND AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
|
| 220 |
+
option(GIT_SUBMODULE "Check submodules during build" ON)
|
| 221 |
+
if(GIT_SUBMODULE)
|
| 222 |
+
message(STATUS "Submodule update")
|
| 223 |
+
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
|
| 224 |
+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
| 225 |
+
RESULT_VARIABLE GIT_SUBMOD_RESULT)
|
| 226 |
+
if(NOT GIT_SUBMOD_RESULT EQUAL 0)
|
| 227 |
+
message(FATAL_ERROR "git submodule update --init failed with \
|
| 228 |
+
${GIT_SUBMOD_RESULT}, please checkout submodules")
|
| 229 |
+
endif()
|
| 230 |
+
endif()
|
| 231 |
+
endif()
|
| 232 |
+
|
| 233 |
+
# Check to see if submodules exist (by checking one)
|
| 234 |
+
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/vendor/pugixml/CMakeLists.txt")
|
| 235 |
+
message(FATAL_ERROR "The git submodules were not downloaded! GIT_SUBMODULE was \
|
| 236 |
+
turned off or failed. Please update submodules and try again.")
|
| 237 |
+
endif()
|
| 238 |
+
|
| 239 |
+
#===============================================================================
|
| 240 |
+
# pugixml library
|
| 241 |
+
#===============================================================================
|
| 242 |
+
|
| 243 |
+
if(OPENMC_FORCE_VENDORED_LIBS)
|
| 244 |
+
add_subdirectory(vendor/pugixml)
|
| 245 |
+
set_target_properties(pugixml PROPERTIES CXX_STANDARD 14 CXX_EXTENSIONS OFF)
|
| 246 |
+
else()
|
| 247 |
+
find_package_write_status(pugixml)
|
| 248 |
+
if (NOT pugixml_FOUND)
|
| 249 |
+
add_subdirectory(vendor/pugixml)
|
| 250 |
+
set_target_properties(pugixml PROPERTIES CXX_STANDARD 14 CXX_EXTENSIONS OFF)
|
| 251 |
+
endif()
|
| 252 |
+
endif()
|
| 253 |
+
|
| 254 |
+
#===============================================================================
|
| 255 |
+
# {fmt} library
|
| 256 |
+
#===============================================================================
|
| 257 |
+
|
| 258 |
+
if(OPENMC_FORCE_VENDORED_LIBS)
|
| 259 |
+
set(FMT_INSTALL ON CACHE BOOL "Generate the install target.")
|
| 260 |
+
add_subdirectory(vendor/fmt)
|
| 261 |
+
else()
|
| 262 |
+
find_package_write_status(fmt)
|
| 263 |
+
if (NOT fmt_FOUND)
|
| 264 |
+
set(FMT_INSTALL ON CACHE BOOL "Generate the install target.")
|
| 265 |
+
add_subdirectory(vendor/fmt)
|
| 266 |
+
endif()
|
| 267 |
+
endif()
|
| 268 |
+
|
| 269 |
+
#===============================================================================
|
| 270 |
+
# xtensor header-only library
|
| 271 |
+
#===============================================================================
|
| 272 |
+
|
| 273 |
+
if(OPENMC_FORCE_VENDORED_LIBS)
|
| 274 |
+
add_subdirectory(vendor/xtl)
|
| 275 |
+
set(xtl_DIR ${CMAKE_CURRENT_BINARY_DIR}/vendor/xtl)
|
| 276 |
+
add_subdirectory(vendor/xtensor)
|
| 277 |
+
else()
|
| 278 |
+
find_package_write_status(xtensor)
|
| 279 |
+
if (NOT xtensor_FOUND)
|
| 280 |
+
add_subdirectory(vendor/xtl)
|
| 281 |
+
set(xtl_DIR ${CMAKE_CURRENT_BINARY_DIR}/vendor/xtl)
|
| 282 |
+
add_subdirectory(vendor/xtensor)
|
| 283 |
+
endif()
|
| 284 |
+
endif()
|
| 285 |
+
|
| 286 |
+
#===============================================================================
|
| 287 |
+
# Catch2 library
|
| 288 |
+
#===============================================================================
|
| 289 |
+
|
| 290 |
+
if(OPENMC_BUILD_TESTS)
|
| 291 |
+
if (OPENMC_FORCE_VENDORED_LIBS)
|
| 292 |
+
add_subdirectory(vendor/Catch2)
|
| 293 |
+
else()
|
| 294 |
+
find_package_write_status(Catch2)
|
| 295 |
+
if (NOT Catch2_FOUND)
|
| 296 |
+
add_subdirectory(vendor/Catch2)
|
| 297 |
+
endif()
|
| 298 |
+
endif()
|
| 299 |
+
endif()
|
| 300 |
+
|
| 301 |
+
#===============================================================================
|
| 302 |
+
# RPATH information
|
| 303 |
+
#===============================================================================
|
| 304 |
+
|
| 305 |
+
# Provide install directory variables as defined by GNU coding standards
|
| 306 |
+
include(GNUInstallDirs)
|
| 307 |
+
|
| 308 |
+
# This block of code ensures that dynamic libraries can be found via the RPATH
|
| 309 |
+
# whether the executable is the original one from the build directory or the
|
| 310 |
+
# installed one in CMAKE_INSTALL_PREFIX. Ref:
|
| 311 |
+
# https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/RPATH-handling
|
| 312 |
+
|
| 313 |
+
# use, i.e. don't skip the full RPATH for the build tree
|
| 314 |
+
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
| 315 |
+
|
| 316 |
+
# when building, don't use the install RPATH already
|
| 317 |
+
# (but later on when installing)
|
| 318 |
+
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
| 319 |
+
|
| 320 |
+
# add the automatically determined parts of the RPATH
|
| 321 |
+
# which point to directories outside the build tree to the install RPATH
|
| 322 |
+
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
| 323 |
+
|
| 324 |
+
# the RPATH to be used when installing, but only if it's not a system directory
|
| 325 |
+
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_FULL_LIBDIR}" isSystemDir)
|
| 326 |
+
if("${isSystemDir}" STREQUAL "-1")
|
| 327 |
+
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
|
| 328 |
+
endif()
|
| 329 |
+
|
| 330 |
+
#===============================================================================
|
| 331 |
+
# libopenmc
|
| 332 |
+
#===============================================================================
|
| 333 |
+
|
| 334 |
+
list(APPEND libopenmc_SOURCES
|
| 335 |
+
src/bank.cpp
|
| 336 |
+
src/boundary_condition.cpp
|
| 337 |
+
src/bremsstrahlung.cpp
|
| 338 |
+
src/cell.cpp
|
| 339 |
+
src/chain.cpp
|
| 340 |
+
src/cmfd_solver.cpp
|
| 341 |
+
src/collision_track.cpp
|
| 342 |
+
src/cross_sections.cpp
|
| 343 |
+
src/dagmc.cpp
|
| 344 |
+
src/distribution.cpp
|
| 345 |
+
src/distribution_angle.cpp
|
| 346 |
+
src/distribution_energy.cpp
|
| 347 |
+
src/distribution_multi.cpp
|
| 348 |
+
src/distribution_spatial.cpp
|
| 349 |
+
src/eigenvalue.cpp
|
| 350 |
+
src/endf.cpp
|
| 351 |
+
src/error.cpp
|
| 352 |
+
src/event.cpp
|
| 353 |
+
src/file_utils.cpp
|
| 354 |
+
src/finalize.cpp
|
| 355 |
+
src/geometry.cpp
|
| 356 |
+
src/geometry_aux.cpp
|
| 357 |
+
src/hdf5_interface.cpp
|
| 358 |
+
src/ifp.cpp
|
| 359 |
+
src/initialize.cpp
|
| 360 |
+
src/lattice.cpp
|
| 361 |
+
src/material.cpp
|
| 362 |
+
src/math_functions.cpp
|
| 363 |
+
src/mcpl_interface.cpp
|
| 364 |
+
src/mesh.cpp
|
| 365 |
+
src/message_passing.cpp
|
| 366 |
+
src/mgxs.cpp
|
| 367 |
+
src/mgxs_interface.cpp
|
| 368 |
+
src/ncrystal_interface.cpp
|
| 369 |
+
src/ncrystal_load.cpp
|
| 370 |
+
src/nuclide.cpp
|
| 371 |
+
src/output.cpp
|
| 372 |
+
src/particle.cpp
|
| 373 |
+
src/particle_data.cpp
|
| 374 |
+
src/particle_restart.cpp
|
| 375 |
+
src/particle_type.cpp
|
| 376 |
+
src/photon.cpp
|
| 377 |
+
src/physics.cpp
|
| 378 |
+
src/physics_common.cpp
|
| 379 |
+
src/physics_mg.cpp
|
| 380 |
+
src/plot.cpp
|
| 381 |
+
src/position.cpp
|
| 382 |
+
src/progress_bar.cpp
|
| 383 |
+
src/random_dist.cpp
|
| 384 |
+
src/random_lcg.cpp
|
| 385 |
+
src/random_ray/random_ray_simulation.cpp
|
| 386 |
+
src/random_ray/random_ray.cpp
|
| 387 |
+
src/random_ray/flat_source_domain.cpp
|
| 388 |
+
src/random_ray/linear_source_domain.cpp
|
| 389 |
+
src/random_ray/moment_matrix.cpp
|
| 390 |
+
src/random_ray/source_region.cpp
|
| 391 |
+
src/reaction.cpp
|
| 392 |
+
src/reaction_product.cpp
|
| 393 |
+
src/scattdata.cpp
|
| 394 |
+
src/secondary_correlated.cpp
|
| 395 |
+
src/secondary_kalbach.cpp
|
| 396 |
+
src/secondary_nbody.cpp
|
| 397 |
+
src/secondary_thermal.cpp
|
| 398 |
+
src/secondary_uncorrelated.cpp
|
| 399 |
+
src/settings.cpp
|
| 400 |
+
src/simulation.cpp
|
| 401 |
+
src/source.cpp
|
| 402 |
+
src/state_point.cpp
|
| 403 |
+
src/string_utils.cpp
|
| 404 |
+
src/summary.cpp
|
| 405 |
+
src/surface.cpp
|
| 406 |
+
src/tallies/derivative.cpp
|
| 407 |
+
src/tallies/filter.cpp
|
| 408 |
+
src/tallies/filter_azimuthal.cpp
|
| 409 |
+
src/tallies/filter_cell.cpp
|
| 410 |
+
src/tallies/filter_cell_instance.cpp
|
| 411 |
+
src/tallies/filter_cellborn.cpp
|
| 412 |
+
src/tallies/filter_cellfrom.cpp
|
| 413 |
+
src/tallies/filter_collision.cpp
|
| 414 |
+
src/tallies/filter_delayedgroup.cpp
|
| 415 |
+
src/tallies/filter_distribcell.cpp
|
| 416 |
+
src/tallies/filter_energy.cpp
|
| 417 |
+
src/tallies/filter_energyfunc.cpp
|
| 418 |
+
src/tallies/filter_legendre.cpp
|
| 419 |
+
src/tallies/filter_material.cpp
|
| 420 |
+
src/tallies/filter_materialfrom.cpp
|
| 421 |
+
src/tallies/filter_mesh.cpp
|
| 422 |
+
src/tallies/filter_meshborn.cpp
|
| 423 |
+
src/tallies/filter_meshmaterial.cpp
|
| 424 |
+
src/tallies/filter_meshsurface.cpp
|
| 425 |
+
src/tallies/filter_mu.cpp
|
| 426 |
+
src/tallies/filter_musurface.cpp
|
| 427 |
+
src/tallies/filter_parent_nuclide.cpp
|
| 428 |
+
src/tallies/filter_particle.cpp
|
| 429 |
+
src/tallies/filter_polar.cpp
|
| 430 |
+
src/tallies/filter_sph_harm.cpp
|
| 431 |
+
src/tallies/filter_sptl_legendre.cpp
|
| 432 |
+
src/tallies/filter_surface.cpp
|
| 433 |
+
src/tallies/filter_time.cpp
|
| 434 |
+
src/tallies/filter_universe.cpp
|
| 435 |
+
src/tallies/filter_weight.cpp
|
| 436 |
+
src/tallies/filter_zernike.cpp
|
| 437 |
+
src/tallies/tally.cpp
|
| 438 |
+
src/tallies/tally_scoring.cpp
|
| 439 |
+
src/tallies/trigger.cpp
|
| 440 |
+
src/thermal.cpp
|
| 441 |
+
src/timer.cpp
|
| 442 |
+
src/track_output.cpp
|
| 443 |
+
src/universe.cpp
|
| 444 |
+
src/urr.cpp
|
| 445 |
+
src/volume_calc.cpp
|
| 446 |
+
src/weight_windows.cpp
|
| 447 |
+
src/wmp.cpp
|
| 448 |
+
src/xml_interface.cpp
|
| 449 |
+
src/xsdata.cpp)
|
| 450 |
+
|
| 451 |
+
# Add bundled external dependencies
|
| 452 |
+
list(APPEND libopenmc_SOURCES
|
| 453 |
+
src/external/quartic_solver.cpp
|
| 454 |
+
src/external/Faddeeva.cc)
|
| 455 |
+
|
| 456 |
+
# For Visual Studio compilers
|
| 457 |
+
if(MSVC)
|
| 458 |
+
# Use static library (otherwise explicit symbol portings are needed)
|
| 459 |
+
add_library(libopenmc STATIC ${libopenmc_SOURCES})
|
| 460 |
+
|
| 461 |
+
# To use the shared HDF5 libraries on Windows, the H5_BUILT_AS_DYNAMIC_LIB
|
| 462 |
+
# compile definition must be specified.
|
| 463 |
+
target_compile_definitions(libopenmc PRIVATE -DH5_BUILT_AS_DYNAMIC_LIB)
|
| 464 |
+
else()
|
| 465 |
+
add_library(libopenmc SHARED ${libopenmc_SOURCES})
|
| 466 |
+
endif()
|
| 467 |
+
|
| 468 |
+
add_library(OpenMC::libopenmc ALIAS libopenmc)
|
| 469 |
+
|
| 470 |
+
# Avoid vs error lnk1149 :output filename matches input filename
|
| 471 |
+
if(NOT MSVC)
|
| 472 |
+
set_target_properties(libopenmc PROPERTIES OUTPUT_NAME openmc)
|
| 473 |
+
endif()
|
| 474 |
+
|
| 475 |
+
target_include_directories(libopenmc
|
| 476 |
+
PUBLIC
|
| 477 |
+
$<INSTALL_INTERFACE:include>
|
| 478 |
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
| 479 |
+
${HDF5_INCLUDE_DIRS}
|
| 480 |
+
)
|
| 481 |
+
|
| 482 |
+
# Set compile flags
|
| 483 |
+
target_compile_options(libopenmc PRIVATE ${cxxflags})
|
| 484 |
+
|
| 485 |
+
# Add include directory for configured version file
|
| 486 |
+
target_include_directories(libopenmc
|
| 487 |
+
PUBLIC $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
|
| 488 |
+
|
| 489 |
+
if (HDF5_IS_PARALLEL)
|
| 490 |
+
target_compile_definitions(libopenmc PRIVATE -DPHDF5)
|
| 491 |
+
endif()
|
| 492 |
+
if (OPENMC_USE_MPI)
|
| 493 |
+
target_compile_definitions(libopenmc PUBLIC -DOPENMC_MPI)
|
| 494 |
+
endif()
|
| 495 |
+
|
| 496 |
+
# target_link_libraries treats any arguments starting with - but not -l as
|
| 497 |
+
# linker flags. Thus, we can pass both linker flags and libraries together.
|
| 498 |
+
target_link_libraries(libopenmc ${ldflags} ${HDF5_LIBRARIES} ${HDF5_HL_LIBRARIES}
|
| 499 |
+
xtensor fmt::fmt ${CMAKE_DL_LIBS})
|
| 500 |
+
|
| 501 |
+
if(TARGET pugixml::pugixml)
|
| 502 |
+
target_link_libraries(libopenmc pugixml::pugixml)
|
| 503 |
+
else()
|
| 504 |
+
target_link_libraries(libopenmc pugixml)
|
| 505 |
+
endif()
|
| 506 |
+
|
| 507 |
+
if(OPENMC_USE_DAGMC)
|
| 508 |
+
target_compile_definitions(libopenmc PRIVATE OPENMC_DAGMC_ENABLED)
|
| 509 |
+
target_link_libraries(libopenmc dagmc-shared)
|
| 510 |
+
|
| 511 |
+
if(OPENMC_USE_UWUW)
|
| 512 |
+
target_compile_definitions(libopenmc PRIVATE OPENMC_UWUW_ENABLED)
|
| 513 |
+
target_link_libraries(libopenmc uwuw-shared)
|
| 514 |
+
endif()
|
| 515 |
+
elseif(OPENMC_USE_UWUW)
|
| 516 |
+
set(OPENMC_USE_UWUW OFF)
|
| 517 |
+
message(FATAL_ERROR "DAGMC must be enabled when UWUW is enabled.")
|
| 518 |
+
endif()
|
| 519 |
+
|
| 520 |
+
if(OPENMC_USE_LIBMESH)
|
| 521 |
+
target_compile_definitions(libopenmc PRIVATE OPENMC_LIBMESH_ENABLED)
|
| 522 |
+
target_link_libraries(libopenmc PkgConfig::LIBMESH)
|
| 523 |
+
endif()
|
| 524 |
+
|
| 525 |
+
if (PNG_FOUND)
|
| 526 |
+
target_compile_definitions(libopenmc PRIVATE USE_LIBPNG)
|
| 527 |
+
target_link_libraries(libopenmc PNG::PNG)
|
| 528 |
+
endif()
|
| 529 |
+
|
| 530 |
+
if (OPENMC_USE_OPENMP)
|
| 531 |
+
target_link_libraries(libopenmc OpenMP::OpenMP_CXX)
|
| 532 |
+
endif()
|
| 533 |
+
|
| 534 |
+
if (OPENMC_USE_MPI)
|
| 535 |
+
target_link_libraries(libopenmc MPI::MPI_CXX)
|
| 536 |
+
endif()
|
| 537 |
+
|
| 538 |
+
if (OPENMC_BUILD_TESTS)
|
| 539 |
+
# Add cpp tests directory
|
| 540 |
+
include(CTest)
|
| 541 |
+
add_subdirectory(tests/cpp_unit_tests)
|
| 542 |
+
endif()
|
| 543 |
+
|
| 544 |
+
#===============================================================================
|
| 545 |
+
# Log build info that this executable can report later
|
| 546 |
+
#===============================================================================
|
| 547 |
+
target_compile_definitions(libopenmc PRIVATE BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
| 548 |
+
target_compile_definitions(libopenmc PRIVATE COMPILER_ID=${CMAKE_CXX_COMPILER_ID})
|
| 549 |
+
target_compile_definitions(libopenmc PRIVATE COMPILER_VERSION=${CMAKE_CXX_COMPILER_VERSION})
|
| 550 |
+
if (OPENMC_ENABLE_PROFILE)
|
| 551 |
+
target_compile_definitions(libopenmc PRIVATE PROFILINGBUILD)
|
| 552 |
+
endif()
|
| 553 |
+
if (OPENMC_ENABLE_COVERAGE)
|
| 554 |
+
target_compile_definitions(libopenmc PRIVATE COVERAGEBUILD)
|
| 555 |
+
endif()
|
| 556 |
+
|
| 557 |
+
#===============================================================================
|
| 558 |
+
# openmc executable
|
| 559 |
+
#===============================================================================
|
| 560 |
+
add_executable(openmc src/main.cpp)
|
| 561 |
+
add_executable(OpenMC::openmc ALIAS openmc)
|
| 562 |
+
target_compile_options(openmc PRIVATE ${cxxflags})
|
| 563 |
+
target_include_directories(openmc PRIVATE ${CMAKE_BINARY_DIR}/include)
|
| 564 |
+
target_link_libraries(openmc libopenmc)
|
| 565 |
+
|
| 566 |
+
# Ensure C++17 standard is used and turn off GNU extensions
|
| 567 |
+
target_compile_features(openmc PUBLIC cxx_std_17)
|
| 568 |
+
target_compile_features(libopenmc PUBLIC cxx_std_17)
|
| 569 |
+
set_target_properties(openmc libopenmc PROPERTIES CXX_EXTENSIONS OFF)
|
| 570 |
+
|
| 571 |
+
#===============================================================================
|
| 572 |
+
# Python package
|
| 573 |
+
#===============================================================================
|
| 574 |
+
|
| 575 |
+
add_custom_command(TARGET libopenmc POST_BUILD
|
| 576 |
+
COMMAND ${CMAKE_COMMAND} -E copy
|
| 577 |
+
$<TARGET_FILE:libopenmc>
|
| 578 |
+
${CMAKE_CURRENT_SOURCE_DIR}/openmc/lib/$<TARGET_FILE_NAME:libopenmc>
|
| 579 |
+
COMMENT "Copying libopenmc to Python module directory")
|
| 580 |
+
|
| 581 |
+
#===============================================================================
|
| 582 |
+
# Install executable, scripts, manpage, license
|
| 583 |
+
#===============================================================================
|
| 584 |
+
|
| 585 |
+
configure_file(cmake/OpenMCConfig.cmake.in "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMCConfig.cmake" @ONLY)
|
| 586 |
+
configure_file(cmake/OpenMCConfigVersion.cmake.in "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMCConfigVersion.cmake" @ONLY)
|
| 587 |
+
|
| 588 |
+
set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/OpenMC)
|
| 589 |
+
install(TARGETS openmc libopenmc
|
| 590 |
+
EXPORT openmc-targets
|
| 591 |
+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
| 592 |
+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
| 593 |
+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
| 594 |
+
)
|
| 595 |
+
install(EXPORT openmc-targets
|
| 596 |
+
FILE OpenMCTargets.cmake
|
| 597 |
+
NAMESPACE OpenMC::
|
| 598 |
+
DESTINATION ${INSTALL_CONFIGDIR})
|
| 599 |
+
|
| 600 |
+
install(FILES
|
| 601 |
+
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMCConfig.cmake"
|
| 602 |
+
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMCConfigVersion.cmake"
|
| 603 |
+
DESTINATION ${INSTALL_CONFIGDIR})
|
| 604 |
+
install(FILES man/man1/openmc.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
| 605 |
+
install(FILES LICENSE DESTINATION "${CMAKE_INSTALL_DOCDIR}" RENAME copyright)
|
| 606 |
+
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
| 607 |
+
install(FILES "${CMAKE_BINARY_DIR}/include/openmc/version.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/openmc)
|
openmc/source/CODEOWNERS
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Data interface
|
| 2 |
+
openmc/data/ @paulromano
|
| 3 |
+
|
| 4 |
+
# Python bindings to C/C++ API
|
| 5 |
+
openmc/lib/ @paulromano
|
| 6 |
+
|
| 7 |
+
# Depletion
|
| 8 |
+
openmc/deplete/ @paulromano
|
| 9 |
+
tests/regression_tests/deplete/ @paulromano
|
| 10 |
+
tests/unit_tests/test_deplete_*.py @paulromano
|
| 11 |
+
|
| 12 |
+
# MG-related functionality
|
| 13 |
+
openmc/mgxs_library.py @nelsonag
|
| 14 |
+
src/mgxs.cpp @nelsonag
|
| 15 |
+
src/mgxs_interface.cpp @nelsonag
|
| 16 |
+
src/physics_mg.cpp @nelsonag
|
| 17 |
+
src/scattdata.cpp @nelsonag
|
| 18 |
+
src/xsdata.cpp @nelsonag
|
| 19 |
+
|
| 20 |
+
# CMFD
|
| 21 |
+
openmc/cmfd.py @shikhar413
|
| 22 |
+
src/cmfd_solver.cpp @shikhar413
|
| 23 |
+
|
| 24 |
+
# DAGMC
|
| 25 |
+
src/dagmc.cpp @pshriwise
|
| 26 |
+
tests/regression_tests/dagmc/ @pshriwise
|
| 27 |
+
tests/unit_tests/dagmc/ @pshriwise
|
| 28 |
+
|
| 29 |
+
# Weight windows
|
| 30 |
+
openmc/weight_windows.py @pshriwise
|
| 31 |
+
openmc/lib/weight_windows.py @pshriwise
|
| 32 |
+
src/weight_windows.py @pshriwise
|
| 33 |
+
tests/unit_tests/weightwindows/ @pshriwise
|
| 34 |
+
|
| 35 |
+
# Photon transport
|
| 36 |
+
openmc/data/BREMX.DAT @amandalund
|
| 37 |
+
openmc/data/compton_profiles.h5 @amandalund
|
| 38 |
+
openmc/data/photon.py @amandalund
|
| 39 |
+
src/photon.cpp @amandalund
|
| 40 |
+
src/bremsstrahlung.cpp @amandalund
|
| 41 |
+
tests/regression_tests/photon_production/ @amandalund
|
| 42 |
+
tests/regression_tests/photon_source/ @amandalund
|
| 43 |
+
|
| 44 |
+
# RCP and TRISOs
|
| 45 |
+
openmc/model/triso.py @amandalund
|
| 46 |
+
tests/regression_tests/triso/ @amandalund
|
| 47 |
+
tests/unit_tests/test_model_triso.py @amandalund
|
| 48 |
+
|
| 49 |
+
# Geometry plotting
|
| 50 |
+
src/plot.cpp @pshriwise
|
| 51 |
+
openmc/lib/plot.py @pshriwise
|
| 52 |
+
|
| 53 |
+
# Resonance covariance
|
| 54 |
+
openmc/data/resonance_covariance.py @icmeyer
|
| 55 |
+
|
| 56 |
+
# Docker
|
| 57 |
+
Dockerfile @shimwell
|
| 58 |
+
|
| 59 |
+
# Random ray
|
| 60 |
+
src/random_ray/ @jtramm
|
| 61 |
+
|
| 62 |
+
# NCrystal interface
|
| 63 |
+
src/ncrystal_interface.cpp @marquezj @tkittel
|
| 64 |
+
src/ncrystal_load.cpp @marquezj @tkittel
|
| 65 |
+
|
| 66 |
+
# MCPL interface
|
| 67 |
+
src/mcpl_interface.cpp @ebknudsen
|
openmc/source/CODE_OF_CONDUCT.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Contributor Covenant Code of Conduct
|
| 2 |
+
|
| 3 |
+
## Our Pledge
|
| 4 |
+
|
| 5 |
+
In the interest of fostering an open and welcoming environment, we as
|
| 6 |
+
contributors and maintainers pledge to making participation in our project and
|
| 7 |
+
our community a harassment-free experience for everyone, regardless of age, body
|
| 8 |
+
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
| 9 |
+
level of experience, education, socio-economic status, nationality, personal
|
| 10 |
+
appearance, race, religion, or sexual identity and orientation.
|
| 11 |
+
|
| 12 |
+
## Our Standards
|
| 13 |
+
|
| 14 |
+
Examples of behavior that contributes to creating a positive environment
|
| 15 |
+
include:
|
| 16 |
+
|
| 17 |
+
* Using welcoming and inclusive language
|
| 18 |
+
* Being respectful of differing viewpoints and experiences
|
| 19 |
+
* Gracefully accepting constructive criticism
|
| 20 |
+
* Focusing on what is best for the community
|
| 21 |
+
* Showing empathy towards other community members
|
| 22 |
+
|
| 23 |
+
Examples of unacceptable behavior by participants include:
|
| 24 |
+
|
| 25 |
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
| 26 |
+
advances
|
| 27 |
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
| 28 |
+
* Public or private harassment
|
| 29 |
+
* Publishing others' private information, such as a physical or electronic
|
| 30 |
+
address, without explicit permission
|
| 31 |
+
* Other conduct which could reasonably be considered inappropriate in a
|
| 32 |
+
professional setting
|
| 33 |
+
|
| 34 |
+
## Our Responsibilities
|
| 35 |
+
|
| 36 |
+
Project maintainers are responsible for clarifying the standards of acceptable
|
| 37 |
+
behavior and are expected to take appropriate and fair corrective action in
|
| 38 |
+
response to any instances of unacceptable behavior.
|
| 39 |
+
|
| 40 |
+
Project maintainers have the right and responsibility to remove, edit, or
|
| 41 |
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
| 42 |
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
| 43 |
+
permanently any contributor for other behaviors that they deem inappropriate,
|
| 44 |
+
threatening, offensive, or harmful.
|
| 45 |
+
|
| 46 |
+
## Scope
|
| 47 |
+
|
| 48 |
+
This Code of Conduct applies both within project spaces and in public spaces
|
| 49 |
+
when an individual is representing the project or its community. Examples of
|
| 50 |
+
representing a project or community include using an official project e-mail
|
| 51 |
+
address, posting via an official social media account, or acting as an appointed
|
| 52 |
+
representative at an online or offline event. Representation of a project may be
|
| 53 |
+
further defined and clarified by project maintainers.
|
| 54 |
+
|
| 55 |
+
## Enforcement
|
| 56 |
+
|
| 57 |
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
| 58 |
+
reported by contacting the project team at openmc@anl.gov. All complaints will
|
| 59 |
+
be reviewed and investigated and will result in a response that is deemed
|
| 60 |
+
necessary and appropriate to the circumstances. The project team is obligated to
|
| 61 |
+
maintain confidentiality with regard to the reporter of an incident. However,
|
| 62 |
+
note that some project team members may have a legal obligation to report
|
| 63 |
+
certain forms of harassment because of their affiliation (for example, staff and
|
| 64 |
+
faculty at universities in the United States). Further details of specific
|
| 65 |
+
enforcement policies may be posted separately.
|
| 66 |
+
|
| 67 |
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
| 68 |
+
faith may face temporary or permanent repercussions as determined by other
|
| 69 |
+
members of the project's leadership.
|
| 70 |
+
|
| 71 |
+
## Attribution
|
| 72 |
+
|
| 73 |
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
| 74 |
+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
| 75 |
+
|
| 76 |
+
[homepage]: https://www.contributor-covenant.org
|
openmc/source/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Contributing to OpenMC
|
| 2 |
+
|
| 3 |
+
Welcome, and thank you for considering contributing to OpenMC! We look forward
|
| 4 |
+
to welcoming new members to the community and will do our best to help you get
|
| 5 |
+
up to speed.
|
| 6 |
+
|
| 7 |
+
## Code of Conduct
|
| 8 |
+
|
| 9 |
+
Participants in the OpenMC project are expected to follow and uphold the [Code
|
| 10 |
+
of Conduct](CODE_OF_CONDUCT.md). Please report any unacceptable behavior to
|
| 11 |
+
openmc@anl.gov.
|
| 12 |
+
|
| 13 |
+
## Resources
|
| 14 |
+
|
| 15 |
+
- [GitHub Repository](https://github.com/openmc-dev/openmc)
|
| 16 |
+
- [Documentation](https://docs.openmc.org/en/latest)
|
| 17 |
+
- [Discussion Forum](https://openmc.discourse.group)
|
| 18 |
+
- [Slack Community](https://openmc.slack.com/signup) (If you don't see your
|
| 19 |
+
domain listed, contact openmc@anl.gov)
|
| 20 |
+
|
| 21 |
+
## How to Report Bugs
|
| 22 |
+
|
| 23 |
+
OpenMC is hosted on GitHub and all bugs are reported and tracked through the
|
| 24 |
+
[Issues](https://github.com/openmc-dev/openmc/issues) listed on GitHub.
|
| 25 |
+
|
| 26 |
+
## How to Suggest Enhancements
|
| 27 |
+
|
| 28 |
+
We welcome suggestions for new features or enhancements to the code and
|
| 29 |
+
encourage you to submit them as Issues on GitHub. However, it's important to
|
| 30 |
+
recognize that our development team is relatively small and does not have
|
| 31 |
+
unlimited time to devote to new feature suggestions. If you are interested in
|
| 32 |
+
working on the feature you are requesting, indicate so in the issue and the
|
| 33 |
+
development team will be happy to discuss it.
|
| 34 |
+
|
| 35 |
+
## How to Submit Changes
|
| 36 |
+
|
| 37 |
+
All changes to OpenMC happen through pull requests. For a full overview of the
|
| 38 |
+
process, see the developer's guide section on [Contributing to
|
| 39 |
+
OpenMC](https://docs.openmc.org/en/latest/devguide/contributing.html).
|
| 40 |
+
|
| 41 |
+
## Code Style
|
| 42 |
+
|
| 43 |
+
Before you run off to make changes to the code, please have a look at our [style
|
| 44 |
+
guide](https://docs.openmc.org/en/latest/devguide/styleguide.html), which
|
| 45 |
+
is used when reviewing new contributions.
|
openmc/source/Dockerfile
ADDED
|
@@ -0,0 +1,241 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# To build with OpenMC and by default this Dockerfile builds the master branch of OpenMC.
|
| 2 |
+
# docker build -t openmc .
|
| 3 |
+
|
| 4 |
+
# To build with OpenMC develop branch
|
| 5 |
+
# docker build -t openmc_develop --build-arg openmc_branch=develop .
|
| 6 |
+
|
| 7 |
+
# To build with OpenMC and DAGMC enabled
|
| 8 |
+
# docker build -t openmc_dagmc --build-arg build_dagmc=on --build-arg compile_cores=4 .
|
| 9 |
+
|
| 10 |
+
# To build with OpenMC and Libmesh enabled
|
| 11 |
+
# docker build -t openmc_libmesh --build-arg build_libmesh=on --build-arg compile_cores=4 .
|
| 12 |
+
|
| 13 |
+
# To build with both DAGMC and Libmesh enabled
|
| 14 |
+
# docker build -t openmc_dagmc_libmesh --build-arg build_dagmc=on --build-arg build_libmesh=on --build-arg compile_cores=4 .
|
| 15 |
+
|
| 16 |
+
# sudo docker run image_name:tag_name or ID with no tag sudo docker run ID number
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
# global ARG as these ARGS are used in multiple stages
|
| 20 |
+
# By default one core is used to compile
|
| 21 |
+
ARG compile_cores=1
|
| 22 |
+
|
| 23 |
+
# By default this Dockerfile builds OpenMC without DAGMC and LIBMESH support
|
| 24 |
+
ARG build_dagmc=off
|
| 25 |
+
ARG build_libmesh=off
|
| 26 |
+
|
| 27 |
+
FROM ubuntu:24.04 AS dependencies
|
| 28 |
+
|
| 29 |
+
ARG compile_cores
|
| 30 |
+
ARG build_dagmc
|
| 31 |
+
ARG build_libmesh
|
| 32 |
+
|
| 33 |
+
# Set default value of HOME to /root
|
| 34 |
+
ENV HOME=/root
|
| 35 |
+
|
| 36 |
+
# Embree variables
|
| 37 |
+
ENV EMBREE_TAG='v4.3.1'
|
| 38 |
+
ENV EMBREE_REPO='https://github.com/embree/embree'
|
| 39 |
+
ENV EMBREE_INSTALL_DIR=$HOME/EMBREE/
|
| 40 |
+
|
| 41 |
+
# MOAB variables
|
| 42 |
+
ENV MOAB_TAG='5.5.1'
|
| 43 |
+
ENV MOAB_REPO='https://bitbucket.org/fathomteam/moab/'
|
| 44 |
+
|
| 45 |
+
# Double-Down variables
|
| 46 |
+
ENV DD_TAG='v1.1.0'
|
| 47 |
+
ENV DD_REPO='https://github.com/pshriwise/double-down'
|
| 48 |
+
ENV DD_INSTALL_DIR=$HOME/Double_down
|
| 49 |
+
|
| 50 |
+
# DAGMC variables
|
| 51 |
+
ENV DAGMC_BRANCH='v3.2.4'
|
| 52 |
+
ENV DAGMC_REPO='https://github.com/svalinn/DAGMC'
|
| 53 |
+
ENV DAGMC_INSTALL_DIR=$HOME/DAGMC/
|
| 54 |
+
|
| 55 |
+
# LIBMESH variables
|
| 56 |
+
ENV LIBMESH_TAG='v1.7.1'
|
| 57 |
+
ENV LIBMESH_REPO='https://github.com/libMesh/libmesh'
|
| 58 |
+
ENV LIBMESH_INSTALL_DIR=$HOME/LIBMESH
|
| 59 |
+
|
| 60 |
+
# NJOY variables
|
| 61 |
+
ENV NJOY_REPO='https://github.com/njoy/NJOY2016'
|
| 62 |
+
|
| 63 |
+
# Setup environment variables for Docker image
|
| 64 |
+
ENV LD_LIBRARY_PATH=${DAGMC_INSTALL_DIR}/lib:$LD_LIBRARY_PATH \
|
| 65 |
+
OPENMC_ENDF_DATA=/root/endf-b-vii.1 \
|
| 66 |
+
DEBIAN_FRONTEND=noninteractive
|
| 67 |
+
|
| 68 |
+
# Install and update dependencies from Debian package manager
|
| 69 |
+
RUN apt-get update -y && \
|
| 70 |
+
apt-get upgrade -y && \
|
| 71 |
+
apt-get install -y \
|
| 72 |
+
python3-pip python-is-python3 wget git build-essential cmake \
|
| 73 |
+
mpich libmpich-dev libhdf5-serial-dev libhdf5-mpich-dev \
|
| 74 |
+
libpng-dev python3-venv && \
|
| 75 |
+
apt-get autoremove
|
| 76 |
+
|
| 77 |
+
# create virtual enviroment to avoid externally managed environment error
|
| 78 |
+
RUN python3 -m venv openmc_venv
|
| 79 |
+
ENV PATH=/openmc_venv/bin:$PATH
|
| 80 |
+
|
| 81 |
+
# Update system-provided pip
|
| 82 |
+
RUN pip install --upgrade pip
|
| 83 |
+
|
| 84 |
+
# Clone and install NJOY2016
|
| 85 |
+
RUN cd $HOME \
|
| 86 |
+
&& git clone --single-branch --depth 1 ${NJOY_REPO} \
|
| 87 |
+
&& cd NJOY2016 \
|
| 88 |
+
&& mkdir build \
|
| 89 |
+
&& cd build \
|
| 90 |
+
&& cmake -Dstatic=on .. \
|
| 91 |
+
&& make 2>/dev/null -j${compile_cores} install \
|
| 92 |
+
&& rm -rf $HOME/NJOY2016
|
| 93 |
+
|
| 94 |
+
|
| 95 |
+
RUN if [ "$build_dagmc" = "on" ]; then \
|
| 96 |
+
# Install addition packages required for DAGMC
|
| 97 |
+
apt-get -y install libeigen3-dev libnetcdf-dev libtbb-dev libglfw3-dev \
|
| 98 |
+
&& pip install --upgrade numpy \
|
| 99 |
+
&& pip install --no-cache-dir setuptools cython \
|
| 100 |
+
# Clone and install EMBREE
|
| 101 |
+
&& mkdir -p $HOME/EMBREE && cd $HOME/EMBREE \
|
| 102 |
+
&& git clone --single-branch -b ${EMBREE_TAG} --depth 1 ${EMBREE_REPO} \
|
| 103 |
+
&& mkdir build && cd build \
|
| 104 |
+
&& cmake ../embree \
|
| 105 |
+
-DCMAKE_INSTALL_PREFIX=${EMBREE_INSTALL_DIR} \
|
| 106 |
+
-DEMBREE_MAX_ISA=NONE \
|
| 107 |
+
-DEMBREE_ISA_SSE42=ON \
|
| 108 |
+
-DEMBREE_ISPC_SUPPORT=OFF \
|
| 109 |
+
&& make 2>/dev/null -j${compile_cores} install \
|
| 110 |
+
&& rm -rf ${EMBREE_INSTALL_DIR}/build ${EMBREE_INSTALL_DIR}/embree ; \
|
| 111 |
+
# Clone and install MOAB
|
| 112 |
+
mkdir -p $HOME/MOAB && cd $HOME/MOAB \
|
| 113 |
+
&& git clone --single-branch -b ${MOAB_TAG} --depth 1 ${MOAB_REPO} \
|
| 114 |
+
&& mkdir build && cd build \
|
| 115 |
+
&& cmake ../moab -DCMAKE_BUILD_TYPE=Release \
|
| 116 |
+
-DENABLE_HDF5=ON \
|
| 117 |
+
-DENABLE_NETCDF=ON \
|
| 118 |
+
-DBUILD_SHARED_LIBS=OFF \
|
| 119 |
+
-DENABLE_FORTRAN=OFF \
|
| 120 |
+
-DENABLE_BLASLAPACK=OFF \
|
| 121 |
+
&& make 2>/dev/null -j${compile_cores} install \
|
| 122 |
+
&& cmake ../moab \
|
| 123 |
+
-DENABLE_PYMOAB=ON \
|
| 124 |
+
-DBUILD_SHARED_LIBS=ON \
|
| 125 |
+
&& make 2>/dev/null -j${compile_cores} install \
|
| 126 |
+
&& cd pymoab && bash install.sh \
|
| 127 |
+
&& python setup.py install \
|
| 128 |
+
&& python -c "import pymoab" \
|
| 129 |
+
&& rm -rf $HOME/MOAB ; \
|
| 130 |
+
# Clone and install Double-Down
|
| 131 |
+
mkdir -p $HOME/Double_down && cd $HOME/Double_down \
|
| 132 |
+
&& git clone --single-branch -b ${DD_TAG} --depth 1 ${DD_REPO} \
|
| 133 |
+
&& mkdir build && cd build \
|
| 134 |
+
&& cmake ../double-down -DCMAKE_INSTALL_PREFIX=${DD_INSTALL_DIR} \
|
| 135 |
+
-DMOAB_DIR=/usr/local \
|
| 136 |
+
-DEMBREE_DIR=${EMBREE_INSTALL_DIR} \
|
| 137 |
+
&& make 2>/dev/null -j${compile_cores} install \
|
| 138 |
+
&& rm -rf ${DD_INSTALL_DIR}/build ${DD_INSTALL_DIR}/double-down ; \
|
| 139 |
+
# Clone and install DAGMC
|
| 140 |
+
mkdir -p $HOME/DAGMC && cd $HOME/DAGMC \
|
| 141 |
+
&& git clone --single-branch -b ${DAGMC_BRANCH} --depth 1 ${DAGMC_REPO} \
|
| 142 |
+
&& mkdir build && cd build \
|
| 143 |
+
&& cmake ../DAGMC -DBUILD_TALLY=ON \
|
| 144 |
+
-DCMAKE_INSTALL_PREFIX=${DAGMC_INSTALL_DIR} \
|
| 145 |
+
-DMOAB_DIR=/usr/local \
|
| 146 |
+
-DDOUBLE_DOWN=ON \
|
| 147 |
+
-DDOUBLE_DOWN_DIR=${DD_INSTALL_DIR} \
|
| 148 |
+
-DCMAKE_PREFIX_PATH=${DD_INSTALL_DIR}/lib \
|
| 149 |
+
-DBUILD_STATIC_LIBS=OFF \
|
| 150 |
+
&& make 2>/dev/null -j${compile_cores} install \
|
| 151 |
+
&& rm -rf ${DAGMC_INSTALL_DIR}/DAGMC ${DAGMC_INSTALL_DIR}/build ; \
|
| 152 |
+
fi
|
| 153 |
+
|
| 154 |
+
|
| 155 |
+
RUN if [ "$build_libmesh" = "on" ]; then \
|
| 156 |
+
# Install addition packages required for LIBMESH
|
| 157 |
+
apt-get -y install m4 libnetcdf-dev libpnetcdf-dev \
|
| 158 |
+
# Install LIBMESH
|
| 159 |
+
&& mkdir -p $HOME/LIBMESH && cd $HOME/LIBMESH \
|
| 160 |
+
&& git clone --shallow-submodules --recurse-submodules --single-branch -b ${LIBMESH_TAG} --depth 1 ${LIBMESH_REPO} \
|
| 161 |
+
&& mkdir build && cd build \
|
| 162 |
+
&& ../libmesh/configure \
|
| 163 |
+
--prefix=${LIBMESH_INSTALL_DIR} CXX=mpicxx CC=mpicc FC=mpifort F77=mpif77 \
|
| 164 |
+
--enable-exodus \
|
| 165 |
+
--enable-mpi \
|
| 166 |
+
--enable-silent-rules \
|
| 167 |
+
--enable-unique-id \
|
| 168 |
+
--disable-eigen \
|
| 169 |
+
--disable-fortran \
|
| 170 |
+
--disable-lapack \
|
| 171 |
+
--disable-examples \
|
| 172 |
+
--disable-warnings \
|
| 173 |
+
--disable-maintainer-mode \
|
| 174 |
+
--disable-metaphysicl \
|
| 175 |
+
--with-methods="opt" \
|
| 176 |
+
--without-gdb-command \
|
| 177 |
+
--with-cxx-std-min=2014 \
|
| 178 |
+
&& make 2>/dev/null -j${compile_cores} install \
|
| 179 |
+
&& rm -rf ${LIBMESH_INSTALL_DIR}/build ${LIBMESH_INSTALL_DIR}/libmesh ; \
|
| 180 |
+
fi
|
| 181 |
+
|
| 182 |
+
FROM dependencies AS build
|
| 183 |
+
|
| 184 |
+
ENV HOME=/root
|
| 185 |
+
|
| 186 |
+
ARG openmc_branch=master
|
| 187 |
+
ENV OPENMC_REPO='https://github.com/openmc-dev/openmc'
|
| 188 |
+
|
| 189 |
+
ARG compile_cores
|
| 190 |
+
ARG build_dagmc
|
| 191 |
+
ARG build_libmesh
|
| 192 |
+
|
| 193 |
+
ENV DAGMC_INSTALL_DIR=$HOME/DAGMC/
|
| 194 |
+
ENV LIBMESH_INSTALL_DIR=$HOME/LIBMESH
|
| 195 |
+
|
| 196 |
+
# clone and install openmc
|
| 197 |
+
RUN mkdir -p ${HOME}/OpenMC && cd ${HOME}/OpenMC \
|
| 198 |
+
&& git clone --shallow-submodules --recurse-submodules --single-branch -b ${openmc_branch} ${OPENMC_REPO} \
|
| 199 |
+
&& mkdir build && cd build ; \
|
| 200 |
+
if [ ${build_dagmc} = "on" ] && [ ${build_libmesh} = "on" ]; then \
|
| 201 |
+
cmake ../openmc \
|
| 202 |
+
-DCMAKE_CXX_COMPILER=mpicxx \
|
| 203 |
+
-DOPENMC_USE_MPI=on \
|
| 204 |
+
-DHDF5_PREFER_PARALLEL=on \
|
| 205 |
+
-DOPENMC_USE_DAGMC=on \
|
| 206 |
+
-DOPENMC_USE_LIBMESH=on \
|
| 207 |
+
-DCMAKE_PREFIX_PATH="${DAGMC_INSTALL_DIR};${LIBMESH_INSTALL_DIR}" ; \
|
| 208 |
+
fi ; \
|
| 209 |
+
if [ ${build_dagmc} = "on" ] && [ ${build_libmesh} = "off" ]; then \
|
| 210 |
+
cmake ../openmc \
|
| 211 |
+
-DCMAKE_CXX_COMPILER=mpicxx \
|
| 212 |
+
-DOPENMC_USE_MPI=on \
|
| 213 |
+
-DHDF5_PREFER_PARALLEL=on \
|
| 214 |
+
-DOPENMC_USE_DAGMC=ON \
|
| 215 |
+
-DCMAKE_PREFIX_PATH=${DAGMC_INSTALL_DIR} ; \
|
| 216 |
+
fi ; \
|
| 217 |
+
if [ ${build_dagmc} = "off" ] && [ ${build_libmesh} = "on" ]; then \
|
| 218 |
+
cmake ../openmc \
|
| 219 |
+
-DCMAKE_CXX_COMPILER=mpicxx \
|
| 220 |
+
-DOPENMC_USE_MPI=on \
|
| 221 |
+
-DHDF5_PREFER_PARALLEL=on \
|
| 222 |
+
-DOPENMC_USE_LIBMESH=on \
|
| 223 |
+
-DCMAKE_PREFIX_PATH=${LIBMESH_INSTALL_DIR} ; \
|
| 224 |
+
fi ; \
|
| 225 |
+
if [ ${build_dagmc} = "off" ] && [ ${build_libmesh} = "off" ]; then \
|
| 226 |
+
cmake ../openmc \
|
| 227 |
+
-DCMAKE_CXX_COMPILER=mpicxx \
|
| 228 |
+
-DOPENMC_USE_MPI=on \
|
| 229 |
+
-DHDF5_PREFER_PARALLEL=on ; \
|
| 230 |
+
fi ; \
|
| 231 |
+
make 2>/dev/null -j${compile_cores} install \
|
| 232 |
+
&& cd ../openmc && pip install .[test,depletion-mpi] \
|
| 233 |
+
&& python -c "import openmc"
|
| 234 |
+
|
| 235 |
+
FROM build AS release
|
| 236 |
+
|
| 237 |
+
ENV HOME=/root
|
| 238 |
+
ENV OPENMC_CROSS_SECTIONS=/root/nndc_hdf5/cross_sections.xml
|
| 239 |
+
|
| 240 |
+
# Download cross sections (NNDC and WMP) and ENDF data needed by test suite
|
| 241 |
+
RUN ${HOME}/OpenMC/openmc/tools/ci/download-xs.sh
|
openmc/source/LICENSE
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Copyright (c) 2011-2025 Massachusetts Institute of Technology, UChicago Argonne
|
| 2 |
+
LLC, and OpenMC contributors
|
| 3 |
+
|
| 4 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
| 5 |
+
this software and associated documentation files (the "Software"), to deal in
|
| 6 |
+
the Software without restriction, including without limitation the rights to
|
| 7 |
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
| 8 |
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
| 9 |
+
subject to the following conditions:
|
| 10 |
+
|
| 11 |
+
The above copyright notice and this permission notice shall be included in all
|
| 12 |
+
copies or substantial portions of the Software.
|
| 13 |
+
|
| 14 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 15 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
| 16 |
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
| 17 |
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
| 18 |
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
| 19 |
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
openmc/source/MANIFEST.in
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
include CMakeLists.txt
|
| 2 |
+
include LICENSE
|
| 3 |
+
include CODE_OF_CONDUCT.md
|
| 4 |
+
include CODEOWNERS
|
| 5 |
+
include CONTRIBUTING.md
|
| 6 |
+
include Dockerfile
|
| 7 |
+
include schemas.xml
|
| 8 |
+
include pyproject.toml
|
| 9 |
+
include pytest.ini
|
| 10 |
+
include docs/source/_templates/layout.html
|
| 11 |
+
global-include *.cmake
|
| 12 |
+
global-include *.cmake.in
|
| 13 |
+
global-include *.rst
|
| 14 |
+
recursive-include docs *.css
|
| 15 |
+
recursive-include docs *.dia
|
| 16 |
+
recursive-include docs *.png
|
| 17 |
+
recursive-include docs *.py
|
| 18 |
+
recursive-include docs *.svg
|
| 19 |
+
recursive-include docs *.tex
|
| 20 |
+
recursive-include docs *.txt
|
| 21 |
+
recursive-include docs Makefile
|
| 22 |
+
recursive-include examples *.cpp
|
| 23 |
+
recursive-include examples *.py
|
| 24 |
+
recursive-include examples *.xml
|
| 25 |
+
recursive-include include *.h
|
| 26 |
+
recursive-include include *.h.in
|
| 27 |
+
recursive-include include *.hh
|
| 28 |
+
recursive-include man *.1
|
| 29 |
+
recursive-include src *.cc
|
| 30 |
+
recursive-include src *.cpp
|
| 31 |
+
recursive-include src *.rnc
|
| 32 |
+
recursive-include src *.rng
|
| 33 |
+
recursive-include tests *.dat
|
| 34 |
+
recursive-include tests *.h5
|
| 35 |
+
recursive-include tests *.h5m
|
| 36 |
+
recursive-include tests *.py
|
| 37 |
+
recursive-include tests *.xml
|
| 38 |
+
recursive-include vendor CMakeLists.txt
|
| 39 |
+
recursive-include vendor *.cc
|
| 40 |
+
recursive-include vendor *.cpp
|
| 41 |
+
recursive-include vendor *.h
|
| 42 |
+
recursive-include vendor *.hh
|
| 43 |
+
recursive-include vendor *.hpp
|
| 44 |
+
recursive-include vendor *.pc.in
|
| 45 |
+
recursive-include vendor *.natvis
|
| 46 |
+
prune docs/build
|
| 47 |
+
prune docs/source/pythonapi/generated/
|
openmc/source/README.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# OpenMC Monte Carlo Particle Transport Code
|
| 2 |
+
|
| 3 |
+
[](https://docs.openmc.org/en/latest/license.html)
|
| 4 |
+
[](https://github.com/openmc-dev/openmc/actions/workflows/ci.yml)
|
| 5 |
+
[](https://coveralls.io/github/openmc-dev/openmc?branch=develop)
|
| 6 |
+
[](https://github.com/openmc-dev/openmc/actions?query=workflow%3Adockerhub-publish-develop-dagmc)
|
| 7 |
+
[](https://github.com/openmc-dev/openmc/actions?query=workflow%3Adockerhub-publish-develop)
|
| 8 |
+
[](https://anaconda.org/conda-forge/openmc)
|
| 9 |
+
|
| 10 |
+
The OpenMC project aims to provide a fully-featured Monte Carlo particle
|
| 11 |
+
transport code based on modern methods. It is a constructive solid geometry,
|
| 12 |
+
continuous-energy transport code that uses HDF5 format cross sections. The
|
| 13 |
+
project started under the Computational Reactor Physics Group at MIT.
|
| 14 |
+
|
| 15 |
+
Complete documentation on the usage of OpenMC is hosted on Read the Docs (both
|
| 16 |
+
for the [latest release](https://docs.openmc.org/en/stable/) and
|
| 17 |
+
[developmental](https://docs.openmc.org/en/latest/) version). If you are
|
| 18 |
+
interested in the project, or would like to help and contribute, please get in
|
| 19 |
+
touch on the OpenMC [discussion forum](https://openmc.discourse.group/).
|
| 20 |
+
|
| 21 |
+
## Installation
|
| 22 |
+
|
| 23 |
+
Detailed [installation
|
| 24 |
+
instructions](https://docs.openmc.org/en/stable/usersguide/install.html)
|
| 25 |
+
can be found in the User's Guide.
|
| 26 |
+
|
| 27 |
+
## Citing
|
| 28 |
+
|
| 29 |
+
If you use OpenMC in your research, please consider giving proper attribution by
|
| 30 |
+
citing the following publication:
|
| 31 |
+
|
| 32 |
+
- Paul K. Romano, Nicholas E. Horelik, Bryan R. Herman, Adam G. Nelson, Benoit
|
| 33 |
+
Forget, and Kord Smith, "[OpenMC: A State-of-the-Art Monte Carlo Code for
|
| 34 |
+
Research and Development](https://doi.org/10.1016/j.anucene.2014.07.048),"
|
| 35 |
+
*Ann. Nucl. Energy*, **82**, 90--97 (2015).
|
| 36 |
+
|
| 37 |
+
## Troubleshooting
|
| 38 |
+
|
| 39 |
+
If you run into problems compiling, installing, or running OpenMC, first check
|
| 40 |
+
the [Troubleshooting
|
| 41 |
+
section](https://docs.openmc.org/en/stable/usersguide/troubleshoot.html) in the
|
| 42 |
+
User's Guide. If you are not able to find a solution to your problem there,
|
| 43 |
+
please post to the [discussion forum](https://openmc.discourse.group/).
|
| 44 |
+
|
| 45 |
+
## Reporting Bugs
|
| 46 |
+
|
| 47 |
+
OpenMC is hosted on GitHub and all bugs are reported and tracked through the
|
| 48 |
+
[Issues](https://github.com/openmc-dev/openmc/issues) feature on GitHub.
|
| 49 |
+
However, GitHub Issues should not be used for common troubleshooting purposes.
|
| 50 |
+
If you are having trouble installing the code or getting your model to run
|
| 51 |
+
properly, you should first send a message to the [discussion
|
| 52 |
+
forum](https://openmc.discourse.group/). If it turns out your issue really is a
|
| 53 |
+
bug in the code, an issue will then be created on GitHub. If you want to request
|
| 54 |
+
that a feature be added to the code, you may create an Issue on github.
|
| 55 |
+
|
| 56 |
+
## License
|
| 57 |
+
|
| 58 |
+
OpenMC is distributed under the MIT/X
|
| 59 |
+
[license](https://docs.openmc.org/en/stable/license.html).
|
openmc/source/__init__.py
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# -*- coding: utf-8 -*-
|
| 2 |
+
"""
|
| 3 |
+
openmc Project Package Initialization File
|
| 4 |
+
"""
|
openmc/source/cmake/Modules/FindLIBMESH.cmake
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Finds the libMesh installation using CMake's PkgConfig
|
| 2 |
+
# module and creates a libmesh imported target
|
| 3 |
+
|
| 4 |
+
if(${CMAKE_VERSION} VERSION_LESS 3.12.0)
|
| 5 |
+
message(FATAL_ERROR "OpenMC builds with libMesh support require CMake version 3.12.0 or greater.")
|
| 6 |
+
endif()
|
| 7 |
+
|
| 8 |
+
set(LIBMESH_PC_FILE libmesh)
|
| 9 |
+
|
| 10 |
+
# if the METHOD variable is present, check specifically for
|
| 11 |
+
# the libMesh .pc file for that build type
|
| 12 |
+
if(DEFINED ENV{METHOD})
|
| 13 |
+
set(LIBMESH_PC_FILE libmesh-$ENV{METHOD})
|
| 14 |
+
message(STATUS "Using environment variable METHOD to determine libMesh build: ${LIBMESH_PC_FILE}")
|
| 15 |
+
endif()
|
| 16 |
+
|
| 17 |
+
find_package(PkgConfig REQUIRED)
|
| 18 |
+
|
| 19 |
+
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
|
| 20 |
+
pkg_check_modules(LIBMESH REQUIRED ${LIBMESH_PC_FILE}>=1.7.0 IMPORTED_TARGET)
|
| 21 |
+
pkg_get_variable(LIBMESH_PREFIX ${LIBMESH_PC_FILE} prefix)
|
openmc/source/cmake/Modules/GetVersionFromGit.cmake
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# GetVersionFromGit.cmake
|
| 2 |
+
# Standalone script to retrieve versioning information from Git or .git_archival.txt.
|
| 3 |
+
# Customizable for any project by setting variables before including this file.
|
| 4 |
+
|
| 5 |
+
# Configurable variables:
|
| 6 |
+
# - VERSION_PREFIX: Prefix for version tags (default: "v").
|
| 7 |
+
# - VERSION_SUFFIX: Suffix for version tags (default: "[~+-]([a-zA-Z0-9]+)").
|
| 8 |
+
# - VERSION_REGEX: Regex to extract version (default: "(?[0-9]+\\.[0-9]+\\.[0-9]+)").
|
| 9 |
+
# - ARCHIVAL_FILE: Path to .git_archival.txt (default: "${CMAKE_SOURCE_DIR}/.git_archival.txt").
|
| 10 |
+
# - DESCRIBE_NAME_KEY: Key for describe name in .git_archival.txt (default: "describe-name: ").
|
| 11 |
+
# - COMMIT_HASH_KEY: Key for commit hash in .git_archival.txt (default: "commit: ").
|
| 12 |
+
|
| 13 |
+
# Default Format Example:
|
| 14 |
+
# 1.2.3 v1.2.3 v1.2.3-rc1
|
| 15 |
+
|
| 16 |
+
set(VERSION_PREFIX "v" CACHE STRING "Prefix used in version tags")
|
| 17 |
+
set(VERSION_SUFFIX "[~+-]([a-zA-Z0-9]+)" CACHE STRING "Suffix used in version tags")
|
| 18 |
+
set(VERSION_REGEX "?([0-9]+\\.[0-9]+\\.[0-9]+)" CACHE STRING "Regex for extracting version")
|
| 19 |
+
set(ARCHIVAL_FILE "${CMAKE_SOURCE_DIR}/.git_archival.txt" CACHE STRING "Path to .git_archival.txt")
|
| 20 |
+
set(DESCRIBE_NAME_KEY "describe-name: " CACHE STRING "Key for describe name in .git_archival.txt")
|
| 21 |
+
set(COMMIT_HASH_KEY "commit: " CACHE STRING "Key for commit hash in .git_archival.txt")
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
# Combine prefix and regex
|
| 25 |
+
set(VERSION_REGEX_WITH_PREFIX "^${VERSION_PREFIX}${VERSION_REGEX}")
|
| 26 |
+
|
| 27 |
+
# Find Git
|
| 28 |
+
find_package(Git)
|
| 29 |
+
|
| 30 |
+
# Attempt to retrieve version from Git
|
| 31 |
+
if(EXISTS "${CMAKE_SOURCE_DIR}/.git" AND GIT_FOUND)
|
| 32 |
+
message(STATUS "Using git describe for versioning")
|
| 33 |
+
|
| 34 |
+
# Extract the version string
|
| 35 |
+
execute_process(
|
| 36 |
+
COMMAND git describe --tags --dirty
|
| 37 |
+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
| 38 |
+
OUTPUT_VARIABLE VERSION_STRING
|
| 39 |
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
| 40 |
+
ERROR_QUIET
|
| 41 |
+
)
|
| 42 |
+
|
| 43 |
+
# If no tags are found, set version to 0 and show a warning
|
| 44 |
+
if(VERSION_STRING STREQUAL "")
|
| 45 |
+
set(VERSION_STRING "0.0.0")
|
| 46 |
+
message(WARNING
|
| 47 |
+
"No git tags found. Version set to 0.0.0.\n"
|
| 48 |
+
"Run 'git fetch --tags' to ensure proper versioning.\n"
|
| 49 |
+
"For more information, see OpenMC developer documentation."
|
| 50 |
+
)
|
| 51 |
+
endif()
|
| 52 |
+
|
| 53 |
+
# Extract the commit hash
|
| 54 |
+
execute_process(
|
| 55 |
+
COMMAND git rev-parse HEAD
|
| 56 |
+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
| 57 |
+
OUTPUT_VARIABLE COMMIT_HASH
|
| 58 |
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
| 59 |
+
)
|
| 60 |
+
else()
|
| 61 |
+
message(STATUS "Using archival file for versioning: ${ARCHIVAL_FILE}")
|
| 62 |
+
if(EXISTS "${ARCHIVAL_FILE}")
|
| 63 |
+
file(READ "${ARCHIVAL_FILE}" ARCHIVAL_CONTENT)
|
| 64 |
+
|
| 65 |
+
# Extract the describe-name line
|
| 66 |
+
string(REGEX MATCH "${DESCRIBE_NAME_KEY}([^\\n]+)" VERSION_STRING "${ARCHIVAL_CONTENT}")
|
| 67 |
+
if(VERSION_STRING MATCHES "${DESCRIBE_NAME_KEY}(.*)")
|
| 68 |
+
set(VERSION_STRING "${CMAKE_MATCH_1}")
|
| 69 |
+
else()
|
| 70 |
+
message(FATAL_ERROR "Could not extract version from ${ARCHIVAL_FILE}")
|
| 71 |
+
endif()
|
| 72 |
+
|
| 73 |
+
# Extract the commit hash
|
| 74 |
+
string(REGEX MATCH "${COMMIT_HASH_KEY}([a-f0-9]+)" COMMIT_HASH "${ARCHIVAL_CONTENT}")
|
| 75 |
+
if(COMMIT_HASH MATCHES "${COMMIT_HASH_KEY}([a-f0-9]+)")
|
| 76 |
+
set(COMMIT_HASH "${CMAKE_MATCH_1}")
|
| 77 |
+
else()
|
| 78 |
+
message(FATAL_ERROR "Could not extract commit hash from ${ARCHIVAL_FILE}")
|
| 79 |
+
endif()
|
| 80 |
+
else()
|
| 81 |
+
message(FATAL_ERROR "Neither git describe nor ${ARCHIVAL_FILE} is available for versioning.")
|
| 82 |
+
endif()
|
| 83 |
+
endif()
|
| 84 |
+
|
| 85 |
+
# Ensure version string format
|
| 86 |
+
if(VERSION_STRING MATCHES "${VERSION_REGEX_WITH_PREFIX}")
|
| 87 |
+
set(VERSION_NO_SUFFIX "${CMAKE_MATCH_1}")
|
| 88 |
+
else()
|
| 89 |
+
message(FATAL_ERROR "Invalid version format: Missing base version in ${VERSION_STRING}")
|
| 90 |
+
endif()
|
| 91 |
+
|
| 92 |
+
# Check for development state
|
| 93 |
+
if(VERSION_STRING MATCHES "-([0-9]+)-g([0-9a-f]+)")
|
| 94 |
+
set(DEV_STATE "true")
|
| 95 |
+
set(COMMIT_COUNT "${CMAKE_MATCH_1}")
|
| 96 |
+
string(REGEX REPLACE "-([0-9]+)-g([0-9a-f]+)" "" VERSION_WITHOUT_META "${VERSION_STRING}")
|
| 97 |
+
else()
|
| 98 |
+
set(DEV_STATE "false")
|
| 99 |
+
set(VERSION_WITHOUT_META "${VERSION_STRING}")
|
| 100 |
+
endif()
|
| 101 |
+
|
| 102 |
+
# Split and set version components
|
| 103 |
+
string(REPLACE "." ";" VERSION_LIST "${VERSION_NO_SUFFIX}")
|
| 104 |
+
list(GET VERSION_LIST 0 VERSION_MAJOR)
|
| 105 |
+
list(GET VERSION_LIST 1 VERSION_MINOR)
|
| 106 |
+
list(GET VERSION_LIST 2 VERSION_PATCH)
|
| 107 |
+
|
| 108 |
+
# Increment patch number for dev versions
|
| 109 |
+
if(DEV_STATE)
|
| 110 |
+
math(EXPR VERSION_PATCH "${VERSION_PATCH} + 1")
|
| 111 |
+
endif()
|
| 112 |
+
|
| 113 |
+
# Export variables
|
| 114 |
+
set(OPENMC_VERSION_MAJOR "${VERSION_MAJOR}")
|
| 115 |
+
set(OPENMC_VERSION_MINOR "${VERSION_MINOR}")
|
| 116 |
+
set(OPENMC_VERSION_PATCH "${VERSION_PATCH}")
|
| 117 |
+
set(OPENMC_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
| 118 |
+
set(OPENMC_COMMIT_HASH "${COMMIT_HASH}")
|
| 119 |
+
set(OPENMC_DEV_STATE "${DEV_STATE}")
|
| 120 |
+
set(OPENMC_COMMIT_COUNT "${COMMIT_COUNT}")
|
openmc/source/cmake/OpenMCConfig.cmake.in
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
get_filename_component(OpenMC_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
|
| 2 |
+
|
| 3 |
+
# Compute the install prefix from this file's location
|
| 4 |
+
get_filename_component(_OPENMC_PREFIX "${OpenMC_CMAKE_DIR}/../../.." ABSOLUTE)
|
| 5 |
+
|
| 6 |
+
find_package(fmt CONFIG REQUIRED HINTS ${_OPENMC_PREFIX})
|
| 7 |
+
find_package(pugixml CONFIG REQUIRED HINTS ${_OPENMC_PREFIX})
|
| 8 |
+
find_package(xtl CONFIG REQUIRED HINTS ${_OPENMC_PREFIX})
|
| 9 |
+
find_package(xtensor CONFIG REQUIRED HINTS ${_OPENMC_PREFIX})
|
| 10 |
+
if(@OPENMC_USE_DAGMC@)
|
| 11 |
+
find_package(DAGMC REQUIRED HINTS @DAGMC_DIR@)
|
| 12 |
+
endif()
|
| 13 |
+
|
| 14 |
+
if(@OPENMC_USE_LIBMESH@)
|
| 15 |
+
include(FindPkgConfig)
|
| 16 |
+
list(APPEND CMAKE_PREFIX_PATH @LIBMESH_PREFIX@)
|
| 17 |
+
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH True)
|
| 18 |
+
pkg_check_modules(LIBMESH REQUIRED @LIBMESH_PC_FILE@>=1.7.0 IMPORTED_TARGET)
|
| 19 |
+
endif()
|
| 20 |
+
|
| 21 |
+
find_package(PNG)
|
| 22 |
+
|
| 23 |
+
if(NOT TARGET OpenMC::libopenmc)
|
| 24 |
+
include("${OpenMC_CMAKE_DIR}/OpenMCTargets.cmake")
|
| 25 |
+
endif()
|
| 26 |
+
|
| 27 |
+
if(@OPENMC_USE_MPI@)
|
| 28 |
+
find_package(MPI REQUIRED)
|
| 29 |
+
endif()
|
| 30 |
+
|
| 31 |
+
if(@OPENMC_USE_OPENMP@)
|
| 32 |
+
find_package(OpenMP REQUIRED)
|
| 33 |
+
endif()
|
| 34 |
+
|
| 35 |
+
if(@OPENMC_USE_UWUW@ AND NOT ${DAGMC_BUILD_UWUW})
|
| 36 |
+
message(FATAL_ERROR "UWUW is enabled in OpenMC but the DAGMC installation discovered was not configured with UWUW.")
|
| 37 |
+
endif()
|
openmc/source/cmake/OpenMCConfigVersion.cmake.in
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
set(PACKAGE_VERSION "@OPENMC_VERSION@")
|
| 2 |
+
|
| 3 |
+
# Check whether the requested PACKAGE_FIND_VERSION is compatible
|
| 4 |
+
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
|
| 5 |
+
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
| 6 |
+
else()
|
| 7 |
+
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
| 8 |
+
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
|
| 9 |
+
set(PACKAGE_VERSION_EXACT TRUE)
|
| 10 |
+
endif()
|
| 11 |
+
endif()
|
openmc/source/docs/Makefile
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Makefile for Sphinx documentation
|
| 2 |
+
#
|
| 3 |
+
|
| 4 |
+
# You can set these variables from the command line.
|
| 5 |
+
SPHINXOPTS =
|
| 6 |
+
SPHINXBUILD = sphinx-build
|
| 7 |
+
PAPER =
|
| 8 |
+
BUILDDIR = build
|
| 9 |
+
IMAGEDIR = source/_images
|
| 10 |
+
|
| 11 |
+
# Internal variables.
|
| 12 |
+
PAPEROPT_a4 = -D latex_paper_size=a4
|
| 13 |
+
PAPEROPT_letter = -D latex_paper_size=letter
|
| 14 |
+
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
|
| 15 |
+
|
| 16 |
+
# Tikz to PNG conversion
|
| 17 |
+
PNGS = $(patsubst %.tex,%.png,$(wildcard $(IMAGEDIR)/*.tex))
|
| 18 |
+
|
| 19 |
+
.PHONY: help images clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
|
| 20 |
+
|
| 21 |
+
help:
|
| 22 |
+
@echo "Please use \`make <target>' where <target> is one of"
|
| 23 |
+
@echo " html to make standalone HTML files"
|
| 24 |
+
@echo " dirhtml to make HTML files named index.html in directories"
|
| 25 |
+
@echo " singlehtml to make a single large HTML file"
|
| 26 |
+
@echo " pickle to make pickle files"
|
| 27 |
+
@echo " json to make JSON files"
|
| 28 |
+
@echo " htmlhelp to make HTML files and a HTML help project"
|
| 29 |
+
@echo " qthelp to make HTML files and a qthelp project"
|
| 30 |
+
@echo " devhelp to make HTML files and a Devhelp project"
|
| 31 |
+
@echo " epub to make an epub"
|
| 32 |
+
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
| 33 |
+
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
| 34 |
+
@echo " text to make text files"
|
| 35 |
+
@echo " man to make manual pages"
|
| 36 |
+
@echo " changes to make an overview of all changed/added/deprecated items"
|
| 37 |
+
@echo " linkcheck to check all external links for integrity"
|
| 38 |
+
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
| 39 |
+
|
| 40 |
+
%.png: %.tex
|
| 41 |
+
pdflatex --interaction=nonstopmode --output-directory=$(IMAGEDIR) $<
|
| 42 |
+
pdftoppm -r 120 -singlefile $(patsubst %.tex,%.pdf, $<) $(basename $<)
|
| 43 |
+
convert -trim -fuzz 2% -transparent white $(patsubst %.tex,%.ppm,$<) $@
|
| 44 |
+
|
| 45 |
+
clean:
|
| 46 |
+
-rm -rf $(BUILDDIR)/*
|
| 47 |
+
-rm -rf source/pythonapi/generated/
|
| 48 |
+
|
| 49 |
+
html:
|
| 50 |
+
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
| 51 |
+
sed -i -e 's/div.body/div.content/' $(BUILDDIR)/html/_static/basic.css
|
| 52 |
+
@echo
|
| 53 |
+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
| 54 |
+
|
| 55 |
+
dirhtml:
|
| 56 |
+
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
| 57 |
+
@echo
|
| 58 |
+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
| 59 |
+
|
| 60 |
+
singlehtml:
|
| 61 |
+
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
| 62 |
+
@echo
|
| 63 |
+
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
| 64 |
+
|
| 65 |
+
pickle:
|
| 66 |
+
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
| 67 |
+
@echo
|
| 68 |
+
@echo "Build finished; now you can process the pickle files."
|
| 69 |
+
|
| 70 |
+
json:
|
| 71 |
+
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
| 72 |
+
@echo
|
| 73 |
+
@echo "Build finished; now you can process the JSON files."
|
| 74 |
+
|
| 75 |
+
htmlhelp:
|
| 76 |
+
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
| 77 |
+
@echo
|
| 78 |
+
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
| 79 |
+
".hhp project file in $(BUILDDIR)/htmlhelp."
|
| 80 |
+
|
| 81 |
+
qthelp:
|
| 82 |
+
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
| 83 |
+
@echo
|
| 84 |
+
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
| 85 |
+
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
| 86 |
+
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pyne.qhcp"
|
| 87 |
+
@echo "To view the help file:"
|
| 88 |
+
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pyne.qhc"
|
| 89 |
+
|
| 90 |
+
devhelp:
|
| 91 |
+
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
| 92 |
+
@echo
|
| 93 |
+
@echo "Build finished."
|
| 94 |
+
@echo "To view the help file:"
|
| 95 |
+
@echo "# mkdir -p $$HOME/.local/share/devhelp/pyne"
|
| 96 |
+
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/pyne"
|
| 97 |
+
@echo "# devhelp"
|
| 98 |
+
|
| 99 |
+
epub:
|
| 100 |
+
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
| 101 |
+
@echo
|
| 102 |
+
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
| 103 |
+
|
| 104 |
+
latex: images
|
| 105 |
+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
| 106 |
+
@echo
|
| 107 |
+
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
| 108 |
+
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
| 109 |
+
"(use \`make latexpdf' here to do that automatically)."
|
| 110 |
+
|
| 111 |
+
latexpdf: images
|
| 112 |
+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
| 113 |
+
@echo "Running LaTeX files through pdflatex..."
|
| 114 |
+
make -C $(BUILDDIR)/latex all-pdf
|
| 115 |
+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
| 116 |
+
|
| 117 |
+
text:
|
| 118 |
+
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
| 119 |
+
@echo
|
| 120 |
+
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
| 121 |
+
|
| 122 |
+
man:
|
| 123 |
+
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
| 124 |
+
@echo
|
| 125 |
+
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
| 126 |
+
|
| 127 |
+
changes:
|
| 128 |
+
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
| 129 |
+
@echo
|
| 130 |
+
@echo "The overview file is in $(BUILDDIR)/changes."
|
| 131 |
+
|
| 132 |
+
linkcheck:
|
| 133 |
+
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
| 134 |
+
@echo
|
| 135 |
+
@echo "Link check complete; look for any errors in the above output " \
|
| 136 |
+
"or in $(BUILDDIR)/linkcheck/output.txt."
|
| 137 |
+
|
| 138 |
+
doctest:
|
| 139 |
+
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
| 140 |
+
@echo "Testing of doctests in the sources finished, look at the " \
|
| 141 |
+
"results in $(BUILDDIR)/doctest/output.txt."
|
openmc/source/docs/diagrams/cross_sections.dia
ADDED
|
Binary file (2.39 kB). View file
|
|
|
openmc/source/docs/diagrams/overview.dia
ADDED
|
Binary file (2.64 kB). View file
|
|
|
openmc/source/docs/source/_images/2x2_fsrs.jpeg
ADDED
|
Git LFS Details
|
openmc/source/docs/source/_images/2x2_materials.jpeg
ADDED
|
openmc/source/docs/source/_images/2x2_sr_mesh.png
ADDED
|
Git LFS Details
|
openmc/source/docs/source/_images/3dba.png
ADDED
|
openmc/source/docs/source/_images/3dcore.png
ADDED
|
Git LFS Details
|
openmc/source/docs/source/_images/3dgeomplot.png
ADDED
|
openmc/source/docs/source/_images/Tracks.png
ADDED
|
openmc/source/docs/source/_images/atr.png
ADDED
|
Git LFS Details
|
openmc/source/docs/source/_images/cmfd_flow.png
ADDED
|
openmc/source/docs/source/_images/cmfd_flow.tex
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
\documentclass{standalone}
|
| 2 |
+
\usepackage[utf8]{inputenc}
|
| 3 |
+
\usepackage{amsmath}
|
| 4 |
+
\usepackage{tikz}
|
| 5 |
+
\usepackage{pgfplots}
|
| 6 |
+
\pgfplotsset{compat=1.11}
|
| 7 |
+
\usetikzlibrary{shapes,snakes,shadows,arrows,calc,decorations.markings,patterns,fit,matrix,spy}
|
| 8 |
+
\pagestyle{empty}
|
| 9 |
+
\begin{document}
|
| 10 |
+
\begin{tikzpicture}
|
| 11 |
+
\matrix[every node/.style={draw, thick, minimum width=3cm, minimum height=1cm, align=center}, column sep=2cm, row sep=1cm] (m) {
|
| 12 |
+
\node[draw, fill=red!40] (start) {Batch $i$ \\ tally NDA}; & \\
|
| 13 |
+
\node[draw, diamond, aspect=2, fill=green!40] (cmfd) {Run NDA?}; & \node[draw, fill=red!40] (end) {Batch $i + 1$ \\ tally NDA}; \\
|
| 14 |
+
\node[draw, fill=blue!40] (xs) {Calculate XS \& DC}; & \node[draw, fill=blue!40] (modify) {Modify MC Source}; \\
|
| 15 |
+
\node[draw, fill=blue!40] (nonlinear) {Calculate Equivalence}; & \node[draw, fill=blue!40] (eqs) {Solve NDA eqs.};\\
|
| 16 |
+
};
|
| 17 |
+
|
| 18 |
+
\begin{scope}[every path/.style={->,very thick,draw}]
|
| 19 |
+
\draw (start.south) -- (cmfd.north);
|
| 20 |
+
\draw (cmfd.east) -- node[above] {no} (end.west);
|
| 21 |
+
\draw (cmfd.south) -- node[right] {yes} (xs.north);
|
| 22 |
+
\draw (xs.south) -- (nonlinear.north);
|
| 23 |
+
\draw (nonlinear.east) -- (eqs.west);
|
| 24 |
+
\draw (eqs.north) -- (modify.south);
|
| 25 |
+
\draw (modify.north) -- (end.south);
|
| 26 |
+
\end{scope}
|
| 27 |
+
|
| 28 |
+
\end{tikzpicture}
|
| 29 |
+
\end{document}
|
openmc/source/docs/source/_images/cosine-dist.png
ADDED
|
openmc/source/docs/source/_images/fluxplot.png
ADDED
|
openmc/source/docs/source/_images/fork.png
ADDED
|
openmc/source/docs/source/_images/halfspace.svg
ADDED
|
|
openmc/source/docs/source/_images/hex_lat.svg
ADDED
|
|
openmc/source/docs/source/_images/hexlat_anim.gif
ADDED
|
Git LFS Details
|
openmc/source/docs/source/_images/loss.png
ADDED
|
openmc/source/docs/source/_images/master-slave.png
ADDED
|
openmc/source/docs/source/_images/meshfig.png
ADDED
|