Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
Yonderdrake documentation
Logo

Getting started

  • Installation
  • Quickstart

Nonlocal time operators

  • Fractional time derivatives
  • Time-fractional PDEs
  • Exponential memory and Caputo-Fabrizio
  • Caputo-Wismer imaging
  • Time-memory operators
    • Caputo and Riemann-Liouville derivatives
    • Diffusive representations of time memory
    • How the memory is advanced
    • Exponential (fading) memory

Nonlocal space operators

  • Fractional space
  • Spectral fractional Laplacian
  • Riesz/restricted fractional Laplacian
  • Periodic Fourier fractional Laplacian

Applications and workflow

  • Separating error sources
  • Solvers, field splits, and MPI
  • Checkpoint and restart
  • Classical time stepping with Irksome
  • Benchmarks and comparisons
  • Gallery
    • Head-model data and parallel runs

Reference

  • Conventions and normalizations
  • API and supported scope
  • Detailed API reference
  • Performance and MPI
  • References and provenance

Development

  • Contributing
  • Supported platforms and dependencies
Back to top
View this page
Edit this page

Gallery¶

Larger applications producing animations or figures and replot-ready CSV data. These are meant to be looked at: every entry says what to watch for, since the point of a fractional model is usually visible in how the solution decays rather than in a single snapshot.

Every entry is an ordinary Python script with a main() function. Run a script with the Python interpreter from an active Firedrake environment containing the plotting extra:

python -m pip install '.[visual]'
python demos/gallery/<script>.py

Outputs land in demos/demo-output/. --output DIR changes that. Data setup and parallel invocation for the head demos are in Head-model data and parallel runs.

The preview commands below deliberately reduce time, mesh, element degree, or memory modes. They check the complete solve-and-render route but are not the settings used in the displayed animations.

Demo

Quick preview

Default-run character

Dragon wave

python demos/gallery/caputo_wismer/visual_time_derivative_dragon_wave.py --degree 1 --modes 8 --final-time 0.05

Serial CG2 wave animation. Longer but modest.

Phase separation

python demos/gallery/visual_time_derivative_phase_separation.py --refinement 2 --modes 8 --final-time 0.06

Three surface solves and animated diagnostics.

Thermal scanner

python demos/gallery/visual_time_derivative_thermal_scanner.py --major-segments 24 --minor-segments 12 --modes 8 --final-time 0.06

Three torus solves and sensor histories.

BrainWeb waves

mpiexec -n 4 python demos/gallery/caputo_wismer/visual_brainweb_wismer_sources.py --refinement 2 --degree 1 --modes 8 --final-time 0.05

Downloads BrainWeb once. MPI is recommended for the full CG2 run.

Skull-ball waves

mpiexec -n 4 python demos/gallery/caputo_wismer/visual_skullball_wismer_sources.py --refinement 2 --degree 1 --modes 8 --final-time 0.05

Self-contained. MPI is recommended for the full CG2 run.

Vessel imaging

mpiexec -n 4 python demos/gallery/caputo_wismer/visual_brainweb_sensor_imaging.py --smoke

Full reconstruction is minutes-scale. Defaults are 20 optimizer iterations and tolerance \(10^{-5}\).

Periodic gyroid

python demos/gallery/visual_periodic_fractional_gyroid.py --cells 8 --final-time 0.06 --frames 6

Two 3D periodic evolutions plus isosurface rendering.

Koch snowflake

python demos/gallery/visual_fractional_heat_snowflake.py --smoke

Three operators on the refined fractal mesh. Riesz construction dominates.

Aperiodic monotile

python demos/gallery/visual_fractional_schrodinger_monotile.py --degree 1 --modes 8 --final-time 0.04

Four coupled real-field evolutions on the full patch.

Use --help on any script for all numerical and output controls. A preview finishing successfully does not establish convergence. Use Separating error sources before treating a result quantitatively.

Fractional time¶

Fractionally damped waves on a dragon¶

visual_time_derivative_dragon_wave.py models Caputo-Wismer-Kelvin damping on a dragon mesh. Watch the wave front: classical Kelvin-Voigt damping attenuates high frequencies immediately, while the fractional term keeps a long tail of memory, so the surface keeps ringing after the front has passed. Wave demos use CG2 by default. Weak form in Time-fractional PDEs.

