gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
meshGFace.cpp File Reference
#include "meshGFace.h"
#include "BDS.h"
#include "BackgroundMesh.h"
#include "Context.h"
#include "DivideAndConquer.h"
#include "GEdge.h"
#include "GFace.h"
#include "GModel.h"
#include "GPoint.h"
#include "GVertex.h"
#include "GmshMessage.h"
#include "HighOrder.h"
#include "MElementOctree.h"
#include "MLine.h"
#include "MQuadrangle.h"
#include "MTriangle.h"
#include "MVertex.h"
#include "Numeric.h"
#include "OS.h"
#include "boundaryLayersData.h"
#include "discreteEdge.h"
#include "discreteFace.h"
#include "filterElements.h"
#include "meshGEdge.h"
#include "meshGFaceBDS.h"
#include "meshGFaceBamg.h"
#include "meshGFaceBipartiteLabelling.h"
#include "meshGFaceDelaunayInsertion.h"
#include "meshGFaceOptimize.h"
#include "meshTriangulation.h"
#include "qualityMeasures.h"
#include "robustPredicates.h"
#include <limits>
#include <map>
#include <sstream>
#include <stdlib.h>
Include dependency graph for meshGFace.cpp:

Go to the source code of this file.

Classes

class  quadMeshRemoveHalfOfOneDMesh
 

Functions

bool pointInsideParametricDomain (std::vector< SPoint2 > &bnd, SPoint2 &p, SPoint2 &out, int &N)
 
static void trueBoundary (GFace *gf, std::vector< SPoint2 > &bnd, int debug)
 
static void computeElementShapes (GFace *gf, double &worst, double &avg, double &best, int &nT, int &greaterThan)
 
static void copyMesh (GFace *source, GFace *target)
 
static void remeshUnrecoveredEdges (std::multimap< MVertex *, BDS_Point * > &recoverMultiMapInv, std::set< EdgeToRecover > &edgesNotRecovered, bool all)
 
static void remeshUnrecoveredEdges (std::map< MVertex *, BDS_Point * > &recoverMapInv, std::set< EdgeToRecover > &edgesNotRecovered)
 
static bool algoDelaunay2D (GFace *gf)
 
static bool recoverEdge (BDS_Mesh *m, GFace *gf, GEdge *ge, std::map< MVertex *, BDS_Point * > &recoverMapInv, std::set< EdgeToRecover > *e2r, std::set< EdgeToRecover > *notRecovered, int pass)
 
static void addOrRemove (MVertex *v1, MVertex *v2, std::set< MEdge, MEdgeLessThan > &bedges, std::set< MEdge, MEdgeLessThan > &removed)
 
static bool meshGenerator (GFace *, int, bool, int, bool, std::vector< GEdge * > *)
 
static void modifyInitialMeshForBoundaryLayers (GFace *gf, std::vector< MQuadrangle * > &blQuads, std::vector< MTriangle * > &blTris, std::set< MVertex * > &verts, bool debug)
 
static bool improved_translate (GFace *gf, MVertex *vertex, SVector3 &v1, SVector3 &v2)
 
static void directions_storage (GFace *gf)
 
static void BDS2GMSH (BDS_Mesh *m, GFace *gf, std::map< BDS_Point *, MVertex *, PointLessThan > &recoverMap)
 
static void deleteUnusedVertices (GFace *gf)
 
static bool buildConsecutiveListOfVertices (GFace *gf, GEdgeLoop &gel, std::vector< BDS_Point * > &result, SBoundingBox3d &bbox, BDS_Mesh *m, std::map< BDS_Point *, MVertex *, PointLessThan > &recoverMap, int &count, int countTot, double tol, bool seam_the_first=false)
 
static GEdgegetGEdge (GFace *gf, MVertex *v1, MVertex *v2)
 
static bool meshGeneratorPeriodic (GFace *gf, int RECUR_ITER, bool repairSelfIntersecting1dMesh, bool debug=true)
 
static double TRIANGLE_VALIDITY (GFace *gf, MTriangle *t)
 
static bool isMeshValid (GFace *gf)
 
static bool getGFaceNormalFromVert (GFace *gf, MElement *el, SVector3 &nf)
 
static bool getGFaceNormalFromBary (GFace *gf, MElement *el, SVector3 &nf)
 
static void getGFaceOrientation (GFace *gf, BoundaryLayerColumns *blc, bool existBL, bool fromVert, int &orientNonBL, int &orientBL)
 

Variables

int debugSurface = -1
 

Function Documentation

◆ addOrRemove()

static void addOrRemove ( MVertex v1,
MVertex v2,
std::set< MEdge, MEdgeLessThan > &  bedges,
std::set< MEdge, MEdgeLessThan > &  removed 
)
static

Definition at line 855 of file meshGFace.cpp.

Referenced by modifyInitialMeshForBoundaryLayers().

Here is the caller graph for this function:

◆ algoDelaunay2D()

static bool algoDelaunay2D ( GFace gf)
static

Definition at line 762 of file meshGFace.cpp.

Referenced by meshGenerator(), meshGeneratorPeriodic(), and meshGFace::operator()().

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

◆ BDS2GMSH()

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

Definition at line 1150 of file meshGFace.cpp.

Referenced by meshGenerator(), and meshGeneratorPeriodic().

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

◆ buildConsecutiveListOfVertices()

static bool buildConsecutiveListOfVertices ( GFace gf,
GEdgeLoop gel,
std::vector< BDS_Point * > &  result,
SBoundingBox3d bbox,
BDS_Mesh m,
std::map< BDS_Point *, MVertex *, PointLessThan > &  recoverMap,
int &  count,
int  countTot,
double  tol,
bool  seam_the_first = false 
)
static

Definition at line 1940 of file meshGFace.cpp.

