Base MPCs#
MPC#
Multi process coupler base class.
A multi process coupler is a PK (process kernel) which coordinates and couples several PKs. Each of these coordinated PKs may be MPCs themselves, or physical PKs. Note this does NOT provide a full implementation of PK – it does not supply the AdvanceStep() method. Therefore this class cannot be instantiated, but must be inherited by derived classes which finish supplying the functionality. Instead, this provides the data structures and methods (which may be overridden by derived classes) for managing multiple PKs.
Most of these methods simply loop through the coordinated PKs, calling their respective methods.
mpc-spec
“PKs order”
[Array(string)]
Provide a specific order to the sub-PKs; most methods loop over all sub-PKs, and will call the sub-PK method in this order.
INCLUDES:
[pk-spec]
Is a PK_.
WeakMPC#
Multi process coupler for sequential coupling.
Noniterative sequential coupling simply calls each PK’s AdvanceStep() method in order.
StrongMPC#
Multi process coupler for globally implicit (strong) coupling.
Globally implicit coupling solves all sub-PKs as a single system of equations. This can be completely automated when all PKs are also `PK: BDF`_ PKs, using a block-diagonal preconditioner where each diagonal block is provided by its own sub-PK.