00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _EXTRAPFILLPATCH_H_
00012 #define _EXTRAPFILLPATCH_H_
00013
00014 #include "Interval.H"
00015 #include "SPACE.H"
00016 #include "FArrayBox.H"
00017 #include "LayoutData.H"
00018 #include "LevelData.H"
00019 #include "ProblemDomain.H"
00020 #include "IntVectSet.H"
00021 #include "NamespaceHeader.H"
00022 class Box;
00023
00024
00026
00099 class ExtrapFillPatch
00100 {
00101 public:
00102
00104
00107 ExtrapFillPatch();
00108
00110
00113 ~ExtrapFillPatch();
00114
00116
00135 ExtrapFillPatch(
00136 const DisjointBoxLayout& a_level_domain,
00137 const Box& a_problem_domain,
00138 const Interval& a_extrap_interval
00139 );
00140
00142
00161 ExtrapFillPatch(
00162 const DisjointBoxLayout& a_level_domain,
00163 const ProblemDomain& a_problem_domain,
00164 const Interval& a_extrap_interval
00165 );
00166
00168
00191 void
00192 define(
00193 const DisjointBoxLayout& a_level_domain,
00194 const Box& a_problem_domain,
00195 const Interval& a_extrap_interval
00196 );
00197
00199
00222 void
00223 define(
00224 const DisjointBoxLayout& a_level_domain,
00225 const ProblemDomain& a_problem_domain,
00226 const Interval& a_extrap_interval
00227 );
00228
00230
00237 bool
00238 isDefined() const;
00239
00241
00256 void
00257 fillExtrap(
00258 LevelData<FArrayBox>& a_data,
00259 int a_dir,
00260 int a_dest_comp,
00261 int a_num_comp
00262 );
00263
00264
00265
00266
00267 protected:
00268 bool m_is_defined;
00269
00270 LayoutData<IntVectSet> m_lo_extrap[SpaceDim];
00271
00272 LayoutData<IntVectSet> m_hi_extrap[SpaceDim];
00273
00274
00275 Interval m_extrap_interval;
00276 };
00277
00278 #include "NamespaceFooter.H"
00279 #endif