gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
meshGFaceBDS.cpp File Reference
#include <stdlib.h>
#include "GmshMessage.h"
#include "meshGFace.h"
#include "meshGFaceOptimize.h"
#include "BackgroundMesh.h"
#include "GVertex.h"
#include "GEdge.h"
#include "GFace.h"
#include "discreteFace.h"
#include "MVertex.h"
#include "MElement.h"
#include "Context.h"
#include "GPoint.h"
#include "GModel.h"
#include "Numeric.h"
#include "BDS.h"
#include "qualityMeasures.h"
#include "OS.h"
#include "robustPredicates.h"
Include dependency graph for meshGFaceBDS.cpp:

Go to the source code of this file.

Functions

static void getDegeneratedVertices (BDS_Mesh &m, std::map< BDS_Point *, MVertex *, PointLessThan > *recoverMap, std::set< MVertex *, MVertexPtrLessThan > &degenerated, std::vector< BDS_Edge * > &degenerated_edges)
 
static double computeEdgeLinearLength (BDS_Point *p1, BDS_Point *p2)
 
static double computeEdgeLinearLength (BDS_Point *p1, BDS_Point *p2, GFace *f)
 
static double computeEdgeLinearLength (BDS_Edge *e, GFace *f)
 
static double NewGetLc (BDS_Point *point, GFace *gf)
 
static double correctLC_ (BDS_Point *p1, BDS_Point *p2, GFace *f)
 
static double NewGetLc (BDS_Edge *const edge, GFace *const face)
 
static bool edgeSwapTestAngle (BDS_Edge *e, double min_cos)
 
static int edgeSwapTest (GFace *gf, BDS_Edge *e)
 
static bool neighboringModified (BDS_Point *p)
 
static void swapEdgePass (GFace *gf, BDS_Mesh &m, int &nb_swap, double &t, int FINALIZE=0, double orientation=1.0)
 
static bool edgeSwapTestDelaunayAniso (BDS_Edge *e, GFace *gf, std::set< swapquad > &configs)
 
void delaunayizeBDS (GFace *gf, BDS_Mesh &m, int &nb_swap)
 
static bool edges_sort (std::pair< double, BDS_Edge * > a, std::pair< double, BDS_Edge * > b)
 
static bool middlePoint (GFace *gf, BDS_Edge *e, double &u, double &v)
 
static void getDegeneracy (BDS_Mesh &m, std::vector< BDS_Point * > &deg)
 
static void setDegeneracy (std::vector< BDS_Point * > &deg, short d)
 
static void splitAllEdgesConnectedToSingularity (GFace *gf, BDS_Mesh &m)
 
static void splitEdgePass (GFace *gf, BDS_Mesh &m, double MAXE_, int &nb_split, std::vector< SPoint2 > *true_boundary, double &t)
 
double getMaxLcWhenCollapsingEdge (GFace *gf, BDS_Mesh &m, BDS_Edge *e, BDS_Point *p)
 
void collapseEdgePass (GFace *gf, BDS_Mesh &m, double MINE_, int MAXNP, int &nb_collaps, double &t)
 
void smoothVertexPass (GFace *gf, BDS_Mesh &m, int &nb_smooth, bool q, double threshold, double &t)
 
static void computeNodalSizes (GFace *gf, BDS_Mesh &m, std::map< BDS_Point *, MVertex *, PointLessThan > *recoverMap)
 
void modifyInitialMeshToRemoveDegeneracies (GFace *gf, BDS_Mesh &m, std::map< BDS_Point *, MVertex *, PointLessThan > *recoverMap)
 
void refineMeshBDS (GFace *gf, BDS_Mesh &m, const int NIT, const bool computeNodalSizeField, std::map< MVertex *, BDS_Point * > *recoverMapInv, std::map< BDS_Point *, MVertex *, PointLessThan > *recoverMap, std::vector< SPoint2 > *true_boundary)
 

Function Documentation

◆ collapseEdgePass()

void collapseEdgePass ( GFace gf,
BDS_Mesh m,
double  MINE_,
int  MAXNP,
int &  nb_collaps,
double &  t 
)

Definition at line 532 of file meshGFaceBDS.cpp.

Referenced by refineMeshBDS().

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

◆ computeEdgeLinearLength() [1/3]

static double computeEdgeLinearLength ( BDS_Edge e,
GFace f 
)
static

Definition at line 78 of file meshGFaceBDS.cpp.

Here is the call graph for this function:

◆ computeEdgeLinearLength() [2/3]

static double computeEdgeLinearLength ( BDS_Point p1,
BDS_Point p2 
)
static

Definition at line 50 of file meshGFaceBDS.cpp.

Referenced by computeEdgeLinearLength(), and NewGetLc().

Here is the caller graph for this function:

◆ computeEdgeLinearLength() [3/3]

static double computeEdgeLinearLength ( BDS_Point p1,
BDS_Point p2,
GFace f 
)
inlinestatic

Definition at line 58 of file meshGFaceBDS.cpp.

Here is the call graph for this function:

◆ computeNodalSizes()

static void computeNodalSizes ( GFace gf,
BDS_Mesh m,
std::map< BDS_Point *, MVertex *, PointLessThan > *  recoverMap 
)
static

Definition at line 604 of file meshGFaceBDS.cpp.

Referenced by refineMeshBDS().

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

◆ correctLC_()

static double correctLC_ ( BDS_Point p1,
BDS_Point p2,
GFace f 
)
static

Definition at line 92 of file meshGFaceBDS.cpp.

Referenced by NewGetLc().

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

◆ delaunayizeBDS()

void delaunayizeBDS ( GFace gf,
BDS_Mesh m,
int &  nb_swap 
)

