00001
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 }