00001
00002
00003
00004
00005 #ifndef QPGENRESIDUALS
00006 #define QPGENRESIDUALS
00007
00008 #include "Residuals.h"
00009 #include "OoqpVectorHandle.h"
00010
00011 class QpGen;
00012 class QpGenData;
00013 class Variables;
00014 class LinearAlgebraPackage;
00015
00022 class QpGenResiduals : public Residuals {
00023 protected:
00024 int nx, my, mz;
00025
00026 double nxupp;
00027 OoqpVectorHandle ixupp;
00028
00029 double nxlow;
00030 OoqpVectorHandle ixlow;
00031
00032 double mcupp;
00033 OoqpVectorHandle icupp;
00034
00035 double mclow;
00036 OoqpVectorHandle iclow;
00037
00038 public:
00039 OoqpVectorHandle rQ;
00040 OoqpVectorHandle rA;
00041 OoqpVectorHandle rC;
00042 OoqpVectorHandle rz;
00043 OoqpVectorHandle rv;
00044 OoqpVectorHandle rw;
00045 OoqpVectorHandle rt;
00046 OoqpVectorHandle ru;
00047 OoqpVectorHandle rgamma;
00048 OoqpVectorHandle rphi;
00049 OoqpVectorHandle rlambda;
00050 OoqpVectorHandle rpi;
00051
00052 QpGenResiduals( LinearAlgebraPackage * la,
00053 int nx, int my, int mz,
00054 OoqpVector * ixlow, OoqpVector * ixupp,
00055 OoqpVector * iclow, OoqpVector * icupp );
00056
00057 virtual void calcresids(Data *problem, Variables *vars);
00058
00059 virtual void add_r3_xz_alpha(Variables *vars, double alpha);
00060
00061 virtual void set_r3_xz_alpha(Variables *vars, double alpha);
00062
00063 virtual void clear_r3();
00064
00065 virtual void clear_r1r2();
00066
00067 virtual void project_r3(double rmin, double rmax);
00068
00069 virtual int validNonZeroPattern();
00070
00071 virtual ~QpGenResiduals();
00072 };
00073
00074 #endif
00075
00076
00077
00078
00079