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. To run the experiments of this example change directories as follows:
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
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 (-80) and
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.
mesher program takes the argument
-periodic with the following possible values
|Value||Periodic BC's||Region ID|
|3||in X and Y||
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.numIDs = 2 gregion.ID = 1234 1235 gregion.g_il = 1.0e4
For the temporary block, use a stimulus with