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
00031 #ifndef NODEMASKAVERAGE_H
00032 #define NODEMASKAVERAGE_H
00033
00034 #include "REAL.H"
00035 #include "NodeFArrayBox.H"
00036 #include "LevelData.H"
00037 #include "ProblemDomain.H"
00038 #include "DisjointBoxLayout.H"
00039 #include "NodeMaskAverage2.H"
00040
00042
00043 class NodeMaskAverage
00050 {
00051 public:
00052
00054
00056
00058 NodeMaskAverage();
00059
00061
00064 NodeMaskAverage(const DisjointBoxLayout& a_gridsFine,
00065 const DisjointBoxLayout& a_gridsCoarse,
00066 int a_numcomps,
00067 int a_refRatio,
00068 const ProblemDomain& a_domainFine,
00069 Real a_dx);
00070
00071 NodeMaskAverage(const DisjointBoxLayout& a_gridsFine,
00072 const DisjointBoxLayout& a_gridsCoarse,
00073 int a_numcomps,
00074 int a_refRatio,
00075 const Box& a_domainFine,
00076 Real a_dx);
00077
00079
00082 NodeMaskAverage(const DisjointBoxLayout& a_gridsCoarse,
00083 int a_numcomps,
00084 int a_refRatio,
00085 const ProblemDomain& a_domainFine,
00086 Real a_dx);
00087
00088 NodeMaskAverage(const DisjointBoxLayout& a_gridsCoarse,
00089 int a_numcomps,
00090 int a_refRatio,
00091 const Box& a_domainFine,
00092 Real a_dx);
00093
00095
00097 ~NodeMaskAverage();
00098
00100
00113 void define(const DisjointBoxLayout& a_gridsFine,
00114 const DisjointBoxLayout& a_gridsCoarse,
00115 int a_numcomps,
00116 int a_refRatio,
00117 const ProblemDomain& a_domainFine,
00118 Real a_dx);
00119
00120 void define(const DisjointBoxLayout& a_gridsFine,
00121 const DisjointBoxLayout& a_gridsCoarse,
00122 int a_numcomps,
00123 int a_refRatio,
00124 const Box& a_domainFine,
00125 Real a_dx);
00126
00128
00141 void define(const DisjointBoxLayout& a_gridsCoarse,
00142 int a_numcomps,
00143 int a_refRatio,
00144 const ProblemDomain& a_domainFine,
00145 Real a_dx);
00146
00147 void define(const DisjointBoxLayout& a_gridsCoarse,
00148 int a_numcomps,
00149 int a_refRatio,
00150 const Box& a_domainFine,
00151 Real a_dx);
00152
00154
00156
00159 bool isDefined() const;
00160
00161
00163
00165
00185
00186
00187 void averageToCoarse(LevelData<NodeFArrayBox>& a_coarse,
00188 LevelData<NodeFArrayBox>& a_fine);
00189
00190 protected:
00191
00192 void clearMemory();
00193
00194 bool is_defined;
00195
00196
00197 int m_refRatio;
00198
00199
00200 int m_coarsenings;
00201
00202
00203 Vector< LevelData<NodeFArrayBox>* > m_inter;
00204
00205
00206
00207
00208 Vector<NodeMaskAverage2*> m_avg2;
00209 };
00210
00211 #endif