PIPS-NLP
sFactory.h
Go to the documentation of this file.
1 /* PIPS
2  Authors: Cosmin Petra
3  See license and copyright information in the documentation */
4 
5 /* 2015. Modified by Nai-Yuan Chiang for NLP*/
6 
7 #ifndef SPSTOCHFACTORY_NLP
8 #define SPSTOCHFACTORY_NLP
9 
10 #include "NlpGen.h"
11 #include "mpi.h"
12 
13 class NlpGenData;
14 class sData;
15 
16 class NlpGenVars;
17 class StochInputTree;
18 class stochasticInput;
19 
20 class sTree;
21 class StochSymMatrix;
22 class sResiduals;
23 class sVars;
24 class sLinsys;
25 class sLinsysRoot;
26 class sLinsysLeaf;
27 
28 class NlpInfo;
29 
30 #include "StochResourcesMonitor.h"
31 
32 class sFactory : public NlpGen {
33  protected:
34  int m_blocks;
35 
36  long long nnzQ, nnzA, nnzC;
37  public:
38  sFactory( stochasticInput&, MPI_Comm comm=MPI_COMM_WORLD );
39 
44 
45 
46  protected:
47  sFactory( int nx_, int my_, int mz_, int nnzQ_, int nnzA_, int nnzC_ );
48  sFactory();
49 
50  public:
51 
52  virtual ~sFactory();
53 
54  virtual Data * makeData();
55  virtual Data * makeDataMulti();
56 
57  virtual Data * makeData(NlpInfo *updateNlp);
58 
59 
60  virtual Residuals * makeResiduals( Data * prob_in );
61  virtual Variables * makeVariables( Data * prob_in );
62 
63  virtual LinearSystem* makeLinsys( Data * prob_in );
64 
65 
66  virtual void joinRHS( OoqpVector& rhs_in, OoqpVector& rhs1_in,
67  OoqpVector& rhs2_in, OoqpVector& rhs3_in );
68 
69  virtual void separateVars( OoqpVector& x_in, OoqpVector& y_in,
70  OoqpVector& z_in, OoqpVector& vars_in );
71 
72  void joinRHSXSYZ( OoqpVector& rhs_in, OoqpVector& rhs1_in,
73  OoqpVector& rhs2_in, OoqpVector& rhs3_in, OoqpVector& rhs4_in );
74 
75  void separateVarsXSYZ( OoqpVector& x_in, OoqpVector& s_in,
76  OoqpVector& y_in, OoqpVector& z_in, OoqpVector& vars_in);
77 
78  virtual sLinsysRoot* newLinsysRoot() = 0;
79  virtual sLinsysRoot* newLinsysRoot(sData* prob,
80  OoqpVector* dd,OoqpVector* dq,
81  OoqpVector* nomegaInv, OoqpVector* rhs,OoqpVector* additiveDiag_) = 0;
82 
83  virtual sLinsysLeaf* newLinsysLeaf();
84  virtual sLinsysLeaf* newLinsysLeaf(sData* prob,
85  OoqpVector* dd,OoqpVector* dq,
86  OoqpVector* nomegaInv, OoqpVector* rhs, OoqpVector* additiveDiag_);
87 
88 
91  // Variables
92 
93  virtual void iterateStarted();
94  virtual void iterateEnded();
95 
96 
98  std::vector<sVars*> registeredVars;
99 
101 
103  double m_tmTotal;
104 
105 
106  std::string datarootname;
107 
108 
109 // int nxLOri_All, nxUOri_All,nsLOri_All,nsUOri_All;
110 };
111 
112 #endif
Definition: sFactory.h:32
virtual Variables * makeVariables(Data *prob_in)
Definition: sFactory.C:442
Definition: Data.h:16
Definition: sResiduals.h:23
void separateVarsXSYZ(OoqpVector &x_in, OoqpVector &s_in, OoqpVector &y_in, OoqpVector &z_in, OoqpVector &vars_in)
Definition: sFactory.C:554
Definition: sTree.h:17
long long nnzQ
Definition: sFactory.h:36
Definition: stochasticInput.hpp:32
virtual void iterateEnded()
Definition: sFactory.C:568
sLinsysRoot * linsys
Definition: sFactory.h:100
long long nnzA
Definition: sFactory.h:36
sData * data
Definition: sFactory.h:90
Definition: NlpInfo.h:16
virtual ~sFactory()
Definition: sFactory.C:86
Definition: Residuals.h:22
Definition: StochResourcesMonitor.h:107
int m_blocks
Definition: sFactory.h:34
sFactory(StochInputTree *)
Definition: sFactory.h:43
virtual void joinRHS(OoqpVector &rhs_in, OoqpVector &rhs1_in, OoqpVector &rhs2_in, OoqpVector &rhs3_in)
Definition: sFactory.C:535
Definition: sLinsysLeaf.h:38
Definition: LinearSystem.h:17
Definition: NlpGenVars.h:27
virtual Data * makeDataMulti()
Definition: sFactory.C:316
virtual void separateVars(OoqpVector &x_in, OoqpVector &y_in, OoqpVector &z_in, OoqpVector &vars_in)
Definition: sFactory.C:542
virtual void iterateStarted()
Definition: sFactory.C:561
Definition: sLinsysRoot.h:22
std::string datarootname
Definition: sFactory.h:106
virtual LinearSystem * makeLinsys(Data *prob_in)
Definition: sFactory.C:526
sTree * tree
Definition: sFactory.h:89
void joinRHSXSYZ(OoqpVector &rhs_in, OoqpVector &rhs1_in, OoqpVector &rhs2_in, OoqpVector &rhs3_in, OoqpVector &rhs4_in)
Definition: sFactory.C:548
Definition: OoqpVector.h:34
long long nnzC
Definition: sFactory.h:36
StochIterateResourcesMonitor iterTmMonitor
Definition: sFactory.h:102
sFactory()
Definition: sFactory.C:82
double m_tmTotal
Definition: sFactory.h:103
Definition: sData.h:28
virtual Data * makeData()
Definition: sFactory.C:201
sResiduals * resid
Definition: sFactory.h:97
Definition: sLinsys.h:26
Definition: sVars.h:17
Definition: StochInputTree.h:30
std::vector< sVars * > registeredVars
Definition: sFactory.h:98
Definition: Variables.h:23
virtual sLinsysRoot * newLinsysRoot()=0
virtual sLinsysLeaf * newLinsysLeaf()
Definition: sFactory.C:92
virtual Residuals * makeResiduals(Data *prob_in)
Definition: sFactory.C:515
Definition: NlpGen.h:57
Definition: StochSymMatrix.h:20
Definition: NlpGenData.h:32