PIPS-NLP
pipsOptions.h
Go to the documentation of this file.
1 /* PIPS-NLP *
2  * Authors: Nai-Yuan Chiang *
3  * (C) 2015 Argonne National Laboratory */
4 
5 #ifndef PIPSOPTIONS_H
6 #define PIPSOPTIONS_H
7 
10 {
11  public:
12 
14 
15  /* --- adding slacks to get parallelism setting: */
17 
18  /* ----------------------- General options ---------------------------- */
20  int prtLvl;
21 
23  int max_iter;
24 
26  double conv_tol;
27 
28  /* -------- Options max no of iterative refinement ----------
29  SymLinearSolver = (1) MA57
30  = 2 PARDISO
31  = 6 Umfpack */
32 
34 
35  /* -------- Options about using PETSC ---------- */
36  int UsePetsc;
41 
42 
43  /* ----------------------- options for iterative refinement ---------------------------- */
44 
45  /* -------- do iterative refinement ----------
46  DoIR_Aug = 0 default */
47  int DoIR_Aug;
48 
49  /* -------- do iterative refinement ----------
50  DoIR_Full = 0 default */
51  int DoIR_Full;
52 
53  /* -------- Options max no of iterative refinement ----------
54  MaxIR = 8 default */
55  int MaxIR;
56 
57  /* -------- tol of iterative refinement ----------
58  IRtol = 1e-8 default */
59  double IRtol;
60 
61 
62 
63 
64  /* -------- do tiny step test --------
65  DoTinyStepTest = (0)
66  (1) do it*/
68 
69  /* -------- assume Mat is always singular once detected--------
70  AssuneMatSingular = (0)
71  (1) do it*/
73 
74 
75 
76 
77  int outerSolve; // 0: Default solve - Schur complement based decomposition
78  // 1: Iterative refinement
79  // 2: BiCGStab
80  // 3: Default solve - Schur complement based decomposition, do not compress!
81 
82  int splitHesDiag; // 0: default solve - add diag part (X^{-1}Z) to Q
83  // 1: separate them : FIXME_NY: now only works if outerSolve =3
84 
85 
86  /* -------- about schur complement solver -------- */
87 
88  int BuildSchurComp; //(0): do not build SC 1: use dense Schur 2: use sparse Schur
89 
90  /* -------- how to compute Schur -------- */
91  int SolveSchurScheme; // (0): LDLt 2: BICG
92 
93 
94  /* -------- about Reduced space solver -------- */
95  int UseReducedSpace; // (0): full sapce 1: reduced space
96  int RS_SchurSolver; // (0): build schur from full sapce 1: rfrom educed space
97  int RS_MaxIR; // do IR from LU solver (0): not do IR
98  double RS_LU_PivotLV;
99 
100  /* -------- about dWd test -------- */
101  int dWd_test; // (0): not applied 1: applied dwd test 2: do check in advance
102  int dWd_test_soc; // (0): not applied 1: applied dwd test
103 
104 
105  /* -------- use filter -------- */
106  int UseFilter; // 0: not applied (1): applied filter
107 
108  int FilterResetStep; // 0: not applied (5): 5 rejection
109 
110  /* -------- ma57 parameter-------- */
111  double HSL_PivotLV; // close to zero=fast, close to 0.5=stable (1e-4) 1e-8 cannot solve pdegas!
112  int MA57_Ordering; // 5 automatic choice(MA47 or Metis); 4 use Metis (ND); 3 min degree ordering as in MA27; 2 use MC47;
113 
114  /* -------- max number of Line search -------- */
116 
117  /* Use Partitioning Algorithm*/
118  int NP_Alg;
119 
120 
121  /* this is the constant used in test dwd >= kappa_tWt d'd*/
122  double kappa_tWt;
123 
124  /* use mu in the test dwd >= kappa_tWt * mu * d'd or not */
126 
127 
128  /* check constraint violation in switching condition*/
130 
131  /* do second order correction or not */
132  int DoSOC;
133 
134 
135 
136  /* -------- about regularization -------- */
137 
138  /* use different method to compute dual regularization
139  * 0: compute dual regularization from costant*\mu
140  * 1: use VZ's method: set dual regualrization from constraint violation. here we need to change the filter tests
141  */
143 
144 
145  /* -------- is NLP or QP/LP-------- */
146  int isNLP; // 0: is QP/LP (1): is NLP
147 
148 
149  /* ============================ methods =============================== */
150 
152  pipsOptions();
153 
155  ~pipsOptions();
156 
158  void readFile(void);
159 
161  bool parseLine(char *line);
162 
163  void copyFrom(pipsOptions &pipsOpt);
164 
166  void print();
167 
168 
170  void defGloOpt();
171 
172 
173 };
174 
175 #endif
176 
pipsOptions()
Definition: pipsOptions.C:92
void copyFrom(pipsOptions &pipsOpt)
Definition: pipsOptions.C:227
int DoSOC
Definition: pipsOptions.h:132
int MA57_Ordering
Definition: pipsOptions.h:112
double HSL_PivotLV
Definition: pipsOptions.h:111
double IRtol
Definition: pipsOptions.h:59
int SCOPF_precond
Definition: pipsOptions.h:40
int UsePetscOuter
Definition: pipsOptions.h:39
int prtLvl
Definition: pipsOptions.h:20
int UsePetsc
Definition: pipsOptions.h:36
double conv_tol
Definition: pipsOptions.h:26
void print()
Definition: pipsOptions.C:684
int SolveSchurScheme
Definition: pipsOptions.h:91
void defGloOpt()
Definition: pipsOptions.C:146
int outerSolve
Definition: pipsOptions.h:77
int MaxIR
Definition: pipsOptions.h:55
bool parseLine(char *line)
Definition: pipsOptions.C:405
int UseFilter
Definition: pipsOptions.h:106
int LineSearchMatStep
Definition: pipsOptions.h:115
int User_Defined_SymMat
Definition: pipsOptions.h:38
int dWd_test_soc
Definition: pipsOptions.h:102
int NP_Alg
Definition: pipsOptions.h:118
int RS_MaxIR
Definition: pipsOptions.h:97
int User_Defined_PC
Definition: pipsOptions.h:37
int UseDualRegAlg
Definition: pipsOptions.h:142
Definition: pipsOptions.h:9
int DoIR_Full
Definition: pipsOptions.h:51
int FilterResetStep
Definition: pipsOptions.h:108
int BuildSchurComp
Definition: pipsOptions.h:88
int DoTinyStepTest
Definition: pipsOptions.h:67
int dWd_test
Definition: pipsOptions.h:101
double RS_LU_PivotLV
Definition: pipsOptions.h:98
~pipsOptions()
Definition: pipsOptions.C:140
int DoIR_Aug
Definition: pipsOptions.h:47
int AssumeMatSingular
Definition: pipsOptions.h:72
int SymLinearSolver
Definition: pipsOptions.h:33
int UseReducedSpace
Definition: pipsOptions.h:95
double kappa_tWt
Definition: pipsOptions.h:122
int splitHesDiag
Definition: pipsOptions.h:82
int kappaWithMu
Definition: pipsOptions.h:125
int max_iter
Definition: pipsOptions.h:23
int CheckSmallConstVio
Definition: pipsOptions.h:129
void readFile(void)
Definition: pipsOptions.C:236
static pipsOptions * defOpt
Definition: pipsOptions.h:13
int AddSlackParallelSetting
Definition: pipsOptions.h:16
int RS_SchurSolver
Definition: pipsOptions.h:96
int isNLP
Definition: pipsOptions.h:146