PIPS-NLP
Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | List of all members
sLinsysLeaf Class Reference

#include <sLinsysLeaf.h>

Inheritance diagram for sLinsysLeaf:
sLinsys NlpGenLinsys LinearSystem

Public Member Functions

template<class LINSOLVER >
 sLinsysLeaf (sFactory *factory, sData *prob_, OoqpVector *dd_, OoqpVector *dq_, OoqpVector *nomegaInv_, OoqpVector *rhs_, OoqpVector *additiveDiag_, LINSOLVER *linsolver=NULL)
 
virtual ~sLinsysLeaf ()
 
virtual int factor2 (sData *prob, Variables *vars)
 
virtual void Lsolve (sData *prob, OoqpVector &x)
 
virtual void Dsolve (sData *prob, OoqpVector &x)
 
virtual void Ltsolve (sData *prob, OoqpVector &x)
 
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 ()
 
void sync ()
 
virtual void deleteChildren ()
 
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

bool firstQUpdate
 
bool firstBUpdate
 
bool firstDUpdate
 
std::map< int, int > LocQMap
 
std::map< int, int > LocBMap
 
std::map< int, int > LocDMap
 
bool firstXDiagUpdate
 
bool firstSDiagUpdate
 
bool firstYDiagUpdate
 
bool firstZDiagUpdate
 
std::map< int, int > xDiagIdxMap
 
std::map< int, int > sDiagIdxMap
 
std::map< int, int > yDiagIdxMap
 
std::map< int, int > zDiagIdxMap
 
- Public Attributes inherited from sLinsys
int negEigVal
 
SymMatrixkkt
 
MPI_Comm mpiComm
 
sTreestochNode
 
bool isActive
 
- Public Attributes inherited from NlpGenLinsys
OoqpVectornomegaInv
 
OoqpVectorrhs
 
OoqpVectorrhs_back
 
NlpGenfactory
 
long long nx
 
long long my
 
long long mz
 
double priReg
 
double dualReg
 
OoqpVectordd
 
OoqpVectordq
 
OoqpVectortemp_diagX
 
OoqpVectortemp_diagS
 
OoqpVectortemp_diagY
 
OoqpVectortemp_diagZ
 
OoqpVectoradditiveDiag
 
OoqpVectorixupp
 
OoqpVectoricupp
 
OoqpVectorixlow
 
OoqpVectoriclow
 
int nxupp
 
int nxlow
 
int mcupp
 
int mclow
 
int num_slacks
 
int useRefs
 
OoqpVectorsol
 
OoqpVectorres
 
OoqpVectorresx
 
OoqpVectorress
 
OoqpVectorresy
 
OoqpVectorresz
 
OoqpVectorsol2
 
OoqpVectorres2
 
OoqpVectorres3
 
OoqpVectorres4
 
OoqpVectorres5
 
OoqpVectorsol2Bicg
 
OoqpVectorres2Bicg
 
OoqpVectorres3Bicg
 
OoqpVectorres4Bicg
 
OoqpVectorres5Bicg
 
int KryIter
 
bool allocateSpace
 

Protected Member Functions

 sLinsysLeaf ()
 
- Protected Member Functions inherited from sLinsys
 sLinsys ()
 

Static Protected Member Functions

static void mySymAtPutSubmatrix (SymMatrix &kkt, GenMatrix &B, GenMatrix &D, int locnx, int locmy, int locmz)
 

Additional Inherited Members

- Protected Attributes inherited from sLinsys
int locnx
 
int locmy
 
int locmz
 
DoubleLinearSolversolver
 
sDatadata
 
- Protected Attributes inherited from NlpGenLinsys
bool fullQ
 

Detailed Description

This class solves the linear system corresponding to a leaf node. It just redirects the call to NlpGenSparseLinsys.

Constructor & Destructor Documentation

