Skip to content

About

Yonderdrake: nonlocal time and space operators for Firedrake

Topics

Resources

Contributing

Stars

3 stars

Watchers

1 watching

Forks

Repository files navigation

Yonderdrake

Yonderdrake

Fractional in time, space and other nonlocal operators for Firedrake

Tests Documentation PyPI DOI MIT License

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

Yonderdrake adds various fractional time derivatives, fading-memory operators, and spatial fractional Laplacians directly to UFL forms solved with Firedrake. Time- and space-nonlocal operators can also be combined in the same equation.

The eventual goal is to gather all FEM-compatible methods for fractional differential equations in one place, so that comparing or switching between them does not mean rebuilding the problem each time.

Features

  • 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.

Examples

The demo scripts live in this repository rather than the installed package, so clone it to run them yourself.

Fractional time

Three sources in a BrainWeb anatomical head with material-dependent Caputo-Wismer damping:

Three sources in a BrainWeb anatomical head with fractional damping

Recovering a vessel-shaped initial pressure from measurements around a realistic head. The first two panels compare the true source with its reconstruction. The third shows the pressure recorded by the sensor array:

Vessel-shaped source, reconstructed pressure, and exterior sensor measurements in a BrainWeb head

Fractional space

Classical, spectral-fractional, and Riesz heat flow on a Koch snowflake:

Classical, spectral-fractional, and Riesz heat flow on a Koch snowflake

See the guides and examples for small, reproducible problems and the demo gallery for the full applications.

Installation

Create a Firedrake environment, then install into it:

python -m pip install yonderdrake

Add the plotting dependencies to run the gallery demos or regenerate their media:

python -m pip install 'yonderdrake[visual]'

Firedrake supplies MPI and PETSc. See supported platforms.

Documentation

Start with the quickstart, then the guides and examples. The mathematics and methods summarize the supported algorithms and the papers behind them. The API reference gives exact signatures and restrictions.

Contributing

See CONTRIBUTING.md for what a numerical change should include. LLM-assisted contributions are welcome in principle and are held to the same standards as all others. The human author remains responsible for the code they submit.

Logo

The logo nods to the long memory of time-fractional operators: a fractional derivative still feels the entire history that preceded it. The logo dragon is inspired by the Lindwurmbrunnen in Klagenfurt, Austria, drawn in a viridis-like colour scheme.

About

Yonderdrake: nonlocal time and space operators for Firedrake

Topics

Resources

Contributing

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages