PIPS-NLP
Public Member Functions | Public Attributes | Protected Member Functions | Private Member Functions | List of all members
sLinsysRootAggregation Class Reference

#include <sLinsysRootAggregation.h>

Inheritance diagram for sLinsysRootAggregation:
sLinsysRoot sLinsys NlpGenLinsys LinearSystem

Public Member Functions

 sLinsysRootAggregation (sFactory *factory_, sData *prob_)
 
 sLinsysRootAggregation (sFactory *factory, sData *prob_, OoqpVector *dd_, OoqpVector *dq_, OoqpVector *nomegaInv_, OoqpVector *rhs_, OoqpVector *additiveDiag)
 
virtual ~sLinsysRootAggregation ()
 
virtual SymMatrix * createKKT (sData *prob)
 
virtual DoubleLinearSolver * createSolver (sData *prob, SymMatrix *kktmat)
 
virtual int factor2 (sData *prob, Variables *vars)
 
virtual void initializeKKT (sData *prob, Variables *vars)
 
virtual void reduceKKT ()
 
virtual int factorizeKKT ()
 
virtual void finalizeKKT (sData *prob, Variables *vars)
 
virtual void Dsolve (sData *prob, OoqpVector &x)
 
virtual void Lsolve (sData *prob, OoqpVector &x)
 
virtual void Ltsolve (sData *prob, OoqpVector &x)
 
virtual void solveReduced (sData *prob, SimpleVector &b)
 
void submatrixReduce (DenseSymMatrix *A, int row, int col, int drow, int dcol, MPI_Comm comm)
 
- Public Member Functions inherited from sLinsysRoot
 sLinsysRoot (sFactory *factory_, sData *prob_, bool createChild=true)
 
 sLinsysRoot (sFactory *factory, sData *prob_, OoqpVector *dd_, OoqpVector *dq_, OoqpVector *nomegaInv_, OoqpVector *rhs_, OoqpVector *additiveDiag_, bool createChild=true)
 
virtual void Ltsolve2 (sData *prob, StochVector &x, SimpleVector &xp)
 
virtual void putXDiagonal (OoqpVector &xdiag_)
 
virtual void putSDiagonal (OoqpVector &sdiag_)
 
virtual void putYDualDiagonal (OoqpVector &ydiag)
 
virtual void putZDiagonal (OoqpVector &zdiag)
 
virtual void setAdditiveDiagonal ()
 
virtual void AddChild (sLinsys *child)
 
void sync ()
 
virtual ~sLinsysRoot ()
 
void myAtPutZeros (DenseSymMatrix *mat)
 
void myAtPutZeros (DenseSymMatrix *mat, int row, int col, int rowExtent, int colExtent)
 
void submatrixAllReduce (DenseSymMatrix *A, int row, int col, int drow, int dcol, MPI_Comm comm)
 
virtual void UpdateMatrices (Data *prob_in, int const updateLevel=2)
 
virtual void setXDiagonal (OoqpVector &xdiag)
 
virtual void setSDiagonal (OoqpVector &sdiag)
 
virtual void setYDiagonal (OoqpVector &ydiag)
 
virtual void setZDiagonal (OoqpVector &zdiag)
 
- Public Member Functions inherited from sLinsys
 sLinsys (sFactory *factory, sData *prob)
 
 sLinsys (sFactory *factory, sData *prob, OoqpVector *dd, OoqpVector *dq, OoqpVector *nomegaInv, OoqpVector *rhs, OoqpVector *additiveDiag_=NULL)
 
virtual ~sLinsys ()
 
virtual void factor (Data *prob, Variables *vars, RegularizationAlg *RegInfo)
 
virtual void factor (Data *prob, Variables *vars)
 
virtual void solveCompressed (OoqpVector &rhs)
 
void joinRHS (OoqpVector &rhs_in, OoqpVector &rhs1_in, OoqpVector &rhs2_in, OoqpVector &rhs3_in)
 
void separateVars (OoqpVector &x_in, OoqpVector &y_in, OoqpVector &z_in, OoqpVector &vars_in)
 
void joinRHSXSYZ (OoqpVector &rhs_in, OoqpVector &rhs1_in, OoqpVector &rhs2_in, OoqpVector &rhs3_in, OoqpVector &rhs4_in)
 
void separateVarsXSYZ (OoqpVector &x_in, OoqpVector &s_in, OoqpVector &y_in, OoqpVector &z_in, OoqpVector &vars_in)
 
virtual void addLnizi (sData *prob, OoqpVector &z0, OoqpVector &zi)
 
void LniTransMult (sData *prob, OoqpVector &y, double alpha, OoqpVector &x)
 
virtual void allocU (DenseGenMatrix **Ut, int np)
 
