pub enum Schedule {
OneWay,
Staggered,
Iterative {
max_iter: u32,
tol: f64,
},
Multirate,
}Expand description
How the domains are interleaved.
Variants§
OneWay
One pass in declared order, no feedback expected. Unconditionally stable; the only schedule whose domains could safely run concurrently.
Staggered
One pass in declared order, with each domain seeing the previous ones’ output from this step and the later ones’ from the last. Cheap, and stable only while the coupling is weak.
Iterative
Repeat the pass until every domain’s residual is under tol, or fail.
The cost is max_iter passes; the benefit is stability where a staggered
scheme diverges no matter how small the step. Failing to converge is
reported as a Violation rather than accepted, because an unconverged
coupling that is allowed through is the most expensive kind of wrong
answer: it looks like physics.
Fields
Multirate
As Schedule::Staggered, but each evolving domain takes as many equal
substeps as its own stability limit needs.