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 #ifndef _FINE_INTERP_H_
00028 #define _FINE_INTERP_H_
00029
00030 #include "REAL.H"
00031 #include "LevelData.H"
00032 #include "BaseFab.H"
00033 #include "FArrayBox.H"
00034 #include "ProblemDomain.H"
00035
00036 class DisjointBoxLayout;
00037
00039
00047 class FineInterp
00048 {
00049 public:
00051
00054 FineInterp();
00055
00057
00060 ~FineInterp();
00061
00063
00074 FineInterp(const DisjointBoxLayout& a_fine_domain,
00075 const int& a_numcomps,
00076 const int& a_ref_ratio,
00077 const Box& a_fine_problem_domain);
00078
00080
00090 FineInterp(const DisjointBoxLayout& a_fine_domain,
00091 const int& a_numcomps,
00092 const int& a_ref_ratio,
00093 const ProblemDomain& a_fine_problem_domain);
00094
00096
00109 void
00110 define(const DisjointBoxLayout& a_fine_domain,
00111 const int& a_numcomps,
00112 const int& a_ref_ratio,
00113 const Box& a_fine_problem_domain);
00114
00115
00117
00130 void
00131 define(const DisjointBoxLayout& a_fine_domain,
00132 const int& a_numcomps,
00133 const int& a_ref_ratio,
00134 const ProblemDomain& a_fine_problem_domain);
00135
00136
00138
00145 bool
00146 isDefined() const;
00147
00149
00167 void
00168 interpToFine(LevelData<FArrayBox>& a_fine_data,
00169 const LevelData<FArrayBox>& a_coarse_data);
00170
00171 protected:
00172 void
00173 interpGridData(BaseFab<Real>& a_fine,
00174 const BaseFab<Real>& a_coarse,
00175 const Box& a_coarsened_fine_box,
00176 int a_ref_ratio)
00177 const;
00178
00179 protected:
00180 bool is_defined;
00181
00182 int m_ref_ratio;
00183
00184
00185 LevelData<FArrayBox> m_coarsened_fine_data;
00186
00187 ProblemDomain m_coarse_problem_domain;
00188 };
00189
00190 #endif