compute_resid_fdm_fvs_2d Subroutine

private subroutine compute_resid_fdm_fvs_2d(state)

FDM + flux-vector-splitting residual (Shu-style conservative finite difference). Per direction: split the physical flux at every node (interior + halo) into F^+/F^-, reconstruct F^+ with the LEFT-biased stencil and F^- with the RIGHT-biased (mirror) stencil, sum the two reconstructions at each face, then take the conservative difference.

The stencil offsets are IDENTICAL to the uniform FDS sweeps in compute_resid_2d -- only the operand differs: FDS reconstructs the conserved state (left -> qL, right -> qR); FVS reconstructs the split fluxes (left -> F^+, right -> F^-). Matching offsets is what preserves the high-order accuracy (Task 6.3 convergence gate).

No positivity limiter is applied: FVS reconstructs fluxes, not states, so the face-state Zhang-Shu guard used by the FDS path does not apply here (mirrors the 1D FVS path, which also leaves split fluxes unlimited).

Arguments

Type IntentOptional Attributes Name
type(solver_state_2d_t), intent(inout) :: state