vtf-logo

weno/applications/euler/2d/Wedge-Dimotakis/src/Problem.h

00001 // -*- C++ -*-
00002 
00003 #ifndef AMROC_PROBLEM_H
00004 #define AMROC_PROBLEM_H
00005 
00006 #define DIM  2
00007 #define NEQUATIONS 9
00008 #define NVARS 7
00009   
00010 #include "WENOProblem.h"
00011 //#include "WENOStdProblem.h"
00012 
00013 #define OWN_GFMAMRSOLVER
00014 #include "WENOStdGFMProblem.h"
00015 
00016 class SolverSpecific : 
00017   public AMRGFMSolver<VectorType,FixupType,FlagType,DIM> {
00018   typedef VectorType::InternalDataType DataType;
00019   typedef AMRGFMSolver<VectorType,FixupType,FlagType,DIM> base;
00020   typedef F77GFMFileOutput<VectorType,FixupType,FlagType,DIM> output_type;
00021 public:
00022 
00023   SolverSpecific(IntegratorSpecific& integ, 
00024                  base::initial_condition_type& init,
00025                  base::boundary_conditions_type& bc) : base(integ, init, bc) {
00026     SetLevelTransfer(new F77LevelTransfer<VectorType,DIM>(f_prolong, f_restrict));
00027 #ifdef f_flgout
00028     SetFileOutput(new F77GFMFileOutput<VectorType,FixupType,FlagType,DIM>(*this,f_flgout)); 
00029 #else   
00030     SetFileOutput(new GFMFileOutput<VectorType,FixupType,FlagType,DIM>(*this)); 
00031 #endif
00032     SetFixup(new FixupSpecific());
00033     SetFlagging(new FlaggingSpecific(*this)); 
00034     AddGFM(new GhostFluidMethod<VectorType,DIM>(
00035               new F77GFMBoundary<VectorType,DIM>(f_ibndrfl,f_itrans),
00036               new F77GFMLevelSet<DataType,DIM>(f_lset)));
00037   }  
00038  
00039   ~SolverSpecific() {
00040     DeleteGFM(_GFM[0]);
00041     delete _Flagging;
00042     delete _Fixup;
00043   }