The following programs are a work in progress adapted from implementations published in Ref. (1) using the Abubu computational library with a WebGL 2.0 backend. As I understand as of now, the only two browsers that support graphics rendering by WebGL 2.0 are reasonably recent updates of Google Chrome and FireFox. So if either of them aren't working for you, try using either of those two browsers and/or updating them. FastSimulator3D is currently not able to output spiral tip trajectories on a human atrium geometry; this is on my TODO list. As for FastAFSimulator2D, however, spiral tip trajectories may be outputed in reasonably small '.csv' files. See 'how to use' for details.
A three-variable minimal model (2D) and a variation of Bueno-Oravio-2008 (3D).
These programs currently simulate a three-variable minimal model (2D) and a variation of Bueno-Oravio-2008 (3D) in real time via method of either finite difference or via method of phase averaging. I hope to soon have these models also implemented via a finite volume method.
How to download spiral tip trajectories
-
Launch the FastAFSimulator2D.
-
Press Solve/Pause once and click around in the left canvas until things look suitably chaotic.
-
Check the box labeled 'Plot Tip Trajectories?' to begin calculating spiral tips.
-
Check the box labeled 'Also Record Tip Trajectories?' to begin recording spiral tip trajectories.
-
Type in the prefix to the filename you want for the '.csv' file in the 'File Name Prefix:' box.
-
After you feel a sufficient amount of time has passed, press 'Save Record of Tips'.
The output file format has a header in the first line. For each following line, the first value is the time of the given frame, and the other values alternate between the (X,Y) coordinates of the spiral tips and (0,0). There may be extra (0,0) entries at the end of each line. Ignore those. The spiral tip coordinates take values ranging from (0,0) to (1,1). Nota bene: you can change the sampling rate in 'Sampling Rate', which is initialized to take a minimum value of 0.2. Time units are 1 unit = 1 millisecond, as far as I can tell. Clicking 'Save Parameters' will save a list of the current parameter values. Currently, Recording spiral tips at the minimum sampling rate of 0.2 is really slow. Once I figure out how to stream from a .frag Shader file, recording spiral tips should speed up significantly.
References
- Kaboudian A., Cherry E., Fenton F., Real-time interactive simulations of large-scale systems on personal computers and cell phones: Toward patient-specific heart modeling and other applications. Sci. Adv. 2019;5:eaav6019
- F. H. Fenton, E. M. Cherry, H. M. Hastings, S. J. Evans, Real-time computer simulations of excitable media: JAVA as a scientific language and as a wrapper for C and FORTRAN programs. Biosystems 64, 73–96 (2002).9
- D. M. Lombardo, F. H. Fenton, S. M. Narayan, W.-J. Rappel, Comparison of detailed and simplified models of human atrial myocytes to recapitulate patient specific properties. PLOS Comput. Biol. 12, e1005060 (2016).