00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011
00012
00013 #ifndef _SLABSERVICE_H_
00014 #define _SLABSERVICE_H_
00015
00016 #include <cmath>
00017 #include <cstdlib>
00018 #include "Vector.H"
00019 #include "Box.H"
00020 #include "EBISBox.H"
00021 #include "GeometryService.H"
00022 #include "NamespaceHeader.H"
00024
00028 class SlabService: public GeometryService
00029 {
00030 public:
00032 SlabService(const Box& a_coveredRegion);
00033
00034 virtual ~SlabService();
00035
00037
00041 virtual bool isRegular(const Box& a_region,
00042 const ProblemDomain& a_domain,
00043 const RealVect& a_origin,
00044 const Real& a_dx) const;
00045
00047
00051 virtual bool isCovered(const Box& a_region,
00052 const ProblemDomain& a_domain,
00053 const RealVect& a_origin,
00054 const Real& a_dx) const;
00055
00057
00066 virtual void fillGraph(BaseFab<int>& a_regIrregCovered,
00067 Vector<IrregNode>& a_nodes,
00068 const Box& a_validRegion,
00069 const Box& a_ghostRegion,
00070 const ProblemDomain& a_domain,
00071 const RealVect& a_origin,
00072 const Real& a_dx) const;
00073
00074
00075 virtual InOut InsideOutside(const Box& a_region,
00076 const ProblemDomain& a_domain,
00077 const RealVect& a_origin,
00078 const Real& a_dx) const ;
00079
00080 protected:
00081 Box m_coveredRegion;
00082
00083 };
00084 #include "NamespaceFooter.H"
00085 #endif