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 _EXTRAP_FILL_PATCH_H_
00029 #define _EXTRAP_FILL_PATCH_H_
00030
00031 class Box;
00032 #include "Interval.H"
00033 #include "SPACE.H"
00034 #include "FArrayBox.H"
00035 #include "LayoutData.H"
00036 #include "ProblemDomain.H"
00037 #include "IntVectSet.H"
00038
00040
00114 class ExtrapFillPatch
00115 {
00116 public:
00117
00119
00122 ExtrapFillPatch();
00123
00125
00128 ~ExtrapFillPatch();
00129
00131
00150 ExtrapFillPatch(
00151 const DisjointBoxLayout& a_level_domain,
00152 const Box& a_problem_domain,
00153 const Interval& a_extrap_interval
00154 );
00155
00156
00157
00159
00178 ExtrapFillPatch(
00179 const DisjointBoxLayout& a_level_domain,
00180 const ProblemDomain& a_problem_domain,
00181 const Interval& a_extrap_interval
00182 );
00183
00185
00210 void
00211 define(
00212 const DisjointBoxLayout& a_level_domain,
00213 const Box& a_problem_domain,
00214 const Interval& a_extrap_interval
00215 );
00216
00217
00219
00244 void
00245 define(
00246 const DisjointBoxLayout& a_level_domain,
00247 const ProblemDomain& a_problem_domain,
00248 const Interval& a_extrap_interval
00249 );
00250
00252
00261 bool
00262 isDefined() const;
00263
00265
00280 void
00281 fillExtrap(
00282 LevelData<FArrayBox>& a_data,
00283 int a_dir,
00284 int a_dest_comp,
00285 int a_num_comp
00286 );
00287
00288
00289
00290
00291 protected:
00292 bool m_is_defined;
00293
00294 LayoutData<IntVectSet> m_lo_extrap[SpaceDim];
00295
00296 LayoutData<IntVectSet> m_hi_extrap[SpaceDim];
00297
00298
00299 Interval m_extrap_interval;
00300 };
00301
00302 #endif