Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

SparsePrimalDualSystem.hh

Go to the documentation of this file.
00001 #ifndef SPARSEPRIMALDUALSYSTEM
00002 #define SPARSEPRIMALDUALSYSTEM
00003 
00012 #include "PrimalDualSystem.hh"
00013 
00014 class SparseSymSolver;
00015 class SparseSymMatrix;
00016 class SimpleVector;
00017 class IotrMaskSeq;
00018 
00019 typedef Handle<SparseSymMatrix> SparseSymMatrixHandle;
00020 typedef Handle<LinearOperator> LinearOperatorHandle;
00021 typedef Handle<SparseSymSolver> SparseSymSolverHandle;
00022 typedef Handle<SimpleVector>   SimpleVectorHandle;
00023 typedef Handle<IotrMaskSeq> IotrMaskSeqHandle;
00024 
00029 class SparsePrimalDualSystem : public PrimalDualSystem {
00030 protected:
00031   SparseSymMatrixHandle  mMatrix;
00032   SparseSymSolverHandle  mSolver;
00033   SimpleVectorHandle     mRhs;
00034   IotrMaskSeqHandle      mXmask;
00035 public:
00036   SparsePrimalDualSystem( ElementGather * iclow, ElementGather * icupp,
00037                           ElementGather * ieq,   
00038                           ElementGather * ixlow, ElementGather * ixupp,
00039                           SparseSymMatrix * matrix, SparseSymSolver * solver,
00040                           IotrMaskSeq * aXmask );
00041 
00042   virtual void assemble( GenMatrix & J, SymMatrix & H,
00043                          IotrVector & Dx, IotrVector & omega );
00044 
00045   virtual void matrixChanged();
00046   virtual void basicSolve( IotrVector & xsol,
00047                            IotrVector & rc );
00048 
00049   virtual int isConvex();
00050   SparseSymMatrix & matrix() { return *mMatrix; }
00051   SparseSymSolver & solver() { return *mSolver; }
00052 };
00053 
00054 typedef Handle<SparsePrimalDualSystem> SparsePrimalDualSystemHandle;
00055 
00056 #endif

Generated on Wed Aug 27 10:03:41 2003 for iotr by doxygen1.2.18