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.