Condensed Schur source stageΒΆ

Condensed Schur stages are ready-made time macros. They belong in pops.lib.time, not in the core pops.time language.

from pops.lib.time import condensed_schur
from pops.time import Program
from pops.solvers.krylov import GMRES

program = Program("condensed_schur")
condensed_schur(
    program,
    block="plasma",
    alpha=1.0,
    method=GMRES(),
    tol=1.0e-10,
    max_iter=200,
)

The macro expands to pops.time.Program nodes. Solver and preconditioner choices are typed descriptors and lower to compiled C++ routes.

Use inspection to check the expansion:

compiled = pops.compile(case.time(program))
compiled.dump_ir()