00001
00002
00003
00004
00005
00006 #ifndef AMROC_PROBLEM_H
00007 #define AMROC_PROBLEM_H
00008
00009 #include "advection2.h"
00010
00011 #define OWN_AMRSOLVER
00012 #include "ClpStdProblem.h"
00013
00014 class SolverSpecific :
00015 public AMRSolver<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) : base(integ, init, bc) {
00021 SetLevelTransfer(new F77LevelTransfer<VectorType,DIM>(f_prolong, f_restrict));
00022 #ifdef f_flgout
00023 SetFileOutput(new F77FileOutput<VectorType,DIM>(f_flgout));
00024 #else
00025 SetFileOutput(new FileOutput<VectorType,DIM>());
00026 #endif
00027 SetFixup(new FixupSpecific(integ));
00028 SetFlagging(new FlaggingSpecific(*this));
00029 SetExactSolution(new F77ExactSolution<VectorType,DIM>(f_exact));
00030 }
00031
00032 ~SolverSpecific() {
00033 delete _LevelTransfer;
00034 delete _Flagging;
00035 delete _Fixup;
00036 delete _FileOutput;
00037 }
00038 };