00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _FINE_INTERP_FACE_H_
00012 #define _FINE_INTERP_FACE_H_
00013
00014 #include "REAL.H"
00015 #include "LevelData.H"
00016 #include "BaseFab.H"
00017 #include "FArrayBox.H"
00018 #include "FluxBox.H"
00019 #include "ProblemDomain.H"
00020
00021 #include "NamespaceHeader.H"
00022
00023 class DisjointBoxLayout;
00024
00026
00035 class FineInterpFace
00036 {
00037 public:
00039
00042 FineInterpFace();
00043
00045
00048 ~FineInterpFace();
00049
00051
00062 FineInterpFace(const DisjointBoxLayout& a_fine_domain,
00063 const int& a_numcomps,
00064 const int& a_ref_ratio,
00065 const Box& a_fine_problem_domain);
00066
00067
00069
00080 FineInterpFace(const DisjointBoxLayout& a_fine_domain,
00081 const int& a_numcomps,
00082 const int& a_ref_ratio,
00083 const ProblemDomain& a_fine_problem_domain);
00084
00086
00099 void
00100 define(const DisjointBoxLayout& a_fine_domain,
00101 const int& a_numcomps,
00102 const int& a_ref_ratio,
00103 const Box& a_fine_problem_domain);
00104
00106
00119 void
00120 define(const DisjointBoxLayout& a_fine_domain,
00121 const int& a_numcomps,
00122 const int& a_ref_ratio,
00123 const ProblemDomain& a_fine_problem_domain);
00124
00126
00133 bool
00134 isDefined() const;
00135
00137
00155 void
00156 interpToFine(LevelData<FluxBox>& a_fine_data,
00157 const LevelData<FluxBox>& 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 const int& a_ref_ratio, const int& a_dir)
00165 const;
00166
00167 protected:
00168 bool is_defined;
00169
00170 int m_ref_ratio;
00171
00172
00173 LevelData<FluxBox> m_coarsened_fine_data;
00174
00175 ProblemDomain m_coarse_problem_domain;
00176 };
00177
00178 #include "NamespaceFooter.H"
00179
00180 #endif