evoxels.timesteppers

Classes

ForwardEuler(problem, dt)

First order Euler forward scheme.

PseudoSpectralIMEX(problem, dt)

First‐order IMEX Fourier pseudo‐spectral scheme

PseudoSpectralIMEX_dfx(*args, **kwargs)

Re-implementation of pseudo_spectral_IMEX as diffrax class

TimeStepper()

Abstract interface for single‐step timestepping schemes.

class evoxels.timesteppers.ForwardEuler(problem: ODE, dt: float)

First order Euler forward scheme.

__init__(problem: ODE, dt: float) None
dt: float
property order: int

Temporal order of accuracy.

problem: ODE
step(t: float, u: Any) Any

Take one timestep from t to (t+dt).

Parameters:
  • t – Current time

  • u – Current state

Returns:

Updated state at t + dt.

class evoxels.timesteppers.PseudoSpectralIMEX(problem: SemiLinearODE, dt: float)

First‐order IMEX Fourier pseudo‐spectral scheme

aka semi-implicit Fourier spectral method; see [Zhu and Chen 1999, doi:10.1103/PhysRevE.60.3564] for more details.

__init__(problem: SemiLinearODE, dt: float) None
dt: float
property order: int

Temporal order of accuracy.

problem: SemiLinearODE
step(t: float, u: Any) Any

Take one timestep from t to (t+dt).

Parameters:
  • t – Current time

  • u – Current state

Returns:

Updated state at t + dt.

class evoxels.timesteppers.PseudoSpectralIMEX_dfx(*args: Any, **kwargs: Any)

Re-implementation of pseudo_spectral_IMEX as diffrax class

This is used for the inversion models based on jax and diffrax

fourier_symbol: float
func(terms, t0, y0, args)
init(terms, t0, t1, y0, args)
order(terms)
step(terms, t0, t1, y0, args, solver_state, made_jump)
class evoxels.timesteppers.TimeStepper

Abstract interface for single‐step timestepping schemes.

abstract property order: int

Temporal order of accuracy.

abstractmethod step(t: float, u: Any) Any

Take one timestep from t to (t+dt).

Parameters:
  • t – Current time

  • u – Current state

Returns:

Updated state at t + dt.