virtual void allocV (DenseGenMatrix **V, int np)
 
virtual void computeU_V (sData *prob, DenseGenMatrix *U, DenseGenMatrix *V)
 
virtual void addTermToDenseSchurCompl (sData *prob, DenseSymMatrix &SC)
 
virtual void addColsToDenseSchurCompl (sData *prob, DenseGenMatrix &out, int startcol, int endcol)
 
virtual void symAddColsToDenseSchurCompl (sData *prob, double *out, int startcol, int endcol)
 
virtual void addTermToSchurResidual (sData *prob, SimpleVector &res, SimpleVector &x)
 
virtual int GetNegEigVal ()
 
virtual void _backSolve (sData *prob, OoqpVector &ParSol_, OoqpVector &Vec_, StochVector *End_Par_Pos_)
 
virtual void _addTargetParsLnizi (sData *prob, OoqpVector &ParSol_, OoqpVector &Vec_, OoqpVector *goal_Par)
 
virtual void _setupColOfBordMat (sData *prob, OoqpVector *rhs_St, const int ColIDX, bool &allzero, const int aimlevel)
 
virtual void _assembleSC (sData *prob, OoqpVector *rhs_St_in, const int ColIDX, const int aimlevel, DenseSymMatrix &SC)
 
virtual void _setupYaddLniTx (sData *prob, OoqpVector &y_, double alpha, SimpleVector &x, const int aimlevel)
 
- Public Member Functions inherited from NlpGenLinsys
 NlpGenLinsys (NlpGen *factory, NlpGenData *data, LinearAlgebraPackage *la)
 
 NlpGenLinsys ()
 
 ~NlpGenLinsys ()
 
virtual void solve (Data *prob, Variables *vars, Residuals *res, Variables *step)
 
virtual void solve_NTsteps (Data *prob, Variables *vars, Residuals *resids, Variables *Nstep, Variables *Tstep, Variables *NTstep)
 
virtual void solve_IterRefine (Data *prob_in, Variables *vars_in, Residuals *res_in, Variables *step_in, Residuals *KKT_Resid_in, Variables *KKT_sol_in)
 
virtual void solveXYZS (OoqpVector &stepx, OoqpVector &stepy, OoqpVector &stepz, OoqpVector &steps, OoqpVector &ztemp, NlpGenData *data)
 
virtual void solveCompressedAugXSYZ (OoqpVector &stepx, OoqpVector &steps, OoqpVector &stepy, OoqpVector &stepz, NlpGenData *prob)
 
virtual void solveCompressedAugXSYZ_PETSC (OoqpVector &stepx, OoqpVector &steps, OoqpVector &stepy, OoqpVector &stepz, NlpGenData *prob)
 
virtual void solveBiCGStab (OoqpVector &stepx, OoqpVector &steps, OoqpVector &stepy, OoqpVector &stepz, NlpGenData *data)
 
virtual void computeDiagonals (OoqpVector &dd, OoqpVector &omega, OoqpVector &t, OoqpVector &lambda, OoqpVector &u, OoqpVector &pi, OoqpVector &v, OoqpVector &gamma, OoqpVector &w, OoqpVector &phi)
 
virtual void solveCompressedBiCGStab (OoqpVector &stepx, OoqpVector &stepy, OoqpVector &stepz, NlpGenData *data)
 
virtual void solveCompressedIterRefin (OoqpVector &stepx, OoqpVector &stepy, OoqpVector &stepz, NlpGenData *data)
 
virtual void matXYZMult (double beta, OoqpVector &res, double alpha, OoqpVector &sol, NlpGenData *data, OoqpVector &solx, OoqpVector &soly, OoqpVector &solz)
 
virtual void matXSYZMult (double beta, OoqpVector &res, double alpha, OoqpVector &sol, NlpGenData *data, OoqpVector &solx, OoqpVector &sols, OoqpVector &soly, OoqpVector &solz)
 
virtual void factorNoMatChange (Data *prob_in, Variables *vars_in, RegularizationAlg *RegInfo)
 
virtual double computeResidual (NlpGenData *data, OoqpVector &res_, OoqpVector &sol_, OoqpVector &solx_, OoqpVector &sols_, OoqpVector &soly_, OoqpVector &solz_)
 
virtual double computeResidual_FullKKT (NlpGenData *data, NlpGenResiduals *res_, NlpGenVars *sol_, NlpGenVars *var_)
 
virtual double eval_xWx (NlpGenData *prob, NlpGenResiduals *resid, NlpGenVars *steps)
 
virtual void computeQuantitiesForDualReg (NlpGenData *prob, NlpGenVars *vars, NlpGenResiduals *resid, NlpGenVars *steps, double *dualRegQuantities)
 
