PIPS-NLP
sData.h
Go to the documentation of this file.
1 /* PIPS-IPM
2  * Author: Cosmin G. Petra
3  * (C) 2012 Argonne National Laboratory, see documentation for copyright
4  */
5 
6 /* 2015. Modified by Nai-Yuan Chiang for NLP*/
7 
8 
9 #ifndef DATANLPSTOCH
10 #define DATANLPSTOCH
11 
12 #include "NlpGenData.h"
13 #include "StochSymMatrix.h"
14 #include "StochGenMatrix.h"
15 #include "StochVector.h"
16 #include "DoubleMatrixHandle.h"
17 #include "sTree.h"
18 
19 
20 #include <vector>
21 
22 //class sTree;
24 class NlpGenVars;
25 class NlpInfo;
26 
27 
28 class sData : public NlpGenData {
29  public:
30  std::string datarootname;
31  std::string datalocalname;
32 
34  sData( sTree* tree);
35 
39  sData(int useMultiStage, sTree* tree_, OoqpVector * c_in, SymMatrix * Q_in,
40  OoqpVector * xlow_in, OoqpVector * ixlow_in, long long nxlow_,
41  OoqpVector * xupp_in, OoqpVector * ixupp_in, long long nxupp_,
42  GenMatrix * A_in, OoqpVector * bA_in,
43  GenMatrix * C_in,
44  OoqpVector * clow_in, OoqpVector * iclow_in, long long mclow_,
45  OoqpVector * cupp_in, OoqpVector * icupp_in, long long mcupp_,
46  OoqpVector * CeqBody_in,OoqpVector * CIneqBody_in,
49  OoqpVector * dampind_xL_v_in,OoqpVector * dampind_xU_w_in,
50  OoqpVector * dampind_sL_t_in, OoqpVector *dampind_sU_u_in);
51 
52 
53  std::vector<sData*> children;
54  void AddChild(sData* child);
56  public:
57 // long long nxlow, nxupp, mclow, mcupp;
58 
59  int getLocalnx();
60  int getLocalmy();
61  int getLocalmz();
62  int getLocalSizes(int& nx, int& my, int& mz);
63 
64  int getLocalNnz(int& nnzQ, int& nnzB, int& nnzD);
65  int getGlobalNnz();
66 
75  int getmle();
76  int getmli();
77  void sync();
78  public:
79 
80 
81  virtual double objectiveValue( NlpGenVars * vars );
82  virtual void createScaleFromQ();
83  virtual void datainput() {};
84 
85  virtual ~sData();
86 
87  virtual void SetInputNlpPara(NlpInfo *updateNlp);
88 
89 
90  virtual long long getGlobalNx(){return stochNode->N;};
91  virtual long long getGlobalMy(){return stochNode->MY;};
92  virtual long long getGlobalMz(){return stochNode->MZ;};
93 
94 
95  protected:
96  void createChildren();
97  void createChildren(int useMultiStage);
98  void destroyChildren();
99 
101 
103 
104  // only support 2 stage problem. not for multi stage
105  int computeGlobalNnz();
106 };
107 
108 
109 #endif
long long MZ
Definition: sTree.h:114
virtual long long getGlobalMz()
Definition: sData.h:92
int getLocalnx()
Definition: sData.C:213
std::vector< sData * > children
Definition: sData.h:53
int getLocalmz()
Definition: sData.C:231
void AddChild(sData *child)
Definition: sData.C:180
Definition: SparseGenMatrix.h:21
Definition: DoubleMatrix.h:241
Definition: sTree.h:17
long long my
Definition: NlpGenData.h:91
int getLocalNnz(int &nnzQ, int &nnzB, int &nnzD)
Definition: sData.C:287
long long N
Definition: sTree.h:114
std::string datalocalname
Definition: sData.h:31
Definition: NlpInfo.h:16
virtual void datainput()
Definition: sData.h:83
OoqpVectorHandle trialCeqBody
Definition: NlpGenData.h:70
SparseSymMatrix & getLocalQ()
Definition: sData.C:307
virtual void SetInputNlpPara(NlpInfo *updateNlp)
Definition: sData.C:426
Definition: LinearAlgebraPackage.h:21
int getGlobalNnz()
Definition: sData.C:454
virtual double objectiveValue(NlpGenVars *vars)
Definition: sData.C:185
Definition: SparseSymMatrix.h:20
int getLocalmy()
Definition: sData.C:219
void destroyChildren()
Definition: sData.C:171
virtual void createScaleFromQ()
Definition: sData.C:196
SparseGenMatrix & getLocalCrossHessian()
Definition: sData.C:313
Definition: NlpGenVars.h:27
std::string datarootname
Definition: sData.h:30
SparseGenMatrix & getLocalD()
Definition: sData.C:357
SparseGenMatrix & getLocalF()
Definition: sData.C:377
sTree * stochNode
Definition: sData.h:55
long long MY
Definition: sTree.h:114
long long nx
Definition: NlpGenData.h:89
sData(sTree *tree)
Definition: sData.C:19
OoqpVectorHandle trialBarrGrad_x
Definition: NlpGenData.h:54
Definition: DoubleMatrix.h:188
virtual long long getGlobalMy()
Definition: sData.h:91
Definition: OoqpVector.h:34
SparseGenMatrix & getLocalE()
Definition: sData.C:367
SparseGenMatrix & getLocalC()
Definition: sData.C:346
int getmli()
Definition: sData.C:274
Definition: sData.h:28
void sync()
Definition: sData.C:388
int getmle()
Definition: sData.C:262
int global_nnz
Definition: sData.h:102
virtual ~sData()
Definition: sData.C:207
virtual long long getGlobalNx()
Definition: sData.h:90
OoqpVectorHandle trialCIneqBody
Definition: NlpGenData.h:74
OoqpVectorHandle trialBarrGrad_s
Definition: NlpGenData.h:55
SparseGenMatrix & getLocalB()
Definition: sData.C:333
long long mz
Definition: NlpGenData.h:92
SparseGenMatrix & getLocalA()
Definition: sData.C:322
int computeGlobalNnz()
Definition: sData.C:464
int getLocalSizes(int &nx, int &my, int &mz)
Definition: sData.C:245
int useMultiStage
Definition: sData.h:100
void createChildren()
Definition: sData.C:116
Definition: NlpGenData.h:32