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
00051 class NodeCFIVS
00052 {
00053
00054 public:
00055
00057
00059
00061 NodeCFIVS();
00062
00064
00066 ~NodeCFIVS();
00067
00069
00072 NodeCFIVS(const Box& a_domain,
00073 const Box& a_box,
00074 const DisjointBoxLayout& a_levelBoxes,
00075 int a_idir,
00076 Side::LoHiSide a_hiorlo);
00077
00079
00082 NodeCFIVS(const ProblemDomain& a_domain,
00083 const Box& a_box,
00084 const DisjointBoxLayout& a_levelBoxes,
00085 int a_idir,
00086 Side::LoHiSide a_hiorlo);
00087
00089
00097 void define(const Box& a_domain,
00098 const Box& a_box,
00099 const DisjointBoxLayout& a_levelBoxes,
00100 int a_idir,
00101 Side::LoHiSide a_hiorlo);
00102
00104
00112 void define(const ProblemDomain& a_domain,
00113 const Box& a_box,
00114 const DisjointBoxLayout& a_levelBoxes,
00115 int a_idir,
00116 Side::LoHiSide a_hiorlo);
00117
00119
00121 bool isDefined() const;
00122
00124
00128 bool isPacked() const;
00129
00131
00134 const Box& packedBox() const;
00135
00137
00142 const IntVectSet& getFineIVS() const ;
00143
00144 static long long m_packCount, m_sparseCount;
00145
00146 protected:
00147
00148
00149 void setDefaultValues();
00150
00151
00152 IntVectSet m_fineInterpIVS;
00153
00154 bool m_packed;
00155
00156 Box m_packedBox;
00157
00158 bool m_isdefined;
00159
00160 private:
00161 void operator= (const NodeCFIVS& levcfs_in) {};
00162
00163 NodeCFIVS(const NodeCFIVS& levcfs_in) {};
00164
00165 };
00166
00167 inline
00168 bool NodeCFIVS::isPacked() const
00169 {
00170 return m_packed;
00171 }
00172
00173
00174 inline
00175 const Box& NodeCFIVS::packedBox() const
00176 {
00177 return m_packedBox;
00178 }
00179
00180 #endif