Annotation of OpenXM_contrib/PHC/Ada/Continuation/continuation_parameters.ads, Revision 1.1.1.1
1.1 maekawa 1: with Standard_Floating_Numbers; use Standard_Floating_Numbers;
2: with Continuation_Data; use Continuation_Data;
3:
4: package Continuation_Parameters is
5:
6: -- DESCRIPTION :
7: -- This package contains all important parameters and the default values.
8:
9: -- GLOBAL MONITOR :
10:
11: condition : natural := 0; -- 1
12: -- low = smooth paths, high = difficult path
13:
14: block_size : natural := 1; -- 2
15: -- number of paths tracked simultaneously:
16: -- sequential, parallel or a combination of both.
17:
18: max_steps : natural := 500*(condition+1); -- 3
19: -- maximum number of steps along a path
20:
21: start_end_game : double_float := 0.1; -- 4
22: -- distance from target to start the end game
23:
24: endext_order : natural := 0; -- 5
25: -- order of extrapolator in polyhedral end game
26:
27: max_reruns : natural := condition + 1; -- 6
28: -- maximum number of re-runs allowed
29:
30: -- STEP CONTROL (PREDICTOR) :
31:
32: predictor_path_type : natural := 0; -- 7
33: predictor_endg_type : natural := 0; -- 8
34: -- predictor types:
35: -- 0 : secant for x, real for t;
36: -- 1 : secant for x, complex for t;
37: -- 2 : secant for x, geometric for t;
38: -- 3 : tangens for x, real for t;
39: -- 4 : tangens for x, complex for t;
40: -- 5 : tangens for x, geometric for t;
41: -- 6 : Hermite for x, real for t;
42:
43: min_path_step_size : double_float := 10.0**(-6 - condition/4); -- 9
44: min_endg_step_size : double_float := 10.0**(-8 - condition/4); -- 10
45: -- minimum step size along a path and at end of path
46:
47: max_path_step_size : double_float := 0.1/(double_float(condition+1)); -- 11
48: max_endg_step_size : double_float := 0.1/(double_float(condition+2)); -- 12
49: -- maximum step size along a path and at end of path
50:
51: reduction_path_factor : double_float := 0.70; -- 13
52: reduction_endg_factor : double_float := 0.50; -- 14
53: -- reduction factor for step size along a path and at end
54:
55: expansion_path_factor : double_float := 1.25; -- 15
56: expansion_endg_factor : double_float := 1.10; -- 16
57: -- expansion factor for step size
58:
59: success_path_steps : natural := 1 + 2*condition; -- 17
60: success_endg_steps : natural := 1 + 4*condition; -- 18
61: -- threshold on number of successful steps
62: -- before expanding step size
63:
64: power_of_t : positive := 1; -- power of t in the (polyhedral) homotopy
65:
66: -- PATH CLOSENESS (CORRECTOR) :
67:
68: max_path_iter : natural := 4; -- 19
69: max_endg_iter : natural := 4; -- 20
70: -- maximum number of iterations for one corrector step
71: -- along the path and at the end of the path
72:
73: relative_path_residual : double_float := 10.0**(-9 - condition); -- 21
74: relative_endg_residual : double_float := 10.0**(-11 - condition); -- 22
75: absolute_path_residual : double_float := 10.0**(-9 - condition); -- 23
76: absolute_endg_residual : double_float := 10.0**(-11 - condition); -- 24
77: -- desired precision for residuals along the path and at end
78: -- |F(x)| < *_residual, once relative and once absolute
79:
80: relative_path_correction : double_float := 10.0**(-9 - condition); -- 25
81: relative_endg_correction : double_float := 10.0**(-11 - condition); -- 26
82: absolute_path_correction : double_float := 10.0**(-9 - condition); -- 27
83: absolute_endg_correction : double_float := 10.0**(-11 - condition); -- 28
84: -- desired precision for corrections along the path and at end
85: -- |delta(x)| < *_correction, once relative and once absolute
86:
87: -- SOLUTIONS (TOLERANCES) :
88:
89: tol_path_inverse_condition : double_float := 10.0**(-4); -- 29
90: tol_endg_inverse_condition : double_float := 10.0**(-12); -- 30
91: -- tolerance for inverse condition of jacobian to
92: -- decide whether solution is singular or not
93:
94: tol_path_distance : double_float := 10.0**(-4); -- 31
95: tol_endg_distance : double_float := 10.0**(-12); -- 32
96: -- tolerance for two solutions x1, x2 to be clustered,
97: -- when |x1(k) - x2(k)| < tol_*_distance, for all k
98:
99: tol_path_at_infinity : double_float := 10.0**4; -- 33
100: tol_endg_at_infinity : double_float := 10.0**12; -- 34
101: -- tolerance for a solution x to lie a infinity,
102: -- when |x(k)| > tol_at_infinity, for a certain k
103:
104: -- TUNING OF THE PARAMETERS :
105:
106: procedure Tune ( estimate_for_condition : in natural );
107:
108: -- DESCRIPTION :
109: -- Given an estimate for the condition of the homotopy, parameters
110: -- will be set, according to the formulas in the defaults.
111:
112: procedure Tune_Endgm_Pred ( extrapolation_order : in natural );
113:
114: -- DESCRIPTION :
115: -- Determines the settings for the predictor in the end game,
116: -- depending on the extrapolation order.
117:
118: -- CREATING PARAMETER SETS :
119:
120: function Create_for_Path return Pred_Pars;
121: function Create_End_Game return Pred_Pars;
122: function Create_for_Path return Corr_Pars;
123: function Create_End_Game return Corr_Pars;
124:
125: -- DESCRIPTION :
126: -- Given the values for the parameters, sets of predictor and
127: -- corrector parameters will be created.
128:
129: end Continuation_Parameters;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>