00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _FINEINTERP_H_
00012 #define _FINEINTERP_H_
00013
00014 #include "REAL.H"
00015 #include "LevelData.H"
00016 #include "BaseFab.H"
00017 #include "FArrayBox.H"
00018 #include "ProblemDomain.H"
00019 #include "NamespaceHeader.H"
00020
00021 class DisjointBoxLayout;
00022
00024
00032 class FineInterp
00033 {
00034 public:
00036
00039 FineInterp();
00040
00042
00045 ~FineInterp();
00046
00048
00059 FineInterp(const DisjointBoxLayout& a_fine_domain,
00060 const int& a_numcomps,
00061 const int& a_ref_ratio,
00062 const Box& a_fine_problem_domain);
00063
00065
00075 FineInterp(const DisjointBoxLayout& a_fine_domain,
00076 const int& a_numcomps,
00077 const int& a_ref_ratio,
00078 const ProblemDomain& a_fine_problem_domain);
00079
00081
00094 void
00095 define(const DisjointBoxLayout& a_fine_domain,
00096 const int& a_numcomps,
00097 const int& a_ref_ratio,
00098 const Box& a_fine_problem_domain);
00099
00101
00114 void
00115 define(const DisjointBoxLayout& a_fine_domain,
00116 const int& a_numcomps,
00117 const int& a_ref_ratio,
00118 const ProblemDomain& a_fine_problem_domain);
00119
00121
00128 bool
00129 isDefined() const;
00130
00132
00150 void
00151 interpToFine(LevelData<FArrayBox>& a_fine_data,
00152 const LevelData<FArrayBox>& a_coarse_data);
00153
00155 void
00156 pwcinterpToFine(LevelData<FArrayBox>& a_fine_data,
00157 const LevelData<FArrayBox>& a_coarse_data);
00158
00159 protected:
00160 void
00161 interpGridData(BaseFab<Real>& a_fine,
00162 const BaseFab<Real>& a_coarse,
00163 const Box& a_coarsened_fine_box,
00164 int a_ref_ratio)
00165 const;
00166 void
00167 pwcinterpGridData(BaseFab<Real>& a_fine,
00168 const BaseFab<Real>& a_coarse,
00169 const Box& a_coarsened_fine_box,
00170 int a_ref_ratio) const;
00171
00172 protected:
00173 bool is_defined;
00174
00175 int m_ref_ratio;
00176
00177
00178 LevelData<FArrayBox> m_coarsened_fine_data;
00179
00180 ProblemDomain m_coarse_problem_domain;
00181 };
00182
00183 #include "NamespaceFooter.H"
00184 #endif