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
 
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 inherited from sLinsys
 sLinsys ()
 
- Protected Attributes inherited from sLinsys
int locnx
 
int locmy
 
int locmz
 
DoubleLinearSolversolver
 
sDatadata
 
- 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: