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 _PC_INTERP_H_
00029 #define _PC_INTERP_H_
00030
00031 #include "REAL.H"
00032 #include "LevelData.H"
00033 #include "BaseFab.H"
00034 #include "FArrayBox.H"
00035 #include "ProblemDomain.H"
00036
00037 class DisjointBoxLayout;
00038
00040
00045 class MGInterp
00046 {
00047 public:
00049 MGInterp();
00050
00052 ~MGInterp();
00053
00055 MGInterp(const DisjointBoxLayout& a_fine_domain,
00056 int a_numcomps,
00057 int a_ref_ratio,
00058 const Box& a_problem_domain);
00059
00061 MGInterp(const DisjointBoxLayout& a_fine_domain,
00062 int a_numcomps,
00063 int a_ref_ratio,
00064 const ProblemDomain& a_problem_domain);
00065
00067
00070 void
00071 define(const DisjointBoxLayout& a_fine_domain,
00072 int a_numcomps,
00073 int a_ref_ratio,
00074 const Box& a_problem_domain);
00075
00076
00078
00081 void
00082 define(const DisjointBoxLayout& a_fine_domain,
00083 int a_numcomps,
00084 int a_ref_ratio,
00085 const ProblemDomain& a_problem_domain);
00086
00088
00091 void
00092 interpToFine(LevelData<FArrayBox>& a_fine_data,
00093 const LevelData<FArrayBox>& a_coarse_data);
00094
00096 bool
00097 isDefined() const;
00098
00099 protected:
00100 bool is_defined;
00101
00102 int m_ref_ratio;
00103
00104
00105 LevelData<FArrayBox> m_coarsened_fine_data;
00106 DisjointBoxLayout m_grids;
00107
00108 ProblemDomain m_problem_domain;
00109 };
00110
00111 #endif