template<class LINSOLVER >
sLinsysLeaf::sLinsysLeaf ( sFactory factory,
sData prob_,
OoqpVector dd_,
OoqpVector dq_,
OoqpVector nomegaInv_,
OoqpVector rhs_,
OoqpVector additiveDiag_,
LINSOLVER *  linsolver = NULL 
)
sLinsysLeaf::~sLinsysLeaf ( )
virtual
sLinsysLeaf::sLinsysLeaf ( )
inlineprotected

Member Function Documentation

void sLinsysLeaf::deleteChildren ( )
virtual

Implements sLinsys.

void sLinsysLeaf::Dsolve ( sData prob,
OoqpVector x 
)
virtual

Implements sLinsys.

int sLinsysLeaf::factor2 ( sData prob,
Variables vars 
)
virtual

Implements sLinsys.

void sLinsysLeaf::Lsolve ( sData prob,
OoqpVector x 
)
virtual

Implements sLinsys.

void sLinsysLeaf::Ltsolve ( sData prob,
OoqpVector x 
)
virtual

Implements sLinsys.

void sLinsysLeaf::Ltsolve2 ( sData prob,
StochVector x,
SimpleVector xp 
)
virtual

Implements sLinsys.

void sLinsysLeaf::mySymAtPutSubmatrix ( SymMatrix kkt,
GenMatrix B,
GenMatrix D,
int  locnx,
int  locmy,
int  locmz 
)
staticprotected
void sLinsysLeaf::putSDiagonal ( OoqpVector xdiag)
virtual

places the diagonal resulting from the bounds on Cx into the augmented system matrix — corresponding to slack variables S

Implements sLinsys.

void sLinsysLeaf::putXDiagonal ( OoqpVector xdiag)
virtual

places the diagonal resulting from the bounds on x into the augmented system matrix — corresponding to pri variables X

Implements sLinsys.

void sLinsysLeaf::putYDualDiagonal ( OoqpVector ydiag)
virtual

places the diagonal resulting from the bounds on x into the augmented system matrix — for Regularization dual Y

Implements sLinsys.

void sLinsysLeaf::putZDiagonal ( OoqpVector sdiag)
virtual

places the diagonal resulting from the bounds on Cx into the augmented system matrix — corresponding to slack variables S, z is the dual for s

Implements sLinsys.

void sLinsysLeaf::setAdditiveDiagonal ( )
virtual

Implements sLinsys.

void sLinsysLeaf::setSDiagonal ( OoqpVector sdiag)
virtual

Implements NlpGenLinsys.

void sLinsysLeaf::setXDiagonal ( OoqpVector xdiag)
virtual

Implements NlpGenLinsys.

void sLinsysLeaf::setYDiagonal ( OoqpVector ydiag)
virtual

Implements NlpGenLinsys.

void sLinsysLeaf::setZDiagonal ( OoqpVector zdiag)
virtual

Implements NlpGenLinsys.

void sLinsysLeaf::sync ( )
virtual

Implements sLinsys.

void sLinsysLeaf::UpdateMatrices ( Data prob_in,
int const  updateLevel = 2 
)
virtual

Reimplemented from NlpGenLinsys.

Member Data Documentation

bool sLinsysLeaf::firstBUpdate
bool sLinsysLeaf::firstDUpdate
bool sLinsysLeaf::firstQUpdate
bool sLinsysLeaf::firstSDiagUpdate
bool sLinsysLeaf::firstXDiagUpdate
bool sLinsysLeaf::firstYDiagUpdate
bool sLinsysLeaf::firstZDiagUpdate
std::map<int,int> sLinsysLeaf::LocBMap
std::map<int,int> sLinsysLeaf::LocDMap
std::map<int,int> sLinsysLeaf::LocQMap
std::map<int,int> sLinsysLeaf::sDiagIdxMap
std::map<int,int> sLinsysLeaf::xDiagIdxMap
std::map<int,int> sLinsysLeaf::yDiagIdxMap
std::map<int,int> sLinsysLeaf::zDiagIdxMap

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