00001 // -*- C++ -*- 00002 00003 // Copyright (C) 2002 Ralf Deiterding 00004 // Brandenburgische Universitaet Cottbus 00005 00006 #ifndef AMROC_BOUNDARYCONDITIONS_H 00007 #define AMROC_BOUNDARYCONDITIONS_H 00008 00009 #include "AMRBase.h" 00010 00024 template <class VectorType, int dim> 00025 class BoundaryConditions : public AMRBase<VectorType,dim> { 00026 typedef AMRBase<VectorType,dim> base; 00027 public: 00028 typedef typename base::vec_grid_fct_type vec_grid_fct_type; 00029 typedef typename base::vec_grid_data_type vec_grid_data_type; 00030 00031 BoundaryConditions() : base() {} 00032 00033 virtual ~BoundaryConditions() {} 00034 00035 //****************************************************************************** 00036 // Abstract class interface 00037 //****************************************************************************** 00038 virtual void SetBndry(vec_grid_data_type &gd, const int& level, const BBox &bb, 00039 const int &side, const double& time) = 0; 00040 //****************************************************************************** 00041 00042 virtual void register_at(ControlDevice& Ctrl, const std::string& prefix) { 00043 base::LocCtrl = Ctrl.getSubDevice(prefix+"BoundaryConditions"); 00044 } 00045 virtual void register_at(ControlDevice& Ctrl) { 00046 register_at(Ctrl, ""); 00047 } 00048 }; 00049 00050 00051 #endif