O3r2Interpolator.h

00001 #ifndef gridripper_amr1d_O3r2Interpolation_h
00002 #define gridripper_amr1d_O3r2Interpolation_h
00003 
00004 #include <gridripper/config.h>
00005 #include <gridripper/amr1d/GridInterpolator.h>
00006 #include <gridripper/lang/IllegalArgumentException.h>
00007 #include <gridripper/tvalarray.h>
00008 #include <iostream>
00009 
00010 namespace gridripper { namespace amr1d {
00011 
00012 class FieldWrapper;
00013 
00014 namespace interpolation {
00015 
00016 using namespace std;
00017 
00024 class O3r2Interpolator: public GridInterpolator
00025 {
00026 public:
00027     void interpolateMargin(const Grid& p, Grid& g, const PDE& pde) const
00028             throw(IllegalArgumentException&);
00029 
00030     void interpolate(const Grid& p, Grid& g, const PDE& pde) const
00031             throw(IllegalArgumentException&);
00032 
00033     string toString() const {
00034         return "O3r2Interpolator";
00035     }
00036 
00037 private:
00038     static bool interpol_2L_2R(const PDE& pde, const Grid& p, int k,
00039             FieldWrapper& fw0, FieldWrapper& fw1,
00040             FieldWrapper& fw2, FieldWrapper& fw3,
00041             FieldWrapper& fw);
00042 
00043     static bool interpol_3L_1R(const PDE& pde, const Grid& p, int k, int nc,
00044             GReal_t* w0, GReal_t* w1,
00045             GReal_t* w2, GReal_t* w3,
00046             GReal_t* w);
00047 
00048     static bool interpol_1L_3R(const PDE& pde, const Grid& p, int k, int nc,
00049             GReal_t* w0, GReal_t* w1,
00050             GReal_t* w2, GReal_t* w3,
00051             GReal_t* w);
00052 
00053     static void appendB(ostream& out, int f);
00054 };
00055 
00056 } } } // namespace gridripper::amr1d::interpolation
00057 
00058 #endif /* gridripper_amr1d_O3r2Interpolation_h */

Generated on Wed Jun 17 18:46:47 2009 for GridRipper by  doxygen 1.5.6