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

NodeCFIVS.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 // NodeCFIVS.H
00029 // petermc, 1 May 2001
00030 #ifndef NODECFIVS_H
00031 #define NODECFIVS_H
00032 
00033 #include <iostream>
00034 #include <cmath>
00035 #include <assert.h>
00036 #include <cstdlib>
00037 #include "REAL.H"
00038 #include "IntVect.H"
00039 #include "Box.H"
00040 #include "LoHiSide.H"
00041 #include "DisjointBoxLayout.H"
00042 #include "IntVectSet.H"
00043 
00045 
00052 class NodeCFIVS
00053 {
00054 
00055 public:
00056 
00061 
00063 
00065   NodeCFIVS();
00066 
00068 
00070   ~NodeCFIVS();
00071 
00073 
00076   NodeCFIVS(const Box& a_domain,
00077             const Box& a_box,
00078             const DisjointBoxLayout& a_levelBoxes, 
00079             int a_idir,
00080             Side::LoHiSide a_hiorlo);
00081 
00083 
00086   NodeCFIVS(const ProblemDomain& a_domain,
00087             const Box& a_box,
00088             const DisjointBoxLayout& a_levelBoxes, 
00089             int a_idir,
00090             Side::LoHiSide a_hiorlo);
00091 
00093 
00095   void define(
00096               const ProblemDomain& a_domain,
00098               const Box& a_box,
00100               const DisjointBoxLayout& a_levelBoxes, 
00102               int a_idir,
00104               Side::LoHiSide a_hiorlo);
00105 
00107 
00109   void define(
00110               const Box& a_domain,
00112               const Box& a_box,
00114               const DisjointBoxLayout& a_levelBoxes, 
00116               int a_idir,
00118               Side::LoHiSide a_hiorlo);
00119 
00126               
00128   bool isDefined() const;
00129 
00131 
00133   bool isEmpty() const;
00134 
00136 
00142   bool isPacked() const;
00143 
00145 
00149   const Box& packedBox() const;
00150 
00152 
00159   const IntVectSet& getFineIVS() const ;
00160 
00163   static long long m_packCount, m_sparseCount;
00164 
00165 protected:
00166 
00167   //for internal use
00168   void setDefaultValues();
00169 
00172   IntVectSet m_fineInterpIVS;
00173 
00174   bool m_packed;
00175 
00176   bool m_empty;
00177 
00178   Box m_packedBox;
00179 
00180   bool m_isdefined;
00181 
00182 private:
00183   void operator= (const NodeCFIVS& levcfs_in) {};
00184 
00185   NodeCFIVS(const NodeCFIVS& levcfs_in) {};
00186         
00187 };
00188 
00189 
00190 inline
00191 bool NodeCFIVS::isEmpty() const
00192 {
00193   return m_empty;
00194 }
00195 
00196 
00197 inline
00198 bool NodeCFIVS::isPacked() const
00199 {
00200   return m_packed;
00201 }
00202 
00203 
00204 inline
00205 const Box& NodeCFIVS::packedBox() const
00206 {
00207   return m_packedBox;
00208 }
00209 
00210 #endif

Generated on Fri Jul 2 17:53:42 2004 for Chombo by doxygen 1.3.2