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 <assert.h>
00034 #include <cstdlib>
00035 #include "REAL.H"
00036 #include "IntVect.H"
00037 #include "Box.H"
00038 #include "LoHiSide.H"
00039 #include "DisjointBoxLayout.H"
00040 #include "IntVectSet.H"
00041 #include "ProblemDomain.H"
00042
00044
00049 class CFIVS
00050 {
00051
00052 private:
00053
00054 protected:
00055
00056 void setDefaultValues();
00057
00058
00059
00060
00061 IntVectSet fiinterp_ivs;
00062
00063 bool m_packed;
00064
00065 Box m_packedBox;
00066
00067 bool isdefined;
00068
00069 public:
00070
00072 bool isDefined() const;
00073
00075
00079 bool isPacked() const;
00080
00082
00085 const Box& packedBox() const;
00086
00088
00090 const IntVectSet& getFineIVS() const ;
00091
00093 CFIVS();
00094
00096 ~CFIVS();
00097
00099 CFIVS(
00100 const Box& Domain,
00101 const Box& box_in,
00102 const DisjointBoxLayout& Levboxes,
00103 int Direction,
00104 Side::LoHiSide hiorlo);
00105
00106
00108 CFIVS(
00109 const ProblemDomain& Domain,
00110 const Box& box_in,
00111 const DisjointBoxLayout& Levboxes,
00112 int Direction,
00113 Side::LoHiSide hiorlo);
00114
00116 void define(
00117 const Box& Domain,
00118 const Box& box_in,
00119 const DisjointBoxLayout& fine_boxes,
00120 int Direction,
00121 Side::LoHiSide hiorlo);
00122
00124 void define(
00125 const ProblemDomain& Domain,
00126 const Box& box_in,
00127 const DisjointBoxLayout& fine_boxes,
00128 int Direction,
00129 Side::LoHiSide hiorlo);
00130
00131 static long long m_packCount, m_sparseCount;
00132
00133 private:
00134 void operator= (const CFIVS& levcfs_in) {};
00135 CFIVS(const CFIVS& levcfs_in) {};
00136
00137 };
00138
00139 inline
00140 bool CFIVS::isPacked() const
00141 {
00142 return m_packed;
00143 }
00144
00145
00146 inline
00147 const Box& CFIVS::packedBox() const
00148 {
00149 return m_packedBox;
00150 }
00151
00152 #endif