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