00001 #ifndef __F2DSeparateSymStencilSpace_H__ 00002 #define __F2DSeparateSymStencilSpace_H__ 00003 00004 00005 00026 #include "AFSpatialDiscretisation.hpp" 00027 #include "FloatVector.hpp" 00028 00029 00030 class F2DSeparateSymStencilSpace : public AFSpatialDiscretisation 00031 { 00032 private: 00033 00034 int length; 00035 FloatVector* stencil; 00036 00037 public: 00038 F2DSeparateSymStencilSpace(FloatVector* stencil1D):AFSpatialDiscretisation(true) 00039 {stencil= stencil1D->copy(); length= stencil->size(); } 00040 virtual ~F2DSeparateSymStencilSpace(){delete stencil;} 00041 00042 // A * u(k+1) = u(k) used on unsplitted schemes 00043 // -------------------------------------------- 00044 virtual AFSymMatrix* getA(float tau, FImage* uk, AFSymMatrix* Afull=0); 00045 00046 // A * u(k+1) = u(k) used on splitted schemes 00047 // ------------------------------------------ 00048 virtual AFSymMatrix* getRowA(float tau, FImage* uk, int row, AFSymMatrix* A1=0); 00049 virtual AFSymMatrix* getColA(float tau, FImage* uk, int col, AFSymMatrix* A2=0); 00050 00051 }; 00052 00053 #endif 00054 00055