gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
Cell Class Reference

#include <Cell.h>

Inheritance diagram for Cell:

Public Types

typedef std::map< Cell *, BdInfo, CellPtrLessThan >::iterator biter
 
typedef std::map< Cell *, int, CellPtrLessThan >::iterator citer
 

Public Member Functions

 Cell (MElement *element, int domain)
 
 Cell (Cell *parent, int i)
 
virtual ~Cell ()
 
int getDomain () const
 
void setDomain (int domain)
 
int getNum () const
 
void setNum (int num)
 
int getTypeMSH () const
 
virtual int getDim () const
 
bool inSubdomain () const
 
void getMeshVertices (std::vector< MVertex * > &v) const
 
void setImmune (bool immune)
 
bool getImmune () const
 
int getNumSortedVertices () const
 
int getSortedVertex (int vertex) const
 
int getNumVertices () const
 
MVertexgetMeshVertex (int vertex) const
 
void findBdElement (int i, std::vector< MVertex * > &vertices) const
 
int getNumBdElements () const
 
int findBdCellOrientation (Cell *cell, int i) const
 
void increaseGlobalNum ()
 
void saveCellBoundary ()
 
void restoreCellBoundary ()
 
virtual bool hasVertex (int vertex) const
 
biter firstBoundary (bool orig=false)
 
biter lastBoundary ()
 
biter firstCoboundary (bool orig=false)
 
biter lastCoboundary ()
 
int getBoundarySize (bool orig=false)
 
int getCoboundarySize (bool orig=false)
 
void getBoundary (std::map< Cell *, short int, CellPtrLessThan > &boundary, bool orig=false)
 
void getCoboundary (std::map< Cell *, short int, CellPtrLessThan > &coboundary, bool orig=false)
 
void addBoundaryCell (int orientation, Cell *cell, bool other)
 
void addCoboundaryCell (int orientation, Cell *cell, bool other)
 
void removeBoundaryCell (Cell *cell, bool other)
 
void removeCoboundaryCell (Cell *cell, bool other)
 
bool hasBoundary (Cell *cell, bool orig=false)
 
bool hasCoboundary (Cell *cell, bool orig=false)
 
virtual void printCell ()
 
virtual void printBoundary ()
 
virtual void printCoboundary ()
 
bool isCombined () const
 
virtual void getCells (std::map< Cell *, int, CellPtrLessThan > &cells)
 
virtual int getNumCells () const
 
bool operator== (const Cell &c2) const
 

Static Public Member Functions

static std::pair< Cell *, bool > createCell (MElement *element, int domain)
 
static std::pair< Cell *, bool > createCell (Cell *parent, int i)
 

Protected Member Functions

 Cell ()
 

Protected Attributes

int _num
 
char _domain
 
bool _combined
 
bool _immune
 
std::map< Cell *, BdInfo, CellPtrLessThan_bd
 
std::map< Cell *, BdInfo, CellPtrLessThan_cbd
 

Static Protected Attributes

static int _globalNum = 0
 

Private Member Functions

bool _sortVertexIndices ()
 

Private Attributes

char _dim
 
std::vector< MVertex * > _v
 
std::vector< char > _si
 

Detailed Description

Definition at line 42 of file Cell.h.

Member Typedef Documentation

◆ biter

typedef std::map<Cell *, BdInfo, CellPtrLessThan>::iterator Cell::biter

Definition at line 108 of file Cell.h.

◆ citer

typedef std::map<Cell *, int, CellPtrLessThan>::iterator Cell::citer

Definition at line 149 of file Cell.h.

Constructor & Destructor Documentation

◆ Cell() [1/3]

Cell::Cell ( )
inlineprotected

Definition at line 58 of file Cell.h.

Referenced by createCell().

Here is the caller graph for this function:

◆ Cell() [2/3]

Cell::Cell ( MElement element,
int  domain 
)

Definition at line 73 of file Cell.cpp.

Here is the call graph for this function:

◆ Cell() [3/3]

Cell::Cell ( Cell parent,
int  i 
)

