00001
00002
00003
00004
00005
00006 #ifndef AMROC_F77_GFM_EXACTSOLUTION_H
00007 #define AMROC_F77_GFM_EXACTSOLUTION_H
00008
00016 #include "F77Interfaces/F77ExactSolution.h"
00017 #include "GFMExactSolution.h"
00018
00026 template <class VectorType, class FixupType, class FlagType, int dim>
00027 class F77GFMExactSolution : public F77ExactBase<VectorType,dim>,
00028 public GFMExactSolution<VectorType,FixupType,FlagType,dim> {
00029 typedef GFMExactSolution<VectorType,FixupType,FlagType,dim> base;
00030 typedef F77ExactBase<VectorType,dim> exact_base;
00031
00032 public:
00033 typedef typename base::gfm_solver_type gfm_solver_type;
00034 typedef typename base::vec_grid_data_type vec_grid_data_type;
00035 typedef typename base::grid_data_type grid_data_type;
00036 typedef typename exact_base::generic_func_type generic_func_type;
00037
00038 F77GFMExactSolution(gfm_solver_type& solver) : exact_base(), base(solver) {}
00039 F77GFMExactSolution(gfm_solver_type& solver, generic_func_type exact) :
00040 exact_base(exact), base(solver) {}
00041
00042 virtual ~F77GFMExactSolution() {}
00043
00044 virtual void SetGrid(vec_grid_data_type& gd, grid_data_type& gdw,
00045 const int& level, double t) {
00046 exact_base::SetGrid(base::GH(),base::NGhosts(),gd,gdw,level,t);
00047 }
00048 };
00049
00050
00051 #endif