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