00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _MINIIVFAB_H_
00012 #define _MINIIVFAB_H_
00013
00014 #include <cmath>
00015 #include <cstdlib>
00016 #include "SPACE.H"
00017 #include "Vector.H"
00018 #include "IntVectSet.H"
00019 #include "VolIndex.H"
00020 #include "BaseFab.H"
00021 #include "EBGraph.H"
00022 #include "BaseIVFAB.H"
00023 #include "NamespaceHeader.H"
00024
00026
00035 template <class T>
00036 class MiniIVFAB : public BaseIVFAB<T>
00037 {
00038 public:
00040
00044 MiniIVFAB();
00045
00047
00053 MiniIVFAB(const IntVectSet& a_region,
00054 const EBGraph& a_ebgraph,
00055 const int& a_nvarin);
00056
00058
00071 MiniIVFAB(const Interval& a_comps,
00072 BaseIVFAB<T>& a_original);
00073
00074
00076 virtual ~MiniIVFAB();
00077
00079
00086 virtual void define(const IntVectSet& a_region,
00087 const EBGraph& a_ebgraph,
00088 const int& a_nvarin);
00089
00090
00091
00092
00094 int size(const Box& R, const Interval& comps) const ;
00095
00097 void linearOut(void* buf, const Box& R, const Interval& comps) const;
00098
00100 void linearIn(void* buf, const Box& R, const Interval& comps);
00101
00103
00108 virtual void clear();
00109
00110
00111
00112
00113
00114
00116 MiniIVFAB(const Box& a_region, int a_nVar)
00117 {
00118 MayDay::Error("invalid constructor called for baseebcellfab");
00119 }
00120
00122
00125 virtual T* getIndex(const VolIndex& a_vof,const int& a_comp) const;
00126
00127 private:
00128 virtual void
00129 setDefaultValues();
00130
00131 protected:
00132
00133 Vector<VolIndex> m_vofs;
00134
00135 };
00136
00137 #include "NamespaceFooter.H"
00138
00139 #ifndef CH_EXPLICIT_TEMPLATES
00140 #include "MiniIVFABI.H"
00141 #endif
00142
00143 #endif