OpenMC/examples/parameterized_custom_source
2024-06-17 16:00:45 -05:00
..
build_xml.py Add RectangularPrism and HexagonalPrism composite surfaces (#2739) 2023-11-01 09:13:40 -05:00
CMakeLists.txt Implement policy for Python, C++, and CMake versions (#3035) 2024-06-17 16:00:45 -05:00
parameterized_source_ring.cpp Some cosmetic improvements in examples 2022-02-04 07:19:42 -06:00
README.md Rename serialized -> parameterized 2020-08-05 15:53:48 +01:00
show_flux.py Rename serialized -> parameterized 2020-08-05 15:53:48 +01:00

Building a Parameterized Custom Source

To run this example, you first need to compile the custom source library, which requires headers from OpenMC. A CMakeLists.txt file has been set up for you that will search for OpenMC and build the custom library. To build the source library, you can run:

mkdir build && cd build
OPENMC_ROOT=<path_to_openmc_install> cmake ..
make

After this, you can build the model by running python build_xml.py. In the XML files that are created, you should see a reference to build/libparameterized_source.so, the custom source library that was built by CMake, and values in the parameters attribute. The model is also set up with a mesh tally of the flux, so once you run openmc, you will get a statepoint file with the tally results in it. Running python show_flux.py will pull in the results from the statepoint file and display them. If all worked well, you should see a ring "imprint" as well as a higher flux to the right side (since the custom source has all particles moving in the positive x direction).

Once built, you can edit the parameters attribute on the source to change the radius of the sampled ring or the energy of the sampled particles.