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
00029
00030 #ifndef NODEMGINTERP_H
00031 #define NODEMGINTERP_H
00032
00033 #include "REAL.H"
00034 #include "LevelData.H"
00035 #include "NodeFArrayBox.H"
00036
00038
00044 class NodeMGInterp
00045 {
00046 public:
00047
00052
00054
00056 NodeMGInterp();
00057
00059
00061 ~NodeMGInterp();
00062
00064
00067 NodeMGInterp(const DisjointBoxLayout& a_grids,
00068 int a_numcomps,
00069 int a_refRatio,
00070 const Box& a_domain);
00071
00073
00076 NodeMGInterp(const DisjointBoxLayout& a_grids,
00077 int a_numcomps,
00078 int a_refRatio,
00079 const ProblemDomain& a_domain);
00080
00082
00084 void define(
00085 const DisjointBoxLayout& a_grids,
00087 int a_numcomps,
00089 int a_refRatio,
00091 const ProblemDomain& a_domain);
00092
00094
00096 void define(
00097 const DisjointBoxLayout& a_grids,
00099 int a_numcomps,
00101 int a_refRatio,
00103 const Box& a_domain);
00104
00111
00113
00116 bool isDefined() const;
00117
00124
00126
00128 void interpToFine(
00129 LevelData<NodeFArrayBox>& a_fine,
00131 const LevelData<NodeFArrayBox>& a_coarse,
00133 bool a_sameGrids = false);
00134
00137 protected:
00138
00141 bool is_defined;
00142
00145 int m_refRatio;
00146
00150 BoxLayoutData<NodeFArrayBox> m_coarsenedFine;
00151
00154 DisjointBoxLayout m_grids;
00155
00158 ProblemDomain m_domain;
00159
00162 Box m_boxRef;
00163
00166 FArrayBox m_weights;
00167 };
00168
00169 #endif