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 = (inner(CaputoDerivative(u, 0.6), v) + inner(u, v)) * dx
stepper = FractionalTimeStepper(F, BirkSong(48), t, dt, u)
stepper.advance()

What it supports

  • Caputo and initialized Riemann-Liouville time derivatives.

  • Full-history stepping and static memory with \(O(m)\) storage.

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

  • Dirichlet spectral, 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

After the Quickstart, choose the time-memory workflow or the space-fractional workflow. Each guide links to a runnable example. The Gallery collects larger applications and animations. Refinement, parallel execution, checkpointing, and performance guidance are grouped under Applications and workflow in the sidebar.

Mathematics and methods

The method map is the short overview of the available realizations and their sources. Detailed definitions and numerical guidance live with each operator family. The complete bibliography is in References.

Method map

Operator

Method

What it is

Use

Primary source

Caputo and Riemann-Liouville

Cayley

Diffusive modes, Gauss-Jacobi after a Cayley map of selectable exponent

Default time memory

Generalizes Diethelm (2008) and Birk and Song (2010)

Jacobi

Diffusive modes with independent low-rate and high-rate map exponents

Expert option for measured asymmetric rate ranges

Diethelm (2023)

SumOfExponentials

Tolerance-driven positive exponential sum on a declared time interval

Supported alternative

Jiang et al. (2017)

Diethelm2022

Truncated log-rate quadrature

Comparison only

Diethelm (2022), (2023)

YuanAgrawal

Original Gauss-Laguerre rule

Comparison only

Yuan and Agrawal (2002)

SineDiffusive

Generalized Gauss-Laguerre quadrature of undamped sine modes

Comparison only

Khosravian-Arab and Dehghan (2024)

LubichCQ

Uniform-grid BDF1 or BDF2 convolution quadrature with starting corrections

Direct first- or second-order method

Lubich (1986), (1988, Part I), (1988, Part II)

FastObliviousCQ

BDF1 CQ with dyadic Talbot-contour history

Long uniform-grid histories

Schädle, López-Fernández, and Lubich (2006)

AlikhanovL21Sigma

Uniform-grid quadratic formula at \(t_{n+\sigma}\)

Direct second-order method

Alikhanov (2015)

FullHistory

Variable-step L1 history integral

Reference method

Lin and Xu (2007)

Exponential memory

ExponentialMemory

One-timescale exponential convolution

Direct fading-memory operator

Standard one-state realization

Spectral fractional Laplacian

SpectralFractionalLaplacian

Power of the homogeneous-Dirichlet or natural-Neumann Laplacian

Spectral realization

Bonito and Pasciak (2015)

Riesz fractional Laplacian

RieszFractionalLaplacian

Whole-space integral on the zero extension

Integral realization

Acosta and Borthagaray (2017)

Periodic fractional Laplacian

PeriodicFractionalLaplacian

Fourier multiplier on a uniform periodic cell

Periodic realization

Standard Fourier-series multiplier

Convenience constructors

Published members of the families above. Each is the general class at a fixed setting and behaves identically to it.

Constructor

Equivalent to

Use

Primary source

BirkSong(n)

Cayley(n, power=4)

Default representation

Birk and Song (2010)

Diethelm2008(n)

Cayley(n, power=2)

Narrow rate spans

Diethelm (2008)

CaputoFabrizioOperator

Rescaled ExponentialMemory

Labelled Caputo-Fabrizio interface

Caputo and Fabrizio (2015), with the classification in Ortigueira and Machado (2018)