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

CoarseAverageEdge.H

Go to the documentation of this file.
00001 /* _______              __
00002   / ___/ /  ___  __ _  / /  ___
00003  / /__/ _ \/ _ \/  ' \/ _ \/ _ \
00004  \___/_//_/\___/_/_/_/_.__/\___/ 
00005 */
00006 
00007 // CoarseAverageEdge.H
00008 
00009 //
00010 // This software is copyright (C) by the Lawrence Berkeley
00011 // National Laboratory.  Permission is granted to reproduce
00012 // this software for non-commercial purposes provided that
00013 // this notice is left intact.
00014 // 
00015 // It is acknowledged that the U.S. Government has rights to
00016 // this software under Contract DE-AC03-765F00098 between
00017 // the U.S.  Department of Energy and the University of
00018 // California.
00019 //
00020 // This software is provided as a professional and academic
00021 // contribution for joint exchange. Thus it is experimental,
00022 // is provided ``as is'', with no warranties of any kind
00023 // whatsoever, no support, no promise of updates, or printed
00024 // documentation. By using this software, you acknowledge
00025 // that the Lawrence Berkeley National Laboratory and
00026 // Regents of the University of California shall have no
00027 // liability with respect to the infringement of other
00028 // copyrights by any part of this software.
00029 //
00030 // Dan Martin, Fri, Jan 14, 2000
00031 
00032 #ifndef _CoarseAverageEdge_H_
00033 #define _CoarseAverageEdge_H_
00034 
00035 #include "REAL.H"
00036 #include "FluxBox.H"
00037 #include "LevelData.H"
00038 
00039 
00041 
00044 class CoarseAverageEdge
00045 {
00046 public:
00048   CoarseAverageEdge();
00049 
00051   CoarseAverageEdge(const DisjointBoxLayout& a_fineGrids, 
00052                     int a_nComp, int a_nRef);
00053 
00055   ~CoarseAverageEdge();
00056 
00058   void define(const DisjointBoxLayout& a_fineGrids, 
00059               int a_nComp, int a_nRef);
00060   
00062   bool isDefined() const;
00063 
00065   void averageToCoarse(LevelData<FluxBox>& a_coarse_data, 
00066                        const LevelData<FluxBox>& a_fine_data);
00067 
00068 protected:
00069   bool m_isDefined;
00070 
00071   int m_nRef;
00072 
00073   // work array for coarsening of fine data, same "shape" as fine data
00074   LevelData<FluxBox> m_coarsenedFineData;
00075 
00077   void averageGridData(FluxBox& a_coarsenedFine, const FluxBox& fine) const;
00078 
00079   
00080 };
00081 
00082 #endif
00083   
00084 
00085 
00086 

Generated on Wed Jun 2 13:53:32 2004 for Chombo&INSwithParticles by doxygen 1.3.2