Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Examples  

MaximalCellSet.h

Go to the documentation of this file.
00001 #ifndef MAXIMALCELLSET_H
00002 #define MAXIMALCELLSET_H
00003 
00004 #include "SundanceDefs.h"
00005 
00006 #include <string>
00007 #include "CellSetBase.h"
00008 #include "CellReordererBase.h"
00009 #include "TSFSmartPtr.h"
00010 
00011 
00012 namespace Sundance
00013 {
00014 
00015   using namespace TSF;
00016   using std::string;
00017 
00018   using std::ostream;
00019 
00020   /** \ingroup UserLevelGeometry
00021    * A CellSet that includes all cells of maximal dimension.
00022    */
00023 
00024   class MaximalCellSet : public CellSetBase
00025     {
00026     public:
00027       /** empty ctor */
00028       MaximalCellSet() : CellSetBase() {;}
00029 
00030       /** TUVD */
00031       virtual ~MaximalCellSet(){;}
00032 
00033       /** determine if a cell is contained in this set */
00034       virtual bool contains(const Cell& cell) const ;
00035 
00036       /** write as XML */
00037       virtual XMLObject toXML() const ;
00038 
00039       /** find the cell dimensions that should be searched to find cells
00040        * in this set */
00041       virtual int dimension(const Mesh& mesh) const ;
00042 
00043 
00044       /** test equality */
00045       virtual bool equals(const CellSet& other) const ;
00046 
00047       /** test ordering */
00048       virtual bool lessThan(const CellSet& other) const ;
00049 
00050       static void setReorderer(const TSFSmartPtr<CellReordererBase>& r)
00051         {customReorderer_ = r;}
00052 
00053       /** */
00054       TSFSmartPtr<TSFArray<int> > getCellOrdering(const Mesh& mesh) const ;
00055     protected:
00056       /** low-level routine to find an ordered list of cells */
00057       virtual TSFSmartPtr<TSFArray<Cell> >
00058         innerGetOrderedCells(const Mesh& mesh) const ;
00059 
00060       /** */
00061       static TSFSmartPtr<CellReordererBase>& defaultReorderer() ;
00062 
00063       /** */
00064       static TSFSmartPtr<CellReordererBase> customReorderer_;
00065 
00066       TSFSmartPtr<CellReordererBase> reorderer() const ;
00067     };
00068 
00069 }
00070 #endif

Contact:
Kevin Long (krlong@ca.sandia.gov)


Documentation generated by