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 _MGINTERP_H_
00029 #define _MGINTERP_H_
00030
00031 #include "REAL.H"
00032 #include "LevelData.H"
00033 #include "BaseFab.H"
00034 #include "FArrayBox.H"
00035 #include "ProblemDomain.H"
00036
00037 class DisjointBoxLayout;
00038
00040
00045 class MGInterp
00046 {
00047 public:
00049 MGInterp();
00050
00052 ~MGInterp();
00053
00055 MGInterp(const DisjointBoxLayout& a_fineDomain,
00056 int a_numcomps,
00057 int a_refRatio,
00058 const Box& a_problemDomain);
00059
00061 MGInterp(const DisjointBoxLayout& a_fineDomain,
00062 int a_numcomps,
00063 int a_refRatio,
00064 const ProblemDomain& a_problemDomain);
00065
00067
00070 void define(const DisjointBoxLayout& a_fineDomain,
00071 int a_numcomps,
00072 int a_refRatio,
00073 const Box& a_problemDomain);
00074
00076
00079 void define(const DisjointBoxLayout& a_fineDomain,
00080 int a_numcomps,
00081 int a_refRatio,
00082 const ProblemDomain& a_problemDomain);
00083
00085
00088 void interpToFine(LevelData<FArrayBox>& a_fineData,
00089 const LevelData<FArrayBox>& a_coarseData);
00090
00092 bool isDefined() const;
00093
00094 protected:
00095 bool m_isDefined;
00096
00097
00098 int m_refRatio;
00099
00100
00101
00102
00103 LevelData<FArrayBox> m_coarsenedFineData;
00104 DisjointBoxLayout m_grids;
00105
00106
00107 ProblemDomain m_problemDomain;
00108 };
00109
00110 #endif