PIPS-NLP
sNlpInfoFromNL.h
Go to the documentation of this file.
1 /* PIPS-NLP
2  * Author: Nai-Yuan Chiang
3  * (C) 2015 Argonne National Laboratory
4  */
5 
6 #ifndef NLPINFOFROMNL
7 #define NLPINFOFROMNL
8 
9 
10 #include "sInfo.h"
11 #include "OoqpVectorHandle.h"
12 #include "OoqpVector.h"
13 
14 #include "AmplData_NL.hpp"
15 
16 class NlpGenVars;
17 class sData;
18 class stochasticInput;
19 class amplGenStochInput;
21 
22 
23 struct ASL_pfgh;
24 
25 class sNlpInfoFromNL : public sInfo
26 {
27 
28 protected:
29 
30  std::string datarootname;
31 
32  ASL_pfgh* asl_local;
33 
34  double ObjScal;
35 
37 
38 
39  int *amplRowMap;
40 
41  std::map<int,int> *LocGloVarMap;
42  std::map<int,int> *LocLocVarMap;
43 
44 
45 
46 
47 
48  std::map<int,int> *LocWmatJacGoffMap;
49  std::map<int,int> *LocTmatJacGoffMap;
50 
51  std::map<int,int> *LocQAmatHesGoffMap;
52  std::map<int,int> *LocQWmatHesGoffMap;
53  std::map<int,int> *LocQTmatHesGoffMap;
54 
56 
57  std::map<int,int> *LocAeqLinkJacGoffMap;
58  std::map<int,int> *LocBeqLocJacGoffMap;
59  std::map<int,int> *LocCineqLinkJacGoffMap;
60  std::map<int,int> *LocDineqLocJacGoffMap;
61 
63 
64 public:
65 
66 
67 
68 
69  sNlpInfoFromNL();
70  virtual ~sNlpInfoFromNL();
71 
72 
73  sNlpInfoFromNL(int nx_in,int my_in,int mz_in,int nzH_in,int nzA_in,int nzC_in);
74  sNlpInfoFromNL( int nx_in,int my_in,int mz_in,int nzH_in,int nzA_in,int nzC_in,
75  int nxL_in,int nxU_in,int nsL_in,int nsU_in);
76 
77  sNlpInfoFromNL(sData *data_in){}
78  sNlpInfoFromNL(sData *data_in, stochasticInput& in);
79  sNlpInfoFromNL(sData *data_in, stochasticInput& in, const int ChildIdx);
80  sNlpInfoFromNL(sData *data_in, amplGenStochInput_AddSlack& in, const int ChildIdx);
81 
82  void createChildren(sData *data_in, stochasticInput& in);
84 
85  virtual double ObjValue( NlpGenVars * vars) ;
86 
87  virtual void ConstraintBody( NlpGenVars * vars, OoqpVector *conEq, OoqpVector *conIneq);
88 
89  virtual int ObjGrad( NlpGenVars * vars, OoqpVector *grad );
90 
91 
92 
93  virtual void Hessian( NlpGenVars * vars, SymMatrix *Hess );
94 
95  virtual void JacFull( NlpGenVars * vars, GenMatrix* JacA, GenMatrix* JacC);
96 
97  virtual void get_InitX0(OoqpVector* vX);
98 
99  virtual void Hessian_FromSon( NlpGenVars * vars, double *tempFromParH );
100 
101  virtual void ObjGrad_FromSon( NlpGenVars * vars, OoqpVector *grad,double *tempFromParGrad );
102 
103  virtual void writeSolution( NlpGenVars * vars_);
104 private:
105  double ObjValue_General( NlpGenVars * vars_);
106  double ObjValue_DummyCon( NlpGenVars * vars_);
107 
108  void ConstraintBody_General( NlpGenVars * vars, OoqpVector *conEq, OoqpVector *conIneq);
109  void ConstraintBody_DummyCon( NlpGenVars * vars, OoqpVector *conEq, OoqpVector *conIneq);
110 
111  void ObjGrad_General( NlpGenVars * vars, OoqpVector *grad );
112  void ObjGrad_DummyCon( NlpGenVars * vars, OoqpVector *grad );
113 
114  void Hessian_General( NlpGenVars * vars, SymMatrix *Hess );
115  void Hessian_DummyCon( NlpGenVars * vars, SymMatrix *Hess );
116 
117  void JacFull_General( NlpGenVars * vars, GenMatrix* JacA, GenMatrix* JacC);
118  void JacFull_DummyCon( NlpGenVars * vars, GenMatrix* JacA, GenMatrix* JacC);
119 
120  void get_InitX0_General(OoqpVector* vX);
122 
123 };
124 
125 
126 
127 
128 #endif
129 
virtual void JacFull(NlpGenVars *vars, GenMatrix *JacA, GenMatrix *JacC)
Definition: sNlpInfoFromNL.C:768
ASL_pfgh * asl_local
Definition: sNlpInfoFromNL.h:32
virtual void get_InitX0(OoqpVector *vX)
Definition: sNlpInfoFromNL.C:1267
std::map< int, int > * LocQAmatHesGoffMap
Definition: sNlpInfoFromNL.h:51
Definition: DoubleMatrix.h:241
std::map< int, int > * LocBeqLocJacGoffMap
Definition: sNlpInfoFromNL.h:58
std::map< int, int > * LocLocVarMap
Definition: sNlpInfoFromNL.h:42
void ObjGrad_General(NlpGenVars *vars, OoqpVector *grad)
Definition: sNlpInfoFromNL.C:682
std::map< int, int > * LocQWmatHesGoffMap
Definition: sNlpInfoFromNL.h:52
void Hessian_DummyCon(NlpGenVars *vars, SymMatrix *Hess)
Definition: sNlpInfoFromNL.C:1182
std::map< int, int > * LocQTmatHesGoffMap
Definition: sNlpInfoFromNL.h:53
void Hessian_General(NlpGenVars *vars, SymMatrix *Hess)
Definition: sNlpInfoFromNL.C:1068
Definition: stochasticInput.hpp:32
int nnzCineqLink
Definition: sNlpInfoFromNL.h:62
std::map< int, int > * LocWmatJacGoffMap
Definition: sNlpInfoFromNL.h:48
void JacFull_DummyCon(NlpGenVars *vars, GenMatrix *JacA, GenMatrix *JacC)
Definition: sNlpInfoFromNL.C:879
Definition: amplGenStochInput_AddSlack.hpp:50
int nnzQParent
Definition: sNlpInfoFromNL.h:55
Definition: sInfo.h:42
virtual int ObjGrad(NlpGenVars *vars, OoqpVector *grad)
Definition: sNlpInfoFromNL.C:548
void get_InitX0_General(OoqpVector *vX)
Definition: sNlpInfoFromNL.C:1275
virtual void writeSolution(NlpGenVars *vars_)
Definition: sNlpInfoFromNL.C:1401
virtual double ObjValue(NlpGenVars *vars)
Definition: sNlpInfoFromNL.C:250
sNlpInfoFromNL(sData *data_in)
Definition: sNlpInfoFromNL.h:77
int nnzQDiag
Definition: sNlpInfoFromNL.h:55
std::map< int, int > * LocGloVarMap
Definition: sNlpInfoFromNL.h:41
void JacFull_General(NlpGenVars *vars, GenMatrix *JacA, GenMatrix *JacC)
Definition: sNlpInfoFromNL.C:777
Definition: sNlpInfoFromNL.h:25
virtual void Hessian(NlpGenVars *vars, SymMatrix *Hess)
Definition: sNlpInfoFromNL.C:955
double ObjValue_General(NlpGenVars *vars_)
Definition: sNlpInfoFromNL.C:259
Definition: NlpGenVars.h:27
int nnzQCross
Definition: sNlpInfoFromNL.h:55
int nnzAeqLink
Definition: sNlpInfoFromNL.h:62
double ObjScal
Definition: sNlpInfoFromNL.h:34
void ConstraintBody_General(NlpGenVars *vars, OoqpVector *conEq, OoqpVector *conIneq)
Definition: sNlpInfoFromNL.C:375
std::map< int, int > * LocAeqLinkJacGoffMap
Definition: sNlpInfoFromNL.h:57
double ObjValue_DummyCon(NlpGenVars *vars_)
Definition: sNlpInfoFromNL.C:326
void ConstraintBody_DummyCon(NlpGenVars *vars, OoqpVector *conEq, OoqpVector *conIneq)
Definition: sNlpInfoFromNL.C:462
std::map< int, int > * LocTmatJacGoffMap
Definition: sNlpInfoFromNL.h:49
std::string datarootname
Definition: sNlpInfoFromNL.h:30
int iAmDistrib
Definition: sNlpInfoFromNL.h:36
virtual void ConstraintBody(NlpGenVars *vars, OoqpVector *conEq, OoqpVector *conIneq)
Definition: sNlpInfoFromNL.C:366
virtual ~sNlpInfoFromNL()
Definition: sNlpInfoFromNL.C:59
Definition: amplGenStochInput.hpp:42
std::map< int, int > * LocDineqLocJacGoffMap
Definition: sNlpInfoFromNL.h:60
void createChildren(sData *data_in, stochasticInput &in)
Definition: sNlpInfoFromNL.C:169
Definition: DoubleMatrix.h:188
int nnzDineqLoc
Definition: sNlpInfoFromNL.h:62
Definition: OoqpVector.h:34
Definition: sData.h:28
virtual void Hessian_FromSon(NlpGenVars *vars, double *tempFromParH)
Definition: sNlpInfoFromNL.C:962
void ObjGrad_DummyCon(NlpGenVars *vars, OoqpVector *grad)
Definition: sNlpInfoFromNL.C:731
int * amplRowMap
Definition: sNlpInfoFromNL.h:39
std::map< int, int > * LocCineqLinkJacGoffMap
Definition: sNlpInfoFromNL.h:59
virtual void ObjGrad_FromSon(NlpGenVars *vars, OoqpVector *grad, double *tempFromParGrad)
Definition: sNlpInfoFromNL.C:557
void get_InitX0_DummyCon(OoqpVector *vX)
Definition: sNlpInfoFromNL.C:1340
sNlpInfoFromNL()
Definition: sNlpInfoFromNL.C:55
int nnzBeqLoc
Definition: sNlpInfoFromNL.h:62