Definition at line 87 of file Cell.cpp.

Here is the call graph for this function:

◆ ~Cell()

virtual Cell::~Cell ( )
inlinevirtual

Definition at line 75 of file Cell.h.

Member Function Documentation

◆ _sortVertexIndices()

bool Cell::_sortVertexIndices ( )
inlineprivate

Definition at line 99 of file Cell.cpp.

Referenced by Cell(), and createCell().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addBoundaryCell()

void Cell::addBoundaryCell ( int  orientation,
Cell cell,
bool  other 
)

Definition at line 543 of file Cell.cpp.

Referenced by CellComplex::_insertCells(), addCoboundaryCell(), CellComplex::coherent(), and CombinedCell::CombinedCell().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addCoboundaryCell()

void Cell::addCoboundaryCell ( int  orientation,
Cell cell,
bool  other 
)

Definition at line 560 of file Cell.cpp.

Referenced by addBoundaryCell(), CellComplex::coherent(), and CombinedCell::CombinedCell().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createCell() [1/2]

std::pair< Cell *, bool > Cell::createCell ( Cell parent,
int  i 
)
static

Definition at line 60 of file Cell.cpp.

Here is the call graph for this function:

◆ createCell() [2/2]

std::pair< Cell *, bool > Cell::createCell ( MElement element,
int  domain 
)
static

Definition at line 45 of file Cell.cpp.

Referenced by CellComplex::_insertCells().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findBdCellOrientation()

int Cell::findBdCellOrientation ( Cell cell,
int  i 
) const

Definition at line 194 of file Cell.cpp.

Referenced by CellComplex::_insertCells().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findBdElement()

void Cell::findBdElement ( int  i,
std::vector< MVertex * > &  vertices 
) const

Definition at line 122 of file Cell.cpp.

Referenced by Cell(), and createCell().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ firstBoundary()

Cell::biter Cell::firstBoundary ( bool  orig = false)

Definition at line 625 of file Cell.cpp.

Referenced by CellComplex::cocombine(), CombinedCell::CombinedCell(), CellComplex::coreduction(), getBoundary(), printBoundary(), restoreCellBoundary(), and saveCellBoundary().

Here is the caller graph for this function:

◆ firstCoboundary()

Cell::biter Cell::firstCoboundary ( bool  orig = false)

Definition at line 637 of file Cell.cpp.

Referenced by CellComplex::combine(), CombinedCell::CombinedCell(), getCoboundary(), printCoboundary(), CellComplex::reduction(), restoreCellBoundary(), and saveCellBoundary().

Here is the caller graph for this function:

◆ getBoundary()

void Cell::getBoundary ( std::map< Cell *, short int, CellPtrLessThan > &  boundary,
bool  orig = false 
)

Definition at line 673 of file Cell.cpp.

Referenced by CellComplex::coherent(), CellComplex::combine(), CellComplex::coreduction(), and CellComplex::removeCell().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBoundarySize()

int Cell::getBoundarySize ( bool  orig = false)

Definition at line 649 of file Cell.cpp.

Referenced by CellComplex::cocombine(), and CellComplex::coreduction().

Here is the caller graph for this function:

◆ getCells()

virtual void Cell::getCells ( std::map< Cell *, int, CellPtrLessThan > &  cells)
inlinevirtual

Reimplemented in CombinedCell.

Definition at line 150 of file Cell.h.

Referenced by CombinedCell::CombinedCell().

Here is the caller graph for this function:

◆ getCoboundary()

void Cell::getCoboundary ( std::map< Cell *, short int, CellPtrLessThan > &  coboundary,
bool  orig = false 
)

Definition at line 684 of file Cell.cpp.

Referenced by CellComplex::cocombine(), CellComplex::coherent(), CellComplex::coreduction(), and CellComplex::removeCell().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getCoboundarySize()

int Cell::getCoboundarySize ( bool  orig = false)

Definition at line 661 of file Cell.cpp.

Referenced by CellComplex::combine(), and CellComplex::reduction().

Here is the caller graph for this function:

