00001
00002
00003
00004
00005
00006
00007
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