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:
00048 NodeMGInterp();
00049
00051 ~NodeMGInterp();
00052
00054 NodeMGInterp(const DisjointBoxLayout& a_grids,
00055 int a_numcomps,
00056 int a_refRatio,
00057 const Box& a_domain);
00058
00060 NodeMGInterp(const DisjointBoxLayout& a_grids,
00061 int a_numcomps,
00062 int a_refRatio,
00063 const ProblemDomain& a_domain);
00064
00066
00077 void define(const DisjointBoxLayout& a_grids,
00078 int a_numcomps,
00079 int a_refRatio,
00080 const ProblemDomain& a_domain);
00081
00082 void define(const DisjointBoxLayout& a_grids,
00083 int a_numcomps,
00084 int a_refRatio,
00085 const Box& a_domain);
00086
00088
00096 void interpToFine(LevelData<NodeFArrayBox>& a_fine,
00097 const LevelData<NodeFArrayBox>& a_coarse,
00098 bool a_sameGrids = false);
00099
00101 bool isDefined() const;
00102
00103
00104 protected:
00105 bool is_defined;
00106
00107
00108 int m_refRatio;
00109
00110
00111
00112 BoxLayoutData<NodeFArrayBox> m_coarsenedFine;
00113
00114 DisjointBoxLayout m_grids;
00115
00116
00117 ProblemDomain m_domain;
00118
00119
00120 Box m_boxRef;
00121
00122
00123 FArrayBox m_weights;
00124 };
00125
00126 #endif