Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

NodeMGInterp.H

Go to the documentation of this file.
00001 /*  _______              __
00002    / ___/ /  ___  __ _  / /  ___
00003   / /__/ _ \/ _ \/  ' \/ _ \/ _ \
00004   \___/_//_/\___/_/_/_/_.__/\___/ 
00005 */
00006 //
00007 // This software is copyright (C) by the Lawrence Berkeley
00008 // National Laboratory.  Permission is granted to reproduce
00009 // this software for non-commercial purposes provided that
00010 // this notice is left intact.
00011 // 
00012 // It is acknowledged that the U.S. Government has rights to
00013 // this software under Contract DE-AC03-765F00098 between
00014 // the U.S.  Department of Energy and the University of
00015 // California.
00016 //
00017 // This software is provided as a professional and academic
00018 // contribution for joint exchange. Thus it is experimental,
00019 // is provided ``as is'', with no warranties of any kind
00020 // whatsoever, no support, no promise of updates, or printed
00021 // documentation. By using this software, you acknowledge
00022 // that the Lawrence Berkeley National Laboratory and
00023 // Regents of the University of California shall have no
00024 // liability with respect to the infringement of other
00025 // copyrights by any part of this software.
00026 //
00027 
00028 // NodeMGInterp.H
00029 // petermc, 20 Jun 2001
00030 #ifndef NODEMGINTERP_H
00031 #define NODEMGINTERP_H
00032 
00033 #include "REAL.H"
00034 #include "LevelData.H"
00035 #include "NodeFArrayBox.H"
00036 
00038 
00044 class NodeMGInterp
00045 {
00046 public:
00048   NodeMGInterp();
00049 
00051   ~NodeMGInterp();
00052 
00054   NodeMGInterp(const DisjointBoxLayout& a_grids,
00055                int a_numcomps,
00056                int a_refRatio,
00057                const Box& a_domain);
00058 
00060   NodeMGInterp(const DisjointBoxLayout& a_grids,
00061                int a_numcomps,
00062                int a_refRatio,
00063                const ProblemDomain& a_domain);
00064 
00066 
00077   void define(const DisjointBoxLayout& a_grids,
00078               int a_numcomps,
00079               int a_refRatio,
00080               const ProblemDomain& a_domain);
00081 
00082   void define(const DisjointBoxLayout& a_grids,
00083               int a_numcomps,
00084               int a_refRatio,
00085               const Box& a_domain);
00086 
00088 
00096   void interpToFine(LevelData<NodeFArrayBox>& a_fine,
00097                     const LevelData<NodeFArrayBox>& a_coarse,
00098                     bool a_sameGrids = false);
00099 
00101   bool isDefined() const;
00102   
00103 
00104 protected:
00105   bool is_defined;
00106 
00107   // the refinement ratio
00108   int m_refRatio;
00109 
00110   // work array for the coarse level data in a domain that is the
00111   // outline of the fine level domain on the coarse level
00112   BoxLayoutData<NodeFArrayBox> m_coarsenedFine;
00113 
00114   DisjointBoxLayout m_grids;
00115 
00116   // problem domain
00117   ProblemDomain m_domain;
00118 
00119   // reference box used in interpolation
00120   Box m_boxRef;
00121 
00122   // weights of corners in interpolation
00123   FArrayBox m_weights;
00124 };
00125 
00126 #endif

Generated on Tue Apr 15 18:34:51 2003 for AMRNodeElliptic by doxygen1.2.16