vtf-logo

rim/applications/euler/2d/VortexRot/src/Problem.h

00001 // -*- C++ -*-
00002 
00003 #ifndef AMROC_PROBLEM_H
00004 #define AMROC_PROBLEM_H
00005 
00006 #include "RIMProblem.h"
00007 #define OWN_AMRSOLVER
00008 #include "RIMStdProblem.h"
00009 #include "F77Interfaces/F77ExactSolution.h"
00010 
00011 class SolverSpecific : 
00012   public AMRSolver<VectorType,FixupType,FlagType,DIM> {
00013   typedef AMRSolver<VectorType,FixupType,FlagType,DIM> base;
00014 public:
00015   SolverSpecific(IntegratorSpecific& integ, 
00016                  base::initial_condition_type& init,
00017                  base::boundary_conditions_type& bc) :
00018     AMRSolver<VectorType,FixupType,FlagType,DIM>(integ, init, bc) {
00019     SetLevelTransfer(new F77LevelTransfer<VectorType,DIM>(f_prolong, f_restrict));
00020 #ifdef f_flgout
00021     SetFileOutput(new F77FileOutput<VectorType,DIM>(f_flgout)); 
00022 #else   
00023     SetFileOutput(new FileOutput<VectorType,DIM>()); 
00024 #endif
00025     SetFixup(new FixupSpecific());
00026     SetFlagging(new FlaggingSpecific(*this)); 
00027     SetExactSolution(new F77ExactSolution<VectorType,DIM>(f_exact)); 
00028   }  
00029 
00030   ~SolverSpecific() {
00031     delete _LevelTransfer;
00032     delete _Flagging;
00033     delete _Fixup;
00034     delete _FileOutput;
00035   }