7 #ifndef STOCHLEAFLINSYS 8 #define STOCHLEAFLINSYS 42 template<
class LINSOLVER>
105 template<
class LINSOLVER>
112 LINSOLVER* thesolver)
113 :
sLinsys(factory_, prob, dd_, dq_, nomegaInv_, rhs_, additiveDiag_)
123 double time_Temp_1, time_Temp_2;
124 time_Temp_1=MPI_Wtime();
126 MPI_Comm_rank(MPI_COMM_WORLD,&mype_);
130 int nnzQ, nnzB, nnzD;
148 nnzTotal = n + nnzQ + nnzB + nnzD + locns;
152 nnzTotal = nnzQ + nnzB + nnzD + locns;
156 nnzTotal = n + nnzQ + nnzB + nnzD;
172 time_Temp_2=MPI_Wtime();
174 cout <<
"\n before put matrix in sLinsysLeaf " << time_Temp_2- time_Temp_1<<
"\n" << endl;
176 time_Temp_1=MPI_Wtime();
182 time_Temp_2=MPI_Wtime();
184 cout <<
"\n put Q in sLinsysLeaf " << time_Temp_2- time_Temp_1<<
"\n" << endl;
186 time_Temp_1=MPI_Wtime();
193 time_Temp_2=MPI_Wtime();
195 cout <<
"\n put A in sLinsysLeaf " << time_Temp_2- time_Temp_1<<
"\n" << endl;
208 time_Temp_1=MPI_Wtime();
212 time_Temp_2=MPI_Wtime();
214 cout <<
"\n put C in sLinsysLeaf " << time_Temp_2- time_Temp_1<<
"\n" << endl;
219 time_Temp_1=MPI_Wtime();
224 int *tempDiagRowId =
new int[locns];
225 int *tempDiagColId =
new int[locns];
226 double *tempDiagEleId =
new double[locns];
229 for(
int i=0;i<locns;i++){
234 tempDiagMat->
putSparseTriple( tempDiagRowId,locns, tempDiagColId, tempDiagEleId,info );
238 time_Temp_2=MPI_Wtime();
240 cout <<
"\n put Slack Diag Mat in sLinsysLeaf " << time_Temp_2- time_Temp_1<<
"\n" << endl;
245 time_Temp_1=MPI_Wtime();
247 delete[] tempDiagRowId;
248 delete[] tempDiagColId;
249 delete[] tempDiagEleId;
274 time_Temp_1=MPI_Wtime();
284 assert(
"Not Implemented" &&0);
290 assert(
"Not Implemented" &&0);
296 int fullVarXSize =
locnx;
297 int fullVarYSize =
locmy;
298 int fullVarSSize =
locmz;
320 time_Temp_2=MPI_Wtime();
322 cout <<
"\n creat solver in sLinsysLeaf " << time_Temp_2- time_Temp_1<<
"\n" << endl;
327 time_Temp_1=MPI_Wtime();
Definition: sFactory.h:32
virtual void putZDiagonal(OoqpVector &zdiag)
Definition: sLinsysLeaf.C:60
Definition: ReducedSpaceSolverStateOnly.h:62
int gNP_Alg
Definition: pipsOptions.C:42
std::map< int, int > zDiagIdxMap
Definition: sLinsysLeaf.h:88
SymMatrix * kkt
Definition: sLinsys.h:87
virtual void setZDiagonal(OoqpVector &zdiag)
Definition: sLinsysLeaf.C:101
Definition: DoubleMatrix.h:241
std::map< int, int > LocBMap
Definition: sLinsysLeaf.h:79
int locmz
Definition: sLinsys.h:79
virtual int factor2(sData *prob, Variables *vars)
Definition: sLinsysLeaf.C:24
virtual void deleteChildren()
Definition: sLinsysLeaf.C:175
bool firstDUpdate
Definition: sLinsysLeaf.h:76
static void mySymAtPutSubmatrix(SymMatrix &kkt, GenMatrix &B, GenMatrix &D, int locnx, int locmy, int locmz)
Definition: sLinsysLeaf.C:178
MPI_Comm mpiComm
Definition: sLinsys.h:138
int getLocalNnz(int &nnzQ, int &nnzB, int &nnzD)
Definition: sData.C:287
virtual void setYDiagonal(OoqpVector &ydiag)
Definition: sLinsysLeaf.C:87
bool firstQUpdate
Definition: sLinsysLeaf.h:76
virtual void symAtPutSubmatrix(int destRow, int destCol, DoubleMatrix &M, int srcRow, int srcCol, int rowExtent, int colExtent)=0
virtual void putXDiagonal(OoqpVector &xdiag_)
Definition: sLinsysLeaf.C:35
virtual void Ltsolve(sData *prob, OoqpVector &x)
Definition: sLinsysLeaf.C:142
bool firstSDiagUpdate
Definition: sLinsysLeaf.h:83
SparseSymMatrix & getLocalQ()
Definition: sData.C:307
std::map< int, int > yDiagIdxMap
Definition: sLinsysLeaf.h:87
std::map< int, int > xDiagIdxMap
Definition: sLinsysLeaf.h:85
bool firstYDiagUpdate
Definition: sLinsysLeaf.h:83
virtual void setToDiagonal(OoqpVector &vec)=0
std::map< int, int > LocQMap
Definition: sLinsysLeaf.h:78
virtual void setToZero()
Definition: SimpleVector.C:100
Definition: SparseSymMatrix.h:20
Definition: sLinsysLeaf.h:38
int separateHandDiag
Definition: pipsOptions.C:23
bool firstXDiagUpdate
Definition: sLinsysLeaf.h:83
virtual void Lsolve(sData *prob, OoqpVector &x)
Definition: sLinsysLeaf.C:122
virtual void Ltsolve2(sData *prob, StochVector &x, SimpleVector &xp)
Definition: sLinsysLeaf.C:151
virtual void Dsolve(sData *prob, OoqpVector &x)
Definition: sLinsysLeaf.C:133
virtual void putSparseTriple(int irow[], int len, int jcol[], double A[], int &info)
Definition: SparseSymMatrix.C:108
NlpGen * factory
Definition: NlpGenLinsys.h:61
SparseGenMatrix & getLocalD()
Definition: sData.C:357
virtual void setXDiagonal(OoqpVector &xdiag)
Definition: sLinsysLeaf.C:73
virtual void setAdditiveDiagonal()
Definition: sLinsysLeaf.C:115
virtual void UpdateMatrices(Data *prob_in, int const updateLevel=2)
Definition: sLinsysLeaf.C:242
bool firstZDiagUpdate
Definition: sLinsysLeaf.h:83
std::map< int, int > LocDMap
Definition: sLinsysLeaf.h:80
virtual void putYDualDiagonal(OoqpVector &ydiag_)
Definition: sLinsysLeaf.C:47
int schurSize
Definition: NlpGenData.h:115
virtual void setSDiagonal(OoqpVector &sdiag)
Definition: sLinsysLeaf.C:80
bool firstBUpdate
Definition: sLinsysLeaf.h:76
Definition: DoubleMatrix.h:188
int locmy
Definition: sLinsys.h:79
Definition: OoqpVector.h:34
int locnx
Definition: sLinsys.h:79
int gUseReducedSpace
Definition: pipsOptions.C:30
virtual ~sLinsysLeaf()
Definition: sLinsysLeaf.C:19
virtual void putSDiagonal(OoqpVector &sdiag_)
Definition: sLinsysLeaf.C:41
Definition: StochVector.h:19
int gOuterSolve
Definition: Solver.C:31
DoubleLinearSolver * solver
Definition: sLinsys.h:83
Definition: Variables.h:23
SparseGenMatrix & getLocalB()
Definition: sData.C:333
std::map< int, int > sDiagIdxMap
Definition: sLinsysLeaf.h:86
void sync()
Definition: sLinsysLeaf.C:171
int getLocalSizes(int &nx, int &my, int &mz)
Definition: sData.C:245
Definition: SimpleVector.h:18
sLinsysLeaf()
Definition: sLinsysLeaf.h:98
int * schurVarConID
Definition: NlpGenData.h:114
int gBuildSchurComp
Definition: pipsOptions.C:28