Periodic Boundary Conditions
Module: tutorials.02_EP_tissue.07B_periodic.run
Section author: Edward Vigmond <edward.vigmond@u-bordeaux.fr>
Section author: Edward Vigmond <edward.vigmond@u-bordeaux.fr>
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 and not the simpler no flux boundaries. Indeed, reentries last longer on periodic domains since they do not annilhilmate 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.
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.
The below defined experiments demonstrate initiating reentry in a sheet of tissue with periodic boundary conditions. To run these experiments
cd tutorials/02_EP_tissue/07B_periodic
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)
--blockVm transmembrane voltage of block line [-86 mV]
--blockDur 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.
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 and block-dur
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.
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
.