A library for nonlocal time and space operators in Firedrake
Project description
Yonderdrake
Fractional in time, space and other nonlocal operators for Firedrake
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
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:
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:
Fractional space
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yonderdrake-0.1.0a2.tar.gz.
File metadata
- Download URL: yonderdrake-0.1.0a2.tar.gz
- Upload date:
- Size: 105.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
890d7851ef4e88c5d8038f552f9c691f050ef332beacb4d521420ea1a9dd736c
|
|
| MD5 |
68f1ff563074749dd6a87b0d573263f4
|
|
| BLAKE2b-256 |
e40a88f4c77f14f6e3f3e0331ef13693f3a09ba756d12d3e859008a234b507fa
|
Provenance
The following attestation bundles were made for yonderdrake-0.1.0a2.tar.gz:
Publisher:
publish.yml on TSGut/yonderdrake
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yonderdrake-0.1.0a2.tar.gz -
Subject digest:
890d7851ef4e88c5d8038f552f9c691f050ef332beacb4d521420ea1a9dd736c - Sigstore transparency entry: 2340464275
- Sigstore integration time:
-
Permalink:
TSGut/yonderdrake@7e7feae084f783e5eaa36fc0b8ca088c32f0d5a9 -
Branch / Tag:
refs/tags/v0.1.0a2 - Owner: https://github.com/TSGut
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7e7feae084f783e5eaa36fc0b8ca088c32f0d5a9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file yonderdrake-0.1.0a2-py3-none-any.whl.
File metadata
- Download URL: yonderdrake-0.1.0a2-py3-none-any.whl
- Upload date:
- Size: 125.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de372d2fafeae8ec638b0392e45e45c7df4f93b5ce171f3088a6cc85dda2e625
|
|
| MD5 |
9d77761122ed8a51c18e5c384e63c769
|
|
| BLAKE2b-256 |
8a38f6dfcbcd1b58f073cd65d23673f62a32a3aa3b57087d4b7aae4b8c7b4d3c
|
Provenance
The following attestation bundles were made for yonderdrake-0.1.0a2-py3-none-any.whl:
Publisher:
publish.yml on TSGut/yonderdrake
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yonderdrake-0.1.0a2-py3-none-any.whl -
Subject digest:
de372d2fafeae8ec638b0392e45e45c7df4f93b5ce171f3088a6cc85dda2e625 - Sigstore transparency entry: 2340464291
- Sigstore integration time:
-
Permalink:
TSGut/yonderdrake@7e7feae084f783e5eaa36fc0b8ca088c32f0d5a9 -
Branch / Tag:
refs/tags/v0.1.0a2 - Owner: https://github.com/TSGut
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7e7feae084f783e5eaa36fc0b8ca088c32f0d5a9 -
Trigger Event:
release
-
Statement type: