To everyone interested,
In our lab[*] we have a project to implement neutron optics in OpenMC, in order to be able to model neutron scattering instruments in the code. There are open source codes to model these instruments (namely: McStas[1], VITESS[2] or RESTRAX[3]) but they are ray tracing codes and not neutron transport Monte Carlo codes. This gives an “ideal” representation of the instrument, by modelling the interaction of neutrons with discrete components (monochromators, neutron guides, slits, detectors) but this leaves out effects that contribute to the background of the instrument (scattering in air, interaction with structural components, incoherent scattering in materials) and the details of the source (fission in the reactor, moderation and thermalization). This usually means that instruments are modeled by coupling MCNP with one of these neutron optics codes.
On the other hand, neutron transport Monte Carlo codes usually neglect the effects of neutron optics: you cannot model single crystals, oriented materials, monochromators or neutron guides. There has been some recent work to incorporate some of these capabilities into MCNPX [4] to model coherent effects in moderators, but it would be much better to have an open source tool to do it.
So far, we have a simple implementation of neutron mirrors and monochromators as a proof of concept and the results are promising. The idea is to continue with the implementation of crystalline materials and tools that could be useful for instrument modeling (curved mesh tallies, reading and writing surface sources)
If anyone wants to contribute to the development, we are open to collaboration.
Regards,
Ignacio
[*] Nuclear Data Group - Neutron Physics Department, Centro Atomico Bariloche, Argentina
[1] http://www.mcstas.org/
[2] http://www.helmholtz-berlin.de/forschung/oe/em/transport-phenomena/neutronmethods/vitess/index_en.html
[3] http://neutron.ujf.cas.cz/restrax/
[4] https://doi.org/10.1016/j.nima.2015.12.053