00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011
00012
00013 #ifndef _COVEREDFACEFAB_H_
00014 #define _COVEREDFACEFAB_H_
00015
00016 #include "IntVect.H"
00017 #include "VolIndex.H"
00018 #include "IntVectSet.H"
00019 #include "EBISBox.H"
00020 #include "BaseIVFAB.H"
00021 #include "Vector.H"
00022 #include "LoHiSide.H"
00023 #include "NamespaceHeader.H"
00024
00025
00026 class CoveredFaceFAB
00027 {
00028 public:
00029
00030
00031 int nComp() const;
00032
00033
00034 int getIndex(int a_index, Side::LoHiSide a_sd) const;
00035
00036
00037 void clear();
00038
00039
00040 CoveredFaceFAB();
00041
00042
00043 ~CoveredFaceFAB();
00044
00045
00046 CoveredFaceFAB(const IntVectSet& a_ivs,
00047 const EBISBox& a_ebisBox,
00048 int a_nvar);
00049
00050
00051 void define(const IntVectSet& a_ivs,
00052 const EBISBox& a_ebisBox,
00053 int a_nvar);
00054
00055
00056 BaseIVFAB<Real>& operator()
00057 (int a_idir, Side::LoHiSide a_sd);
00058
00059
00060 const BaseIVFAB<Real>& operator()
00061 (int a_idir, Side::LoHiSide a_sd) const;
00062
00063
00064 const IntVectSet& getIVS(int a_idir, Side::LoHiSide a_sd) const;
00065
00066
00067 bool isDefined() const;
00068
00069
00070 void setVal(const Real& a_val);
00071
00072
00073 void
00074 copy(const Box& Rfrom, const Interval& Cdest,
00075 const Box& Rto, const CoveredFaceFAB& src,
00076 const Interval& Csrc);
00077
00078 private:
00079
00080 CoveredFaceFAB(const CoveredFaceFAB& a_input)
00081 {
00082 MayDay::Error("Invalid Operator");
00083 }
00084 void
00085 operator= (const CoveredFaceFAB& a_input)
00086 {
00087 MayDay::Error("Invalid Operator");
00088 }
00089
00090 EBISBox m_ebisBox;
00091 IntVectSet m_sets[2*SpaceDim];
00092 BaseIVFAB<Real> m_data[2*SpaceDim];
00093 int m_nComp;
00094 bool m_isDefined;
00095
00096 };
00097
00098 #include "NamespaceFooter.H"
00099 #endif