gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
#include <CellComplex.h>
Public Types | |
typedef std::set< Cell *, CellPtrLessThan >::iterator | citer |
Public Member Functions | |
CellComplex (GModel *model, std::vector< MElement * > &domainElements, std::vector< MElement * > &subdomainElements, std::vector< MElement * > &nondomainElements, std::vector< MElement * > &nonsubdomainElements, std::vector< MElement * > &immuneElements, bool saveOriginalComplex=true) | |
~CellComplex () | |
GModel * | getModel () const |
int | getDim () const |
bool | simplicial () const |
bool | relative () const |
int | getSize (int dim, bool orig=false) |
int | getDomain (Cell *cell, std::string &str) |
void | getCells (std::set< Cell *, CellPtrLessThan > &cells, int dim, int domain=0) |
int | getNumCells (int dim, int domain=0) |
Cell * | getACell (int dim, int domain=0) |
citer | firstCell (int dim, bool orig=false) |
citer | lastCell (int dim, bool orig=false) |
bool | hasCell (Cell *cell, bool orig=false) |
bool | inSameDomain (Cell *c1, Cell *c2) const |
void | removeSubdomain () |
void | removeCells (int dim) |
int | reduction (int dim, int omit, std::vector< Cell * > &omittedCells) |
int | coreduction (int dim, int omit, std::vector< Cell * > &omittedCells) |
int | combine (int dim) |
int | cocombine (int dim) |
bool | coherent () |
int | reduceComplex (int combine=1, bool omit=true, bool homseq=false) |
int | coreduceComplex (int combine=1, bool omit=true, int heuristic=0) |
void | bettiReduceComplex () |
bool | isReduced () const |
int | eulerCharacteristic () |
void | printEuler () |
bool | restoreComplex () |
void | printComplex (int dim) |
int | saveComplex (const std::string &filename) |
int | loadComplex (const std::string &filename) |
Private Member Functions | |
bool | _insertCells (std::vector< MElement * > &elements, int domain) |
bool | _removeCells (std::vector< MElement * > &elements, int domain) |
bool | _immunizeCells (std::vector< MElement * > &elements) |
Cell * | _omitCell (Cell *cell, bool dual) |
void | enqueueCells (std::map< Cell *, short int, CellPtrLessThan > &cells, std::queue< Cell * > &Q, std::set< Cell *, CellPtrLessThan > &Qset) |
void | removeCell (Cell *cell, bool other=true, bool del=false) |
void | insertCell (Cell *cell) |
int | coreduction (Cell *startCell, int omit, std::vector< Cell * > &omittedCells) |
Private Attributes | |
std::pair< Cell *, double > | _smallestCell |
std::pair< Cell *, double > | _biggestCell |
GModel * | _model |
std::set< Cell *, CellPtrLessThan > | _cells [4] |
std::set< Cell *, CellPtrLessThan > | _ocells [4] |
std::vector< Cell * > | _removedcells |
int | _dim |
bool | _simplicial |
bool | _saveorig |
bool | _relative |
int | _deleteCount |
int | _createCount |
bool | _reduced |
int | _numRelativeCells [4] |
int | _numSubdomainCells [4] |
Static Private Attributes | |
static double | _patience = 10 |
Definition at line 24 of file CellComplex.h.
typedef std::set<Cell *, CellPtrLessThan>::iterator CellComplex::citer |
Definition at line 120 of file CellComplex.h.
CellComplex::CellComplex | ( | GModel * | model, |
std::vector< MElement * > & | domainElements, | ||
std::vector< MElement * > & | subdomainElements, | ||
std::vector< MElement * > & | nondomainElements, | ||
std::vector< MElement * > & | nonsubdomainElements, | ||
std::vector< MElement * > & | immuneElements, | ||
bool | saveOriginalComplex = true |
||
) |
CellComplex::~CellComplex | ( | ) |
|
private |
Definition at line 213 of file CellComplex.cpp.
Referenced by CellComplex().
|
private |
Definition at line 66 of file CellComplex.cpp.
Referenced by CellComplex().
Definition at line 461 of file CellComplex.cpp.
Referenced by coreduceComplex(), and reduceComplex().
|
private |
Definition at line 158 of file CellComplex.cpp.
Referenced by CellComplex().
void CellComplex::bettiReduceComplex | ( | ) |
int CellComplex::cocombine | ( | int | dim | ) |
Definition at line 744 of file CellComplex.cpp.
Referenced by bettiReduceComplex(), and coreduceComplex().
bool CellComplex::coherent | ( | ) |
Definition at line 822 of file CellComplex.cpp.
Referenced by coreduceComplex().
int CellComplex::combine | ( | int | dim | ) |
Definition at line 666 of file CellComplex.cpp.
Referenced by coreduceComplex(), and reduceComplex().
int CellComplex::coreduceComplex | ( | int | combine = 1 , |
bool | omit = true , |
||
int | heuristic = 0 |
||
) |
|
private |
Definition at line 301 of file CellComplex.cpp.
Referenced by _omitCell(), and coreduceComplex().
int CellComplex::coreduction | ( | int | dim, |
int | omit, | ||
std::vector< Cell * > & | omittedCells | ||
) |
|
private |
Definition at line 287 of file CellComplex.cpp.
Referenced by cocombine(), combine(), and coreduction().
|
inline |
Definition at line 177 of file CellComplex.h.
Referenced by printEuler().
|
inline |
Definition at line 123 of file CellComplex.h.
Referenced by _insertCells(), CellComplex(), cocombine(), coherent(), combine(), coreduceComplex(), coreduction(), getACell(), getCells(), printComplex(), reduceComplex(), reduction(), removeCells(), removeSubdomain(), and restoreComplex().
Cell * CellComplex::getACell | ( | int | dim, |
int | domain = 0 |
||
) |
void CellComplex::getCells | ( | std::set< Cell *, CellPtrLessThan > & | cells, |
int | dim, | ||
int | domain = 0 |
||
) |
|
inline |
Definition at line 94 of file CellComplex.h.
Referenced by _omitCell(), coreduceComplex(), and reduceComplex().
int CellComplex::getDomain | ( | Cell * | cell, |
std::string & | str | ||
) |
Definition at line 441 of file CellComplex.cpp.
Referenced by _omitCell().
|
inline |
Definition at line 93 of file CellComplex.h.
int CellComplex::getNumCells | ( | int | dim, |
int | domain = 0 |
||
) |
Definition at line 893 of file CellComplex.cpp.
Referenced by _omitCell(), CellComplex(), and getACell().
int CellComplex::getSize | ( | int | dim, |
bool | orig = false |
||
) |
Definition at line 425 of file CellComplex.cpp.
Referenced by _omitCell(), CellComplex(), cocombine(), combine(), coreduceComplex(), coreduction(), eulerCharacteristic(), getNumCells(), printComplex(), reduceComplex(), reduction(), and restoreComplex().
bool CellComplex::hasCell | ( | Cell * | cell, |
bool | orig = false |
||
) |
Definition at line 867 of file CellComplex.cpp.
Referenced by coreduceComplex().
Definition at line 136 of file CellComplex.h.
Referenced by cocombine(), combine(), coreduction(), and reduction().
|
private |
Definition at line 245 of file CellComplex.cpp.
Referenced by cocombine(), combine(), coreduceComplex(), and reduceComplex().
|
inline |
Definition at line 175 of file CellComplex.h.
|
inline |
Definition at line 127 of file CellComplex.h.
Referenced by _immunizeCells(), _insertCells(), _removeCells(), CellComplex(), cocombine(), coherent(), combine(), coreduceComplex(), coreduction(), getACell(), getCells(), hasCell(), printComplex(), reduction(), removeCells(), removeSubdomain(), and restoreComplex().
int CellComplex::loadComplex | ( | const std::string & | filename | ) |
Definition at line 1028 of file CellComplex.cpp.
void CellComplex::printComplex | ( | int | dim | ) |
|
inline |
int CellComplex::reduceComplex | ( | int | combine = 1 , |
bool | omit = true , |
||
bool | homseq = false |
||
) |
Definition at line 499 of file CellComplex.cpp.
Referenced by bettiReduceComplex().
int CellComplex::reduction | ( | int | dim, |
int | omit, | ||
std::vector< Cell * > & | omittedCells | ||
) |
Definition at line 343 of file CellComplex.cpp.
Referenced by _omitCell(), and reduceComplex().
|
inline |
Definition at line 96 of file CellComplex.h.
Referenced by coreduceComplex(), getDomain(), reduceComplex(), removeCell(), and restoreComplex().
|
private |
Definition at line 256 of file CellComplex.cpp.
Referenced by _omitCell(), _removeCells(), cocombine(), combine(), coreduction(), reduction(), removeCells(), and removeSubdomain().
void CellComplex::removeCells | ( | int | dim | ) |
void CellComplex::removeSubdomain | ( | ) |
Definition at line 555 of file CellComplex.cpp.
Referenced by coreduceComplex(), and reduceComplex().
bool CellComplex::restoreComplex | ( | ) |
int CellComplex::saveComplex | ( | const std::string & | filename | ) |
Definition at line 987 of file CellComplex.cpp.
|
inline |
Definition at line 95 of file CellComplex.h.
|
private |
Definition at line 27 of file CellComplex.h.
Referenced by _insertCells(), CellComplex(), and coreduceComplex().
|
private |
Definition at line 33 of file CellComplex.h.
Referenced by _immunizeCells(), _insertCells(), _removeCells(), CellComplex(), coherent(), firstCell(), getSize(), hasCell(), insertCell(), lastCell(), removeCell(), restoreComplex(), and ~CellComplex().
|
private |
Definition at line 54 of file CellComplex.h.
Referenced by _insertCells(), _omitCell(), CellComplex(), cocombine(), combine(), and ~CellComplex().
|
private |
Definition at line 53 of file CellComplex.h.
Referenced by CellComplex(), cocombine(), combine(), restoreComplex(), and ~CellComplex().
|
private |
Definition at line 42 of file CellComplex.h.
Referenced by _insertCells(), CellComplex(), and getDim().
|
private |
Definition at line 29 of file CellComplex.h.
Referenced by getModel().
|
private |
Definition at line 59 of file CellComplex.h.
Referenced by CellComplex(), getNumCells(), removeCell(), and restoreComplex().
|
private |
Definition at line 60 of file CellComplex.h.
Referenced by CellComplex(), getNumCells(), removeCell(), and restoreComplex().
|
private |
Definition at line 36 of file CellComplex.h.
Referenced by CellComplex(), firstCell(), getSize(), hasCell(), lastCell(), and restoreComplex().
|
staticprivate |
Definition at line 82 of file CellComplex.h.
Referenced by _insertCells(), cocombine(), combine(), coreduceComplex(), and reduceComplex().
|
private |
Definition at line 57 of file CellComplex.h.
Referenced by CellComplex(), cocombine(), combine(), coreduceComplex(), coreduction(), isReduced(), reduceComplex(), reduction(), removeCells(), removeSubdomain(), and restoreComplex().
|
private |
Definition at line 51 of file CellComplex.h.
Referenced by CellComplex(), and relative().
|
private |
Definition at line 39 of file CellComplex.h.
Referenced by removeCell(), restoreComplex(), and ~CellComplex().
|
private |
Definition at line 48 of file CellComplex.h.
Referenced by CellComplex(), and restoreComplex().
|
private |
Definition at line 45 of file CellComplex.h.
Referenced by _insertCells(), and simplicial().
|
private |
Definition at line 26 of file CellComplex.h.
Referenced by _insertCells(), CellComplex(), and coreduceComplex().