Blockstructured Adaptive Mesh Refinement in object-oriented C++
00001 #ifndef AMROC_PROBLEM_H 00002 #define AMROC_PROBLEM_H 00003 00004 #include "euler2.h" 00005 // #undef NAUX 00006 // #define NAUX 2 00007 00008 typedef Vector(NAUX)<Data_type> Aux_type; 00009 typedef Vector(NFIXUP)<Data_type> Fixup_type; 00010 typedef short Flag_type; 00011 00012 class IntegratorSpecific : 00013 public ClpIntegrator(DIM)<Vector_type,Aux_type> { 00014 public: 00015 IntegratorSpecific() : 00016 ClpIntegrator(DIM)<Vector_type,Aux_type>(NEQUSED,NWAVES,GHOSTWIDTH) {} 00017 }; 00018 00019 class InitialConditionSpecific : 00020 public ClpInitialCondition(DIM)<Vector_type> { 00021 public: 00022 InitialConditionSpecific() : 00023 ClpInitialCondition(DIM)<Vector_type>(GHOSTWIDTH) {} 00024 }; 00025 00026 class BoundaryConditionsSpecific : 00027 public ClpBoundaryConditions(DIM)<Vector_type> { 00028 public: 00029 BoundaryConditionsSpecific() : 00030 ClpBoundaryConditions(DIM)<Vector_type>(GHOSTWIDTH) {} 00031 }; 00032 00033 class FixupSpecific : 00034 public ClpFixup(DIM)<Vector_type,Fixup_type,Aux_type> { 00035 public: 00036 FixupSpecific(ClpIntegrator(DIM)<Vector_type,Aux_type>& integ) : 00037 ClpFixup(DIM)<Vector_type,Fixup_type,Aux_type>(integ) {} 00038 }; 00039 00040 class FlaggingSpecific : 00041 public AMRFlaggingRel(DIM)<Vector_type,Fixup_type,Flag_type> { 00042 typedef AMRFlaggingRel(DIM)<Vector_type,Fixup_type,Flag_type> base_type; 00043 public: 00044 FlaggingSpecific(AMRSolver(DIM)<Vector_type,Fixup_type,Flag_type>& solver) : 00045 base_type(solver) {} 00046 }; 00047 00048 class SolverSpecific : 00049 public AMRSolver(DIM)<Vector_type,Fixup_type,Flag_type> { 00050 public: 00051 SolverSpecific(ClpIntegrator(DIM)<Vector_type,Aux_type>& integ, 00052 ClpInitialCondition(DIM)<Vector_type>& init, 00053 ClpBoundaryConditions(DIM)<Vector_type>& bc) : 00054 AMRSolver(DIM)<Vector_type,Fixup_type,Flag_type>(integ, init, bc) { 00055 SetFlagging(new FlaggingSpecific(*this)); 00056 SetFixup(new FixupSpecific(integ)); 00057 } 00058 00059 ~SolverSpecific() { 00060 delete _Flagging; 00061 delete _Fixup; 00062 } 00063 }; 00064 00065 class SolverControlSpecific : 00066 public AMRSolverControl(DIM)<Vector_type,Fixup_type,Flag_type> { 00067 public: 00068 SolverControlSpecific(AMRSolver(DIM)<Vector_type,Fixup_type,Flag_type>& solver) : 00069 AMRSolverControl(DIM)<Vector_type,Fixup_type,Flag_type>(solver) {} 00070 }; 00071 00072 00073 #endif 00074
Quickstart Users Guide Programmers Reference Installation Examples Download
AMROC Main Home Contactlast update: 06/01/04