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