00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _CFIVS_H_
00012 #define _CFIVS_H_
00013
00014 #include <iostream>
00015 #include <cmath>
00016 #include "SPACE.H"
00017 #include <cstdlib>
00018
00019 #include "REAL.H"
00020 #include "IntVect.H"
00021 #include "Box.H"
00022 #include "LoHiSide.H"
00023 #include "DisjointBoxLayout.H"
00024 #include "IntVectSet.H"
00025 #include "ProblemDomain.H"
00026 #include "NamespaceHeader.H"
00027
00029
00035 class CFIVS
00036 {
00037 public:
00039 CFIVS();
00040
00042 ~CFIVS();
00043
00045
00048 CFIVS(const Box& a_domain,
00049 const Box& a_boxIn,
00050 const DisjointBoxLayout& a_fineBoxes,
00051 int a_direction,
00052 Side::LoHiSide a_hiorlo);
00053
00055
00058 CFIVS(const ProblemDomain& a_domain,
00059 const Box& a_boxIn,
00060 const DisjointBoxLayout& a_fineBoxes,
00061 int a_direction,
00062 Side::LoHiSide a_hiorlo);
00063
00065
00068 void define(const Box& a_domain,
00069 const Box& a_boxIn,
00070 const DisjointBoxLayout& a_fineBoxes,
00071 int a_direction,
00072 Side::LoHiSide a_hiorlo);
00073
00075
00077 void define (const ProblemDomain& a_domain,
00078 const Box& a_boxIn,
00079 const DisjointBoxLayout& a_fineBoxes,
00080 int a_direction,
00081 Side::LoHiSide a_hiorlo);
00082
00084 void define(const ProblemDomain& a_domain,
00085 const Box& a_boxIn,
00086 const Vector<Box>& a_periodicfineBoxes,
00087 int a_direction,
00088 Side::LoHiSide a_hiorlo);
00089
00091 bool isDefined() const;
00092
00094
00099 bool isPacked() const;
00100
00102
00105 const Box& packedBox() const;
00106
00108
00111 const IntVectSet& getFineIVS() const ;
00112
00113 static long long m_packCount, m_sparseCount;
00114
00115 void coarsen(int a_ref);
00116
00117 protected:
00118
00119 void setDefaultValues();
00120
00121
00122
00126 IntVectSet m_fiinterpIVS;
00127
00131 bool m_packed;
00132
00137 Box m_packedBox;
00138
00142 bool m_isDefined;
00143
00144
00145 };
00146
00147 inline bool CFIVS::isPacked() const
00148 {
00149 return m_packed;
00150 }
00151
00152 inline const Box& CFIVS::packedBox() const
00153 {
00154 return m_packedBox;
00155 }
00156
00157 #include "NamespaceFooter.H"
00158 #endif