Diagram showing the connectivity of software packages that make up the Fusion Neutronics Workflow. Software that the user interacts with directly are shown in blue.
This repository contains a containerized neutronics workflow for carrying out standard neutronics simulations in a repeatable manner.
There are workflows for producing standard neutronics simulations such as dose maps, DPA tallies, neutron/photon spectra, 3D VTK visualizations and the aim is to provide working examples for mainstream fusion neutronics analysis. Contributions are welcome.
This repository combines the several packages to create neutronics workflow that is:
The Dockerfile can build locally or a prebuilt one can be downloaded with
docker pull ghcr.io/fusion-energy/fusion-neutronics-workflow
The docker image can then be run with
docker run -it ghcr.io/fusion-energy/fusion-neutronics-workflow
To map a local folder to the docker container a volume mount can be used.
The following example mounts the local folder that the command is being run from with the /home/fusion-neutronics-workflow/examples
that is inside the docker
images
docker run -it -v $PWD:/home/fusion-neutronics-workflow/examples ghcr.io/fusion-energy/fusion-neutronics-workflow
There are additional higher performance docker images available if your CPU supports vectorization instructions available Embree.
Download a prebuilt docker image with Embree and Double Down enabled
docker pull ghcr.io/fusion-energy/fusion-neutronics-workflow:embree
Download a prebuilt docker image with Embree compiled with AVX instruction set and Double Down enabled
docker pull ghcr.io/fusion-energy/fusion-neutronics-workflow:embree-avx
Links to the packages that are utilized by the fusion-neutronics-workflow
Open source projects created and maintained
Paramak - automated production of fusion reactor CAD models (stp and stl files) from parameters.
stl_to_h5m automated conversion of STL files to h5m files compatible with DAGMC enabled particle transport codes.
openmc_dagmc_wrapper allows one to quickly utilise the h5m geometry files in a range of standard OpenMC based neutronics simulations.
neutronics-material-maker Create and customise materials from an internal database or from your own recipe, export to a wide range of neutronics codes.
openmc_tally_unit_converter converts the units of common tally such as heating, DPA, effective dose into user specified units.
openmc_data_downloader performs on the fly downloading of nuclear data needed for OpenMC neutronics simulations.
openmc_data downloading and processing of nuclear data needed for OpenMC neutronics simulations.
openmc-plasma-source Creates a plasma source as an openmc.source object from input parameters that describe the plasma
spectrum_plotter A Python package for creating publication quality plots for neutron / photon / particle spectrum
openmc_mesh_tally_to_vtk A Python package for converting OpenMC mesh tallies to VTK files and optionally converting the units
regular_mesh_plotter A Python package for plotting regular mesh tally results from neutronics simulations.
dagmc_geometry_slice_plotter A minimal Python package that produces slice plots through h5m DAGMC geometry files
dagmc_bounding_box Finds the bounding box and related properties of a DAGMC geometry
remove_dagmc_tags A python package and command line tool for removing DAGMC tags such as graveyard and vacuum
dagmc_h5m_file_inspector Extracts information from DAGMC h5m files including volumes number, material tags
brep_to_h5m Converts Brep CAD geometry files to h5m geometry files compatible with DAGMC simulations
brep_part_finder A Python package to identify the part ID number in Brep format CAD files
Open source projects that are utilized and contributed to
OpenMC The OpenMC project, a Monte Carlo particle transport code based on modern methods.
DAGMC Direct Accelerated Geometry Monte Carlo Toolkit
SphinxCadQuery An extension to visualize CadQuery 3D files in your Sphinx documentation
Open source projects utilized in the software stack
MOAB and pymoab the Mesh-Oriented datABase MOAB is a component for representing and evaluating mesh data.
CadQuery A python parametric CAD scripting framework based on OCCT
Double-Down A double precision interface to Embree via the Mesh Oriented dAtaBase (MOAB).
Embree high-performance ray tracing kernels
Gmsh A three-dimensional finite element mesh generator with built-in pre- and post-processing facilities
Scipy, Numpy, Plotly, Pint and other standard scientific Python packages