An installation instruction of the program realizing the proof of the existence of uniformly hyperbolic attractor in the Kuznetsov system as described in the paper
D. Wilczak,
Uniformly hyperbolic attractor of the Smale-Williams type for a Poincaré map in the Kuznetsov system
MINIMAL SYSTEM REQUIREMENTS:
- The programs require gcc-4.2 or newer. Earlier versions of gcc are not supported due to the usage of the OpenMP supported by the gcc compilers from the version 4.2.
- The programs can be compiled under Linux/Windows both 32 and 64 bits. No additional libraries are necessary, just complete installation of gcc.
MINIMAL RESOURCES:
After successful compilation we have two executables - solenoid and sw-solenoid. These prove the existence of uniformly hyperbolic attractor for the Smale map and for the Poincaré map in the Kuznetsov system, respectively.
- the executable solenoid should normally run and stop under any Linux/Windows both 32/64 bits.
- the executable sw-solenoid can be compiled and run under any Linux/Windows both 32/64 bits. The program requires, however, at least 24GB of RAM during the computations. Therefore, to complete computations without bad_alloc exception one needs to compile the program as a 64bit application under 64bit OS with required memory. The program writes the computed enclosure, cycles, periodic points and coordinate systems to the hard drive. Therefore, it requires at least 10GB of free disc space.
COMPILATION:
It is enough to extract the archive to an empty directory, and invoke 'make' command.
- mkdir swhyp
- cp swhyp.tgz swhyp
- cd swhyp
- tar xvfz swhyp.tgz
- make
The last command generates two executables solenoid and sw-solenoid. The compiler and version of OS (32/64 bit and Linux/windows) are automatically recognized by the program and makefile. You do not need to take care about special compilation rules under a given platform.
RUN THE PROGRAMS:
We may run the programs
./solenoid
or
./sw-solenoid
Both programs execute in the text mode hence the graphics environment is unnecessary. We may redirect output to a given file, like
./sw-solenoid > logFile &
IMPORTANT INFORMATION ABOUT THE SW-SOLENOID PROGRAM:
The main version of the sw-solenoid program were prepared, tested and run on a cluster with 7 computers. Since the architectures of clusters are often different, it is difficult to post a program that would run on any platform. Here we present a version of the program that can be run on any single machine. It is, however, strongly recommended to run the program on a remote fast computer with as many as possible CPUs.
The program automatically recognizes the number of available CPUs and tries to use all of them. We tested the program on a single computer with 64GB of RAM and 32 CPUs (8 Quad Core). The program completed all steps of verification of uniform hyperbolicity within 2 days on this machine.
As it is mentioned in the article, the result of the Algorithm 2 for spreading of coordinate systems from periodic points is not deterministic when run in parallel mode. I can imagine that the cone condition may be not verified with computed coordinate systems. The file that contains coordinate system for which we successfully completed verification of cone condition is available from the author on request. This is a huge text file (almost 7 GB before compression). Then, the verification of the cone condition can be restarted using coordinates from this file - it is enough to comment out few lines in the file hyperbolicity/sw-solenoid.cpp.
OUTPUT:
Both programs write some log messages to the screen during the computations. Usually these are to see the progress of the computation. The most important information is at the end - the number of boxes on which the cone condition was not verified. These boxes are written to the file unverified0.
During the computations the programs save to disc enclosure, cycles, periodic points and coordinate systems. These are text files and can be used for further post-processing, if necessary.
Directory structure and source files of the programs:
- The directories: bin, include, lib, make, obj, src, utils are from the CAPD library.
- The source files of the programs are located in the directory hyperbolicity.
Each routine in the source files is usually widely commented. Here we list the main content of each file that contains implementation of generic algorithms.
- coneCondition.h - this file contains template routines that implement Algorithm 3 from the article, i.e. verification of the cone conditions.
- coordSystems.h - this file contains an implementation of Algorithm 2 for spreading coordinates from periodic points.
- DerContainer.h - implementation of class DerContainer. This is a class that allows to avoid wrapping effect when change of coordinate systems, details in the file.
- Graph.h - this file contains an abstract implementation of directed graphs. The class provides iterating over the graph and few algorithms. In particular, an algorithm for finding cycles in graph is implemented.
- MapGraph.h - this file contains an abstract implementation of combinatorial representation of maps. A template parameter is a map to be represented. In particular, Algorithm 1 from the article is implemented here.
- nonrigorous-algorithms.h - some auxiliary, nonrigorous algorithms, like Newton search or nonrigorous computation of Jordan basis of matrices.
- periodicPoints.h - this file contains algorithms for computation of periodic points from cycles in the graph and computation of coordinate systems at periodic points. All the algorithms are nonrigorous.
- posDefMatrix.h - rigorous verification if an interval matrix is positive definite. The method uses J. Rohn theorem, Gershgorin theorem and/or Sylvester criterion.
The following files are specific for the Smale map and the Poincare map in the Kuznetsov system.
- SmaleMap.h - this is an implementation of class SmaleMap that represent the Smale map. It provides functions for computing values and derivatives of the Smale map.
- SmaleWilliamsMap.h - this is an implementation of class SmaleWilliamsMap that represent the Poincare map in the Kuznetsov system. It provides functions for computing values and derivatives of this Poincare map.
- solenoid.cpp - this file contains the main function for the program solenoid. It just calls the main generic algorithms that realize the steps of verification of hyperbolicity of the attractor for the Smale map.
- sw-solenoid.cpp - this file contains the main function for the program sw-solenoid. It just calls the main generic algorithms that realize the steps of verification of hyperbolicity of the attractor for the Poincare map in the Kuznetsov system. Here is also an implementation of the routines that verify Theorem 2 (the existence of a fixed point and a period two orbit).
NOTE:
More information about libraries can be found on the web page of CAPD group:
http://capd.ii.uj.edu.pl.