Motivation
Currently, there is no functionality to calculate the flux of a MFEM vector variable through a given boundary surface. This addition will allow users to call a postprocessor to get the total flux value.
Design
A new MFEMPostprocessor can use the MFEM function ProjectBdrCoefficientNormal() to project components of an MFEM vector variable normal to a given boundary into RT FE space. These flux components can then be integrated with VectorFEBoundaryFluxLFIntegrator(), which acts on variables defined in RT space, to give the total flux through the surface. The vector variable can optionally be scaled by a coefficient, which must be either a constant scalar value, a global coefficient or a material coefficient defined on the boundary surface itself. The boundary may be an internal or external mesh surface; where the boundary is internal, at CutTransitionSubmesh should be used to get a suitable boundary surface for the integral evaluation.
Impact
Will create a new MFEMPostprocessor that can be used from the Postprocessors block in the input file.
Motivation
Currently, there is no functionality to calculate the flux of a MFEM vector variable through a given boundary surface. This addition will allow users to call a postprocessor to get the total flux value.
Design
A new MFEMPostprocessor can use the MFEM function ProjectBdrCoefficientNormal() to project components of an MFEM vector variable normal to a given boundary into RT FE space. These flux components can then be integrated with VectorFEBoundaryFluxLFIntegrator(), which acts on variables defined in RT space, to give the total flux through the surface. The vector variable can optionally be scaled by a coefficient, which must be either a constant scalar value, a global coefficient or a material coefficient defined on the boundary surface itself. The boundary may be an internal or external mesh surface; where the boundary is internal, at CutTransitionSubmesh should be used to get a suitable boundary surface for the integral evaluation.
Impact
Will create a new MFEMPostprocessor that can be used from the Postprocessors block in the input file.