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 exact_base::generic_func_type generic_func_type;
00036
00037 F77GFMExactSolution(gfm_solver_type& solver) : exact_base(), base(solver) {}
00038 F77GFMExactSolution(gfm_solver_type& solver, generic_func_type exact) :
00039 exact_base(exact), base(solver) {}
00040
00041 virtual ~F77GFMExactSolution() {}
00042
00043 virtual void SetGrid(vec_grid_data_type& gd, const int& level, double t) {
00044 exact_base::SetGrid(base::GH(),base::NGhosts(),gd,level,t);
00045 }
00046 };
00047
00048
00049 #endif