virtual void copyXSYZ_fromArray (OoqpVector &vec_xsyz, double *array_in, const int nb_col)
 
virtual void copyXSYZ_toArray (OoqpVector &vec_xsyz, double *array_in, const int nb_col)
 
- Public Member Functions inherited from LinearSystem
virtual ~LinearSystem ()
 

Public Attributes

SparseSymMatrix * MatQ
 
SparseGenMatrix * MatJ
 
SimpleVector * redRhs
 
SimpleVector * temp_nrow
 
SimpleVector * temp_ncol
 
int redDim
 
int redNnz
 
int QNnz
 
int JNnz
 
int n_col
 
int n_row
 
DenseSymMatrix * CtDC
 
SimpleVector * temp_ixlow
 
SimpleVector * temp_ixupp
 
SimpleVector * rQ
 
SimpleVector * rA
 
SimpleVector * rv
 
SimpleVector * rw
 
SimpleVector * rgamma
 
SimpleVector * rphi
 
SimpleVector * temp_x
 
SimpleVector * temp_y
 
SimpleVector * temp_gamma
 
SimpleVector * temp_phi
 
SimpleVector * temp_v
 
SimpleVector * temp_w
 
SimpleVector * temp_rhs_x
 
SimpleVector * temp_rhs_y
 
SimpleVector * temp_xl
 
SimpleVector * temp_xu
 
bool setIX
 
- Public Attributes inherited from sLinsysRoot
std::vector< sLinsys * > children
 
int iAmDistrib
 
bool firstQUpdate
 
bool firstBUpdate
 
std::map< int, int > LocQMap
 
std::map< int, int > LocBMap
 
- Public Attributes inherited from sLinsys
int negEigVal
 
SymMatrix * kkt
 
MPI_Comm mpiComm
 
sTree * stochNode
 
bool isActive
 
- Public Attributes inherited from NlpGenLinsys
OoqpVector * nomegaInv
 
OoqpVector * rhs
 
OoqpVector * rhs_back
 
NlpGen * factory
 
long long nx
 
long long my
 
long long mz
 
double priReg
 
double dualReg
 
OoqpVector * dd
 
OoqpVector * dq
 
OoqpVector * temp_diagX
 
OoqpVector * temp_diagS
 
OoqpVector * temp_diagY
 
OoqpVector * temp_diagZ
 
OoqpVector * additiveDiag
 
OoqpVector * ixupp
 
OoqpVector * icupp
 
OoqpVector * ixlow
 
OoqpVector * iclow
 
int nxupp
 
int nxlow
 
int mcupp
 
int mclow
 
int num_slacks
 
int useRefs
 
OoqpVector * sol
 
OoqpVector * res
 
OoqpVector * resx
 
OoqpVector * ress
 
OoqpVector * resy
 
OoqpVector * resz
 
OoqpVector * sol2
 
OoqpVector * res2
 
OoqpVector * res3
 
OoqpVector * res4
 
OoqpVector * res5
 
OoqpVector * sol2Bicg
 
OoqpVector * res2Bicg
 
OoqpVector * res3Bicg
 
OoqpVector * res4Bicg
 
OoqpVector * res5Bicg
 
int KryIter
 
bool allocateSpace
 

Protected Member Functions

 sLinsysRootAggregation ()
 
void calcPreCondKKTResids (Data *prob_in)
 
void computeReducedRhs ()
 
- Protected Member Functions inherited from sLinsysRoot
 sLinsysRoot ()
 
virtual void createChildren (sData *prob)
 
virtual void deleteChildren ()
 
- Protected Member Functions inherited from sLinsys
 sLinsys ()
 

Private Member Functions

void _joinRedRHS (OoqpVector &rhs_in, OoqpVector &rhs1_in, OoqpVector &rhs2_in)
 
void _separateVars (OoqpVector &vars_in, OoqpVector &x_in, OoqpVector &y_in)
 
void _set1stStVar (SimpleVector &redSol, SimpleVector &sol0)
 

Additional Inherited Members

- Protected Attributes inherited from sLinsysRoot
OoqpVector * zDiag
 
OoqpVector * xDiag
 
OoqpVector * yDiag
 
OoqpVector * sDiag
 
- Protected Attributes inherited from sLinsys
int locnx
 
int locmy
 
int locmz
 
DoubleLinearSolver * solver
 
sData * data
 
- Protected Attributes inherited from NlpGenLinsys
bool fullQ
 

Detailed Description

ROOT (= NON-leaf) linear system

Constructor & Destructor Documentation

