PIPS-NLP
Public Member Functions | List of all members
sDummyLinsys Class Reference

#include <sDummyLinsys.h>

Inheritance diagram for sDummyLinsys:
sLinsys NlpGenLinsys LinearSystem

Public Member Functions

 sDummyLinsys (sFactory *factory, sData *prob)
 
virtual ~sDummyLinsys ()
 
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 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 setAdditiveDiagonal ()
 
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)
 
void addTermToSchurResidual (sData *prob, SimpleVector &res, SimpleVector &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)
 
void sync ()
 
virtual void deleteChildren ()
 
virtual void UpdateMatrices (Data *prob_in, int const onlyRegPart)
 
virtual void setXDiagonal (OoqpVector &xdiag)
 
virtual void setSDiagonal (OoqpVector &sdiag)
 
virtual void setYDiagonal (OoqpVector &ydiag)
 
virtual void setZDiagonal (OoqpVector &zdiag)
 
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)
 
- 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)
 
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)
 
void LniTransMult (sData *prob, OoqpVector &y, double alpha, OoqpVector &x)
 
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 int GetNegEigVal ()
 
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 ()
 

Additional Inherited Members

- 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 inherited from sLinsys
 sLinsys ()
 
- Protected Attributes inherited from sLinsys
int locnx
 
int locmy
 
int locmz
 
DoubleLinearSolver * solver
 
sData * data
 
- Protected Attributes inherited from NlpGenLinsys
bool fullQ
 

Detailed Description

DUMMY Linear system class

Constructor & Destructor Documentation

sDummyLinsys::sDummyLinsys ( sFactory *  factory,
sData *  prob 
)
inline
virtual sDummyLinsys::~sDummyLinsys ( )
inlinevirtual

Member Function Documentation

virtual void sDummyLinsys::_addTargetParsLnizi ( sData *  prob,
OoqpVector &  ParSol_,
OoqpVector &  Vec_,
OoqpVector *  goal_Par 
)
inlinevirtual

Reimplemented from sLinsys.

virtual void sDummyLinsys::_assembleSC ( sData *  prob,
OoqpVector *  rhs_St_in,
const int  ColIDX,
const int  aimlevel,
DenseSymMatrix &  SC 
)
inlinevirtual

Reimplemented from sLinsys.

virtual void sDummyLinsys::_backSolve ( sData *  prob,
OoqpVector &  ParSol_,
OoqpVector &  Vec_,
StochVector *  End_Par_Pos_ 
)
inlinevirtual

Reimplemented from sLinsys.

virtual void sDummyLinsys::_setupColOfBordMat ( sData *  prob,
OoqpVector *  rhs_St,
const int  ColIDX,
bool &  allzero,
const int  aimlevel 
)
inlinevirtual

Reimplemented from sLinsys.

virtual void sDummyLinsys::addLnizi ( sData *  prob,
OoqpVector &  z0_,
OoqpVector &  zi_ 
)
inlinevirtual

[ R^i^T Ai^T Ci^T ] [ ] z0 -= [ 0 0 0 ] * Li\ [ zi ] [ 0 0 0 ] [ ]

if gOuterSolve>=3 && separateHandDiag==0 [ R^i^T 0 Ai^T Ci^T ] [ ] z0 -= [ 0 0 0 0 ] * Li\ [ zi ] [ 0 0 0 0 ] [ ]

Reimplemented from sLinsys.

void sDummyLinsys::addTermToSchurResidual ( sData *  prob,
SimpleVector &  res,
SimpleVector &  x 
)
inlinevirtual

Used in the iterative refinement for the dense Schur complement systems Computes res += [0 A^T C^T ]*inv(KKT)*[0;A;C] x

Reimplemented from sLinsys.

virtual void sDummyLinsys::allocU ( DenseGenMatrix **  Ut,
int  np 
)
inlinevirtual

Methods that use dense matrices U and V to compute the terms from the Schur complement.

Reimplemented from sLinsys.

virtual void sDummyLinsys::allocV ( DenseGenMatrix **  V,
int  np 
)
inlinevirtual

Reimplemented from sLinsys.

virtual void sDummyLinsys::computeU_V ( sData *  prob,
DenseGenMatrix *  U,
DenseGenMatrix *  V 
)
inlinevirtual

