00001 #ifdef CH_LANG_CC 00002 /* 00003 * _______ __ 00004 * / ___/ / ___ __ _ / / ___ 00005 * / /__/ _ \/ _ \/ V \/ _ \/ _ \ 00006 * \___/_//_/\___/_/_/_/_.__/\___/ 00007 * Please refer to Copyright.txt, in Chombo's root directory. 00008 */ 00009 #endif 00010 00011 // ANAG, LBNL 00012 00013 #ifndef _IRREGNODE_H_ 00014 #define _IRREGNODE_H_ 00015 00016 #include "REAL.H" 00017 #include "IntVect.H" 00018 #include "IntVectSet.H" 00019 #include "VolIndex.H" 00020 #include "Interval.H" 00021 #include "FaceIndex.H" 00022 #include "IntVectSet.H" 00023 #include "RealVect.H" 00024 #include "BaseFab.H" 00025 #include "SPMD.H" 00026 #include "NamespaceHeader.H" 00028 00031 class IrregNode 00032 { 00033 public: 00035 IrregNode(); 00036 00038 ~IrregNode(); 00039 00041 static int index(int a_idir, Side::LoHiSide a_side) ; 00042 00044 IntVect m_cell; 00046 00047 //volume centered data 00049 Real m_volFrac; 00050 00052 00055 int m_cellIndex; 00056 00058 RealVect m_volCentroid; 00059 00061 RealVect m_bndryCentroid; 00062 00063 //face centered irregular data 00064 00066 00074 Vector<int> m_arc[2*SpaceDim]; 00075 00077 Vector<Real> m_areaFrac[2*SpaceDim]; 00078 00080 Vector<RealVect> m_faceCentroid[2*SpaceDim]; 00081 00083 00089 void makeRegular(const IntVect& iv); 00090 void faceReserve(int location, int size); 00091 }; 00092 00093 00094 std::ostream& operator<< (std::ostream& a_os, 00095 const IrregNode& a_iv); 00096 00097 #include "NamespaceFooter.H" 00098 #endif