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 ClpFixup(DIM)<Vector_type,Fixup_type,Aux_type> { 00033 public: 00034 FixupSpecific(ClpIntegrator(DIM)<Vector_type,Aux_type>& integ) : 00035 ClpFixup(DIM)<Vector_type,Fixup_type,Aux_type>(integ) {} 00036 }; 00037 00038 class FlaggingSpecific : 00039 public AMRFlaggingRel(DIM)<Vector_type,Fixup_type,Flag_type> { 00040 typedef AMRFlaggingRel(DIM)<Vector_type,Fixup_type,Flag_type> base_type; 00041 public: 00042 FlaggingSpecific(AMRSolver(DIM)<Vector_type,Fixup_type,Flag_type>& solver) : 00043 base_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