00001
00002
00003
00004
00005 #ifndef QPBOUNDPETSC
00006 #define QPBOUNDPETSC
00007
00008 #include "QpBound.h"
00009 #include "petscmat.h"
00010 #include "petscsles.h"
00011
00012 class QpBoundData;
00013
00014 class QpBoundPetsc : public QpBound {
00015 protected:
00016 int m;
00017 SLES sles;
00018 public:
00019 virtual QpBoundData *makeData( double alpha, Vec g, Mat Q,
00020 Vec l, Vec il, Vec u, Vec iu );
00021 virtual QpBoundData *makeData();
00022
00023 virtual Variables *makeVariables(Data * prob_in);
00024 virtual Variables *makeVariables( Data * problem,
00025 Vec x,
00026 Vec t, Vec v,
00027 Vec tau, Vec nu );
00028 virtual Residuals *makeResiduals(Data * prob_in);
00029 virtual Residuals *makeResiduals( Data * problem,
00030 Vec rg );
00031 QpBoundPetsc( int nx );
00032 QpBoundPetsc( int m, int n );
00033 QpBoundPetsc( int m, int n, SLES sles_ );
00034
00035 virtual LinearSystem * makeLinsys( Data *prob );
00036 virtual OoqpVector * newPrimalVector();
00037
00038 };
00039
00040 #endif