implementations.controller_classes.controller_nonMPI module¶
- class controller_nonMPI(num_procs, controller_params, description)[source]¶
Bases:
controller
PFASST controller, running serialized version of PFASST in blocks (MG-style)
- default(local_MS_running)[source]¶
Default routine to catch wrong status
- Parameters:
local_MS_running (list) – list of currently running steps
- it_check(local_MS_running)[source]¶
Key routine to check for convergence/termination
- Parameters:
local_MS_running (list) – list of currently running steps
- it_coarse(local_MS_running)[source]¶
Coarse sweep
- Parameters:
local_MS_running (list) – list of currently running steps
- it_down(local_MS_running)[source]¶
Go down the hierarchy from finest to coarsest level
- Parameters:
local_MS_running (list) – list of currently running steps
- it_fine(local_MS_running)[source]¶
Fine sweeps
- Parameters:
local_MS_running (list) – list of currently running steps
- it_up(local_MS_running)[source]¶
Prolong corrections up to finest level (parallel)
- Parameters:
local_MS_running (list) – list of currently running steps
- pfasst(local_MS_active)[source]¶
Main function including the stages of SDC, MLSDC and PFASST (the “controller”)
For the workflow of this controller, check out one of our PFASST talks or the pySDC paper
This method changes self.MS directly by accessing active steps through local_MS_active. Nothing is returned.
- Parameters:
local_MS_active (list) – all active steps
- predict(local_MS_running)[source]¶
Predictor phase
- Parameters:
local_MS_running (list) – list of currently running steps
- recv_full(S, level=None, add_to_stats=False)[source]¶
Function to perform the recv, including bookkeeping and logging
- Parameters:
S – the current step
level – the level number
add_to_stats – a flag to end recording data in the hooks (defaults to False)
- restart_block(active_slots, time, u0)[source]¶
Helper routine to reset/restart block of (active) steps
- Parameters:
active_slots – list of active steps
time – list of new times
u0 – initial value to distribute across the steps
- run(u0, t0, Tend)[source]¶
Main driver for running the serial version of SDC, MSSDC, MLSDC and PFASST (virtual parallelism)
- Parameters:
u0 – initial values
t0 – starting time
Tend – ending time
- Returns:
end values on the finest level stats object containing statistics for each step, each level and each iteration