gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
meshQuadQuasiStructured.h
Go to the documentation of this file.
1 // Gmsh - Copyright (C) 1997-2022 C. Geuzaine, J.-F. Remacle
2 //
3 // See the LICENSE.txt file in the Gmsh root directory for license information.
4 // Please report all issues on https://gitlab.onelab.info/gmsh/gmsh/issues.
5 
6 #ifndef MESH_QUAD_QUASI_STRUCTURED_H
7 #define MESH_QUAD_QUASI_STRUCTURED_H
8 
9 #include <vector>
10 
11 class GModel;
12 class GFace;
13 class GEdge;
14 
15 namespace CppUtils {
16  template <typename T> class RestoreValueAtEndOfLife;
17 }
18 
28 public:
31 
32 protected:
33  void setQuadqsOptions();
34  void restoreInitialOption();
35 
36 protected:
37  std::vector<CppUtils::RestoreValueAtEndOfLife<bool>* > backups_bool;
38  std::vector<CppUtils::RestoreValueAtEndOfLife<char>* > backups_char;
39  std::vector<CppUtils::RestoreValueAtEndOfLife<int>* > backups_int;
40  std::vector<CppUtils::RestoreValueAtEndOfLife<double>* > backups_double;
41 };
42 
57  bool overwriteGModelMesh = false,
58  bool deleteGModelMeshAfter = false,
59  bool overwriteField = false,
60  int N = 4);
61 
69 
82 
93 
108 
123  double minimumQualityRequired = 0.5);
124 
135 
147 
157 
167 
176 int quadqsCleanup(GModel *gm);
177 
178 #endif
CppUtils
Definition: meshQuadQuasiStructured.h:15
quadqsCleanup
int quadqsCleanup(GModel *gm)
Delete background meshes and fields that have been used by quadqs meshing/remeshing.
Definition: meshQuadQuasiStructured.cpp:3507
GFace
Definition: GFace.h:33
BuildBackgroundMeshAndGuidingField
int BuildBackgroundMeshAndGuidingField(GModel *gm, bool overwriteGModelMesh=false, bool deleteGModelMeshAfter=false, bool overwriteField=false, int N=4)
Definition: meshQuadQuasiStructured.cpp:3251
QuadqsContextUpdater::backups_double
std::vector< CppUtils::RestoreValueAtEndOfLife< double > * > backups_double
Definition: meshQuadQuasiStructured.h:40
QuadqsContextUpdater
The QuadQuasiStructured meshing mode requires control over various meshing parameters which are store...
Definition: meshQuadQuasiStructured.h:27
CppUtils::RestoreValueAtEndOfLife
Definition: meshQuadQuasiStructured.h:16
optimizeTopologyWithCavityRemeshing
int optimizeTopologyWithCavityRemeshing(GModel *gm)
Look for patches of quads with >=3 irregular vertices which can be remeshed with more regular quad me...
Definition: meshQuadQuasiStructured.cpp:3271
QuadqsContextUpdater::~QuadqsContextUpdater
~QuadqsContextUpdater()
Definition: meshQuadQuasiStructured.cpp:3470
QuadqsContextUpdater::backups_char
std::vector< CppUtils::RestoreValueAtEndOfLife< char > * > backups_char
Definition: meshQuadQuasiStructured.h:38
QuadqsContextUpdater::backups_int
std::vector< CppUtils::RestoreValueAtEndOfLife< int > * > backups_int
Definition: meshQuadQuasiStructured.h:39
GModel
Definition: GModel.h:44
optimizeQuadMeshBoundaries
int optimizeQuadMeshBoundaries(GModel *gm)
Add one extruded quad layer on curves where the boundary quad valences are not ideal.
Definition: meshQuadQuasiStructured.cpp:3296
QuadqsContextUpdater::setQuadqsOptions
void setQuadqsOptions()
Definition: meshQuadQuasiStructured.cpp:3472
backgroundMeshAndGuidingFieldExists
bool backgroundMeshAndGuidingFieldExists(GModel *gm)
To check if a compatible background mesh and guiding field already exists.
Definition: meshQuadQuasiStructured.cpp:3259
QuadqsContextUpdater::backups_bool
std::vector< CppUtils::RestoreValueAtEndOfLife< bool > * > backups_bool
Definition: meshQuadQuasiStructured.h:37
RefineMeshWithBackgroundMeshProjection
int RefineMeshWithBackgroundMeshProjection(GModel *gm)
Midpoint subdivision of the surface mesh with projections on the CAD surfaces, using the background m...
Definition: meshQuadQuasiStructured.cpp:3284
optimize1DMeshAtAcuteCorners
int optimize1DMeshAtAcuteCorners(GModel *gm)
Identify face acute corners and set the first curve mesh vertices at same length from corner.
Definition: meshQuadQuasiStructured.cpp:3562
QuadqsContextUpdater::restoreInitialOption
void restoreInitialOption()
Definition: meshQuadQuasiStructured.cpp:3492
QuadqsContextUpdater::QuadqsContextUpdater
QuadqsContextUpdater()
Definition: meshQuadQuasiStructured.cpp:3392
GEdge
Definition: GEdge.h:26
transferSeamGEdgesVerticesToGFace
int transferSeamGEdgesVerticesToGFace(GModel *gm)
Mesh vertices on seam curves (and isolated corners) are reparametrized on the associated GFace and tr...
Definition: meshQuadQuasiStructured.cpp:3306
optimizeTopologyWithDiskQuadrangulationRemeshing
int optimizeTopologyWithDiskQuadrangulationRemeshing(GModel *gm)
Look for non-ideal vertex valences in quad mesh and find a better local remeshing by looking into all...
Definition: meshQuadQuasiStructured.cpp:3265
quadMeshingOfSimpleFacesWithPatterns
int quadMeshingOfSimpleFacesWithPatterns(GModel *gm, double minimumQualityRequired=0.5)
Look for simple CAD faces (topological disk, a few corners) which can be remeshed with simple quad pa...
Definition: meshQuadQuasiStructured.cpp:3277
replaceBadQuadDominantMeshes
int replaceBadQuadDominantMeshes(GModel *gm)
The initial unstructured quad-tri mesh may contain very bad configurations (e.g. valence 50+) due to ...
Definition: meshQuadQuasiStructured.cpp:3290