00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _SLABSERVICE_H_
00030 #define _SLABSERVICE_H_
00031
00032 #include <cmath>
00033 #include <cstdlib>
00034 #include "Vector.H"
00035 #include "Box.H"
00036 #include "EBISBox.H"
00037 #include "GeometryService.H"
00039
00043 class SlabService: public GeometryService
00044 {
00045 public:
00047 SlabService(const Box& a_coveredRegion);
00048
00049 virtual ~SlabService();
00050
00052
00056 virtual bool isRegular(const Box& a_region,
00057 const Box& a_domain,
00058 const RealVect& a_origin,
00059 const Real& a_dx) const;
00060
00062
00066 virtual bool isCovered(const Box& a_region,
00067 const Box& a_domain,
00068 const RealVect& a_origin,
00069 const Real& a_dx) const;
00070
00072
00081 virtual void fillGraph(BaseFab<int>& a_regIrregCovered,
00082 Vector<IrregNode>& a_nodes,
00083 const Box& a_validRegion,
00084 const Box& a_ghostRegion,
00085 const Box& a_domain,
00086 const RealVect& a_origin,
00087 const Real& a_dx) const;
00088
00089
00090 protected:
00091 Box m_coveredRegion;
00092
00093 };
00094 #endif