-
Notifications
You must be signed in to change notification settings - Fork 33
Description
Volumetric Post-Processor (VPP) Specification
The Volumetric Post-Processor (VPP) computes scalar-flux-based volumetric quantities over a user-defined spatial subset of cells. The spatial subset is defined by an optional set of material IDs and an optional list of logical volumes; if both are provided, a cell is included only if its material ID matches and it belongs to at least one of the specified logical volumes. The VPP applies an optional multiplier (constant or multigroup response, including cross sections used by the solver or external response cross sections such as energy deposition or DPA) and then produces one or more spatial reductions (volume integral, volume average, min, max). By default, results are summed over all energy groups, with options to return per-group results or user-defined group-set (macro-group) collapsed results.
- Provide a consistent, minimal, and extensible mechanism to compute volumetric QoIs from scalar flux.
- Clearly separate volumetric post-processing from surface/current-based post-processing.
- Support both solver cross sections and non-solver response functions.
Scope
- Scalar flux input only:
$\phi_{i,g}$ per dof and energy group. - Spatial filtering by material IDs and logical volumes.
- Energy aggregation modes.
- Multiplier/response applied to scalar flux.
- Global reductions over the selected cells.
Definitions
Let:
-
$c$ be a cell,$g\in{1,\dots,G}$ an energy group. -
$V_c$ the cell volume. -
$\phi_{i,g}$ the scalar flux in cell$c$ , group$g$ .$i \in DOF(c)$ -
$R_{c,g}$ the multiplier/response value for cell$c$ , group$g$ . -
$S$ the selected set of cells after spatial filtering.
Per-cell quantity:
$
q_{c,g} = R_{c,g} \sum_{i\in DOF(c)} w_i\phi_{i,g}
$
Spatial filter specification
User inputs
material_ids(optional list of integers)logical_volumes(optional list of strings)
Inclusion rule
A cell
-
material_idsis not provided ormaterial(c) ∈ material_ids,
AND -
logical_volumesis not provided or$c$ belongs to at least one listed logical volume.
Energy handling
Default
energy.mode = all_groups
Return results summed over all groups.
Supported modes
-
all_groups$ Q = \sum_{g=1}^G Q_g $
-
per_group
Return$Q_g$ for all$g$ . -
group_sets
User provides named group sets$\mathcal{G}_k$ :$ Q_k = \sum_{g\in \mathcal{G}_k} Q_g $
Multiplier / response
Supported types (v1)
-
none
$R_{c,g}=1$ -
constant
$R_{c,g}=c$ -
group_vector
$R_{c,g}=R_g$ -
xs
$R_{c,g} = \text{XS}[material(c), g]$
XS sources
- Solver-available XS (examples):
sigma_t,sigma_a,sigma_f, etc. - Response-only XS (examples):
kappa_sigma_f,edep,dpa,charge_dep, etc.
Material dependence rule
If the multiplier is material-dependent, it is evaluated using each selected cell’s material ID:
Spatial reductions (outputs)
VPP must support requesting one or more of:
-
Volume integral
$ Q_g^{int} = \sum_{c\in S} q_{c,g},V_c $
-
Volume average
$ Q_g^{avg} = \frac{\sum_{c\in S} q_{c,g},V_c}{\sum_{c\in S} V_c} $
-
Min (cell-wise)
$ Q_g^{min} = \min_{c\in S} q_{c,g} $
-
Max (cell-wise)
$ Q_g^{max} = \max_{c\in S} q_{c,g} $
Output shape rules
The final output dimensions are determined by:
- selected reductions × energy mode
Examples:
-
volume_integral + all_groups→ single scalar -
volume_average + per_group→ length$G$ vector -
max + group_sets→ length$K$ vector