This paper describes the functionality and usage of bal, a C/C++ library with a Python front-end for the brute-force analysis of continuous-time dynamical systems described by ordinary differential equations (ODEs). bal provides an easy-to-use wrapper for the efficient numerical integration of ODEs and, by detecting intersections of the trajectory with appropriate Poincaré sections, allows to classify the asymptotic trajectory of a dynamical system for bifurcation analysis. Some examples of application are discussed, concerning two-dimensional bifurcation diagrams, Lyapunov exponents and finite-time Lyapunov exponents, basins of attraction, simulation of switching ODE systems, and integration with AUTO, a software package for continuation analysis. Program summaryProgram title: BAL (Library)Catalogue identifier: AEYY_v1_0Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEYY_v1_0.htmlProgram obtainable from: CPC Program Library, Queen’s University, Belfast, N. IrelandLicensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.htmlNo. of lines in distributed program, including test data, etc.: 65256No. of bytes in distributed program, including test data, etc.: 438133Distribution format: tar.gzProgramming language: C/C++, Python.Computer: PCs and Workstations.Operating system: Any Unix based system such as Linux and Mac OSX.RAM: Variable, depending on the number of dimensions of the dynamical system and duration of the simulation.Classification: 4.3, 4.12.External routines: CVODE, Boost, HDF5Nature of problem: The numerical analysis of continuous-time nonlinear dynamical systems often requires the computation of a large number of solutions of the system, for varying parameter sets, and the subsequent classification of the steady state solution.Solution method: This library provides a convenient interface to the library CVODE for the integration of sets of differential equations and at the same time implements all the machinery required for integrating and classifying the behaviour of the system for varying parameter sets and initial conditions. A high-level Python interface makes the usage of the library amenable also to users who are not familiar with the C/C++ programming languages.
Read full abstract