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

#include <NlpGenSparseLinsys.h>

Inheritance diagram for NlpGenSparseLinsys:
NlpGenLinsys LinearSystem

Public Member Functions

 NlpGenSparseLinsys (NlpGen *factory, NlpGenData *data, LinearAlgebraPackage *la, SparseSymMatrix *Mat, DoubleLinearSolver *solver)
 
virtual void solveCompressed (OoqpVector &rhs)
 
virtual void putXDiagonal (OoqpVector &xdiag)
 
virtual void putSDiagonal (OoqpVector &sdiag)
 
virtual void putYDualDiagonal (OoqpVector &ydiag)
 
virtual void putZDiagonal (OoqpVector &zdiag)
 
virtual void factor (Data *prob, Variables *vars, RegularizationAlg *RegInfo)
 
virtual void factor (Data *prob, Variables *vars)
 
virtual ~NlpGenSparseLinsys ()
 
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)
 
virtual void setAdditiveDiagonal ()
 
- 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 joinRHS (OoqpVector &rhs, OoqpVector &rhs1, OoqpVector &rhs2, OoqpVector &rhs3)
 
virtual void separateVars (OoqpVector &vars1, OoqpVector &vars2, OoqpVector &vars3, OoqpVector &vars)
 
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 joinRHSXSYZ (OoqpVector &rhs_in, OoqpVector &rhs1_in, OoqpVector &rhs2_in, OoqpVector &rhs3_in, OoqpVector &rhs4_in)
 
virtual void separateVarsXSYZ (OoqpVector &x_in, OoqpVector &s_in, OoqpVector &y_in, OoqpVector &z_in, OoqpVector &vars_in)
 
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 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
 
bool firstQUpdate
 
bool firstAUpdate
 
bool firstCUpdate
 
std::map< int, int > QmatIdxMap
 
std::map< int, int > AmatIdxMap
 
std::map< int, int > CmatIdxMap
 
- 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 Attributes

SparseSymMatrixHandle Mat
 
DoubleLinearSolver * solver
 
- Protected Attributes inherited from NlpGenLinsys
bool fullQ
 

Detailed Description

implements the aspects of the solvers for sparse general NLP formulation that are specific to the sparse case.

Constructor & Destructor Documentation

NlpGenSparseLinsys::NlpGenSparseLinsys ( NlpGen *  factory,
NlpGenData *  data,
LinearAlgebraPackage *  la,
SparseSymMatrix *  Mat,
DoubleLinearSolver *  solver 
)
NlpGenSparseLinsys::~NlpGenSparseLinsys ( )
virtual

Member Function Documentation

void NlpGenSparseLinsys::factor ( Data *  prob,
Variables *  vars,
RegularizationAlg *  RegInfo 
)
virtual

calls NlpGenLinsys::factor to assemble the augmented system matrix, then calls matrixChanged to factor it

See also
NlpGenLinsys::factor

Reimplemented from NlpGenLinsys.

void NlpGenSparseLinsys::factor ( Data *  prob,
Variables *  vars 
)
virtual

factorizes the matrix, stores data related to the factorization to prepare for later calls to "solve"

Reimplemented from NlpGenLinsys.

void NlpGenSparseLinsys::putSDiagonal ( OoqpVector &  xdiag)
virtual

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

Implements NlpGenLinsys.

void NlpGenSparseLinsys::putXDiagonal ( OoqpVector &  xdiag)
virtual

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

Implements NlpGenLinsys.

void NlpGenSparseLinsys::putYDualDiagonal ( OoqpVector &  ydiag)
virtual

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

Implements NlpGenLinsys.

void NlpGenSparseLinsys::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 NlpGenLinsys.

void NlpGenSparseLinsys::setAdditiveDiagonal ( )
virtual
void NlpGenSparseLinsys::setSDiagonal ( OoqpVector &  sdiag)
virtual

Implements NlpGenLinsys.

void NlpGenSparseLinsys::setXDiagonal ( OoqpVector &  xdiag)
virtual

Implements NlpGenLinsys.

void NlpGenSparseLinsys::setYDiagonal ( OoqpVector &  ydiag)
virtual

Implements NlpGenLinsys.

void NlpGenSparseLinsys::setZDiagonal ( OoqpVector &  zdiag)
virtual

Implements NlpGenLinsys.

void NlpGenSparseLinsys::solveCompressed ( OoqpVector &  rhs)
virtual

perform the actual solve using the factors produced in factor.

Parameters
rhson input contains the aggregated right-hand side of the augmented system; on output contains the solution in aggregated form

Implements NlpGenLinsys.

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

Reimplemented from NlpGenLinsys.

Member Data Documentation

std::map<int,int> NlpGenSparseLinsys::AmatIdxMap
std::map<int,int> NlpGenSparseLinsys::CmatIdxMap
bool NlpGenSparseLinsys::firstAUpdate
bool NlpGenSparseLinsys::firstCUpdate
bool NlpGenSparseLinsys::firstQUpdate
bool NlpGenSparseLinsys::firstSDiagUpdate
bool NlpGenSparseLinsys::firstXDiagUpdate
bool NlpGenSparseLinsys::firstYDiagUpdate
bool NlpGenSparseLinsys::firstZDiagUpdate
SparseSymMatrixHandle NlpGenSparseLinsys::Mat
protected
std::map<int,int> NlpGenSparseLinsys::QmatIdxMap
std::map<int,int> NlpGenSparseLinsys::sDiagIdxMap
DoubleLinearSolver* NlpGenSparseLinsys::solver
protected
std::map<int,int> NlpGenSparseLinsys::xDiagIdxMap
std::map<int,int> NlpGenSparseLinsys::yDiagIdxMap
std::map<int,int> NlpGenSparseLinsys::zDiagIdxMap

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