00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011
00012
00013 #ifndef _NODEMGINTERP_H_
00014 #define _NODEMGINTERP_H_
00015
00016 #include "REAL.H"
00017 #include "LevelData.H"
00018 #include "NodeFArrayBox.H"
00019 #include "NamespaceHeader.H"
00020
00022
00028 class NodeMGInterp
00029 {
00030 public:
00031
00036
00038
00040 NodeMGInterp();
00041
00043
00045 ~NodeMGInterp();
00046
00048
00051 NodeMGInterp(const DisjointBoxLayout& a_grids,
00052 int a_numcomps,
00053 int a_refRatio,
00054 const Box& a_domain);
00055
00057
00060 NodeMGInterp(const DisjointBoxLayout& a_grids,
00061 int a_numcomps,
00062 int a_refRatio,
00063 const ProblemDomain& a_domain);
00064
00066
00068 void define(
00069 const DisjointBoxLayout& a_grids,
00071 int a_numcomps,
00073 int a_refRatio,
00075 const ProblemDomain& a_domain);
00076
00078
00080 void define(
00081 const DisjointBoxLayout& a_grids,
00083 int a_numcomps,
00085 int a_refRatio,
00087 const Box& a_domain);
00088
00095
00097
00100 bool isDefined() const;
00101
00108
00110
00112 void interpToFine(
00113 LevelData<NodeFArrayBox>& a_fine,
00115 const LevelData<NodeFArrayBox>& a_coarse,
00117 bool a_sameGrids = false);
00118
00121 protected:
00122
00125 bool is_defined;
00126
00129 int m_refRatio;
00130
00134 BoxLayoutData<NodeFArrayBox> m_coarsenedFine;
00135
00138 DisjointBoxLayout m_grids;
00139
00142 ProblemDomain m_domain;
00143
00146 Box m_boxRef;
00147
00150 FArrayBox m_weights;
00151 };
00152
00153 #include "NamespaceFooter.H"
00154 #endif