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 _CoveredFaceFAB_H_
00030 #define _CoveredFaceFAB_H_
00031
00032 #include "IntVect.H"
00033 #include "VolIndex.H"
00034 #include "IntVectSet.H"
00035 #include "EBISBox.H"
00036 #include "BaseIVFAB.H"
00037 #include "Vector.H"
00038 #include "LoHiSide.H"
00039
00040
00042 class CoveredFaceFAB
00043 {
00044 public:
00045
00047 int nComp() const;
00048
00050 int getIndex(int a_index, Side::LoHiSide a_sd) const;
00051
00053 void clear();
00054
00056 CoveredFaceFAB();
00057
00059 ~CoveredFaceFAB();
00060
00062 CoveredFaceFAB(const IntVectSet& a_ivs,
00063 const EBISBox& a_ebisBox,
00064 int a_nvar);
00065
00067 void define(const IntVectSet& a_ivs,
00068 const EBISBox& a_ebisBox,
00069 int a_nvar);
00070
00072 BaseIVFAB<Real>& operator()
00073 (int a_idir, Side::LoHiSide a_sd);
00074
00076 const BaseIVFAB<Real>& operator()
00077 (int a_idir, Side::LoHiSide a_sd) const;
00078
00080 const IntVectSet& getIVS(int a_idir, Side::LoHiSide a_sd) const;
00081
00083 bool isDefined() const;
00084
00086 void setVal(const Real& a_val);
00087
00089 void
00090 copy(const Box& Rfrom, const Interval& Cdest,
00091 const Box& Rto, const CoveredFaceFAB& src,
00092 const Interval& Csrc);
00093
00094 private:
00095
00096 CoveredFaceFAB(const CoveredFaceFAB& a_input)
00097 {
00098 MayDay::Error("Invalid Operator");
00099 }
00100 void
00101 operator= (const CoveredFaceFAB& a_input)
00102 {
00103 MayDay::Error("Invalid Operator");
00104 }
00105
00106 EBISBox m_ebisBox;
00107 IntVectSet m_sets[2*SpaceDim];
00108 BaseIVFAB<Real> m_data[2*SpaceDim];
00109 int m_nComp;
00110 bool m_isDefined;
00111
00112 };
00113
00114
00115 #endif