sLinsysRootAggregation::sLinsysRootAggregation ( )
inlineprotected
sLinsysRootAggregation::sLinsysRootAggregation ( sFactory *  factory_,
sData *  prob_ 
)
sLinsysRootAggregation::sLinsysRootAggregation ( sFactory *  factory,
sData *  prob_,
OoqpVector *  dd_,
OoqpVector *  dq_,
OoqpVector *  nomegaInv_,
OoqpVector *  rhs_,
OoqpVector *  additiveDiag 
)
sLinsysRootAggregation::~sLinsysRootAggregation ( )
virtual

Member Function Documentation

void sLinsysRootAggregation::_joinRedRHS ( OoqpVector &  rhs_in,
OoqpVector &  rhs1_in,
OoqpVector &  rhs2_in 
)
private
void sLinsysRootAggregation::_separateVars ( OoqpVector &  vars_in,
OoqpVector &  x_in,
OoqpVector &  y_in 
)
private
void sLinsysRootAggregation::_set1stStVar ( SimpleVector &  redSol,
SimpleVector &  sol0 
)
private
void sLinsysRootAggregation::calcPreCondKKTResids ( Data *  prob_in)
protected
void sLinsysRootAggregation::computeReducedRhs ( )
protected
SymMatrix * sLinsysRootAggregation::createKKT ( sData *  prob)
virtual

Implements sLinsysRoot.

DoubleLinearSolver * sLinsysRootAggregation::createSolver ( sData *  prob,
SymMatrix *  kktmat 
)
virtual

Implements sLinsysRoot.

void sLinsysRootAggregation::Dsolve ( sData *  prob,
OoqpVector &  x 
)
virtual

Reimplemented from sLinsysRoot.

int sLinsysRootAggregation::factor2 ( sData *  prob,
Variables *  vars 
)
virtual

Reimplemented from sLinsysRoot.

int sLinsysRootAggregation::factorizeKKT ( )
virtual

Reimplemented from sLinsysRoot.

virtual void sLinsysRootAggregation::finalizeKKT ( sData *  prob,
Variables *  vars 
)
inlinevirtual

Implements sLinsysRoot.

virtual void sLinsysRootAggregation::initializeKKT ( sData *  prob,
Variables *  vars 
)
inlinevirtual

Reimplemented from sLinsysRoot.

void sLinsysRootAggregation::Lsolve ( sData *  prob,
OoqpVector &  x 
)
virtual

Reimplemented from sLinsysRoot.

void sLinsysRootAggregation::Ltsolve ( sData *  prob,
OoqpVector &  x 
)
virtual

Reimplemented from sLinsysRoot.

void sLinsysRootAggregation::reduceKKT ( )
virtual

Reimplemented from sLinsysRoot.

void sLinsysRootAggregation::solveReduced ( sData *  prob,
SimpleVector &  b 
)
virtual

Implements sLinsysRoot.

void sLinsysRootAggregation::submatrixReduce ( DenseSymMatrix *  A,
int  row,
int  col,
int  drow,
int  dcol,
MPI_Comm  comm 
)

Member Data Documentation

DenseSymMatrix* sLinsysRootAggregation::CtDC
int sLinsysRootAggregation::JNnz
SparseGenMatrix* sLinsysRootAggregation::MatJ
SparseSymMatrix* sLinsysRootAggregation::MatQ
int sLinsysRootAggregation::n_col
int sLinsysRootAggregation::n_row
int sLinsysRootAggregation::QNnz
SimpleVector* sLinsysRootAggregation::rA
int sLinsysRootAggregation::redDim
int sLinsysRootAggregation::redNnz
SimpleVector* sLinsysRootAggregation::redRhs
SimpleVector* sLinsysRootAggregation::rgamma
SimpleVector* sLinsysRootAggregation::rphi
SimpleVector* sLinsysRootAggregation::rQ
SimpleVector* sLinsysRootAggregation::rv
SimpleVector* sLinsysRootAggregation::rw
bool sLinsysRootAggregation::setIX
SimpleVector* sLinsysRootAggregation::temp_gamma
SimpleVector* sLinsysRootAggregation::temp_ixlow
SimpleVector* sLinsysRootAggregation::temp_ixupp
SimpleVector* sLinsysRootAggregation::temp_ncol
SimpleVector* sLinsysRootAggregation::temp_nrow
SimpleVector* sLinsysRootAggregation::temp_phi
SimpleVector* sLinsysRootAggregation::temp_rhs_x
SimpleVector* sLinsysRootAggregation::temp_rhs_y
SimpleVector* sLinsysRootAggregation::temp_v
SimpleVector* sLinsysRootAggregation::temp_w
SimpleVector* sLinsysRootAggregation::temp_x
SimpleVector* sLinsysRootAggregation::temp_xl
SimpleVector* sLinsysRootAggregation::temp_xu
SimpleVector* sLinsysRootAggregation::temp_y

The documentation for this class was generated from the following files: