Yonderdrake

Alpha software: Yonderdrake has been broadly tested, but bugs and missing features may remain. Please report them as issues.

Yonderdrake adds fractional time derivatives, fading-memory operators, and nonlocal spatial operators to UFL forms solved with Firedrake. You write an ordinary residual with a marker in it. Yonderdrake does the rest. Equations containing both a nonlocal time operator and a nonlocal space operator are supported as well.

F = (fd.inner(CaputoDerivative(u, 0.6), v) + fd.inner(u, v)) * fd.dx
stepper = TimeMemoryStepper(F, BirkSong(48), t, dt, u)
stepper.advance()

What it supports

  • Caputo and initialized Riemann-Liouville time derivatives with full-history stepping, direct convolution quadrature or static memory with \(O(m)\) storage.

  • Single-exponential memory, including a labelled Caputo-Fabrizio operator.

  • Spectral (Dirichlet or Neumann), zero-exterior Riesz, and periodic Fourier fractional Laplacians, each with its corresponding boundary or exterior realization. The Riesz operator supports CG1 and CG2 on triangular 2D and tetrahedral 3D meshes.

  • Direct 2D and 3D Caputo-Wismer wave support for power-law attenuation, with heterogeneous density, volume and boundary sources, impedance boundaries, PML, user-defined sensor arrays, exact adjoints, time reversal, and regularized inverse reconstruction.

  • Variable steps, MPI, PETSc options, and checkpoint/restart.

  • Spatial fractional operators combined with Irksome for classical time integration.

Start here

Guides and examples

Each guide covers one capability and links to a runnable example.

Mathematics and methods