4.4.3. pde.solvers.explicit module¶
Defines an explicit solver supporting various methods
- class ExplicitSolver(pde: PDEBase, scheme: str = 'euler', backend: str = 'auto', adaptive: bool = False, tolerance: float = 0.0001)[source]¶
Bases:
pde.solvers.base.SolverBase
class for solving partial differential equations explicitly
- Parameters
pde (
PDEBase
) – The instance describing the pde that needs to be solvedscheme (str) – Defines the explicit scheme to use. Supported values are ‘euler’ and ‘runge-kutta’ (or ‘rk’ for short).
backend (str) – Determines how the function is created. Accepted values are ‘numpy` and ‘numba’. Alternatively, ‘auto’ lets the code decide for the most optimal backend.
adaptive (bool) – When enabled, the time step is adjusted during the simulation using the error tolerance set with tolerance.
tolerance (float) – The error tolerance used in adaptive time stepping. This is used in adaptive time stepping to choose a time step which is small enough so the truncation error of a single step is below tolerance.
- dt_max = 10000000000.0¶
- dt_min = 1e-10¶
- make_stepper(state: FieldBase, dt=None) Callable[[FieldBase, float, float], float] [source]¶
return a stepper function using an explicit scheme
- Parameters
- Returns
Function that can be called to advance the state from time t_start to time t_end. The function call signature is (state: numpy.ndarray, t_start: float, t_end: float)
- name = 'explicit'¶