Computes U = Li^T. [ 0 0 0 ] Gi^T = [ A 0 0 ] [ C 0 0]

We have special structure here: [ 0 ] U = Li\ [ A ] , U is (nx+my+mz)-by-(np) [ C ]

V = Di

Reimplemented from sLinsys.

virtual void sDummyLinsys::deleteChildren ( )
inlinevirtual

Implements sLinsys.

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

Implements sLinsys.

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

Implements sLinsys.

void sDummyLinsys::joinRHS ( OoqpVector &  rhs,
OoqpVector &  rhs1,
OoqpVector &  rhs2,
OoqpVector &  rhs3 
)
inlinevirtual

assembles a single vector object from three given vectors

Parameters
rhs(output) final joined vector
rhs1(input) first part of rhs
rhs2(input) middle part of rhs
rhs3(input) last part of rhs

Reimplemented from NlpGenLinsys.

void sDummyLinsys::joinRHSXSYZ ( OoqpVector &  rhs_in,
OoqpVector &  rhs1_in,
OoqpVector &  rhs2_in,
OoqpVector &  rhs3_in,
OoqpVector &  rhs4_in 
)
inlinevirtual

Reimplemented from NlpGenLinsys.

void sDummyLinsys::LniTransMult ( sData *  prob,
OoqpVector &  y,
double  alpha,
OoqpVector &  x 
)
inline

y += alpha * Lni^T * x

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

Implements sLinsys.

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

Implements sLinsys.

virtual void sDummyLinsys::Ltsolve2 ( sData *  prob,
StochVector &  x,
SimpleVector &  xp 
)
inlinevirtual

Implements sLinsys.

virtual void sDummyLinsys::putSDiagonal ( OoqpVector &  xdiag)
inlinevirtual

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

Implements sLinsys.

virtual void sDummyLinsys::putXDiagonal ( OoqpVector &  xdiag)
inlinevirtual

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

Implements sLinsys.

virtual void sDummyLinsys::putYDualDiagonal ( OoqpVector &  ydiag)
inlinevirtual

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

Implements sLinsys.

virtual void sDummyLinsys::putZDiagonal ( OoqpVector &  sdiag)
inlinevirtual

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 sDummyLinsys::separateVars ( OoqpVector &  vars1,
OoqpVector &  vars2,
OoqpVector &  vars3,
OoqpVector &  vars 
)
inlinevirtual

extracts three component vectors from a given aggregated vector.

Parameters
vars(input) aggregated vector
vars1(output) first part of vars
vars2(output) middle part of vars
vars3(output) last part of vars

Reimplemented from NlpGenLinsys.

void sDummyLinsys::separateVarsXSYZ ( OoqpVector &  x_in,
OoqpVector &  s_in,
OoqpVector &  y_in,
OoqpVector &  z_in,
OoqpVector &  vars_in 
)
inlinevirtual

Reimplemented from NlpGenLinsys.

virtual void sDummyLinsys::setAdditiveDiagonal ( )
inlinevirtual

Implements sLinsys.

virtual void sDummyLinsys::setSDiagonal ( OoqpVector &  sdiag)
inlinevirtual

Implements NlpGenLinsys.

virtual void sDummyLinsys::setXDiagonal ( OoqpVector &  xdiag)
inlinevirtual

Implements NlpGenLinsys.

virtual void sDummyLinsys::setYDiagonal ( OoqpVector &  ydiag)
inlinevirtual

Implements NlpGenLinsys.

virtual void sDummyLinsys::setZDiagonal ( OoqpVector &  zdiag)
inlinevirtual

Implements NlpGenLinsys.

virtual void sDummyLinsys::solveCompressed ( OoqpVector &  rhs)
inlinevirtual

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
See also
NlpGenSparseLinsys::solveCompressed
NlpGenDenseLinsys::solveCompressed

Reimplemented from sLinsys.

void sDummyLinsys::sync ( )
inlinevirtual

Implements sLinsys.

virtual void sDummyLinsys::UpdateMatrices ( Data *  prob_in,
int const  onlyRegPart 
)
inlinevirtual

Reimplemented from NlpGenLinsys.


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