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 _CFIVS_H_
00029 #define _CFIVS_H_
00030
00031 #include <iostream>
00032 #include <cmath>
00033 #include <cassert>
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
00051 class CFIVS
00052 {
00053 public:
00055 CFIVS();
00056
00058 ~CFIVS();
00059
00061
00064 CFIVS(const Box& a_domain,
00065 const Box& a_boxIn,
00066 const DisjointBoxLayout& a_fineBoxes,
00067 int a_direction,
00068 Side::LoHiSide a_hiorlo);
00069
00071
00074 CFIVS(const ProblemDomain& a_domain,
00075 const Box& a_boxIn,
00076 const DisjointBoxLayout& a_fineBoxes,
00077 int a_direction,
00078 Side::LoHiSide a_hiorlo);
00079
00081
00084 void define(const Box& a_domain,
00085 const Box& a_boxIn,
00086 const DisjointBoxLayout& a_fineBoxes,
00087 int a_direction,
00088 Side::LoHiSide a_hiorlo);
00089
00091
00093 void define (const ProblemDomain& a_domain,
00094 const Box& a_boxIn,
00095 const DisjointBoxLayout& a_fineBoxes,
00096 int a_direction,
00097 Side::LoHiSide a_hiorlo);
00098
00100 bool isDefined() const;
00101
00103
00108 bool isPacked() const;
00109
00111
00114 const Box& packedBox() const;
00115
00117
00120 const IntVectSet& getFineIVS() const ;
00121
00122 static long long m_packCount, m_sparseCount;
00123
00124
00125 protected:
00126
00127 void setDefaultValues();
00128
00129
00130
00134 IntVectSet m_fiinterpIVS;
00135
00139 bool m_packed;
00140
00145 Box m_packedBox;
00146
00150 bool m_isDefined;
00151
00152 private:
00153 void operator= (const CFIVS& a_levcfsIn) {};
00154 CFIVS(const CFIVS& a_levcfsIn) {};
00155 };
00156
00157 inline bool CFIVS::isPacked() const
00158 {
00159 return m_packed;
00160 }
00161
00162 inline const Box& CFIVS::packedBox() const
00163 {
00164 return m_packedBox;
00165 }
00166
00167 #endif