The Conley-Morse Graphs Software
p_whales.h
Go to the documentation of this file.
1/////////////////////////////////////////////////////////////////////////////
2///
3/// @file p_whales.h
4///
5/// Parameters for the whales population model.
6/// This is a configuration file for the program "cmgraphs.cpp"
7/// which defines the ranges of parameters to scan
8/// and the details of the phase space.
9///
10/// @author Pawel Pilarczyk
11///
12/////////////////////////////////////////////////////////////////////////////
13
14// Copyright (C) 1997-2014 by Pawel Pilarczyk.
15//
16// This file is part of my research software package. This is free software:
17// you can redistribute it and/or modify it under the terms of the GNU
18// General Public License as published by the Free Software Foundation,
19// either version 3 of the License, or (at your option) any later version.
20//
21// This software is distributed in the hope that it will be useful,
22// but WITHOUT ANY WARRANTY; without even the implied warranty of
23// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24// GNU General Public License for more details.
25//
26// You should have received a copy of the GNU General Public License
27// along with this software; see the file "license.txt". If not,
28// please, see <https://www.gnu.org/licenses/>.
29
30// Started on February 9, 2008. Last revision: September 11, 2011.
31
32
33#ifndef _CMGRAPHS_P_H_
34#define _CMGRAPHS_P_H_
35
36
37namespace custom {
38
39/// Parameters for sample computations for the 2-dimensional Leslie
40/// population model with 2 varying parameters.
41namespace whales {
42
43
44// --------------------------------------------------
45// --------- the phase space configuration ----------
46// --------------------------------------------------
47
48/// The dimension of the phase space.
49const int spaceDim = 2;
50
51/// Is space wrapping (a.k.a. periodic boundary conditions)
52/// in effect in the given directions?
53const bool spaceWrapping [spaceDim] = {false, false};
54
55/// The initial depth of subdivisions in the phase space.
56const int initialDepth = 6;
57
58/// The final depth of subdivisions in the phase space.
59const int finalDepth = 11;
60
61
62// --------------------------------------------------
63// ------------ the parameter selection -------------
64// --------------------------------------------------
65
66/// The dimension of the parameter space to iterate. Only those parameters
67/// which are varying are taken into consideration here.
68const int paramDim = 2;
69
70/// The numbers of subintervals in each direction of the parameter space.
71/// The type of these numbers must match "parCoord" in "typedefs.h".
72const short int paramSubdiv [paramDim] = {100, 100};
73
74/// The numbers of parameters to subdivide.
75const int paramSelect [paramDim] = {0, 1};
76
77
78// --------------------------------------------------
79// ---------- the parameter space settings ----------
80// --------------------------------------------------
81
82/// The number of all the parameters, both varying and fixed.
83/// 0 - survival rate for adults: s_a in [0,1]
84/// 1 - survival rate for juveniles: s_j in [0,1]
85/// 2 - alpha = e^r > 1 (e.g. e^{4} = approx 54.598)
86/// 3 - beta > 0 (e.g. e^{r-1} = 20.086 - phase space scaling factor)
87/// 4 - options bits:
88/// 0x010 for "s_j := 1 - s_a",
89/// 0x020 for "s_j := s_a",
90/// 0x100 for "beta := alpha / e".
91const int paramCount = 5;
92
93/// The left bounds on the parameters.
94const double paramLeft [paramCount] = {0.0, 0.0,
95 54.598150033144236, 20.085536923187668, 0x100};
96
97/// The right bounds on the parameters.
98const double paramRight [paramCount] = {0.9, 0.9,
99 54.598150033144236, 20.085536923187668, 0x100};
100
101
102// --------------------------------------------------
103// -------------- the phase space size --------------
104// --------------------------------------------------
105
106/// An array which keeps the offset of the rectangular area
107/// in the phase space that contains the invariant sets of interest.
108/// NOTE: The map is defined in such a way that all non-positive images
109/// are forced to be slightly positive; thus the phase space offset
110/// must not be negative.
111const double spaceOffset [spaceDim] = {0.0, 0.0};
112
113/// An array which keeps the width of the rectangular area
114/// in the phase space that contains the invariant sets of interest.
115const double spaceWidth [spaceDim] = {4.0, 4.0};
116
117
118// --------------------------------------------------
119// ------------------ refinements -------------------
120// --------------------------------------------------
121
122/// The number of refinements that should be done if a Morse set
123/// with the trivial index is encountered or if the image of a Morse set
124/// sticks out of the rectangular region to which the computations
125/// are restricted. Set to zero for no refinements.
126const int refineDepth = 15;
127
128/// The maximal allowed size of a set of cubes in the phase space
129/// which can be refined at the initial subdivision level.
130/// Set to zero to suppress any refinements.
131const int maxRefineSize0 = 10000;
132
133/// The maximal allowed size of a set of cubes in the phase space
134/// which can be refined at the subsequent subdivision levels.
135/// Set to zero to suppress any refinements.
136const int maxRefineSize1 = 5000;
137
138
139// --------------------------------------------------
140// ------------------- map images -------------------
141// --------------------------------------------------
142
143/// The maximal allowed diameter of the cubical image of a signle box.
144/// This limit is set up in order to prevent a blow-up of the program
145/// in the memory because of accumulating huge images of boxes.
146const int maxImageDiameter = 10000;
147
148/// The maximal allowed volume of the cubical image of a single box.
149/// This limit is set up in order to prevent a blow-up of the program
150/// in the memory because of accumulating huge images of boxes.
151const int maxImageVolume = 100000;
152
153
154// --------------------------------------------------
155// -------------- max index pair size ---------------
156// --------------------------------------------------
157
158/// The maximal allowed size of the index pair. This size is measured
159/// as the total number of cubes in the index pair and its forward image.
160const int maxIndexPairSize = 10000000;
161
162
163// --------------------------------------------------
164// --------------- joining Morse sets ---------------
165// --------------------------------------------------
166
167/// The maximal number of cubes in a trivial Morse set for which an attempt
168/// is made to join this set with another near-by Morse set.
169/// Set to zero to suppress joining.
170const int maxJoinSize = 0;
171
172/// The maximal size of a connecting orbit between two Morse sets
173/// which can be considered for joining.
174const int maxJoinConnection = 1000;
175
176/// The maximal allowed distance between two Morse sets which can be
177/// considered for joining. Note: It doesn't work with space wrapping.
178const int maxJoinDistance = 100;
179
180
181// --------------------------------------------------
182// ----------------- other settings -----------------
183// --------------------------------------------------
184
185/// Should the ordering between the Morse sets be taken into consideration
186/// while determining whether two Morse decompositions
187/// computed for adjacent parameter boxes are in the same class?
188const bool compareMorseOrdering = true;
189
190/// Ignoring the isolation problem while matching Morse decompositions.
191/// If this constant is set to "true" then Morse sets are matched
192/// with each other indepent of whether the Conley index could be computed
193/// for them or not. Otherwise, 'correct' and 'wrong' Morse sets
194/// are matched with their counterparts in the same category only.
196
197/// Ignoring the isolation problem while computing the Conley index.
198/// If the constant is set to "true" then the index pair constructed on the
199/// basis of a combinatorial Morse set with respect to the dynamics
200/// restricted to the rectangular area of interest is also restricted
201/// to that area by means of projecting all the boxes that stick out
202/// of the region onto a single layer of boxes around the boundary.
204
205
206} // namespace whales
207} // namespace custom
208
209
210#endif // _CMGRAPHS_P_H_
211
const int spaceDim
The dimension of the phase space.
Definition: p_whales.h:49
const double paramRight[paramCount]
The right bounds on the parameters.
Definition: p_whales.h:98
const short int paramSubdiv[paramDim]
The numbers of subintervals in each direction of the parameter space.
Definition: p_whales.h:72
const int refineDepth
The number of refinements that should be done if a Morse set with the trivial index is encountered or...
Definition: p_whales.h:126
const bool ignoreIsolationForConleyIndex
Ignoring the isolation problem while computing the Conley index.
Definition: p_whales.h:203
const double spaceWidth[spaceDim]
An array which keeps the width of the rectangular area in the phase space that contains the invariant...
Definition: p_whales.h:115
const int maxImageDiameter
The maximal allowed diameter of the cubical image of a signle box.
Definition: p_whales.h:146
const int paramDim
The dimension of the parameter space to iterate.
Definition: p_whales.h:68
const int paramSelect[paramDim]
The numbers of parameters to subdivide.
Definition: p_whales.h:75
const int maxRefineSize0
The maximal allowed size of a set of cubes in the phase space which can be refined at the initial sub...
Definition: p_whales.h:131
const int maxImageVolume
The maximal allowed volume of the cubical image of a single box.
Definition: p_whales.h:151
const int maxRefineSize1
The maximal allowed size of a set of cubes in the phase space which can be refined at the subsequent ...
Definition: p_whales.h:136
const double paramLeft[paramCount]
The left bounds on the parameters.
Definition: p_whales.h:94
const int finalDepth
The final depth of subdivisions in the phase space.
Definition: p_whales.h:59
const int maxJoinConnection
The maximal size of a connecting orbit between two Morse sets which can be considered for joining.
Definition: p_whales.h:174
const bool compareMorseOrdering
Should the ordering between the Morse sets be taken into consideration while determining whether two ...
Definition: p_whales.h:188
const int maxJoinDistance
The maximal allowed distance between two Morse sets which can be considered for joining.
Definition: p_whales.h:178
const int maxJoinSize
The maximal number of cubes in a trivial Morse set for which an attempt is made to join this set with...
Definition: p_whales.h:170
const bool spaceWrapping[spaceDim]
Is space wrapping (a.k.a.
Definition: p_whales.h:53
const int paramCount
The number of all the parameters, both varying and fixed.
Definition: p_whales.h:91
const double spaceOffset[spaceDim]
An array which keeps the offset of the rectangular area in the phase space that contains the invarian...
Definition: p_whales.h:111
const int initialDepth
The initial depth of subdivisions in the phase space.
Definition: p_whales.h:56
const bool ignoreIsolationForContinuation
Ignoring the isolation problem while matching Morse decompositions.
Definition: p_whales.h:195
const int maxIndexPairSize
The maximal allowed size of the index pair.
Definition: p_whales.h:160
Customizable settings that are supposed to be modified and/or chosen by the user of the software.