Annotation of OpenXM_contrib/PHC/Ada/Continuation/continuation_parameters.ads, Revision 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>