PIPS-NLP
constants.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 DCOPFCONSTANTS_H
6 #define DCOPFCONSTANTS_H
7 
8 #include <math.h>
9 #include <string.h>
10 
11 #define w_s (2*M_PI*freq)
12 //#define epsilon 1E-8
13 #define PS_MAXLINE 1000
14 #define PV_BUS 2
15 #define PQ_BUS 1
16 #define NGEN_AT_BUS_MAX 15
17 #define NLOAD_AT_BUS_MAX 10
18 #define NPHASE 1
19 
20 /* Type of variables */
21 #define DIFF_EQ 1 /* Differential equation */
22 #define ALG_EQ 0 /* Algebraic equation */
23 
24 
25 #define MAXCONNLINES 20
26 
27 class OoqpVector;
28 class Variables;
29 
30 /*
31  Preconding information - struct that hold values for the matrix
32 */
34 public:
35  int n_row;
36  int n_col;
37  int jac_nnz;
38  int hes_nnz;
39 
40  int Aug_nnz;
41 
42  int n_scen;
43 
44  int* jac_irow;
45  int* jac_jcol;
47  double* jac_value;
48 
49  int* hes_irow;
50  int* hes_jcol;
52  double* hes_value;
53 
56 
57  int **varMap;
58  int **conMap;
59 
60 
61  int nx_1st;
62  int my_1st;
63  int ms_1st;
64  int n1stCon;
65 
70 
73 
74  double *full_X_val;
75  double *full_Y_val;
76  double *full_step_x_val;
77  double *full_step_y_val;
78 
79  double *grad_x_val;
80  double *cons_b_val;
81 
82 
85 
86 
87  bool setGrad;
88 
90  PreCondInfo(int nRow, int nCol, int jacnnz_, int hesnnz_, int n1stVar_, int n1stEqCon_, int n1stInCon_,int n_scen_);
91  ~PreCondInfo();
92 
93  void setAggregationVarMap( int scen,int *varMap_);
94  void setAggregationConMap( int scen,int *conMap_);
95 
96  void setAggregationJacMatrix( int *irow_, int *jcol_, int *kcolstrart_, double *ele_);
97  void setAggregationHesMatrix( int *irow_, int *jcol_, int *kcolstrart_, double *ele_);
98  void setAggregation1stVarMap(int *varMap_);
99  void setAggregation1stConMap(int *conMap_);
100 
101 
102 
103  void setPrecondSysRHS(double *sysRhs_){};
104 };
105 
106 inline
107 PreCondInfo::PreCondInfo(int nRow, int nCol, int jacnnz_, int hesnnz_, int n1stVar_,
108  int n1stEqCon_, int n1stInCon_, int n_scen_)
109  : n_row(nRow),n_col(nCol),jac_nnz(jacnnz_), hes_nnz(hesnnz_),n_scen(n_scen_),setGrad(false),
110  full_X(NULL),full_Y(NULL),full_step_x(NULL),full_step_y(NULL),
111  grad_x(NULL),cons_b(NULL)
112 {
113  jac_irow = new int[jac_nnz];
114  jac_jcol = new int[jac_nnz];
115  jac_kcolbeg = new int[nCol+1];
116  jac_value = new double[jac_nnz];
117 
118  hes_irow = new int[hes_nnz];
119  hes_jcol = new int[hes_nnz];
120  hes_kcolbeg = new int[nCol+1];
121  hes_value = new double[hes_nnz];
122 
123  nx_1st = n1stVar_;
124  my_1st = n1stEqCon_;
125  ms_1st = n1stInCon_;
126 
127  n1stCon = my_1st + ms_1st;
128 
129  varMap = new int*[n_scen];
130  conMap = new int*[n_scen];
131 
133 
134  grad_x_val = new double[n_col];
135  cons_b_val = new double[n_row];
136 
137 }
138 
139 inline
141 {
142  delete [] jac_irow;
143  delete [] jac_jcol;
144  delete [] jac_kcolbeg;
145  delete [] jac_value;
146 
147  delete [] hes_irow;
148  delete [] hes_jcol;
149  delete [] hes_kcolbeg;
150  delete [] hes_value;
151 
152  delete [] varMap;
153  delete [] conMap;
154 
155  delete [] grad_x_val;
156  delete [] cons_b_val;
157 
158 }
159 
160 inline void
161 PreCondInfo::setAggregationVarMap( int scen,int *varMap_)
162 {
163  varMap[scen] = varMap_;
164 }
165 
166 inline void
167 PreCondInfo::setAggregationConMap( int scen,int *conMap_)
168 {
169  conMap[scen] = conMap_;
170 }
171 
172 
173 inline void
175 {
176  firstVarMap = varMap_;
177 }
178 
179 inline void
181 {
182  firstConMap = conMap_;
183 }
184 
185 inline void
186 PreCondInfo::setAggregationJacMatrix( int *irow_, int *jcol_, int *kcolstrart_, double *ele_)
187 {
188  memcpy( jac_irow, irow_, jac_nnz * sizeof( int ) );
189  memcpy( jac_jcol, jcol_, jac_nnz * sizeof( int ) );
190  memcpy( jac_kcolbeg, kcolstrart_, (n_col+1) * sizeof( int ) );
191  memcpy( jac_value, ele_, jac_nnz * sizeof( double ) );
192 }
193 
194 inline void
195 PreCondInfo::setAggregationHesMatrix( int *irow_, int *jcol_, int *kcolstrart_, double *ele_)
196 {
197  memcpy( hes_irow, irow_, hes_nnz * sizeof( int ) );
198  memcpy( hes_jcol, jcol_, hes_nnz * sizeof( int ) );
199  memcpy( hes_kcolbeg, kcolstrart_, (n_col+1) * sizeof( int ) );
200  memcpy( hes_value, ele_, hes_nnz * sizeof( double ) );
201 }
202 
203 #if 0
204 inline void
205 PreCondInfo::copyVal( int *irow_, int *jcol_, int *kcolstrart_, double *ele_)
206 {
207  memcpy( hes_irow, irow_, hes_nnz * sizeof( int ) );
208  memcpy( hes_jcol, jcol_, hes_nnz * sizeof( int ) );
209  memcpy( hes_kcolbeg, kcolstrart_, (n_col+1) * sizeof( int ) );
210  memcpy( hes_value, ele_, hes_nnz * sizeof( double ) );
211 }
212 #endif
213 #endif
void setAggregation1stConMap(int *conMap_)
Definition: constants.h:180
Variables * curr_Step
Definition: constants.h:84
int nx_1st
Definition: constants.h:61
void setAggregationConMap(int scen, int *conMap_)
Definition: constants.h:167
int * jac_jcol
Definition: constants.h:45
int ** conMap
Definition: constants.h:58
int n_col
Definition: constants.h:36
double * full_X_val
Definition: constants.h:74
bool setGrad
Definition: constants.h:87
int ms_1st
Definition: constants.h:63
void setAggregationJacMatrix(int *irow_, int *jcol_, int *kcolstrart_, double *ele_)
Definition: constants.h:186
double * jac_value
Definition: constants.h:47
OoqpVector * full_Y
Definition: constants.h:67
int hes_nnz
Definition: constants.h:38
double * full_step_x_val
Definition: constants.h:76
int n_row
Definition: constants.h:35
double * hes_value
Definition: constants.h:52
double * full_Y_val
Definition: constants.h:75
int jac_nnz
Definition: constants.h:37
double * cons_b_val
Definition: constants.h:80
OoqpVector * full_step_y
Definition: constants.h:69
int n_scen
Definition: constants.h:42
int * hes_kcolbeg
Definition: constants.h:51
void setAggregationHesMatrix(int *irow_, int *jcol_, int *kcolstrart_, double *ele_)
Definition: constants.h:195
void setAggregation1stVarMap(int *varMap_)
Definition: constants.h:174
Definition: constants.h:33
int my_1st
Definition: constants.h:62
~PreCondInfo()
Definition: constants.h:140
void setAggregationVarMap(int scen, int *varMap_)
Definition: constants.h:161
int * hes_jcol
Definition: constants.h:50
double * full_step_y_val
Definition: constants.h:77
int * hes_irow
Definition: constants.h:49
OoqpVector * cons_b
Definition: constants.h:72
int ** varMap
Definition: constants.h:57
void setPrecondSysRHS(double *sysRhs_)
Definition: constants.h:103
double * grad_x_val
Definition: constants.h:79
int * jac_kcolbeg
Definition: constants.h:46
Definition: OoqpVector.h:34
Variables * curr_Iter
Definition: constants.h:83
int * jac_irow
Definition: constants.h:44
OoqpVector * full_step_x
Definition: constants.h:68
OoqpVector * grad_x
Definition: constants.h:71
PreCondInfo()
Definition: constants.h:89
int Aug_nnz
Definition: constants.h:40
Definition: Variables.h:23
OoqpVector * full_X
Definition: constants.h:66
int n1stCon
Definition: constants.h:64
int * firstVarMap
Definition: constants.h:54
int * firstConMap
Definition: constants.h:55