Open paulromano opened 1 year ago
@pshriwise talked at length through the needs for item 1 above. There are fundamentally two paths to get 1-group micro XS on mesh elements:
Use the MicroXS.from_model(...)
method, which under the hood relies on the mgxs
module. The mgxs
module nominally supports meshes; however, right now it claims only RegularMesh
is supported (not clear why) and furthermore you can't get microscopic cross sections because these require dividing by the average number density of each nuclide, and we simply don't know that for mesh elements (which may cross materials boundaries). Another thing to note here is that in order to get reaction rates, every desired nuclide needs to be present in the material, hence why the MicroXS
class will force nuclides to be added. If we wanted to extend support of mgxs
to allow generation of microscopic cross sections on any mesh, we'd need to:
RegularMesh
to be used, andExtend the MicroXS
class to enable a new option whereby we tally a flux spectrum for each mesh element and then collapse 1-group reaction rates using the existing openmc_nuclide_collapse_rate
. This would also require that we allow nuclides to be tallied that are not present in materials.
Update: A few changes have already been merged/submitted to OpenMC related to this:
I also just opened an issue regarding refactoring of MicroXS
and IndependentOperator
:
Update: we've had one more branch merged in OpenMC:
We talked yesterday at length about how to handle the mesh-based workflow. To summarize:
MicroXS
class needs to be extended to support using a mesh as the domain and getting fluxes and microscopic cross sections on each mesh element. The simplest approach is to have a single flux and set of micros over the whole mesh element, but if we want to get fancy we could try to compute per-material fluxes and micros within a single element. The problem here is that for tallies, we would need a mesh filter and a material filter that covers all possible materials (there's no good way to limit it to only the combinations of materials / mesh elements that appear together).MeshSpatial
class. Further developments are needed here (see #12).
For a mesh-based R2S workflow, I'm envisioning the following steps:
IndependentOperator
, which will provide us activated materials.MeshSpatial
source using the decay photon source in each mesh element.