Actual source code: taovec_petsc.h
1: #ifndef TAOPETSCVECTOR_H
2: #define TAOPETSCVECTOR_H
4: #include "taovec.h"
5: #include "petscksp.h"
8: class TaoVecPetsc: public TaoVec {
10: protected:
12: Vec pv;
13: PetscViewer pvecviewer;
15: public:
17: TaoVecPetsc( Vec);
18: ~TaoVecPetsc();
20: inline Vec GetVec(){return pv;}
21: int SetVec(Vec);
22: int SetPetscViewer(PetscViewer);
24: /*
25: The following methods are implementations of
26: the virtual method in the base class
27: */
28: int Clone(TaoVec**);
29:
30: int Compatible (TaoVec *v, TaoTruth*);
32: int SetToZero();
33: int SetToConstant( double );
34: int Norm1(double *);
35: int Norm2(double *);
36: int Norm2squared(double *);
37: int NormInfinity(double *);
38: int Dot( TaoVec*, double *);
40: int CopyFrom( TaoVec* );
41: int ScaleCopyFrom( double, TaoVec* );
42: int Scale( double );
43: int AddConstant( double );
44: int Negate();
45: int Reciprocal();
46: int Sqrt();
47: int Pow(double);
49: int GetDimension(int *);
51: int Axpy( double, TaoVec* );
52: int Aypx( double, TaoVec* );
53: int Axpby( double , TaoVec*, double );
55: int Waxpby( double , TaoVec*, double , TaoVec* );
57: int AbsoluteValue( );
58: int MinElement(double*);
60: int PointwiseMultiply( TaoVec*, TaoVec* );
61: int PointwiseDivide( TaoVec*, TaoVec* );
63: int PointwiseMinimum( TaoVec*, TaoVec* );
64: int PointwiseMaximum( TaoVec*, TaoVec* );
65: int Median( TaoVec* , TaoVec*, TaoVec* );
67: int Fischer(TaoVec *, TaoVec *, TaoVec *, TaoVec *);
68: int SFischer(TaoVec *, TaoVec *, TaoVec *, TaoVec *, double);
70: int View();
71: int StepMax( TaoVec* , double* );
72: int StepMax2( TaoVec* , TaoVec* , TaoVec* , double* );
73: int StepBoundInfo(TaoVec* ,TaoVec*,TaoVec*,double*,double*,double*);
75: int BoundGradientProjection(TaoVec*,TaoVec*,TaoVec*, TaoVec*);
77: int GetArray(TaoScalar **, int*);
78: int RestoreArray(TaoScalar **, int*);
81: int CreateIndexSet(TaoIndexSet**S);
83: int SetReducedVec(TaoVec*, TaoIndexSet*);
84: int ReducedCopyFromFull(TaoVec*, TaoIndexSet*);
85: int ReducedXPY(TaoVec*, TaoIndexSet*);
87: };
89: #endif