◆ getDim()

virtual int Cell::getDim ( ) const
inlinevirtual

◆ getDomain()

int Cell::getDomain ( ) const
inline

Definition at line 77 of file Cell.h.

Referenced by Cell(), createCell(), and CellComplex::inSameDomain().

Here is the caller graph for this function:

◆ getImmune()

bool Cell::getImmune ( ) const
inline

Definition at line 87 of file Cell.h.

Referenced by CellComplex::cocombine(), CellComplex::combine(), CombinedCell::CombinedCell(), CellComplex::coreduction(), and CellComplex::reduction().

Here is the caller graph for this function:

◆ getMeshVertex()

MVertex* Cell::getMeshVertex ( int  vertex) const
inline

Definition at line 92 of file Cell.h.

Referenced by printCell().

Here is the caller graph for this function:

◆ getMeshVertices()

void Cell::getMeshVertices ( std::vector< MVertex * > &  v) const
inline

Definition at line 84 of file Cell.h.

Referenced by findBdCellOrientation().

Here is the caller graph for this function:

◆ getNum()

int Cell::getNum ( ) const
inline

Definition at line 79 of file Cell.h.

Referenced by findBdCellOrientation(), getSortedVertex(), hasVertex(), CellPtrLessThan::operator()(), operator==(), CombinedCell::operator==(), and printCell().

Here is the caller graph for this function:

◆ getNumBdElements()

int Cell::getNumBdElements ( ) const

Definition at line 171 of file Cell.cpp.

Referenced by CellComplex::_insertCells(), and CellComplex::_removeCells().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getNumCells()

virtual int Cell::getNumCells ( ) const
inlinevirtual

Reimplemented in CombinedCell.

Definition at line 155 of file Cell.h.

Referenced by CombinedCell::CombinedCell().

Here is the caller graph for this function:

◆ getNumSortedVertices()

int Cell::getNumSortedVertices ( ) const
inline

Definition at line 89 of file Cell.h.

Referenced by CellPtrLessThan::operator()().

Here is the caller graph for this function:

◆ getNumVertices()

int Cell::getNumVertices ( ) const
inline

Definition at line 91 of file Cell.h.

Referenced by findBdCellOrientation(), findBdElement(), getNumBdElements(), getTypeMSH(), and printCell().

Here is the caller graph for this function:

◆ getSortedVertex()

int Cell::getSortedVertex ( int  vertex) const
inline

Definition at line 117 of file Cell.cpp.

Referenced by CellPtrLessThan::operator()().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getTypeMSH()

int Cell::getTypeMSH ( ) const

Definition at line 462 of file Cell.cpp.

Here is the call graph for this function:

◆ hasBoundary()

bool Cell::hasBoundary ( Cell cell,
bool  orig = false 
)

Definition at line 597 of file Cell.cpp.

Referenced by CellComplex::coherent().

Here is the caller graph for this function:

◆ hasCoboundary()

bool Cell::hasCoboundary ( Cell cell,
bool  orig = false 
)

Definition at line 611 of file Cell.cpp.

Referenced by CellComplex::coherent().

Here is the caller graph for this function:

◆ hasVertex()

bool Cell::hasVertex ( int  vertex) const
virtual

Reimplemented in CombinedCell.

Definition at line 485 of file Cell.cpp.

Here is the call graph for this function:

◆ increaseGlobalNum()

void Cell::increaseGlobalNum ( )
inline

Definition at line 98 of file Cell.h.

Referenced by CellComplex::CellComplex().

Here is the caller graph for this function:

◆ inSubdomain()

bool Cell::inSubdomain ( ) const
inline

◆ isCombined()

bool Cell::isCombined ( ) const
inline

Definition at line 147 of file Cell.h.

Referenced by CellComplex::cocombine(), CellComplex::combine(), printCell(), and CellComplex::restoreComplex().

Here is the caller graph for this function:

◆ lastBoundary()

Cell::biter Cell::lastBoundary ( )

Definition at line 635 of file Cell.cpp.

