When DAGMC surfaces are set up on the fly, the functionality to add non-void surface boundary conditions (e.g. reflecting surfaces) is missing. This should be added.
User provide surfaces sets initial Exodus Geometry which should be indentified with BCs
Those surfaces upon which boundary conditions should be applied are specified in the MOOSE input card via DagSurfaceUserObject blocks,
Prior to mesh initialisation, map libmesh surfaces boundaries to DAG surfaces, and for each DAG surface create a meshset
During meshing initialisation:
a. For each element in each material "block":
i. Test if the element participates in a dagmc surface boundary: check each face in turn and query libmesh boundary info, then compare to known DAGMC boundary IDs.
b. For those elements with a face in a DAGMC boundary:
i. First "skin" the tet to obtain their faces (not created by default in MOAB).
ii. Find which tet aligns with the correct libmesh face in the boundary
iii. Having created and obtained the face's MOAB EntityHandle add to the corresponding MOAB Meshset
c. For each material block, having already created all elements, find and save the surface skin.
i. Partition faces into those which do and do not participate in a boundary
ii. Create a surface for each partition. If the partition has a boundary condition, add this to the DAGMC metadata.
When DAGMC surfaces are set up on the fly, the functionality to add non-void surface boundary conditions (e.g. reflecting surfaces) is missing. This should be added.