vtf-logo

generic_Problem.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 // Copyright (C) 2002 Ralf Deiterding
00004 // Brandenburgische Universitaet Cottbus
00005 //
00006 // Copyright (C) 2003-2007 California Institute of Technology
00007 // Ralf Deiterding, ralf@amroc.net
00008 
00009 #ifndef AMROC_PROBLEM_H
00010 #define AMROC_PROBLEM_H
00011 
00018 #include "{Equations}.h"
00019 
00020 typedef Vector(NAUX)<Data_type>   Aux_type;
00021 typedef Vector(NFIXUP)<Data_type> Fixup_type;
00022 typedef short Flag_type; 
00023 
00024 class IntegratorSpecific :  
00025   public ClpIntegrator(DIM)<Vector_type,Aux_type> {
00026 public:   
00027   IntegratorSpecific() : 
00028     ClpIntegrator(DIM)<Vector_type,Aux_type>(NEQUSED,NWAVES,GHOSTWIDTH) {}
00029 };
00030  
00031 class InitialConditionSpecific : 
00032   public ClpInitialCondition(DIM)<Vector_type> {
00033 public:    
00034   InitialConditionSpecific() : 
00035     ClpInitialCondition(DIM)<Vector_type>(GHOSTWIDTH) {}
00036 };
00037   
00038 class BoundaryConditionsSpecific : 
00039   public ClpBoundaryConditions(DIM)<Vector_type> {
00040 public:    
00041   BoundaryConditionsSpecific() : 
00042     ClpBoundaryConditions(DIM)<Vector_type>(GHOSTWIDTH) {}
00043 };
00044 
00045 class FixupSpecific : 
00046   public ClpFixup(DIM)<Vector_type,Fixup_type,Aux_type> {
00047 public:
00048   FixupSpecific(ClpIntegrator(DIM)<Vector_type,Aux_type>& integ) :
00049     ClpFixup(DIM)<Vector_type,Fixup_type,Aux_type>(integ) {}
00050 };
00051 
00052 class FlaggingSpecific : 
00053   public AMRFlagging(DIM)<Vector_type,Fixup_type,Flag_type> {
00054 public:
00055   FlaggingSpecific(AMRSolver(DIM)<Vector_type,Fixup_type,Flag_type>& solver) : 
00056     AMRFlagging(DIM)<Vector_type,Fixup_type,Flag_type>(solver) {}
00057 };
00058  
00059 class SolverSpecific : 
00060   public AMRSolver(DIM)<Vector_type,Fixup_type,Flag_type> {
00061 public:
00062   SolverSpecific(ClpIntegrator(DIM)<Vector_type,Aux_type>& integ, 
00063                  ClpInitialCondition(DIM)<Vector_type>& init,
00064                  ClpBoundaryConditions(DIM)<Vector_type>& bc) :
00065     AMRSolver(DIM)<Vector_type,Fixup_type,Flag_type>(integ, init, bc) {
00066     SetFlagging(new FlaggingSpecific(*this)); 
00067     SetFixup(new FixupSpecific(integ));
00068   }  
00069 
00070   ~SolverSpecific() {
00071     delete _Flagging;
00072     delete _Fixup;
00073   }
00074 }; 
00075  
00076 class SolverControlSpecific : 
00077   public AMRSolverControl(DIM)<Vector_type,Fixup_type,Flag_type> {
00078 public:
00079   SolverControlSpecific(AMRSolver(DIM)<Vector_type,Fixup_type,Flag_type>& solver) : 
00080     AMRSolverControl(DIM)<Vector_type,Fixup_type,Flag_type>(solver) {}
00081 }; 
00082  
00083 
00084 #endif
00085