Referenced by CombinedCell::CombinedCell(), getBoundary(), printBoundary(), restoreCellBoundary(), and saveCellBoundary().

Here is the caller graph for this function:

◆ lastCoboundary()

Cell::biter Cell::lastCoboundary ( )

Definition at line 647 of file Cell.cpp.

Referenced by CombinedCell::CombinedCell(), getCoboundary(), printCoboundary(), restoreCellBoundary(), and saveCellBoundary().

Here is the caller graph for this function:

◆ operator==()

bool Cell::operator== ( const Cell c2) const
inline

Definition at line 157 of file Cell.h.

Here is the call graph for this function:

◆ printBoundary()

void Cell::printBoundary ( )
virtual

Definition at line 695 of file Cell.cpp.

Referenced by CellComplex::printComplex().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printCell()

void Cell::printCell ( )
virtual

Definition at line 506 of file Cell.cpp.

Referenced by CellComplex::insertCell(), printBoundary(), printCoboundary(), and CellComplex::printComplex().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printCoboundary()

void Cell::printCoboundary ( )
virtual

Definition at line 707 of file Cell.cpp.

Referenced by CellComplex::printComplex().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ removeBoundaryCell()

void Cell::removeBoundaryCell ( Cell cell,
bool  other 
)

Definition at line 577 of file Cell.cpp.

Referenced by CellComplex::coherent(), CombinedCell::CombinedCell(), and CellComplex::removeCell().

Here is the caller graph for this function:

◆ removeCoboundaryCell()

void Cell::removeCoboundaryCell ( Cell cell,
bool  other 
)

Definition at line 587 of file Cell.cpp.

Referenced by CellComplex::coherent(), CombinedCell::CombinedCell(), and CellComplex::removeCell().

Here is the caller graph for this function:

◆ restoreCellBoundary()

void Cell::restoreCellBoundary ( )

Definition at line 527 of file Cell.cpp.

Referenced by CellComplex::restoreComplex().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ saveCellBoundary()

void Cell::saveCellBoundary ( )

Definition at line 517 of file Cell.cpp.

Referenced by CellComplex::CellComplex().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setDomain()

void Cell::setDomain ( int  domain)
inline

Definition at line 78 of file Cell.h.

Referenced by CellComplex::_insertCells().

Here is the caller graph for this function:

◆ setImmune()

void Cell::setImmune ( bool  immune)
inline

Definition at line 86 of file Cell.h.

◆ setNum()

void Cell::setNum ( int  num)
inline

Definition at line 80 of file Cell.h.

Referenced by CellComplex::CellComplex().

Here is the caller graph for this function:

Member Data Documentation

◆ _bd

std::map<Cell *, BdInfo, CellPtrLessThan> Cell::_bd
protected

◆ _cbd

◆ _combined

bool Cell::_combined
protected

Definition at line 50 of file Cell.h.

Referenced by Cell(), CombinedCell::CombinedCell(), createCell(), and isCombined().

◆ _dim

char Cell::_dim
private

◆ _domain

char Cell::_domain
protected

Definition at line 47 of file Cell.h.

Referenced by Cell(), CombinedCell::CombinedCell(), createCell(), getDomain(), inSubdomain(), and setDomain().

◆ _globalNum

int Cell::_globalNum = 0
staticprotected

Definition at line 44 of file Cell.h.

Referenced by CombinedCell::CombinedCell(), and increaseGlobalNum().

◆ _immune

bool Cell::_immune
protected

Definition at line 52 of file Cell.h.

Referenced by Cell(), CombinedCell::CombinedCell(), createCell(), getImmune(), and setImmune().

◆ _num

int Cell::_num
protected

Definition at line 46 of file Cell.h.

Referenced by Cell(), CombinedCell::CombinedCell(), createCell(), getNum(), and setNum().

◆ _si

std::vector<char> Cell::_si
private

Definition at line 64 of file Cell.h.

Referenced by _sortVertexIndices(), getNumSortedVertices(), getSortedVertex(), and hasVertex().

◆ _v


The documentation for this class was generated from the following files: