gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
#include <stack>
#include "GmshConfig.h"
#include "meshGFaceOptimize.h"
#include "qualityMeasures.h"
#include "GFace.h"
#include "GEdge.h"
#include "GVertex.h"
#include "GModel.h"
#include "MVertex.h"
#include "MTriangle.h"
#include "MQuadrangle.h"
#include "MLine.h"
#include "BackgroundMeshTools.h"
#include "Numeric.h"
#include "GmshMessage.h"
#include "Context.h"
#include "OS.h"
#include "SVector3.h"
#include "SPoint3.h"
#include "meshRelocateVertex.h"
#include "Field.h"
Go to the source code of this file.
Classes | |
struct | equivalentTriangle |
struct | p1p2p3 |
Functions | |
static void | setLcsInit (MTriangle *t, std::map< MVertex *, double > &vSizes) |
static void | setLcs (MTriangle *t, std::map< MVertex *, double > &vSizes, bidimMeshData &data) |
bool | buildMeshGenerationDataStructures (GFace *gf, std::set< MTri3 *, compareTri3Ptr > &AllTris, bidimMeshData &data) |
void | computeEquivalences (GFace *gf, bidimMeshData &data) |
bool | computeEquivalentTriangles (GFace *gf, std::map< MVertex *, MVertex * > *equivalence) |
void | splitEquivalentTriangles (GFace *gf, bidimMeshData &data) |
void | transferDataStructure (GFace *gf, std::set< MTri3 *, compareTri3Ptr > &AllTris, bidimMeshData &data) |
template<class T > | |
void | buildEdgeToElement (std::vector< T * > &elements, e2t_cont &adj) |
void | buildEdgeToElement (GFace *gf, e2t_cont &adj) |
void | buildEdgeToTriangle (std::vector< MTriangle * > &tris, e2t_cont &adj) |
void | buildEdgeToElements (std::vector< MElement * > &tris, e2t_cont &adj) |
void | buildListOfEdgeAngle (e2t_cont adj, std::vector< edge_angle > &edges_detected, std::vector< edge_angle > &edges_lonly) |
static void | parametricCoordinates (MElement *t, GFace *gf, double u[4], double v[4], MVertex *close=nullptr) |
double | surfaceFaceUV (MElement *t, GFace *gf, bool maximal=true) |
static int | _removeTwoQuadsNodes (GFace *gf) |
int | removeTwoQuadsNodes (GFace *gf) |
static bool | _tryToCollapseThatVertex2 (GFace *gf, std::vector< MElement * > &e1, std::vector< MElement * > &e2, MElement *q, MVertex *v1, MVertex *v2) |
static bool | _tryToCollapseThatVertex (GFace *gf, std::vector< MElement * > &e1, std::vector< MElement * > &e2, MElement *q, MVertex *v1, MVertex *v2) |
static bool | _isItAGoodIdeaToMoveThatVertex (GFace *gf, const std::vector< MElement * > &e1, MVertex *v1, const SPoint2 &before, const SPoint2 &after) |
static bool | has_none_of (std::set< MVertex * > const &touched, MVertex *const v1, MVertex *const v2, MVertex *const v3, MVertex *const v4) |
static bool | are_all_on_surface (MVertex *const v1, MVertex *const v2, MVertex *const v3, MVertex *const v4, GFace *gf) |
template<class InputIterator > | |
bool | are_size_three (InputIterator iterator1, InputIterator iterator2) |
static int | _removeDiamonds (GFace *const gf) |
int | removeDiamonds (GFace *gf) |
static void | _relocate (GFace *gf, MVertex *ver, const std::vector< MElement * > <) |
void | getAllBoundaryLayerVertices (GFace *gf, std::set< MVertex * > &vs) |
void | laplaceSmoothing (GFace *gf, int niter, bool infinity_norm) |
static void | _recombineIntoQuads (GFace *gf, bool blossom, bool cubicGraph=1) |
static double | printStats (GFace *gf, const char *message) |
static bool | _isModelOkForTopologicalOpti (GModel *m) |
void | recombineIntoQuads (GFace *gf, bool blossom, int topologicalOptiPasses, bool nodeRepositioning, double minqual) |
void | quadsToTriangles (GFace *gf, double minqual) |
void | splitElementsInBoundaryLayerIfNeeded (GFace *gf) |
|
static |
Definition at line 736 of file meshGFaceOptimize.cpp.
Referenced by _relocate().
|
static |
Definition at line 1295 of file meshGFaceOptimize.cpp.
Referenced by recombineIntoQuads().
|
static |
Definition at line 1009 of file meshGFaceOptimize.cpp.
Referenced by recombineIntoQuads().
Definition at line 900 of file meshGFaceOptimize.cpp.
Referenced by laplaceSmoothing().
|
static |
Definition at line 795 of file meshGFaceOptimize.cpp.
Referenced by removeDiamonds().
|
static |
Definition at line 513 of file meshGFaceOptimize.cpp.
Referenced by removeTwoQuadsNodes().
|
static |
Definition at line 662 of file meshGFaceOptimize.cpp.
Referenced by _removeDiamonds().
|
static |
Definition at line 601 of file meshGFaceOptimize.cpp.
Referenced by _tryToCollapseThatVertex().
|
static |
Definition at line 782 of file meshGFaceOptimize.cpp.
Referenced by _removeDiamonds().
bool are_size_three | ( | InputIterator | iterator1, |
InputIterator | iterator2 | ||
) |
Definition at line 790 of file meshGFaceOptimize.cpp.
Referenced by _removeDiamonds().
void buildEdgeToElement | ( | std::vector< T * > & | elements, |
e2t_cont & | adj | ||
) |
Definition at line 417 of file meshGFaceOptimize.cpp.
Referenced by _recombineIntoQuads(), buildEdgeToElement(), buildEdgeToElements(), and buildEdgeToTriangle().
Definition at line 449 of file meshGFaceOptimize.cpp.
Referenced by classifyFaces().
void buildListOfEdgeAngle | ( | e2t_cont | adj, |
std::vector< edge_angle > & | edges_detected, | ||
std::vector< edge_angle > & | edges_lonly | ||
) |
Definition at line 455 of file meshGFaceOptimize.cpp.
Referenced by classifyFaces().
bool buildMeshGenerationDataStructures | ( | GFace * | gf, |
std::set< MTri3 *, compareTri3Ptr > & | AllTris, | ||
bidimMeshData & | data | ||
) |
Definition at line 174 of file meshGFaceOptimize.cpp.
Referenced by bowyerWatson(), bowyerWatsonFrontal(), bowyerWatsonFrontalLayers(), bowyerWatsonParallelograms(), and bowyerWatsonParallelogramsConstrained().
void computeEquivalences | ( | GFace * | gf, |
bidimMeshData & | data | ||
) |
Definition at line 271 of file meshGFaceOptimize.cpp.
Referenced by transferDataStructure().
Definition at line 317 of file meshGFaceOptimize.cpp.
Referenced by splitEquivalentTriangles().
Definition at line 967 of file meshGFaceOptimize.cpp.
Referenced by laplaceSmoothing(), and RelocateVertices().
|
static |
Definition at line 774 of file meshGFaceOptimize.cpp.
Referenced by _removeDiamonds().
void laplaceSmoothing | ( | GFace * | gf, |
int | niter, | ||
bool | infinity_norm | ||
) |
Definition at line 978 of file meshGFaceOptimize.cpp.
Referenced by GModel::adaptMesh(), meshGenerator(), meshGeneratorPeriodic(), and OptimizeMesh().
|
static |
Definition at line 472 of file meshGFaceOptimize.cpp.
Referenced by bowyerWatson(), bowyerWatsonFrontal(), bowyerWatsonFrontalLayers(), bowyerWatsonParallelograms(), bowyerWatsonParallelogramsConstrained(), buildBackgroundMesh(), meshGeneratorPeriodic(), and surfaceFaceUV().
|
static |
Definition at line 1269 of file meshGFaceOptimize.cpp.
Referenced by recombineIntoQuads().
void quadsToTriangles | ( | GFace * | gf, |
double | minqual | ||
) |
Definition at line 1374 of file meshGFaceOptimize.cpp.
Referenced by buildBackgroundMesh(), Mesh3D(), recombineIntoQuads(), and splitElementsInBoundaryLayerIfNeeded().
void recombineIntoQuads | ( | GFace * | gf, |
bool | blossom, | ||
int | topologicalOptiPasses, | ||
bool | nodeRepositioning, | ||
double | minqual | ||
) |
Definition at line 1311 of file meshGFaceOptimize.cpp.
Referenced by quadMeshRemoveHalfOfOneDMesh::finish(), meshGenerator(), meshGeneratorPeriodic(), and RecombineMesh().
int removeDiamonds | ( | GFace * | gf | ) |
Definition at line 884 of file meshGFaceOptimize.cpp.
Referenced by recombineIntoQuads().
int removeTwoQuadsNodes | ( | GFace * | gf | ) |
Definition at line 589 of file meshGFaceOptimize.cpp.
Referenced by recombineIntoQuads().
|
static |
Definition at line 153 of file meshGFaceOptimize.cpp.
Referenced by buildMeshGenerationDataStructures().
Definition at line 141 of file meshGFaceOptimize.cpp.
Referenced by buildMeshGenerationDataStructures().
void splitElementsInBoundaryLayerIfNeeded | ( | GFace * | gf | ) |
Definition at line 1457 of file meshGFaceOptimize.cpp.
Referenced by bowyerWatson(), bowyerWatsonFrontal(), bowyerWatsonFrontalLayers(), bowyerWatsonParallelograms(), bowyerWatsonParallelogramsConstrained(), and meshGenerator().
void splitEquivalentTriangles | ( | GFace * | gf, |
bidimMeshData & | data | ||
) |
Definition at line 343 of file meshGFaceOptimize.cpp.
Referenced by transferDataStructure().
Definition at line 487 of file meshGFaceOptimize.cpp.
Referenced by _isItAGoodIdeaToMoveThatVertex().
void transferDataStructure | ( | GFace * | gf, |
std::set< MTri3 *, compareTri3Ptr > & | AllTris, | ||
bidimMeshData & | data | ||
) |
Definition at line 348 of file meshGFaceOptimize.cpp.
Referenced by bowyerWatson(), bowyerWatsonFrontal(), bowyerWatsonFrontalLayers(), bowyerWatsonParallelograms(), and bowyerWatsonParallelogramsConstrained().