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 |
|---|---|---|
|
Serial CG2 wave animation. Longer but modest. |
|
|
Three surface solves and animated diagnostics. |
|
|
Three torus solves and sensor histories. |
|
|
Downloads BrainWeb once. MPI is recommended for the full CG2 run. |
|
|
Self-contained. MPI is recommended for the full CG2 run. |
|
|
Full reconstruction is minutes-scale. Defaults are 20 optimizer iterations and tolerance \(10^{-5}\). |
|
|
Two 3D periodic evolutions plus isosurface rendering. |
|
|
Three operators on the refined fractal mesh. Riesz construction dominates. |
|
|
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.
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.
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).
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.
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.
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.
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.