Definition at line 236 of file meshGFaceBDS.cpp.

Referenced by meshGenerator(), and meshGeneratorPeriodic().

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

◆ edges_sort()

static bool edges_sort ( std::pair< double, BDS_Edge * >  a,
std::pair< double, BDS_Edge * >  b 
)
static

Definition at line 259 of file meshGFaceBDS.cpp.

Referenced by collapseEdgePass(), and splitEdgePass().

Here is the caller graph for this function:

◆ edgeSwapTest()

static int edgeSwapTest ( GFace gf,
BDS_Edge e 
)
static

Definition at line 140 of file meshGFaceBDS.cpp.

Referenced by swapEdgePass().

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

◆ edgeSwapTestAngle()

static bool edgeSwapTestAngle ( BDS_Edge e,
double  min_cos 
)
static

Definition at line 125 of file meshGFaceBDS.cpp.

Referenced by edgeSwapTest().

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

◆ edgeSwapTestDelaunayAniso()

static bool edgeSwapTestDelaunayAniso ( BDS_Edge e,
GFace gf,
std::set< swapquad > &  configs 
)
static

Definition at line 208 of file meshGFaceBDS.cpp.

Referenced by delaunayizeBDS().

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

◆ getDegeneracy()

static void getDegeneracy ( BDS_Mesh m,
std::vector< BDS_Point * > &  deg 
)
static

Definition at line 361 of file meshGFaceBDS.cpp.

Referenced by refineMeshBDS().

Here is the caller graph for this function:

◆ getDegeneratedVertices()

static void getDegeneratedVertices ( BDS_Mesh m,
std::map< BDS_Point *, MVertex *, PointLessThan > *  recoverMap,
std::set< MVertex *, MVertexPtrLessThan > &  degenerated,
std::vector< BDS_Edge * > &  degenerated_edges 
)
static

Definition at line 26 of file meshGFaceBDS.cpp.

Referenced by modifyInitialMeshToRemoveDegeneracies().

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

◆ getMaxLcWhenCollapsingEdge()

double getMaxLcWhenCollapsingEdge ( GFace gf,
BDS_Mesh m,
BDS_Edge e,
BDS_Point p 
)

Definition at line 503 of file meshGFaceBDS.cpp.

Referenced by collapseEdgePass().

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

◆ middlePoint()

static bool middlePoint ( GFace gf,
BDS_Edge e,
double &  u,
double &  v 
)
static

Definition at line 276 of file meshGFaceBDS.cpp.

Referenced by splitEdgePass().

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

◆ modifyInitialMeshToRemoveDegeneracies()

void modifyInitialMeshToRemoveDegeneracies ( GFace gf,
BDS_Mesh m,
std::map< BDS_Point *, MVertex *, PointLessThan > *  recoverMap 
)

Definition at line 690 of file meshGFaceBDS.cpp.

Referenced by meshGeneratorPeriodic().

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

◆ neighboringModified()

static bool neighboringModified ( BDS_Point p)
static

Definition at line 166 of file meshGFaceBDS.cpp.

Referenced by collapseEdgePass(), smoothVertexPass(), splitEdgePass(), and swapEdgePass().

Here is the caller graph for this function:

◆ NewGetLc() [1/2]

static double NewGetLc ( BDS_Edge *const  edge,
GFace *const  face 
)
static

Definition at line 117 of file meshGFaceBDS.cpp.

Here is the call graph for this function:

◆ NewGetLc() [2/2]

static double NewGetLc ( BDS_Point point,
GFace gf 
)
static

Definition at line 86 of file meshGFaceBDS.cpp.

Referenced by collapseEdgePass(), correctLC_(), getMaxLcWhenCollapsingEdge(), refineMeshBDS(), and splitEdgePass().

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

◆ refineMeshBDS()

void refineMeshBDS ( GFace gf,
BDS_Mesh m,
const int  NIT,
const bool  computeNodalSizeField,
std::map< MVertex *, BDS_Point * > *  recoverMapInv,
std::map< BDS_Point *, MVertex *, PointLessThan > *  recoverMap,
std::vector< SPoint2 > *  true_boundary 
)

Definition at line 726 of file meshGFaceBDS.cpp.

Referenced by meshGenerator(), and meshGeneratorPeriodic().

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

◆ setDegeneracy()

static void setDegeneracy ( std::vector< BDS_Point * > &  deg,
short  d 
)
static

Definition at line 371 of file meshGFaceBDS.cpp.

Referenced by refineMeshBDS().

Here is the caller graph for this function:

◆ smoothVertexPass()

void smoothVertexPass ( GFace gf,
BDS_Mesh m,
int &  nb_smooth,
bool  q,
double  threshold,
double &  t 
)

Definition at line 587 of file meshGFaceBDS.cpp.

Referenced by refineMeshBDS().

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

◆ splitAllEdgesConnectedToSingularity()

static void splitAllEdgesConnectedToSingularity ( GFace gf,
BDS_Mesh m 
)
static

Definition at line 376 of file meshGFaceBDS.cpp.

Referenced by refineMeshBDS().

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

◆ splitEdgePass()

static void splitEdgePass ( GFace gf,
BDS_Mesh m,
double  MAXE_,
int &  nb_split,
std::vector< SPoint2 > *  true_boundary,
double &  t 
)
static

Definition at line 405 of file meshGFaceBDS.cpp.

Referenced by refineMeshBDS().

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

◆ swapEdgePass()

static void swapEdgePass ( GFace gf,
BDS_Mesh m,
int &  nb_swap,
double &  t,
int  FINALIZE = 0,
double  orientation = 1.0 
)
static

Definition at line 179 of file meshGFaceBDS.cpp.

Referenced by refineMeshBDS().

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