|
flow 1.3.0
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
|
ctest pcg_breakdown: the breakdown exits of the device-resident single-rank MG-PCG driver (doc/vof_step_performance_design.md §5.6, WO-5 / A6).
More...
#include <cmath>#include <cstdio>#include <cstring>#include <Kokkos_Core.hpp>#include <limits>#include <vector>#include "mac_cutcell_mg.hpp"Go to the source code of this file.
Functions | |
| int | main (int argc, char **argv) |
ctest pcg_breakdown: the breakdown exits of the device-resident single-rank MG-PCG driver (doc/vof_step_performance_design.md §5.6, WO-5 / A6).
A6 keeps the Krylov scalars on the device and reads one packet {pAp, |r|inf, stop} per iteration, so a non-finite r^T z is flagged on the device and only reported by the NEXT iteration's packet (or, after the last iteration, by one read after the loop). The contract is that every exit returns the same iteration count and sets the same failure flag as the host-scalar loop, with x the pre-breakdown iterate. No healthy problem reaches these exits, so the solver's test hook setDebugBreakdown poisons one scalar with a NaN:
A second case needs no poisoning: a round-off constant rhs on the agglomerated bottom, whose own CG broke down on 0/0 (see roundoffBottom).
Definition in file test_pcg_breakdown.cpp.
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
Definition at line 166 of file test_pcg_breakdown.cpp.