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 #ifndef _REGCFIVS_H_
00029 #define _REGCFIVS_H_
00030
00031 #include <iostream>
00032 #include <cmath>
00033 #include <assert.h>
00034 #include <cstdlib>
00035
00036 #include "REAL.H"
00037 #include "IntVect.H"
00038 #include "Box.H"
00039 #include "LoHiSide.H"
00040 #include "DisjointBoxLayout.H"
00041 #include "IntVectSet.H"
00042 #include "ProblemDomain.H"
00043
00045
00050 class RegCFIVS
00051 {
00052 public:
00054 RegCFIVS();
00055
00057 RegCFIVS(const Box& a_domain,
00058 const Box& a_boxIn,
00059 const DisjointBoxLayout& a_levboxes,
00060 int a_direction,
00061 Side::LoHiSide a_hiorlo);
00062
00064 RegCFIVS(const ProblemDomain& a_domain,
00065 const Box& a_boxIn,
00066 const DisjointBoxLayout& a_levboxes,
00067 int a_direction,
00068 Side::LoHiSide a_hiorlo);
00069
00071 ~RegCFIVS();
00072
00074 bool isDefined() const;
00075
00077 void define(const Box& a_domain,
00078 const Box& a_boxIn,
00079 const DisjointBoxLayout& a_fineBoxes,
00080 int a_direction,
00081 Side::LoHiSide a_hiorlo);
00082
00084 void define(const ProblemDomain& a_domain,
00085 const Box& a_boxIn,
00086 const DisjointBoxLayout& a_fineBoxes,
00087 int a_direction,
00088 Side::LoHiSide a_hiorlo);
00089
00091
00095 bool isPacked() const;
00096
00098
00101 const Box& packedBox() const;
00102
00104
00106 const IntVectSet& getFineIVS() const ;
00107
00108 static long long m_packCount, m_sparseCount;
00109
00110 protected:
00111
00112 void setDefaultValues();
00113
00114
00115
00116
00117 IntVectSet m_fiinterpIvs;
00118
00119 bool m_packed;
00120
00121 Box m_packedBox;
00122
00123 bool m_isDefined;
00124
00125 private:
00126 RegCFIVS(const RegCFIVS&) {};
00127 void operator= (const RegCFIVS&) {};
00128 };
00129
00130 #endif