4.5.5 pde.solvers.explicit module

Defines an explicit solver supporting various methods.

ExplicitSolver

Various explicit PDE solvers.

EulerSolver

Explicit Euler solver.

RungeKuttaSolver

Explicit Runge-Kutta PDE solver of order 5(4).

class EulerSolver(pde, *, backend='auto', adaptive=False, tolerance=0.0001)[source]

Bases: AdaptiveSolverBase

Explicit Euler solver.

Parameters:
  • pde (PDEBase) – The partial differential equation that should be solved

  • backend (str) – The backend used for numerical operations

  • adaptive (bool) – Whether to use adaptive time stepping

  • tolerance (float) – Error tolerance for adaptive time stepping

name = 'euler'
class ExplicitSolver(pde, scheme='euler', **kwargs)[source]

Bases: AdaptiveSolverBase

Various explicit PDE solvers.

Parameters:
  • pde (PDEBase) – The partial differential equation that should be solved

  • backend (str) – The backend used for numerical operations

  • adaptive (bool) – Whether to use adaptive time stepping

  • tolerance (float) – Error tolerance for adaptive time stepping

  • scheme (Literal['euler', 'runge-kutta', 'rk', 'rk45'])

name = 'explicit'
class RungeKuttaSolver(pde, *, backend='auto', adaptive=False, tolerance=0.0001)[source]

Bases: AdaptiveSolverBase

Explicit Runge-Kutta PDE solver of order 5(4).

Parameters:
  • pde (PDEBase) – The partial differential equation that should be solved

  • backend (str) – The backend used for numerical operations

  • adaptive (bool) – Whether to use adaptive time stepping

  • tolerance (float) – Error tolerance for adaptive time stepping

name = 'runge-kutta'