Demos#
This page indexes all the demos in fenicsx-beat, grouped the same way as in the sidebar. If you are
new to the library, start with the mathematical background page for the
model and notation used throughout, then work through the
FitzHugh–Nagumo demo below.
Getting started#
A simple example of excitable tissue: The FitzHugh–Nagumo model — the best starting point. Solves the monodomain model with the simplest possible ionic current model, both as a single-cell ODE and as a full 2D tissue simulation, introducing the
beatAPI step by step.
Examples#
Diffusion in a square domain with a stimulus in the lower left corner — the monodomain model with the ionic current switched off entirely, i.e. pure diffusion driven by a stimulus current.
Solving a simple ODE — solving a toy ODE system with
beat’s ODE solver at many points at once, the same kind of step used for the cell model in the full monodomain solver.Endocardial stimulation of a left ventricle ellipsoid — a full 3D simulation on an idealized left-ventricle geometry, with fibre directions, transmurally varying cell models (endocardial/mid-myocardial/epicardial), and endocardial stimulation.
Conduction velocity and ECG for slabs — conduction velocity and pseudo-ECG estimation on a simple slab of tissue.
Niederer benchmark — the standard cross-code monodomain benchmark [LGA+15], comparing activation times across spatial and temporal resolutions.
Premature Ventricular Complexes (PVCs) — reproducing an ectopic beat originating from a region of reduced repolarization reserve on a 1D cable [ZLH+21].
Pacing train — the same 1D cable as the PVC demo, rapidly paced from one end.
Endocardial stimulation of a Bi-ventricular ellipsoid — like the left-ventricle demo, but on a bi-ventricular geometry, including 12-lead ECG recovery.
Purkinje like stimulation of a realistic BiV geometry — a realistic bi-ventricular geometry from a UK Biobank atlas, stimulated at many random endocardial points to mimic activation via the Purkinje network.
Verification#
Verifying Second-Order Temporal Convergence — checks the second-order-in-time convergence of Strang splitting combined with a Crank–Nicolson PDE step, using the method of manufactured solutions.
Monodomain convergence test — the companion check of the (first-order) spatial and Godunov-splitting convergence rates.
Advanced topics#
Fully implicit high-order time stepping with Irksome — replaces the default explicit/\(\theta\)-rule time stepping with fully implicit, high-order Runge–Kutta methods (via the optional Irksome dependency) for the PDE and/or ODE step, demonstrated on a
gotranx-generated cell model and a strongly heterogeneous conductivity field.Cell-model stepping via dolfinx-external-operator — a drop-in alternative ODE step (via the optional dolfinx-external-operator dependency) that reuses your existing cell-model function unchanged; cross-checks it against
DolfinODESolveron a realgotranx-generated cell model and reports the current performance trade-off honestly.Monolithic implicit PDE+ODE coupling with dolfinx-external-operator — a prototype fully implicit Newton solve of the PDE and cell model together, with a JAX-autodifferentiated Jacobian and no operator-splitting error at all; validated against an independent reference and quantitatively compared against
MonodomainSplittingSolver.
Sander Land, Viatcheslav Gurev, Sander Arens, Christoph M Augustin, Lukas Baron, Robert Blake, Chris Bradley, Sebastian Castro, Andrew Crozier, Marco Favino, and others. Verification of cardiac mechanics software: benchmark problems and solutions for testing active and passive material behavior. Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences, 471(2184):20150641, 2015.
Zhaoyang Zhang, Michael B Liu, Xiaodong Huang, Zhen Song, and Zhilin Qu. Mechanisms of premature ventricular complexes caused by qt prolongation. Biophysical journal, 120(2):352–369, 2021.