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
00030 #ifndef NODECFIVS_H
00031 #define NODECFIVS_H
00032
00033 #include <iostream>
00034 #include <cmath>
00035 #include <assert.h>
00036 #include <cstdlib>
00037 #include "REAL.H"
00038 #include "IntVect.H"
00039 #include "Box.H"
00040 #include "LoHiSide.H"
00041 #include "DisjointBoxLayout.H"
00042 #include "IntVectSet.H"
00043
00045
00052 class NodeCFIVS
00053 {
00054
00055 public:
00056
00061
00063
00065 NodeCFIVS();
00066
00068
00070 ~NodeCFIVS();
00071
00073
00076 NodeCFIVS(const Box& a_domain,
00077 const Box& a_box,
00078 const DisjointBoxLayout& a_levelBoxes,
00079 int a_idir,
00080 Side::LoHiSide a_hiorlo);
00081
00083
00086 NodeCFIVS(const ProblemDomain& a_domain,
00087 const Box& a_box,
00088 const DisjointBoxLayout& a_levelBoxes,
00089 int a_idir,
00090 Side::LoHiSide a_hiorlo);
00091
00093
00095 void define(
00096 const ProblemDomain& a_domain,
00098 const Box& a_box,
00100 const DisjointBoxLayout& a_levelBoxes,
00102 int a_idir,
00104 Side::LoHiSide a_hiorlo);
00105
00107
00109 void define(
00110 const Box& a_domain,
00112 const Box& a_box,
00114 const DisjointBoxLayout& a_levelBoxes,
00116 int a_idir,
00118 Side::LoHiSide a_hiorlo);
00119
00126
00128 bool isDefined() const;
00129
00131
00133 bool isEmpty() const;
00134
00136
00142 bool isPacked() const;
00143
00145
00149 const Box& packedBox() const;
00150
00152
00159 const IntVectSet& getFineIVS() const ;
00160
00163 static long long m_packCount, m_sparseCount;
00164
00165 protected:
00166
00167
00168 void setDefaultValues();
00169
00172 IntVectSet m_fineInterpIVS;
00173
00174 bool m_packed;
00175
00176 bool m_empty;
00177
00178 Box m_packedBox;
00179
00180 bool m_isdefined;
00181
00182 private:
00183 void operator= (const NodeCFIVS& levcfs_in) {};
00184
00185 NodeCFIVS(const NodeCFIVS& levcfs_in) {};
00186
00187 };
00188
00189
00190 inline
00191 bool NodeCFIVS::isEmpty() const
00192 {
00193 return m_empty;
00194 }
00195
00196
00197 inline
00198 bool NodeCFIVS::isPacked() const
00199 {
00200 return m_packed;
00201 }
00202
00203
00204 inline
00205 const Box& NodeCFIVS::packedBox() const
00206 {
00207 return m_packedBox;
00208 }
00209
00210 #endif