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

#include <BackgroundMesh.h>

Inheritance diagram for backgroundMesh:
Collaboration diagram for backgroundMesh:

Public Member Functions

void propagate1dMesh (GFace *)
 
void propagateCrossField (GFace *, simpleFunction< double > *)
 
void propagateCrossFieldHJ (GFace *)
 
void propagateCrossField (GFace *)
 
void propagateCrossFieldByDistance (GFace *)
 
void updateSizes (GFace *)
 
double operator() (double u, double v, double w) const
 
bool inDomain (double u, double v, double w) const
 
double getAngle (double u, double v, double w) const
 
double getSmoothness (double u, double v, double w)
 
double getSmoothness (MElement *)
 
void print (const std::string &filename, GFace *gf, const std::map< MVertex *, double > &, int smooth=0)
 
void print (const std::string &filename, GFace *gf, int choice=0)
 
MElementgetMeshElementByCoord (double u, double v, double w, bool strict=true)
 
int getNumMeshElements () const
 
std::vector< MVertex * >::iterator begin_vertices ()
 
std::vector< MVertex * >::iterator end_vertices ()
 
std::vector< MVertex * >::const_iterator begin_vertices () const
 
std::vector< MVertex * >::const_iterator end_vertices () const
 
std::vector< MElement * >::iterator begin_triangles ()
 
std::vector< MElement * >::iterator end_triangles ()
 
std::vector< MElement * >::const_iterator begin_triangles () const
 
std::vector< MElement * >::const_iterator end_triangles () const
 
- Public Member Functions inherited from simpleFunction< double >
 simpleFunction (double val=0.0)
 
virtual ~simpleFunction ()
 
virtual bool hasDerivatives ()
 
virtual void setElement (MElement *e) const
 
virtual void gradient (double x, double y, double z, double &dfdx, double &dfdy, double &dfdz) const
 
virtual void hessian (double x, double y, double z, double &dfdxx, double &dfdxy, double &dfdxz, double &dfdyx, double &dfdyy, double &dfdyz, double &dfdzx, double &dfdzy, double &dfdzz) const
 

Static Public Member Functions

static void set (GFace *)
 
static void setCrossFieldsByDistance (GFace *)
 
static void unset ()
 
static backgroundMeshcurrent ()
 

Private Member Functions

 backgroundMesh (GFace *, bool dist=false)
 
 ~backgroundMesh ()
 

Private Attributes

MElementOctree_octree
 
std::vector< MVertex * > _vertices
 
std::vector< MElement * > _triangles
 
std::map< MVertex *, double > _sizes
 
std::map< MVertex *, MVertex * > _3Dto2D
 
std::map< MVertex *, MVertex * > _2Dto3D
 
std::map< MVertex *, double > _distance
 
std::map< MVertex *, double > _angles
 

Static Private Attributes

static std::vector< backgroundMesh * > _current
 

Additional Inherited Members

- Protected Attributes inherited from simpleFunction< double >
double _val
 
bool _hasDerivatives
 

Detailed Description

Definition at line 46 of file BackgroundMesh.h.

Constructor & Destructor Documentation

◆ backgroundMesh()

backgroundMesh::backgroundMesh ( GFace _gf,
bool  dist = false 
)
private

Definition at line 75 of file BackgroundMesh.cpp.

Referenced by set(), and setCrossFieldsByDistance().

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

◆ ~backgroundMesh()

backgroundMesh::~backgroundMesh ( )
private

Definition at line 154 of file BackgroundMesh.cpp.

Member Function Documentation

◆ begin_triangles() [1/2]

std::vector<MElement *>::iterator backgroundMesh::begin_triangles ( )
inline

Definition at line 110 of file BackgroundMesh.h.

◆ begin_triangles() [2/2]

std::vector<MElement *>::const_iterator backgroundMesh::begin_triangles ( ) const
inline

Definition at line 115 of file BackgroundMesh.h.

◆ begin_vertices() [1/2]

std::vector<MVertex *>::iterator backgroundMesh::begin_vertices ( )
inline

Definition at line 97 of file BackgroundMesh.h.

◆ begin_vertices() [2/2]

std::vector<MVertex *>::const_iterator backgroundMesh::begin_vertices ( ) const
inline

Definition at line 102 of file BackgroundMesh.h.

◆ current()

backgroundMesh * backgroundMesh::current ( )
static

Definition at line 68 of file BackgroundMesh.cpp.

Referenced by buildBackgroundMesh(), directions_storage(), improved_translate(), Mesh2D(), MTri3::MTri3(), and optimalPointFrontalQuad().

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

◆ end_triangles() [1/2]

std::vector<MElement *>::iterator backgroundMesh::end_triangles ( )
inline

Definition at line 114 of file BackgroundMesh.h.

◆ end_triangles() [2/2]

std::vector<MElement *>::const_iterator backgroundMesh::end_triangles ( ) const
inline

Definition at line 119 of file BackgroundMesh.h.

◆ end_vertices() [1/2]

std::vector<MVertex *>::iterator backgroundMesh::end_vertices ( )
inline

Definition at line 101 of file BackgroundMesh.h.

◆ end_vertices() [2/2]

std::vector<MVertex *>::const_iterator backgroundMesh::end_vertices ( ) const
inline

Definition at line 106 of file BackgroundMesh.h.

◆ getAngle()

double backgroundMesh::getAngle ( double  u,
double  v,
double  w 
) const

Definition at line 603 of file BackgroundMesh.cpp.

Referenced by improved_translate(), MTri3::MTri3(), and optimalPointFrontalQuad().

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

◆ getMeshElementByCoord()

