gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
#include <set>
#include <map>
#include <algorithm>
#include <queue>
#include "GmshMessage.h"
#include "robustPredicates.h"
#include "OS.h"
#include "meshGRegion.h"
#include "meshGRegionLocalMeshMod.h"
#include "meshGRegionDelaunayInsertion.h"
#include "GModel.h"
#include "GRegion.h"
#include "MTriangle.h"
#include "Numeric.h"
#include "Context.h"
#include "delaunay3d.h"
#include "MEdge.h"
#include "MLine.h"
#include "ExtrudeParams.h"
Go to the source code of this file.
Classes | |
struct | edgeContainerB |
struct | vertex_comparator |
struct | faceXtet |
Functions | |
static void | createAllEmbeddedEdges (GRegion *gr, std::set< MEdge, MEdgeLessThan > &allEmbeddedEdges) |
static void | createAllEmbeddedEdges (GRegion *gr, edgeContainerB &embedded) |
static void | createAllEmbeddedFaces (GRegion *gr, std::set< MFace, MFaceLessThan > &allEmbeddedFaces) |
template<class ITER > | |
void | connectTets_vector2_templ (std::size_t _size, ITER beg, ITER end, std::vector< faceXtet > &conn) |
template<class ITER > | |
void | connectTets (ITER beg, ITER end, const std::set< MFace, MFaceLessThan > *allEmbeddedFaces=nullptr) |
void | connectTets (std::list< MTet4 * > &l, const std::set< MFace, MFaceLessThan > *embeddedFaces) |
void | connectTets (std::vector< MTet4 * > &l, const std::set< MFace, MFaceLessThan > *embeddedFaces) |
void | connectTets_vector2 (std::list< MTet4 * > &l, std::vector< faceXtet > &conn) |
void | connectTets_vector2 (std::vector< MTet4 * > &l, std::vector< faceXtet > &conn) |
static void | removeFromCavity (std::vector< faceXtet > &shell, std::vector< MTet4 * > &cavity, faceXtet &toRemove) |
static void | extendCavity (std::vector< faceXtet > &shell, std::vector< MTet4 * > &cavity, faceXtet &toExtend) |
static bool | verifyShell (MVertex *v, MTet4 *t, std::vector< faceXtet > &shell) |
int | makeCavityStarShaped (std::vector< faceXtet > &shell, std::vector< MTet4 * > &cavity, MVertex *v) |
void | findCavity (std::vector< faceXtet > &shell, std::vector< MTet4 * > &cavity, MVertex *v, MTet4 *t) |
bool | insertVertexB (std::vector< faceXtet > &shell, std::vector< MTet4 * > &cavity, MVertex *v, double lc1, double lc2, std::vector< double > &vSizes, std::vector< double > &vSizesBGM, MTet4 *t, MTet4Factory &myFactory, std::set< MTet4 *, compareTet4Ptr > &allTets, const std::set< MFace, MFaceLessThan > &allEmbeddedFaces) |
static void | setLcs (MTriangle *t, std::map< MVertex *, double, MVertexPtrLessThan > &vSizes, std::set< MVertex *, MVertexPtrLessThan > &bndVertices) |
static void | setLcs (MTetrahedron *t, std::map< MVertex *, double, MVertexPtrLessThan > &vSizes, std::set< MVertex *, MVertexPtrLessThan > &bndVertices) |
static void | completeTheSetOfFaces (GModel *model, std::set< GFace * > &faces_bound) |
GRegion * | getRegionFromBoundingFaces (GModel *model, std::set< GFace * > &faces_bound) |
void | non_recursive_classify (MTet4 *t, std::list< MTet4 * > &theRegion, std::set< GFace * > &faces_bound, GRegion *bidon, GModel *model, const fs_cont &search) |
void | optimizeMesh (GRegion *gr, const qmTetrahedron::Measures &qm) |
double | tetcircumcenter (double a[3], double b[3], double c[3], double d[3], double circumcenter[3], double *xi, double *eta, double *zeta) |
static void | memoryCleanup (MTet4Factory &myFactory, std::set< MTet4 *, compareTet4Ptr > &allTets) |
static int | isCavityCompatibleWithEmbeddedEdges (std::vector< MTet4 * > &cavity, std::vector< faceXtet > &shell, edgeContainerB &allEmbeddedEdges) |
static int | isCavityCompatibleWithEmbeddedFace (const std::vector< MTet4 * > &cavity, const std::vector< faceXtet > &shell, const std::set< MFace, MFaceLessThan > &allEmbeddedFaces) |
static void | _deleteUnusedVertices (GRegion *gr) |
void | insertVerticesInRegion (GRegion *gr, int maxIter, double worstTetRadiusTarget, bool _classify, splitQuadRecovery *sqr) |
void | delaunayMeshIn3D (std::vector< MVertex * > &v, std::vector< MTetrahedron * > &result, bool removeBox) |
Variables | |
static int | faces [4][3] = {{0, 1, 2}, {0, 2, 3}, {0, 3, 1}, {1, 3, 2}} |
|
static |
Definition at line 1198 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion().
Definition at line 604 of file meshGRegionDelaunayInsertion.cpp.
Referenced by getRegionFromBoundingFaces().
void connectTets | ( | ITER | beg, |
ITER | end, | ||
const std::set< MFace, MFaceLessThan > * | allEmbeddedFaces = nullptr |
||
) |
Definition at line 250 of file meshGRegionDelaunayInsertion.cpp.
Referenced by collapseVertex(), connectTets(), edgeSplit(), edgeSwap(), faceSwap(), insertVertexB(), insertVerticesInRegion(), adaptMeshGRegion::operator()(), and optimizeMesh().
void connectTets | ( | std::list< MTet4 * > & | l, |
const std::set< MFace, MFaceLessThan > * | embeddedFaces | ||
) |
Definition at line 277 of file meshGRegionDelaunayInsertion.cpp.
void connectTets | ( | std::vector< MTet4 * > & | l, |
const std::set< MFace, MFaceLessThan > * | embeddedFaces | ||
) |
Definition at line 283 of file meshGRegionDelaunayInsertion.cpp.
Definition at line 289 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVertexB(), and optimizeMesh().
Definition at line 294 of file meshGRegionDelaunayInsertion.cpp.
void connectTets_vector2_templ | ( | std::size_t | _size, |
ITER | beg, | ||
ITER | end, | ||
std::vector< faceXtet > & | conn | ||
) |
Definition at line 223 of file meshGRegionDelaunayInsertion.cpp.
Referenced by connectTets_vector2().
|
static |
Definition at line 127 of file meshGRegionDelaunayInsertion.cpp.
|
static |
Definition at line 115 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion(), adaptMeshGRegion::operator()(), and optimizeMesh().
|
static |
Definition at line 139 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion(), adaptMeshGRegion::operator()(), and optimizeMesh().
void delaunayMeshIn3D | ( | std::vector< MVertex * > & | v, |
std::vector< MTetrahedron * > & | result, | ||
bool | removeBox | ||
) |
Definition at line 1559 of file meshGRegionDelaunayInsertion.cpp.
|
static |
Definition at line 328 of file meshGRegionDelaunayInsertion.cpp.
Referenced by makeCavityStarShaped().
void findCavity | ( | std::vector< faceXtet > & | shell, |
std::vector< MTet4 * > & | cavity, | ||
MVertex * | v, | ||
MTet4 * | t | ||
) |
Definition at line 403 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion().
Definition at line 620 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion().
bool insertVertexB | ( | std::vector< faceXtet > & | shell, |
std::vector< MTet4 * > & | cavity, | ||
MVertex * | v, | ||
double | lc1, | ||
double | lc2, | ||
std::vector< double > & | vSizes, | ||
std::vector< double > & | vSizesBGM, | ||
MTet4 * | t, | ||
MTet4Factory & | myFactory, | ||
std::set< MTet4 *, compareTet4Ptr > & | allTets, | ||
const std::set< MFace, MFaceLessThan > & | allEmbeddedFaces | ||
) |
Definition at line 459 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion().
void insertVerticesInRegion | ( | GRegion * | gr, |
int | maxIter, | ||
double | worstTetRadiusTarget, | ||
bool | _classify, | ||
splitQuadRecovery * | sqr | ||
) |
Definition at line 1217 of file meshGRegionDelaunayInsertion.cpp.
Referenced by MeshDelaunayVolume().
|
static |
Definition at line 1145 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion().
|
static |
Definition at line 1171 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion().
int makeCavityStarShaped | ( | std::vector< faceXtet > & | shell, |
std::vector< MTet4 * > & | cavity, | ||
MVertex * | v | ||
) |
Definition at line 367 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion().
|
static |
Definition at line 1129 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion().
void non_recursive_classify | ( | MTet4 * | t, |
std::list< MTet4 * > & | theRegion, | ||
std::set< GFace * > & | faces_bound, | ||
GRegion * | bidon, | ||
GModel * | model, | ||
const fs_cont & | search | ||
) |
Definition at line 648 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion().
void optimizeMesh | ( | GRegion * | gr, |
const qmTetrahedron::Measures & | qm | ||
) |
Definition at line 876 of file meshGRegionDelaunayInsertion.cpp.
Referenced by optimizeMeshGRegion::operator()().
|
static |
Definition at line 303 of file meshGRegionDelaunayInsertion.cpp.
Referenced by makeCavityStarShaped().
|
static |
Definition at line 573 of file meshGRegionDelaunayInsertion.cpp.
|
static |
Definition at line 519 of file meshGRegionDelaunayInsertion.cpp.
Referenced by insertVerticesInRegion().
double tetcircumcenter | ( | double | a[3], |
double | b[3], | ||
double | c[3], | ||
double | d[3], | ||
double | circumcenter[3], | ||
double * | xi, | ||
double * | eta, | ||
double * | zeta | ||
) |
Definition at line 1058 of file meshGRegionDelaunayInsertion.cpp.
Referenced by MTet4::circumcenter(), and insertVerticesInRegion().
Definition at line 347 of file meshGRegionDelaunayInsertion.cpp.
Referenced by makeCavityStarShaped().
|
static |
Definition at line 165 of file meshGRegionDelaunayInsertion.cpp.
Referenced by addElementsInArrays(), allFacesLinked(), blyr_manager::blyr_manager(), build_chords(), splitQuadRecovery::buildPyramids(), classifyFaces(), connectedSurfaces(), createTopologyFromMesh3D(), faceXtet::faceXtet(), FindConnectedRegions(), findTransfiniteCorners(), ClosureGen::generateFaceClosurePrismFull(), ClosureGen::generateFaceClosureTetFull(), GenerateMesh(), getAdditionalEntities(), getEntitiesToSave(), GOrientedTransfiniteFace::GOrientedTransfiniteFace(), haveTowGEdges(), insertAllVertices(), MakeMeshConformal(), makeSimplyConnected(), GeomMeshMatcher::matchRegions(), max_surf_curvature(), MeshDelaunayVolume(), meshGEdgeProcessing(), meshGRegionNetgen(), MeshSetTransfiniteFacesAutomatic(), MeshTransfiniteVolume(), metric_based_on_surface_curvature(), non_recursive_classify(), EmbeddedCompatibilityTest::operator()(), readMSHEntities(), recurFindLinkedFaces(), drawContext::select(), skipEdge(), SubdivideExtrudedMesh(), faceXtet::visible(), writeMSH4Elements(), writeMSH4Entities(), writeMSH4Nodes(), writeMSHEntities(), writeSTLfaces(), and writeX3dFaces().