Periodic Boundary Conditions

See code in GitLab.
Author: Edward Vigmond edward.vigmond@u-bordeaux.fr

Periodic Boundary Conditions

Periodic boundary conditions connect the left edge of a sheet to the right, or the top to the bottom. This, for example models a cylinder very simply while allowing visualization of the whole domain. The intact atria or ventricles are better approximated by sheets with periodic boundary conditions (b.c.'s) and not the simpler no flux boundaries. Indeed, reentries last longer on periodic domains since they do not annilhilate at boundary edges.

The implementation of periodic b.c.'s is not straightforward since adding the equations equating nodes on the left boundary to those on the right boundary (or top and bottom) is mathematically trivial but destroys the symmetry of the system, and, thereby, invalidates many conjugate gradient preconditioners. A workaround is to define line connections linking the edges of the tissue, and assigning ridiculously large conductivity values to these links, effectively short circuiting the nodes. The mesher program will generate these links. To run the experiments of this example change directories as follows:

cd ${TUTORIALS}/02_EP_tissue/07B_periodic

Experimental Setup

A sheet showing periodic boundary conditions in X implemented with linear elements (in pink) joining the left and right edges.
A point stimulus delivered off-center on a piece of tissue with periodic boundary conditions in both directions.

Initiating Reentry

The standard cross-shock method of reentry initiation will fail with periodic b.c.'s. The initial line stimulus will produce two wavefronts which collide, and the quarter sheet S2 will quickly go everywhere and annihilate itself. There are two simple ways to induce reentry.

  1. We define a mesh without the periodic connections and run an intial portion of the silulation on that. Just after the S2, we save the state and restart on the mesh with the periodic b.c.'s enforced.
  2. We temporarily block propagation across an edge by clamping the transmembrane voltage and then turning off the clamp after the S2.

Experiments

The below defined experiments demonstrate initiating reentry in a sheet of tissue with periodic boundary conditions.

Run

./run.py --help

to see all exposed experimental parameters

--bc              boundary condition imposed (noflux,Xper,Yper,XYper)
--tend TEND       Duration of simulation (ms)
--size SIZE       size of square sheet (cm)
--S2-start        time to apply quarter sheet S2 stimulus (<0=no S2)
--block-Vm         transmembrane voltage of block line [-86 mV]
--block-dur        duration of block [0 ms]
--cnnxG           conductivity of periodic connections [10000 S/m]
--monitor [delay] monitor progress Press "r" in the model window to refresh. 
                  Default wait 30s seconds to launch.

Experiment exp01

Try to create a wave which propagates forever. Find a suitable time and Vm clamp voltage for turning off the block.

./run.py --tend 300 --size 2 --monitor=10 --np 10 --bc=Yper --block-dur=? --block-Vm ?? 

One solution is here: block-Vm (-80) and block-dur (90)

Experiment exp02

Create a rotor on a block using the cross-shock protocol

./run.py --size 2 --np=4 --monitor=15 --block-Vm ? --block-dur=? --S2-start ? 

A larger sheet may make it easier.

Under the Hood

The mesher program takes the argument -periodic with the following possible values

Value Periodic BC's Region ID
0 None
1 in X

1234

2 in Y

1235

3 in X and Y

1234/1235

The longitudinal conductivity for g_il in the appropriate conductivity regions should then be set very high so that there is very little voltage drop across the connection :

gregion[1].numIDs = 2
gregion[1].ID     = 1234 1235
gregion[1].g_il   = 1.0e4

For the temporary block, use a stimulus with stimtype=9.

© Copyright 2020 openCARP project    Supported by DFG    Contact    Imprint and data protection