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