MElement * backgroundMesh::getMeshElementByCoord ( double  u,
double  v,
double  w,
bool  strict = true 
)

Definition at line 720 of file BackgroundMesh.cpp.

Here is the call graph for this function:

◆ getNumMeshElements()

int backgroundMesh::getNumMeshElements ( ) const
inline

Definition at line 96 of file BackgroundMesh.h.

◆ getSmoothness() [1/2]

double backgroundMesh::getSmoothness ( double  u,
double  v,
double  w 
)

Definition at line 389 of file BackgroundMesh.cpp.

Referenced by print(), and propagateCrossField().

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

◆ getSmoothness() [2/2]

double backgroundMesh::getSmoothness ( MElement e)

Definition at line 370 of file BackgroundMesh.cpp.

Here is the call graph for this function:

◆ inDomain()

bool backgroundMesh::inDomain ( double  u,
double  v,
double  w 
) const

Definition at line 562 of file BackgroundMesh.cpp.

Here is the call graph for this function:

◆ operator()()

double backgroundMesh::operator() ( double  u,
double  v,
double  w 
) const
virtual

Reimplemented from simpleFunction< double >.

Definition at line 568 of file BackgroundMesh.cpp.

Here is the call graph for this function:

◆ print() [1/2]

void backgroundMesh::print ( const std::string &  filename,
GFace gf,
const std::map< MVertex *, double > &  _whatToPrint,
int  smooth = 0 
)

Definition at line 672 of file BackgroundMesh.cpp.

Referenced by buildBackgroundMesh(), print(), and propagateCrossField().

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

◆ print() [2/2]

void backgroundMesh::print ( const std::string &  filename,
GFace gf,
int  choice = 0 
)
inline

Definition at line 86 of file BackgroundMesh.h.

Here is the call graph for this function:

◆ propagate1dMesh()

void backgroundMesh::propagate1dMesh ( GFace _gf)

Definition at line 237 of file BackgroundMesh.cpp.

Here is the call graph for this function:

◆ propagateCrossField() [1/2]

void backgroundMesh::propagateCrossField ( GFace _gf)

Definition at line 411 of file BackgroundMesh.cpp.

Here is the call graph for this function:

◆ propagateCrossField() [2/2]

void backgroundMesh::propagateCrossField ( GFace _gf,
simpleFunction< double > *  ONE 
)

Definition at line 448 of file BackgroundMesh.cpp.

Referenced by propagateCrossField(), and propagateCrossFieldHJ().

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

◆ propagateCrossFieldByDistance()

void backgroundMesh::propagateCrossFieldByDistance ( GFace _gf)

Definition at line 291 of file BackgroundMesh.cpp.

Here is the call graph for this function:

◆ propagateCrossFieldHJ()

void backgroundMesh::propagateCrossFieldHJ ( GFace _gf)

Definition at line 442 of file BackgroundMesh.cpp.

Referenced by propagateCrossField().

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

◆ set()

void backgroundMesh::set ( GFace gf)
static

Definition at line 40 of file BackgroundMesh.cpp.

Referenced by buildBackgroundMesh(), and directions_storage().

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

◆ setCrossFieldsByDistance()

void backgroundMesh::setCrossFieldsByDistance ( GFace gf)
static

Definition at line 52 of file BackgroundMesh.cpp.

Referenced by buildBackgroundMesh().

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

◆ unset()

void backgroundMesh::unset ( )
static

Definition at line 60 of file BackgroundMesh.cpp.

Referenced by bowyerWatsonFrontalLayers(), bowyerWatsonParallelograms(), bowyerWatsonParallelogramsConstrained(), directions_storage(), and Mesh2D().

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

◆ updateSizes()

void backgroundMesh::updateSizes ( GFace _gf)

Definition at line 505 of file BackgroundMesh.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ _2Dto3D

std::map<MVertex *, MVertex *> backgroundMesh::_2Dto3D
private

Definition at line 52 of file BackgroundMesh.h.

Referenced by propagate1dMesh(), propagateCrossField(), and updateSizes().

◆ _3Dto2D

std::map<MVertex *, MVertex *> backgroundMesh::_3Dto2D
private

Definition at line 51 of file BackgroundMesh.h.

Referenced by getSmoothness().

◆ _angles

std::map<MVertex *, double> backgroundMesh::_angles
private

Definition at line 54 of file BackgroundMesh.h.

Referenced by getAngle(), getSmoothness(), print(), and propagateCrossField().

◆ _current

std::vector< backgroundMesh * > backgroundMesh::_current
staticprivate
Initial value:
=
std::vector<backgroundMesh *>(MAX_THREADS, (backgroundMesh *)nullptr)

Definition at line 55 of file BackgroundMesh.h.

Referenced by current(), set(), setCrossFieldsByDistance(), and unset().

◆ _distance

std::map<MVertex *, double> backgroundMesh::_distance
private

Definition at line 53 of file BackgroundMesh.h.

◆ _octree

MElementOctree* backgroundMesh::_octree
private

◆ _sizes

std::map<MVertex *, double> backgroundMesh::_sizes
private

Definition at line 50 of file BackgroundMesh.h.

Referenced by operator()(), print(), propagate1dMesh(), and updateSizes().

◆ _triangles

std::vector<MElement *> backgroundMesh::_triangles
private

◆ _vertices

std::vector<MVertex *> backgroundMesh::_vertices
private

Definition at line 48 of file BackgroundMesh.h.

Referenced by begin_vertices(), end_vertices(), and ~backgroundMesh().


The documentation for this class was generated from the following files:
MAX_THREADS
static const int MAX_THREADS
Definition: BackgroundMesh.cpp:35
backgroundMesh
Definition: BackgroundMesh.h:46