The Conley-Morse Graphs Software
p_inf.h
Go to the documentation of this file.
1/////////////////////////////////////////////////////////////////////////////
2///
3/// @file p_inf.h
4///
5/// Parameters for an infectious disease ODE.
6///
7/// @author Pawel Pilarczyk
8///
9/////////////////////////////////////////////////////////////////////////////
10
11// Copyright (C) 1997-2014 by Pawel Pilarczyk.
12//
13// This file is part of my research software package. This is free software:
14// you can redistribute it and/or modify it under the terms of the GNU
15// General Public License as published by the Free Software Foundation,
16// either version 3 of the License, or (at your option) any later version.
17//
18// This software is distributed in the hope that it will be useful,
19// but WITHOUT ANY WARRANTY; without even the implied warranty of
20// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21// GNU General Public License for more details.
22//
23// You should have received a copy of the GNU General Public License
24// along with this software; see the file "license.txt". If not,
25// please, see <https://www.gnu.org/licenses/>.
26
27// Started on March 13, 2013. Last revision: July 8, 2014.
28
29
30#ifndef _CMGRAPHS_P_H_
31#define _CMGRAPHS_P_H_
32
33
34namespace custom {
35
36/// Parameters for the two coupled quintic Vanderpol maps.
37namespace InfModel {
38
39
40// --------------------------------------------------
41// --------- the phase space configuration ----------
42// --------------------------------------------------
43
44/// The dimension of the phase space.
45const int spaceDim = 4;
46
47/// Is space wrapping (a.k.a. periodic boundary conditions)
48/// in effect in the given directions?
49const bool spaceWrapping [spaceDim] = {false, false, false, false};
50
51/// The initial depth of subdivisions in the phase space.
52const int initialDepth = 3;
53
54/// The final depth of subdivisions in the phase space.
55const int finalDepth = 9;
56
57
58// --------------------------------------------------
59// ------------ the parameter selection -------------
60// --------------------------------------------------
61
62/// The dimension of the parameter space to iterate. Only those parameters
63/// which are varying are taken into consideration here.
64const int paramDim = 2;
65
66/// The numbers of subintervals in each direction of the parameter space.
67/// The type of these numbers must match "parCoord" in "typedefs.h".
68const short int paramSubdiv [paramDim] = {200, 200};
69
70/// The numbers of parameters to subdivide.
71const int paramSelect [paramDim] = {2, 4};
72
73
74// --------------------------------------------------
75// ---------- the parameter space settings ----------
76// --------------------------------------------------
77
78/// The number of all the parameters, both varying and fixed.
79// Following (7) from the notes from Oct 13, 2013.
80const int paramCount = 16;
81// K1, K2, alpha1, alpha2, beta1, beta2,
82// mu1, mu2, gamma1, gamma2, theta1, theta2, sigma1, sigma2, phi1, phi2;
83// note: alpha1*k1=alpha2*k2 for the 4D model to be valid
84
85/// The left bounds on the parameters.
86//const double paramLeft [paramCount] = {100, 100, 1.0/7, -1, 0.5, -1,
87// 0.1, 0.1, 12, 12, 0.5, 0.5, 0.2, 0.2, 16, 16};
88const double paramLeft [paramCount] = {100, 100, 0, -1, 0.48, -1,
89 0.1, 0.1, 12, 12, 0.5, 0.5, 0.2, 0.2, 16, 16};
90
91/// The right bounds on the parameters.
92//const double paramRight [paramCount] = {100, 100, 1.0/7, -1, 0.5, -1,
93// 0.1, 0.1, 12, 12, 0.5, 0.5, 0.2, 0.2, 16, 16};
94const double paramRight [paramCount] = {100, 100, 0.5, -1, 0.53, -1,
95 0.1, 0.1, 12, 12, 0.5, 0.5, 0.2, 0.2, 16, 16};
96
97#define ALPHA1_EQ_ALPHA2
98#define BETA1_EQ_BETA2
99
100/* #define NONLINEAR_PARAMETERS
101inline double nonlinearParameter (int j, int c)
102{
103 int i = paramSelect [j];
104 double paramWidth = paramRight [i] - paramLeft [i];
105 if (i == 2)
106 {
107 return (paramLeft [i] + (c * paramWidth * c /
108 paramSubdiv [j]) / paramSubdiv [j]);
109 }
110 else
111 {
112 return (paramLeft [i] + c * paramWidth / paramSubdiv [j]);
113 }
114}*/ /* nonlinearParameter */
115
116
117// --------------------------------------------------
118// -------------- the phase space size --------------
119// --------------------------------------------------
120
121/// The offset of the rectangular area
122/// in the phase space which contains the invariant sets of interest.
123const double spaceOffset [spaceDim] = {0, 0, 0, 0};
124
125/// The width of the rectangular area
126/// in the phase space which contains the invariant sets of interest.
127const double spaceWidth [spaceDim] = {100, 100, 100, 100};
128
129
130// --------------------------------------------------
131// ------------------ refinements -------------------
132// --------------------------------------------------
133
134/// The number of refinements that should be done if a Morse set
135/// with the trivial index is encountered or if the image of a Morse set
136/// sticks out of the rectangular region to which the computations
137/// are restricted. Set to zero for no refinements.
138const int refineDepth = 5;
139
140/// The maximal allowed size of a set of cubes in the phase space
141/// which can be refined at the initial subdivision level.
142/// Set to zero to suppress any refinements.
143const int maxRefineSize0 = 3000;
144
145/// The maximal allowed size of a set of cubes in the phase space
146/// which can be refined at the subsequent subdivision levels.
147/// Set to zero to suppress any refinements.
148const int maxRefineSize1 = 3000;
149
150
151// --------------------------------------------------
152// ------------------- map images -------------------
153// --------------------------------------------------
154
155/// The maximal allowed diameter of the cubical image of a signle box.
156/// This limit is set up in order to prevent a blow-up of the program
157/// in the memory because of accumulating huge images of boxes.
158/// Should be at least 3 to accept repelling boxes.
159const int maxImageDiameter = 50;
160
161/// The maximal allowed volume of the cubical image of a single box.
162/// This limit is set up in order to prevent a blow-up of the program
163/// in the memory because of accumulating huge images of boxes.
164/// Should be at least 3^spaceDim to accept repelling boxes.
165const int maxImageVolume = 361;
166
167
168// --------------------------------------------------
169// -------------- max index pair size ---------------
170// --------------------------------------------------
171
172/// The maximal allowed size of the index pair. This size is measured
173/// as the total number of cubes in the index pair and its forward image.
174const int maxIndexPairSize = 10000;
175
176
177// --------------------------------------------------
178// --------------- joining Morse sets ---------------
179// --------------------------------------------------
180
181/// The maximal number of cubes in a trivial Morse set for which an attempt
182/// is made to join this set with another near-by Morse set.
183/// Set to zero to suppress joining.
184const int maxJoinSize = 2000;
185
186/// The maximal size of a connecting orbit between two Morse sets
187/// which can be considered for joining.
188const int maxJoinConnection = 1000;
189
190/// The maximal allowed distance between two Morse sets which can be
191/// considered for joining. Note: It doesn't work with space wrapping.
192const int maxJoinDistance = 10;
193
194
195// --------------------------------------------------
196// ----------------- other settings -----------------
197// --------------------------------------------------
198
199/// Should the ordering between the Morse sets be taken into consideration
200/// while determining whether two Morse decompositions
201/// computed for adjacent parameter boxes are in the same class?
202const bool compareMorseOrdering = false;
203
204/// Ignoring the isolation problem while matching Morse decompositions.
205/// If this constant is set to "true" then Morse sets are matched
206/// with each other indepent of whether the Conley index could be computed
207/// for them or not. Otherwise, 'correct' and 'wrong' Morse sets
208/// are matched with their counterparts in the same category only.
210
211/// Ignoring the isolation problem while computing the Conley index.
212/// If the constant is set to "true" then the index pair constructed on the
213/// basis of a combinatorial Morse set with respect to the dynamics
214/// restricted to the rectangular area of interest is also restricted
215/// to that area by means of projecting all the boxes that stick out
216/// of the region onto a single layer of boxes around the boundary.
218
219
220} // namespace InfModel
221} // namespace custom
222
223
224#endif // _CMGRAPHS_P_H_
225
const int refineDepth
The number of refinements that should be done if a Morse set with the trivial index is encountered or...
Definition: p_inf.h:138
const int maxIndexPairSize
The maximal allowed size of the index pair.
Definition: p_inf.h:174
const double spaceOffset[spaceDim]
The offset of the rectangular area in the phase space which contains the invariant sets of interest.
Definition: p_inf.h:123
const int maxImageVolume
The maximal allowed volume of the cubical image of a single box.
Definition: p_inf.h:165
const int finalDepth
The final depth of subdivisions in the phase space.
Definition: p_inf.h:55
const bool spaceWrapping[spaceDim]
Is space wrapping (a.k.a.
Definition: p_inf.h:49
const bool ignoreIsolationForContinuation
Ignoring the isolation problem while matching Morse decompositions.
Definition: p_inf.h:209
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_inf.h:143
const int paramSelect[paramDim]
The numbers of parameters to subdivide.
Definition: p_inf.h:71
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_inf.h:148
const int paramDim
The dimension of the parameter space to iterate.
Definition: p_inf.h:64
const double spaceWidth[spaceDim]
The width of the rectangular area in the phase space which contains the invariant sets of interest.
Definition: p_inf.h:127
const int maxImageDiameter
The maximal allowed diameter of the cubical image of a signle box.
Definition: p_inf.h:159
const int maxJoinConnection
The maximal size of a connecting orbit between two Morse sets which can be considered for joining.
Definition: p_inf.h:188
const int spaceDim
The dimension of the phase space.
Definition: p_inf.h:45
const bool compareMorseOrdering
Should the ordering between the Morse sets be taken into consideration while determining whether two ...
Definition: p_inf.h:202
const double paramRight[paramCount]
The right bounds on the parameters.
Definition: p_inf.h:94
const int maxJoinDistance
The maximal allowed distance between two Morse sets which can be considered for joining.
Definition: p_inf.h:192
const double paramLeft[paramCount]
The left bounds on the parameters.
Definition: p_inf.h:88
const int paramCount
The number of all the parameters, both varying and fixed.
Definition: p_inf.h:80
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_inf.h:184
const short int paramSubdiv[paramDim]
The numbers of subintervals in each direction of the parameter space.
Definition: p_inf.h:68
const int initialDepth
The initial depth of subdivisions in the phase space.
Definition: p_inf.h:52
const bool ignoreIsolationForConleyIndex
Ignoring the isolation problem while computing the Conley index.
Definition: p_inf.h:217
Customizable settings that are supposed to be modified and/or chosen by the user of the software.