Skip to content

volumetric postprocessors #856

@ragusa

Description

@ragusa

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 $c$ is included if:

  • material_ids is not provided or material(c) ∈ material_ids,
    AND
  • logical_volumes is 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:
$R_{c,g} = R_{\text{material}(c),g}$


Spatial reductions (outputs)

VPP must support requesting one or more of:

  1. Volume integral

    $ Q_g^{int} = \sum_{c\in S} q_{c,g},V_c $

  2. Volume average

    $ Q_g^{avg} = \frac{\sum_{c\in S} q_{c,g},V_c}{\sum_{c\in S} V_c} $

  3. Min (cell-wise)

    $ Q_g^{min} = \min_{c\in S} q_{c,g} $

  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions