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 NODEMGINTERP_H
00029 #define NODEMGINTERP_H
00030
00031 #include "REAL.H"
00032 #include "LevelData.H"
00033 #include "NodeFArrayBox.H"
00034 #include "ProblemDomain.H"
00035 #include "DisjointBoxLayout.H"
00036 #include "NodeMGInterp2.H"
00037
00039
00045 class NodeMGInterp
00046 {
00047 public:
00049 NodeMGInterp();
00050
00052 ~NodeMGInterp();
00053
00055 NodeMGInterp(const DisjointBoxLayout& a_grids,
00056 int a_numcomps,
00057 int a_refRatio,
00058 const ProblemDomain& a_domain,
00059 Real a_dx);
00060
00062 NodeMGInterp(const DisjointBoxLayout& a_grids,
00063 int a_numcomps,
00064 int a_refRatio,
00065 const Box& a_domain,
00066 Real a_dx);
00067
00069
00081 void define(const DisjointBoxLayout& a_grids,
00082 int a_numcomps,
00083 int a_refRatio,
00084 const ProblemDomain& a_domain,
00085 Real a_dx);
00086
00087 void define(const DisjointBoxLayout& a_grids,
00088 int a_numcomps,
00089 int a_refRatio,
00090 const Box& a_domain,
00091 Real a_dx);
00092
00094
00102 void interpToFine(LevelData<NodeFArrayBox>& a_fine,
00103 const LevelData<NodeFArrayBox>& a_coarse,
00104 bool a_sameGrids = false);
00105
00107 bool isDefined() const;
00108
00109
00110 protected:
00111
00113 void clearMemory();
00114
00115 bool is_defined;
00116
00117
00118 int m_coarsenings;
00119
00120
00121 Vector< LevelData<NodeFArrayBox>* > m_inter;
00122
00123
00124
00125
00126 Vector<NodeMGInterp2*> m_interp2;
00127 };
00128
00129 #endif