Skip to main content

A library for nonlocal time and space operators in Firedrake

Project description

Yonderdrake

Yonderdrake

Fractional in time, space and other nonlocal operators for Firedrake

Tests Documentation 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 fractional-in-time derivatives with various methods including static memory diffusive representations, full-history stepping along with additional implementations from the literature for easy comparisons.
  • General single-timescale exponential memory operators, including a convenience wrapper for the Caputo-Fabrizio operator.
  • Homogeneous-Dirichlet spectral, zero-exterior Riesz, and periodic Fourier fractional Laplacians.
  • 2D and 3D Caputo-Wismer waves with heterogeneous density, driven sources, impedance boundaries, PML, configurable sensor arrays, exact adjoints, time reversal, and regularized reconstruction.
  • Variable timesteps, PETSc solver configuration, MPI execution, and checkpoint/restart.
  • Compatibility with Irksome for classical time stepping alongside Yonderdrake operators.

Examples

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:

git clone https://github.com/TSGut/yonderdrake.git
cd yonderdrake
python -m pip install .

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

python -m pip install '.[visual]'

For development:

python -m pip install -e '.[dev,docs]'

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yonderdrake-0.1.0a1.tar.gz (104.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yonderdrake-0.1.0a1-py3-none-any.whl (125.2 kB view details)

Uploaded Python 3

File details

Details for the file yonderdrake-0.1.0a1.tar.gz.

File metadata

  • Download URL: yonderdrake-0.1.0a1.tar.gz
  • Upload date:
  • Size: 104.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yonderdrake-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 819a65d497df62b04c96943190db80817ad7c440071920955d2239e52cb66993
MD5 2d02a9d55cef6c7d139210434e058a99
BLAKE2b-256 c96be6c58f66c00bfbba40d0089ec2eda0ee8858d96b1509bce6b222ba626e85

See more details on using hashes here.

Provenance

The following attestation bundles were made for yonderdrake-0.1.0a1.tar.gz:

Publisher: publish.yml on TSGut/yonderdrake

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yonderdrake-0.1.0a1-py3-none-any.whl.

File metadata

  • Download URL: yonderdrake-0.1.0a1-py3-none-any.whl
  • Upload date:
  • Size: 125.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yonderdrake-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 fc5446a817673800520825376d8b09bcfb79f2b891f5c4ad01b5e05593d90870
MD5 fd9cd123f512b9750ec6736703858d17
BLAKE2b-256 e0abb42fe28c30e8c0d6b78627f9ded6fa813bd0b27bae8d8ecac7356ee5d554

See more details on using hashes here.

Provenance

The following attestation bundles were made for yonderdrake-0.1.0a1-py3-none-any.whl:

Publisher: publish.yml on TSGut/yonderdrake

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page