src/ell/Basin.hh
Go to the documentation of this file.00001 #ifndef BASIN_HH_ 00002 #define BASIN_HH_ 00003 00004 #include "ell/State.hh" 00005 #include "ell/StateCollector.hh" 00006 00007 namespace ell 00008 { 00009 00010 00016 class Basin { 00017 protected: 00019 const double maxE; 00021 const double deltaE; 00024 const size_t maxToStore; 00025 00026 public: 00027 00029 class QueueVal { 00030 public: 00031 00033 CSequence minNeigh; 00035 double minNeighE; 00038 size_t minNeighGWE; 00039 00040 QueueVal(); 00041 ~QueueVal(); 00042 }; 00043 00044 00045 public: 00046 00054 Basin( const double maxE, 00055 const double deltaE, 00056 const size_t maxToStore 00057 ); 00058 00070 double flood( const State* const localMin, 00071 StateCollector* scBasin, 00072 StateCollector* scSurface = NULL); 00073 00074 00098 static double basin( const State* const localMin, 00099 StateCollector* scBasin, 00100 const double maxE, 00101 const double deltaE, 00102 const size_t maxToStore, 00103 StateCollector* scSurface = NULL 00104 ); 00105 }; 00106 00107 00108 } 00109 00110 #endif /*BASIN_HH_*/