Referenced by meshGeneratorPeriodic().

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

◆ computeElementShapes()

static void computeElementShapes ( GFace gf,
double &  worst,
double &  avg,
double &  best,
int &  nT,
int &  greaterThan 
)
static

Definition at line 114 of file meshGFace.cpp.

Referenced by quadMeshRemoveHalfOfOneDMesh::finish(), meshGenerator(), and meshGeneratorPeriodic().

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

◆ copyMesh()

static void copyMesh ( GFace source,
GFace target 
)
static

Definition at line 351 of file meshGFace.cpp.

Referenced by meshGFace::operator()().

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

◆ deleteUnusedVertices()

static void deleteUnusedVertices ( GFace gf)
static

Definition at line 1190 of file meshGFace.cpp.

Referenced by meshGenerator(), and meshGeneratorPeriodic().

Here is the caller graph for this function:

◆ directions_storage()

static void directions_storage ( GFace gf)
static

Definition at line 1111 of file meshGFace.cpp.

Referenced by meshGenerator().

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

◆ getGEdge()

static GEdge* getGEdge ( GFace gf,
MVertex v1,
MVertex v2 
)
static

Definition at line 2248 of file meshGFace.cpp.

Referenced by meshGeneratorPeriodic().

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

◆ getGFaceNormalFromBary()

static bool getGFaceNormalFromBary ( GFace gf,
MElement el,
SVector3 nf 
)
static

Definition at line 3308 of file meshGFace.cpp.

Referenced by getGFaceOrientation().

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

◆ getGFaceNormalFromVert()

static bool getGFaceNormalFromVert ( GFace gf,
MElement el,
SVector3 nf 
)
static

Definition at line 3291 of file meshGFace.cpp.

Referenced by getGFaceOrientation().

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

◆ getGFaceOrientation()

static void getGFaceOrientation ( GFace gf,
BoundaryLayerColumns blc,
bool  existBL,
bool  fromVert,
int &  orientNonBL,
int &  orientBL 
)
static

Definition at line 3330 of file meshGFace.cpp.

Referenced by orientMeshGFace::operator()().

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

◆ improved_translate()

static bool improved_translate ( GFace gf,
MVertex vertex,
SVector3 v1,
SVector3 v2 
)
static

Definition at line 1078 of file meshGFace.cpp.

Referenced by directions_storage().

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

◆ isMeshValid()

static bool isMeshValid ( GFace gf)
static

Definition at line 3134 of file meshGFace.cpp.

Referenced by meshGFace::operator()().

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

◆ meshGenerator()

static bool meshGenerator ( GFace gf,
int  RECUR_ITER,
bool  repairSelfIntersecting1dMesh,
int  onlyInitialMesh,
bool  debug,
std::vector< GEdge * > *  replacementEdges 
)
static

Definition at line 1220 of file meshGFace.cpp.

Referenced by modifyInitialMeshForBoundaryLayers(), and meshGFace::operator()().

Here is the caller graph for this function:

◆ meshGeneratorPeriodic()

static bool meshGeneratorPeriodic ( GFace gf,
int  RECUR_ITER,
bool  repairSelfIntersecting1dMesh,
bool  debug = true 
)
static

Definition at line 2266 of file meshGFace.cpp.

Referenced by meshGFace::operator()().

Here is the caller graph for this function:

◆ modifyInitialMeshForBoundaryLayers()

static void modifyInitialMeshForBoundaryLayers ( GFace gf,
std::vector< MQuadrangle * > &  blQuads,
std::vector< MTriangle * > &  blTris,
std::set< MVertex * > &  verts,
bool  debug 
)
static

Definition at line 873 of file meshGFace.cpp.

Referenced by meshGenerator(), and meshGeneratorPeriodic().

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

◆ pointInsideParametricDomain()

bool pointInsideParametricDomain ( std::vector< SPoint2 > &  bnd,
SPoint2 p,
SPoint2 out,
int &  N 
)

Definition at line 43 of file meshGFace.cpp.

Referenced by bowyerWatsonFrontal(), and splitEdgePass().

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

◆ recoverEdge()

static bool recoverEdge ( BDS_Mesh m,
GFace gf,
GEdge ge,
std::map< MVertex *, BDS_Point * > &  recoverMapInv,
std::set< EdgeToRecover > *  e2r,
std::set< EdgeToRecover > *  notRecovered,
int  pass 
)
static

Definition at line 779 of file meshGFace.cpp.

Referenced by meshGenerator().

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

◆ remeshUnrecoveredEdges() [1/2]

static void remeshUnrecoveredEdges ( std::map< MVertex *, BDS_Point * > &  recoverMapInv,
std::set< EdgeToRecover > &  edgesNotRecovered 
)
static

Definition at line 656 of file meshGFace.cpp.

Here is the call graph for this function:

◆ remeshUnrecoveredEdges() [2/2]

static void remeshUnrecoveredEdges ( std::multimap< MVertex *, BDS_Point * > &  recoverMultiMapInv,
std::set< EdgeToRecover > &  edgesNotRecovered,
bool  all 
)
static

Definition at line 534 of file meshGFace.cpp.

Referenced by meshGenerator(), and meshGeneratorPeriodic().

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

◆ TRIANGLE_VALIDITY()

static double TRIANGLE_VALIDITY ( GFace gf,
MTriangle t 
)
static

Definition at line 3115 of file meshGFace.cpp.

Referenced by isMeshValid().

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

◆ trueBoundary()

static void trueBoundary ( GFace gf,
std::vector< SPoint2 > &  bnd,
int  debug 
)
static

Definition at line 66 of file meshGFace.cpp.

Referenced by meshGeneratorPeriodic().

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

Variable Documentation

◆ debugSurface

int debugSurface = -1