00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011
00012
00013 #ifndef _NODECFIVS_H_
00014 #define _NODECFIVS_H_
00015
00016 #include <iostream>
00017 #include <cmath>
00018 #include "SPACE.H"
00019 #include <cstdlib>
00020 #include "REAL.H"
00021 #include "IntVect.H"
00022 #include "Box.H"
00023 #include "LoHiSide.H"
00024 #include "DisjointBoxLayout.H"
00025 #include "IntVectSet.H"
00026 #include "NamespaceHeader.H"
00027
00029
00036 class NodeCFIVS
00037 {
00038
00039 public:
00040
00045
00047
00049 NodeCFIVS();
00050
00052
00054 ~NodeCFIVS();
00055
00057
00060 NodeCFIVS(const Box& a_domain,
00061 const Box& a_box,
00062 const DisjointBoxLayout& a_levelBoxes,
00063 int a_idir,
00064 Side::LoHiSide a_hiorlo);
00065
00067
00070 NodeCFIVS(const ProblemDomain& a_domain,
00071 const Box& a_box,
00072 const DisjointBoxLayout& a_levelBoxes,
00073 int a_idir,
00074 Side::LoHiSide a_hiorlo);
00075
00077
00079 void define(
00080 const ProblemDomain& a_domain,
00082 const Box& a_box,
00084 const DisjointBoxLayout& a_levelBoxes,
00086 int a_idir,
00088 Side::LoHiSide a_hiorlo);
00089
00091
00093 void define(
00094 const Box& a_domain,
00096 const Box& a_box,
00098 const DisjointBoxLayout& a_levelBoxes,
00100 int a_idir,
00102 Side::LoHiSide a_hiorlo);
00103
00110
00112 bool isDefined() const;
00113
00115
00117 bool isEmpty() const;
00118
00120
00126 bool isPacked() const;
00127
00129
00133 const Box& packedBox() const;
00134
00136
00143 const IntVectSet& getFineIVS() const ;
00144
00147 static long long m_packCount, m_sparseCount;
00148
00149 protected:
00150
00151
00152 void setDefaultValues();
00153
00156 IntVectSet m_fineInterpIVS;
00157
00158 bool m_packed;
00159
00160 bool m_empty;
00161
00162 Box m_packedBox;
00163
00164 bool m_isdefined;
00165
00166 private:
00167 void operator= (const NodeCFIVS& levcfs_in) {};
00168
00169 NodeCFIVS(const NodeCFIVS& levcfs_in) {};
00170
00171 };
00172
00173
00174 inline
00175 bool NodeCFIVS::isEmpty() const
00176 {
00177 return m_empty;
00178 }
00179
00180
00181 inline
00182 bool NodeCFIVS::isPacked() const
00183 {
00184 return m_packed;
00185 }
00186
00187
00188 inline
00189 const Box& NodeCFIVS::packedBox() const
00190 {
00191 return m_packedBox;
00192 }
00193
00194 #include "NamespaceFooter.H"
00195 #endif