00001 #ifndef CELLSETFUNCTIONLIST_H 00002 #define CELLSETFUNCTIONLIST_H 00003 00004 #include "SundanceDefs.h" 00005 00006 #include "TSFArray.h" 00007 #include "TSFNonDupArray.h" 00008 #include "Cell.h" 00009 #include "BasisFamily.h" 00010 #include "Mesh.h" 00011 #include "CellSet.h" 00012 #include "TSFTimeMonitor.h" 00013 00014 00015 00016 namespace Sundance 00017 { 00018 00019 using namespace TSF; 00020 using std::string; 00021 00022 using std::ostream; 00023 00024 /** 00025 * Class CellSetFunctionList tabulates the basis families and function IDs 00026 * that exist on a given cell set 00027 */ 00028 00029 class CellSetFunctionList 00030 { 00031 public: 00032 /** */ 00033 CellSetFunctionList(); 00034 /** */ 00035 CellSetFunctionList(const CellSet& cellSet, const Mesh& mesh); 00036 00037 /** */ 00038 void addFunction(const BasisFamily& basis, int funcID); 00039 00040 /** */ 00041 int dimension() const {return dimension_;} 00042 00043 /** */ 00044 const TSFNonDupArray<BasisFamily>& basis() const {return basis_;} 00045 00046 /** */ 00047 const TSFArray<TSFArray<int> >& funcID() const {return funcID_;} 00048 00049 /** */ 00050 const CellSet& cellSet() const {return cellSet_;} 00051 00052 /** */ 00053 static bool& verbose() {static bool rtn=false; return rtn;} 00054 00055 protected: 00056 00057 CellSet cellSet_; 00058 Mesh mesh_; 00059 int dimension_; 00060 00061 TSFNonDupArray<BasisFamily> basis_; 00062 TSFArray<TSFArray<int> > funcID_; 00063 }; 00064 } 00065 00066 00067 #endif