AUTO2000 Plugin
AUTO2000 Introduction
The AUTO2000 plugin serves as a front-end for the AUTO2000 library, which is a library for continuation and bifurcation problems in ordinary differential equations 1.
Current limitations: Multiple continuation parameters are not supported, i.e. only one parameter can be selected for any continuation problem.
Available properties in the auto2000 plugin are documented in the next section.
1 AUTO2000 by Eusebius J. Doedel , Randy C. Paffenroth, Alan R. Champneys, Thomas F. Fairgrieve, Yuri A. Kuznetsov, Bart E. Oldeman, Bj�rn Sandstede and Xianjun Wang. See http://www.dam.brown.edu/people/sandsted/publications/auto2000.pdf.
AUTO2000 Plugin Properties
The AUTO library has numerous properties that have been wrapped and made available to a plugin client. Each property is listed below with its data type, default value and a short description. For the exact usage and a more in detail description please consult the main AUTO2000 manual.
The following properties are used internally by the auto library. Depending on the problem at hand, they may need to be tweaked.
SBML: SBML document as a string. Model to be used by AUTO
TempFolder: Folder used by auto and the plugin for saving temporary files. Takes a string
KeepTempFiles: Boolean indicating if temporary files should be deleted after an AUTO session or not. Default is ‘False’
ScanDirection: Parameter instructing AUTO how to sweep its principal continuation parameter. Either ‘Positive’ or ‘Negative’. Default is ‘Positive’
PrincipalContinuationParameter: The principal continuation parameter (PCP) is the first parameter that AUTO will sweep. Currently only one parameter is supported, which by default is the PCP. Takes a string
BifurcationPoints: This integer vector holds the exact point number (in the sequence of all output data) for an AUTO solution point. It can be used together with the labels in the bifurcationlabels property to assist in plotting a bifurcation diagram.
BifurcationLabels: The string list holds the AUTO designated solution type label for a solution point, as found in the bifurcationpoints property. Consult the AUTO documentation for possible label types and their meaning
BifurcationData: The BifurcationData property holds the bifurcation diagram after a session. The first column contains the values of the selected parameter, and successive columns are selected species
fort2: Property containing the content of the AUTO temporary file, fort.2. Fort.2 is the input file for AUTO and created by the plugin
fort3: Property containing the content of the AUTO temporary file, fort.3. The content of fort.3 file is undocumented in AUTO’s documentation
fort6: Property containing the content of the AUTO temporary file, fort.6. The content of fort.6 file is a bifurcation session summary
fort7: Property containing the content of the AUTO temporary file, fort.7. The content of fort.7 file is a bifurcation diagram on success
fort8: Property containing the content of the AUTO temporary file, fort.8. The content of fort.8 file contain various statistics from the session
fort9: Property containing the content of the AUTO temporary file, fort.8. Diagnostic messages, convergence history, eigenvalues, and Floquet multipliers are written in fort.9
NDIM: The NDIM property correspond to the dimension of the system of equations
IPS: Constant defining the problem type
IRS: This constant sets the label of the solution where the computation is to be restarted.
ILP: Fold detection; 1=ON, 0=OFF
NICP: Property denoting the number of free parameters
ICP: Free parameters
NTST: The number of mesh intervals
NCOL: The number of collocation points per mesh interval
IAD: Mesh adaption every IAD steps; 0=OFF
ISP: Bifurcation detection; 0=OFF, 1=BP(FP), 3=BP(PO,BVP), 2=all
ISW: Branch switching: 1=normal, -1=switch branch (BP, HB, PD), 2=switch to two-parameter continuation (LP, BP, HB, TR) 3=switch to three-parameter continuation (BP)
IPLT: This constant allows redefinition of the principal solution measure, which is printed as the second (real) column in the fort.7 output-file. See AUTO manual for possible settings
NBC: Number of boundary conditions
NINT: Number of integral conditions
NMX: Maximum number of steps
RL0: The lower bound on the principal continuation parameter
RL1: The upper bound on the principal continuation parameter
A0: The lower bound on the principal solution measure
A1: The upper bound on the principal solution measure
NPR: Save the solution in the solution file every NPR continuation steps
MXBF: Automatic branch switching for the first MXBF bifurcation points if IPS=0, 1
IID: Control diagnostic output; 0=none, 1=little, 2=normal, 4=extensive
ITMX: Maximum number of iterations for locating special solutions/points
ITNW: Maximum number of correction steps
NWTN: Corrector uses full newton for NWTN steps
JAC: User defines derivatives; 0=no, 1=yes
EPSL: Property setting the convergence criterion for parameters
EPSU: Property setting the convergence criterion for solution components
EPSS: Property setting the convergence criterion for special points
DS: Session start step size
DSMIN: Minimum continuation step size
DSMAX: Maximum continuation step size
IADS: Step size adaption every IADS steps; 0=OFF
NTHL: The number of modified parameter weights (for BVP)
THL: List of parameter weights
NTHU: The number of modified solution component weights (for BVP)
THU: List of solution weights
NUZR: The number of user output points specified
UZR: List of values for user defined output
The execute Function
The execute() function will start a bifurcation session. Depending on the problem at hand, the algorithm may run for a long time. The execute() method supports a boolean argument indicating if the execution of the plugin work will be done in a thread, or not. If set to false, i.e. executing execute(false), the function will be a blocking function and will not return until the plugin work is done. If it is set to true, the execute(true) will return immediately and the plugin work will be executed in a thread. The user can use the isPluginDone(plugin) to query the status of the plugin progression. The inThread argument defaults to false.
AUTO2000 Plugin Events
The auto2000 plugin uses all of the available plugin events, i.e. the PluginStarted, PluginProgress and the PluginFinished events. The available data variables for each event are internally treated as pass through variables, so any data, for any of the events, assigned prior to the plugins execute function (in the assignOn() family of functions), can be retrieved unmodified in the corresponding event function.
PluginStarted: Signals to application that the plugin has started applying noise on data. Both parameters are pass through parameters and are unused internally by the plugin.
PluginProgress: Communicates progress of noise generation. Both parameters are pass through parameters and are unused internally by the plugin.
PluginFinished: Signals to application that execution of the plugin has finished. Both parameters are pass through parameters and are unused internally by the plugin.
Python examples
The following Python script illustrates how the auto plugin can be invoked, how to set its properties and finally how to plot a bifurcation diagram.
from rrplugins import *
try:
sbmlModel ="BIOMD0000000203.xml"
auto = Plugin("tel_auto2000")
#Setup Auto Propertys
auto.setProperty("SBML", readAllText(sbmlModel))
#Auto specific properties
auto.setProperty("ScanDirection", "Positive")
auto.setProperty("PrincipalContinuationParameter", "A")
auto.setProperty("PCPLowerBound", 10)
auto.setProperty("PCPUpperBound", 200)
#Max numberof points
auto.setProperty("NMX", 5000)
#Execute the plugin
auto.execute()
# Bifurcation summary
print("Summary: " + auto.BifurcationSummary)
#Plot Bifurcation diagram
pts = auto.BifurcationPoints
lbls = auto.BifurcationLabels
biData = auto.BifurcationData
biData.plotBifurcationDiagram(pts, lbls)
print("Done")
except Exception as e:
print("There was a problem: " + `e`)