4.4.3 pde.solvers.controller module
Defines a class controlling the simulations of PDEs.
- class Controller(solver, t_range, tracker='auto')[source]
Bases:
object
Class controlling a simulation.
The controller calls a solver to advance the simulation into the future and it takes care of trackers that analyze and modify the state periodically. The controller also handles errors in the simulations and the trackers, as well as user-induced interrupts, e.g., by hitting Ctrl-C or Cmd-C to cause a
KeyboardInterrupt
. In case of problems, the Controller writes additional information intodiagnostics
, which can help to diagnose problems.- Parameters:
solver (
SolverBase
) – Solver instance that is used to advance the simulation in timet_range (float or tuple) – Sets the time range for which the simulation is run. If only a single value t_end is given, the time range is assumed to be [0, t_end].
tracker (TrackerCollectionDataType) – Defines trackers that process the state of the simulation at specified times. A tracker is either an instance of
TrackerBase
or a string identifying a tracker (possible identifiers can be obtained by callingget_named_trackers()
). Multiple trackers can be specified as a list. The default value auto checks the state for consistency (tracker ‘consistency’) and displays a progress bar (tracker ‘progress’) whentqdm
is installed. More general trackers are defined intrackers
, where all options are explained in detail. In particular, the time points where the tracker analyzes data can be chosen when creating a tracker object explicitly.
- run(initial_state, dt=None)[source]
Run the simulation.
Diagnostic information about the solver are available in the
diagnostics
property after this function has been called.- Parameters:
initial_state (
FieldBase
) – The initial state of the simulation. This state will be copied and thus not modified by the simulation. Instead, the final state will be returned and trackers can be used to record intermediate states.dt (float) – Time step of the chosen stepping scheme. If None, a default value based on the stepper will be chosen.
- Returns:
The state at the final time point. If multiprocessing is used, only the main node will return the state. All other nodes return None.
- Return type:
TState | None