PIPS-NLP
sLinsysRootAggregation.h
Go to the documentation of this file.
1 /* PIPS-NLP *
2  * Author: Nai-Yuan Chiang *
3  * (C) 2015 Argonne National Laboratory. */
4 
5 #ifndef SROOTLINSYSAGG
6 #define SROOTLINSYSAGG
7 
8 #include "sLinsysRoot.h"
9 
10 class sFactory;
11 class sData;
12 
13 // DEBUG only
14 //#include "ScaDenSymMatrix.h"
15 
20  protected:
22  public:
23  sLinsysRootAggregation(sFactory * factory_, sData * prob_);
25  sData* prob_,
26  OoqpVector* dd_, OoqpVector* dq_, OoqpVector* nomegaInv_,
28  virtual ~sLinsysRootAggregation();
29 
30  virtual SymMatrix* createKKT (sData* prob);
31  virtual DoubleLinearSolver*
32  createSolver (sData* prob,
33  SymMatrix* kktmat);
34 
35 
36  virtual int factor2(sData *prob, Variables *vars);
37  /* Atoms methods of FACTOR2 for a non-leaf linear system */
38 
39  virtual void initializeKKT(sData* prob, Variables* vars){};
40  virtual void reduceKKT();
41  virtual int factorizeKKT();
42  virtual void finalizeKKT(sData* prob, Variables* vars){};
43 
44  virtual void Dsolve ( sData *prob, OoqpVector& x);
45  virtual void Lsolve ( sData *prob, OoqpVector& x );
46  virtual void Ltsolve( sData *prob, OoqpVector& x );
47  virtual void solveReduced( sData *prob, SimpleVector& b);
48 
49 
51  int row, int col, int drow, int dcol,
52  MPI_Comm comm);
53 
54 
57 
61 
62  int redDim;
63  int redNnz;
64 
65  int QNnz;
66  int JNnz;
67 
68  int n_col;
69  int n_row;
70 
71 
72  // dummy dense mat
74 
77 
78  // vectors for the reduced system
85 
92 
95 
98 
99  bool setIX;
100 
101  protected:
102  void calcPreCondKKTResids(Data *prob_in);
103  void computeReducedRhs();
104 
105  private:
106  void _joinRedRHS( OoqpVector& rhs_in, OoqpVector& rhs1_in, OoqpVector& rhs2_in);
107  void _separateVars( OoqpVector& vars_in, OoqpVector& x_in, OoqpVector& y_in );
108  void _set1stStVar(SimpleVector& redSol,SimpleVector& sol0);
109 };
110 
111 #endif
112 
Definition: sFactory.h:32
SimpleVector * temp_ixlow
Definition: sLinsysRootAggregation.h:75
SimpleVector * rw
Definition: sLinsysRootAggregation.h:82
Definition: Data.h:16
SparseGenMatrix * MatJ
Definition: sLinsysRootAggregation.h:56
DenseSymMatrix * CtDC
Definition: sLinsysRootAggregation.h:73
virtual SymMatrix * createKKT(sData *prob)
Definition: sLinsysRootAggregation.C:150
Definition: SparseGenMatrix.h:21
SimpleVector * temp_y
Definition: sLinsysRootAggregation.h:87
void submatrixReduce(DenseSymMatrix *A, int row, int col, int drow, int dcol, MPI_Comm comm)
OoqpVector * additiveDiag
Definition: NlpGenLinsys.h:74
int redNnz
Definition: sLinsysRootAggregation.h:63
SimpleVector * temp_rhs_y
Definition: sLinsysRootAggregation.h:94
SimpleVector * temp_w
Definition: sLinsysRootAggregation.h:91
int QNnz
Definition: sLinsysRootAggregation.h:65
virtual int factorizeKKT()
Definition: sLinsysRootAggregation.C:248
SimpleVector * rA
Definition: sLinsysRootAggregation.h:80
void computeReducedRhs()
Definition: sLinsysRootAggregation.C:422
virtual void reduceKKT()
Definition: sLinsysRootAggregation.C:232
virtual int factor2(sData *prob, Variables *vars)
Definition: sLinsysRootAggregation.C:185
Definition: SparseSymMatrix.h:20
int redDim
Definition: sLinsysRootAggregation.h:62
NlpGen * factory
Definition: NlpGenLinsys.h:61
SimpleVector * temp_rhs_x
Definition: sLinsysRootAggregation.h:93
SparseSymMatrix * MatQ
Definition: sLinsysRootAggregation.h:55
virtual DoubleLinearSolver * createSolver(sData *prob, SymMatrix *kktmat)
Definition: sLinsysRootAggregation.C:178
SimpleVector * rphi
Definition: sLinsysRootAggregation.h:84
SimpleVector * rv
Definition: sLinsysRootAggregation.h:81
SimpleVector * temp_v
Definition: sLinsysRootAggregation.h:90
sLinsysRootAggregation()
Definition: sLinsysRootAggregation.h:21
void _separateVars(OoqpVector &vars_in, OoqpVector &x_in, OoqpVector &y_in)
Definition: sLinsysRootAggregation.C:477
SimpleVector * temp_nrow
Definition: sLinsysRootAggregation.h:59
Definition: sLinsysRoot.h:22
SimpleVector * temp_gamma
Definition: sLinsysRootAggregation.h:88
virtual ~sLinsysRootAggregation()
Definition: sLinsysRootAggregation.C:114
bool setIX
Definition: sLinsysRootAggregation.h:99
Definition: DoubleLinearSolver.h:24
int JNnz
Definition: sLinsysRootAggregation.h:66
Definition: DoubleMatrix.h:188
Definition: OoqpVector.h:34
SimpleVector * rQ
Definition: sLinsysRootAggregation.h:79
virtual void Dsolve(sData *prob, OoqpVector &x)
Definition: sLinsysRootAggregation.C:280
SimpleVector * temp_xu
Definition: sLinsysRootAggregation.h:97
void _set1stStVar(SimpleVector &redSol, SimpleVector &sol0)
Definition: sLinsysRootAggregation.C:455
void calcPreCondKKTResids(Data *prob_in)
Definition: sLinsysRootAggregation.C:333
virtual void initializeKKT(sData *prob, Variables *vars)
Definition: sLinsysRootAggregation.h:39
Definition: sData.h:28
SimpleVector * temp_x
Definition: sLinsysRootAggregation.h:86
Definition: DenseSymMatrix.h:20
virtual void Lsolve(sData *prob, OoqpVector &x)
Definition: sLinsysRootAggregation.C:257
SimpleVector * temp_phi
Definition: sLinsysRootAggregation.h:89
void _joinRedRHS(OoqpVector &rhs_in, OoqpVector &rhs1_in, OoqpVector &rhs2_in)
Definition: sLinsysRootAggregation.C:465
SimpleVector * temp_ncol
Definition: sLinsysRootAggregation.h:60
Definition: sLinsysRootAggregation.h:19
SimpleVector * temp_ixupp
Definition: sLinsysRootAggregation.h:76
int n_row
Definition: sLinsysRootAggregation.h:69
virtual void finalizeKKT(sData *prob, Variables *vars)
Definition: sLinsysRootAggregation.h:42
virtual void Ltsolve(sData *prob, OoqpVector &x)
Definition: sLinsysRootAggregation.C:294
Definition: Variables.h:23
Definition: SimpleVector.h:18
int n_col
Definition: sLinsysRootAggregation.h:68
virtual void solveReduced(sData *prob, SimpleVector &b)
Definition: sLinsysRootAggregation.C:309
SimpleVector * redRhs
Definition: sLinsysRootAggregation.h:58
SimpleVector * rgamma
Definition: sLinsysRootAggregation.h:83
SimpleVector * temp_xl
Definition: sLinsysRootAggregation.h:96