Documentation of the computer program used in the paper entitled
"Existence of globally attracting solutions for one-dimensional viscous Burgers equation with nonautonomous forcing -
a computer assisted proof"
J. Cyranka, P. Zgliczyński
Updated: 27 Mar 2014
contact addresses: jacek.cyranka (at) ii.uj.edu.pl
, umzglicz (at) cyf-kr.edu.pl
www: J. Cyranka home page
, P. Zgliczyński home page
Detailed numerical data from the proofs
(pdf file with some formulas used in the program, that were excluded from the paper)
The program has been written in C++ programming language.
It includes some portion of CAPD library
available under GNU GPL.
We included version tested to be compatible with our software package, available at the CAPD webpage on 24 Jul 2013.
Preferred compiler is GCC (tested to be compatible with versions 4.7.3
The program was tested on a Linux operating system, it is possible to compile it under Windows operating system,
using the MinGW environment is highly recommended.
1. Compile part of included CAPD libraries
In the directory extracted from the package, enter the capd
Being in the capd directory call the following instructions
The configure script checks system configuration and generates Makefiles with proper parameters for compilation (from Makefile.in files).
For our purposes, to avoid compiling sparse libraries, we recommend to call configure with the following parameters
./configure --with-filib --without-covrel --without-geomset --without-poincare --without-krak --without-facade
to compile CAPD libraries.
2. Compile the Nonautonomous Burgers program package.
After the CAPD has been properly compiled, the program package performing the proof can be compiled and linked.
First enter the main directory of files that were extracted from the soft.zip archive.
Being in the main directory call
change current directory into the bin directory.
Under the terminal write ./proof "input data file name",
for example ./proof paper_example.txt,
change current directory into the bin directory.
Under the command line ( Start→Run… : cmd ) write proof.exe "input data file name",
for example proof.exe paper_example.txt,
where "input data file name"
is the input data file name.
Input file structure
Refer the paper for the exact meaning of the input parameters. All the numbers should be entered explicitly, using the exponential notation, for
- m - symmetric Galerkin projection dimension, the projection will contain modes a_k such that
|k| <= m.
- M - the so-called near tail dimension, the modes a_k in tail such that
m < |k| <= M are going to be stored explicitely.
- nu - viscosity constant of the Burgers equation, should be positive, refer (1) in the article for the
exact meaning. One may extend a single value to an interval by setting the next value nonzero.
- nu_interval_right_bound - a nonnegative value. The interval
nu+[0,nu_interval_right_bound] defines a set of the viscosity constant values for which the algorithm will
attempt to perform the proof. If one likes to obtain a result for a single value of the viscosity constant, this parameter should equal to
- s - order of polynomial decay of coefficients that is required from the constructed bounds and trapping
regions, have to be an integer satisfying s ≥ 4.
- order - order of the Taylor method used by C0 Lohner algorithm.
- step - step size of the Taylor method used by C0 Lohner algorithm,
a lot of attention should be given to the proper choice of the step size, especially at high
nu values step size should be decreased, because the system is becoming stiff
and blow ups may result.
- a_0 - value of the zero indexed mode (it is constant).
- consider_all_blocks_2D_for_logarithmic_norm - if all blocks in the block decomposition of the
space H (infinite number of blocks) should be considered two-dimensional, otherwise they are considered one-dimensional.
Two-dimensional blocks have some advantages for logarithmic norm computations, consult the paper and the attached supplement
for the details.
- forcing_perturbation_diam - diameter (diam) of the uniform forcing perturbation,
namely the interval [-diam/2, diam/2] is added to each forcing mode appearing in the list that follows.
- forcing - list of the floating point numbers indicating forcing function that is used.
Values corresponds to the modes in ascending order starting at a_1, each mode is defined by two consecutive values,
first is the value of the real part of the mode, second is the value of the complex part of the mode. Number of elements in this list should
be less or equal 2m.
- nonautonomous_forcing - list of the floating point numbers describing the nonautonomous
forcing function that is used.
Values corresponds to the modes in ascending order starting at a_1,
each mode is defined by two consecutive values,
first is the value of the real part of the mode, second is the value of the complex
part of the mode. This is the autonomous part, each mode is multiplied by sin(t) function, and the
obtained function is used as the nonautonomous forcing. Number of elements in this list should be less or equal 2m.
Note that only reasonable values should be used, refer Table 1
and Table 2
in the paper for the example sets of parameters for which the algorithm
completes successfully. For certain values a blow up during the integration process may occur, if so, a proper message is being outputted. More specific
technical parameters can be changed by editing the config.h
file and recompiling the program. In the main
directory there can be found some examples (in the included files named example1.txt
The program saves the output data from the proofs into four output files. When the proof is complete four files appear in the
directory. The numeration used in the name of the files structure (part1, part2, part3) refers to the
steps of the main algorithm presented in the Section 7.1 in the paper. The files are as follows
- forcing.txt - contains the nonautonomous forcing function that was used in the proof.
- proof_part1_lipshitz_constant.txt - contains estimates for the Lipshitz constant of the Poincare map.
- proof_part1_trapping_region.txt - contains the calculated set W_0 in
which the Poincare map \Theta is the contraction.
- proof_part2_absorbing_set.txt - contains the calculated globally attracting absorbing set
- proof_part3_basin_of_attraction_of_trapping_region.txt - contains the record from the numerical
verification if the absorbing set presented in part2 actually is mapped by the Poincare map
\Theta into the set W_0.
- a collection of files named num_integration_data_the_2pi_Map^n(set_0).txt,
where n is a number. These files stores the numerical integration data. Each single file contains
a record from the single computation of the Poincare map \Theta image. The data presented in the files
is a numerical representation of the set, outputted each 10th time step.
This program is an open research software dedicated for performing computer assisted proof
Copyright (C) 2010-2013 Jacek Cyranka
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see
Please consult the webpage www.cyranka.net,
or contact me on jcyranka (at) gmail.com for further details.