Download the dragon-wave animation.
The fractional model keeps a visible wake after the leading wave front has crossed the dragon.

Three time derivatives, one problem¶

visual_time_derivative_phase_separation.py solves Allen-Cahn on a sphere with three different time derivatives side by side. The comparison is the demo: identical initial data and mesh, different memory, visibly different coarsening rates. The sphere and torus comparisons retain the Riemann-Liouville initial trace.

Download the phase-separation animation.
Identical initial data evolve at different coarsening rates under the three time derivatives.

A moving heat source on a torus¶

In visual_time_derivative_thermal_scanner.py, a source sweeps the surface and the trailing thermal wake shows how far back the memory reaches. This problem is also one of the two benchmark drivers (Benchmarks and comparisons).

Download the thermal-scanner animation.
The wake behind the moving source makes the different memory laws directly visible.

Anatomical head models¶

visual_brainweb_wismer_sources.py places three sources in a BrainWeb anatomical head with material-dependent Caputo-Wismer damping. The companion visual_brainweb_wismer_pulse.py sends a single pulse through the same anatomy, and the two skullball variants use a stylized layered domain with an absorbing outer boundary. Each compares layered, homogenized, and difference fields.

These four run distributed. See Head-model data and parallel runs.

Download the BrainWeb pulse animation.
BrainWeb pulse: layered and homogenized tissue models with their absolute difference.
Download the BrainWeb sources animation.
BrainWeb sources: material-dependent damping changes the field relative to the homogenized model.
Download the skull-ball pulse animation.
Skull-ball pulse: the self-contained layered geometry isolates the material-model comparison.
Download the skull-ball sources animation.
Skull-ball sources: the difference panel shows where heterogeneity most changes the wave field.

Sensor-array vessel imaging¶

visual_brainweb_sensor_imaging.py puts a branching vessel in the BrainWeb phantom and plots a configurable exterior elliptical sensor array. visual_circular_sensor_imaging.py is the self-contained skull-ball section with an exterior circular array. Both produce a figure comparing the three reconstruction modes under heterogeneous and homogenised material assumptions. The BrainWeb demo also writes the compact three-panel figure used to summarize the reconstruction. The reusable interface is introduced in Caputo-Wismer imaging.

Fractional space¶

A fractional race through a periodic gyroid¶

visual_periodic_fractional_gyroid.py races two copies of the same multiscale implicit surface through a fully periodic 3D box. The lower spatial order retains fine modes while the near-local order rapidly exposes the broad gyroid scaffold. Synchronized cameras, colour limits, and midplane slices make the comparison direct rather than decorative. Both fields use the 3D PeriodicFractionalLaplacian. --orders LOW HIGH, --cells, --dt, and --final-time control the experiment.

Download the periodic-gyroid animation.
The zero isosurfaces rotate together while their small-scale structure dissipates at different rates. The black slice contours track the same level set through each periodic cell.

Three Laplacians on a Koch snowflake¶

visual_fractional_heat_snowflake.py compares classical, spectral-fractional, and Riesz heat flow on the same fractal domain, from the same initial data. The three panels diverge fastest near the boundary, which is exactly where the two fractional realizations disagree (why). Accepts --plot-data PATH in addition to --output.

Download the snowflake heat-flow animation.
Surface and plan views show the three operators separating most clearly near the fractal boundary.

Fractional Schrödinger on an aperiodic monotile¶

visual_fractional_schrodinger_monotile.py solves fractional Schrödinger equations on a hat monotile patch, following Baqer and Boyadjiev’s space-time formulation. Because complex PETSc builds are rejected (Supported platforms and dependencies), this is solved as a coupled real system. This and the head demos use CG2 by default. --degree 1 selects the cheaper linear space.

Download the monotile animation.
The coupled real fields evolve across the nonperiodic hat-monotile patch.
Next
Head-model data and parallel runs
Previous
Benchmarks and comparisons
Copyright © 2026, Timon S. Gutleb and contributors
Made with Furo
On this page
  • Gallery
    • Fractional time
      • Fractionally damped waves on a dragon
      • Three time derivatives, one problem
      • A moving heat source on a torus
      • Anatomical head models
      • Sensor-array vessel imaging
    • Fractional space
      • A fractional race through a periodic gyroid
      • Three Laplacians on a Koch snowflake
      • Fractional Schrödinger on an aperiodic monotile