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

EBPWLFineInterp.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 // dtgraves thurs, aug 23, 2001
00028 
00029 #ifndef _EB_PWL_FINE_INTERP_H_
00030 #define _EB_PWL_FINE_INTERP_H_
00031 
00032 #include "REAL.H"
00033 #include "FArrayBox.H"
00034 #include "LevelData.H"
00035 #include "DisjointBoxLayout.H"
00036 #include "EBISLayout.H"
00037 #include "EBCellFAB.H"
00038 #include "Interval.H"
00039 #include "Stencils.H"
00040 #include "BaseIVFAB.H"
00041 
00043 
00045 class EBPWLFineInterp
00046 {
00047 public:
00049 
00052   EBPWLFineInterp();
00053 
00055   ~EBPWLFineInterp();
00056 
00058 
00071   EBPWLFineInterp(const DisjointBoxLayout& a_dblFine,
00072                   const DisjointBoxLayout& a_dblCoar,
00073                   const EBISLayout& a_ebislFine,
00074                   const EBISLayout& a_ebislCoar,
00075                   const Box& a_domainCoar,
00076                   const int& a_nref,
00077                   const int& a_nvar);
00078 
00080 
00092   void define(const DisjointBoxLayout& a_dblFine,
00093               const DisjointBoxLayout& a_dblCoar,
00094               const EBISLayout& a_ebislFine,
00095               const EBISLayout& a_ebislCoar,
00096               const Box& a_domainCoar,
00097               const int& a_nref,
00098               const int& a_nvar);
00099 
00101 
00105   bool isDefined() const;
00106 
00108 
00125   void
00126   interpolate(LevelData<EBCellFAB>& a_fineData,
00127               const LevelData<EBCellFAB>& a_coarseData,
00128               const Interval& a_variables);          
00129 
00130 protected:
00131   void
00132   interpolateFAB(EBCellFAB& a_fine,
00133                  const EBCellFAB& a_coar,
00134                  const DataIndex& a_datInd,
00135                  const Interval& a_variables) const;
00136 
00137   void makeDerivStencils();
00138 
00139   void setDefaultValues();
00140 
00141   bool m_isDefined;
00142 
00143   DisjointBoxLayout m_coarsenedFineGrids;
00144   Box m_coarDomain;
00145   EBISLayout m_coarsenedFineEBISL;
00146 
00147   int m_refRat;
00148   int m_nComp;
00149   LevelData<EBCellFAB> m_coarsenedFineData;
00150 
00151   //irregular cells
00152   LayoutData<IntVectSet> m_irregRegions;
00153 
00154   //diffs high and low---need to make the choice
00155   //about which to use based on the data.
00156   LayoutData<BaseIVFAB<VoFStencil> >  m_hiStencils[SpaceDim];
00157   LayoutData<BaseIVFAB<VoFStencil> >  m_loStencils[SpaceDim];
00158 
00159 private:  
00160   //disallowed for all the usual reasons
00161   EBPWLFineInterp(const EBPWLFineInterp& ebcin)
00162   {
00163     MayDay::Error("ebpwl 2 invalid operator");
00164   }
00165   void operator=(const EBPWLFineInterp& fabin)
00166   {
00167     MayDay::Error("ebpwl 3 invalid operator");
00168   }
00169 };
00170 
00171 #endif

Generated on Wed Apr 16 14:31:04 2003 for EBChombo by doxygen1.2.16