Function opensn::AAH_Sweep_Unified

Function Documentation

inline void opensn::AAH_Sweep_Unified(AAHSweepData &data, AngleSet &angle_set)

Per-cell dispatch sweep kernel (steady-state only).

Unlike Sweep_FixedN<N>, which specializes an entire mesh sweep at compile time and requires every cell to share the same node count N in [2, 8], this kernel picks a solve strategy independently for each cell: SimdBatchSolve<N> (compile-time N) when this cell’s own node count is in [2, 8], else the runtime-N SimdBatchSolveDynamic, with a scalar GaussEliminateDynamic tail for any group-block remainder that doesn’t fill a whole SIMD lane group. This replaces AAH_Sweep_Generic<false> as the fallback used whenever Sweep_FixedN<N>’s whole-mesh restriction doesn’t apply &#8212; meshes with mixed cell topologies, or a uniform N outside [2, 8] &#8212; turning what used to be an all-or-nothing option (one stray cell forces the entire mesh to the fully scalar generic kernel) into a per-cell solve decision.

FLUDS slot indexing invariant: deploc_face_counter/preloc_face_counter must be incremented in exactly the same per-cell, per-face order as AAH_Sweep_Generic/AAH_Sweep_FixedN, since AAH_FLUDS::SlotDynamics allocated FLUDS slots assuming that exact traversal order.