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