gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
meshGRegionLocalMeshMod.cpp File Reference
#include "meshGRegionLocalMeshMod.h"
#include "GEntity.h"
#include "GRegion.h"
#include "GmshMessage.h"
#include "Numeric.h"
#include "MHexahedron.h"
#include "MPrism.h"
#include "MPyramid.h"
Include dependency graph for meshGRegionLocalMeshMod.cpp:

Go to the source code of this file.

Classes

struct  SwapPattern
 
struct  smoothVertexData3D
 

Functions

void computeNeighboringTetsOfACavity (const std::vector< MTet4 * > &cavity, std::vector< MTet4 * > &outside)
 
bool buildEdgeCavity (MTet4 *t, int iLocalEdge, MVertex **v1, MVertex **v2, std::vector< MTet4 * > &cavity, std::vector< MTet4 * > &outside, std::vector< MVertex * > &ring)
 
void BuildSwapPattern3 (SwapPattern *sc)
 
void BuildSwapPattern4 (SwapPattern *sc)
 
void BuildSwapPattern5 (SwapPattern *sc)
 
void BuildSwapPattern6 (SwapPattern *sc)
 
void BuildSwapPattern7 (SwapPattern *sc)
 
bool edgeSwap (std::vector< MTet4 * > &newTets, MTet4 *tet, int iLocalEdge, const qmTetrahedron::Measures &cr, const std::set< MFace, MFaceLessThan > &embeddedFaces)
 
bool edgeSplit (std::vector< MTet4 * > &newTets, MTet4 *tet, MVertex *newVertex, int iLocalEdge, const qmTetrahedron::Measures &cr)
 
bool faceSwap (std::vector< MTet4 * > &newTets, MTet4 *t1, int iLocalFace, const qmTetrahedron::Measures &cr, const std::set< MFace, MFaceLessThan > &embeddedFaces)
 
bool buildVertexCavity_recur (MTet4 *t, MVertex *v, std::vector< MTet4 * > &cavity)
 
bool collapseVertex (std::vector< MTet4 * > &newTets, MTet4 *t, int iVertex, int iTarget, const qmTetrahedron::Measures &cr, const localMeshModAction action, double *minQual)
 
bool smoothVertex (MTet4 *t, int iVertex, const qmTetrahedron::Measures &cr)
 
double smoothing_objective_function_3D (double X, double Y, double Z, MVertex *v, std::vector< MTet4 * > &ts)
 
void deriv_smoothing_objective_function_3D (double *XYZ, double *dF, double &F, void *data)
 
double smooth_obj_3D (double *XYZ, void *data)
 
bool smoothVertexOptimize (MTet4 *t, int iVertex, const qmTetrahedron::Measures &cr)
 
template<class ITERATOR >
void fillv_ (std::multimap< MVertex *, MElement * > &vertexToElement, ITERATOR it_beg, ITERATOR it_end)
 
int LaplaceSmoothing (GRegion *gr)
 

Variables

static int edges [6][2] = {{0, 1}, {0, 2}, {0, 3}, {1, 2}, {1, 3}, {2, 3}}
 
static int efaces [6][2] = {{0, 2}, {0, 1}, {1, 2}, {0, 3}, {2, 3}, {1, 3}}
 
static int faces [4][3] = {{0, 1, 2}, {0, 2, 3}, {0, 1, 3}, {1, 2, 3}}
 
static int vnofaces [4] = {3, 1, 2, 0}
 
static int vFac [4][3] = {{0, 1, 2}, {0, 2, 3}, {0, 1, 3}, {1, 2, 3}}
 

Function Documentation

◆ buildEdgeCavity()

bool buildEdgeCavity ( MTet4 t,
int  iLocalEdge,
MVertex **  v1,
MVertex **  v2,
std::vector< MTet4 * > &  cavity,
std::vector< MTet4 * > &  outside,
std::vector< MVertex * > &  ring 
)

Definition at line 61 of file meshGRegionLocalMeshMod.cpp.

Referenced by edgeSplit(), and edgeSwap().

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

◆ BuildSwapPattern3()

void BuildSwapPattern3 ( SwapPattern sc)

Definition at line 132 of file meshGRegionLocalMeshMod.cpp.

Referenced by edgeSwap().

Here is the caller graph for this function:

◆ BuildSwapPattern4()

void BuildSwapPattern4 ( SwapPattern sc)

Definition at line 155 of file meshGRegionLocalMeshMod.cpp.

Referenced by edgeSwap().

Here is the caller graph for this function:

◆ BuildSwapPattern5()

void BuildSwapPattern5 ( SwapPattern sc)

Definition at line 167 of file meshGRegionLocalMeshMod.cpp.

Referenced by edgeSwap().

Here is the caller graph for this function:

◆ BuildSwapPattern6()

void BuildSwapPattern6 ( SwapPattern sc)

Definition at line 185 of file meshGRegionLocalMeshMod.cpp.

Referenced by edgeSwap().

Here is the caller graph for this function:

◆ BuildSwapPattern7()

void BuildSwapPattern7 ( SwapPattern sc)

Definition at line 205 of file meshGRegionLocalMeshMod.cpp.

Referenced by edgeSwap().

Here is the caller graph for this function:

◆ buildVertexCavity_recur()

bool buildVertexCavity_recur ( MTet4 t,
MVertex v,
std::vector< MTet4 * > &  cavity 
)

Definition at line 485 of file meshGRegionLocalMeshMod.cpp.

Referenced by collapseVertex(), smoothVertex(), and smoothVertexOptimize().

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

◆ collapseVertex()

bool collapseVertex ( std::vector< MTet4 * > &  newTets,
MTet4 t,
int  iVertex,
int  iTarget,
const qmTetrahedron::Measures cr,
const localMeshModAction  action,
double *  minQual 
)

Definition at line 529 of file meshGRegionLocalMeshMod.cpp.

Referenced by adaptMeshGRegion::operator()().

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

◆ computeNeighboringTetsOfACavity()

void computeNeighboringTetsOfACavity ( const std::vector< MTet4 * > &  cavity,
std::vector< MTet4 * > &  outside 
)

Definition at line 35 of file meshGRegionLocalMeshMod.cpp.

Referenced by buildEdgeCavity(), and collapseVertex().

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

◆ deriv_smoothing_objective_function_3D()

void deriv_smoothing_objective_function_3D ( double *  XYZ,
double *  dF,
double &  F,
void *  data 
)

Definition at line 731 of file meshGRegionLocalMeshMod.cpp.

Here is the call graph for this function:

◆ edgeSplit()

bool edgeSplit ( std::vector< MTet4 * > &  newTets,
MTet4 tet,
MVertex newVertex,
int  iLocalEdge,
const qmTetrahedron::Measures cr 
)

Definition at line 355 of file meshGRegionLocalMeshMod.cpp.

Here is the call graph for this function:

◆ edgeSwap()

bool edgeSwap ( std::vector< MTet4 * > &  newTets,
MTet4 tet,
int  iLocalEdge,
const qmTetrahedron::Measures cr,
const std::set< MFace, MFaceLessThan > &  embeddedFaces 
)

Definition at line 237 of file meshGRegionLocalMeshMod.cpp.

Referenced by adaptMeshGRegion::operator()(), and optimizeMesh().

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

◆ faceSwap()

bool faceSwap ( std::vector< MTet4 * > &  newTets,
MTet4 t1,
int  iLocalFace,
const qmTetrahedron::Measures cr,
const std::set< MFace, MFaceLessThan > &  embeddedFaces 
)

Definition at line 390 of file meshGRegionLocalMeshMod.cpp.

Referenced by adaptMeshGRegion::operator()().

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

◆ fillv_()

template<class ITERATOR >
void fillv_ ( std::multimap< MVertex *, MElement * > &  vertexToElement,
ITERATOR  it_beg,
ITERATOR  it_end 
)

Definition at line 816 of file meshGRegionLocalMeshMod.cpp.

Referenced by LaplaceSmoothing().

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

◆ LaplaceSmoothing()

int LaplaceSmoothing ( GRegion gr)

Definition at line 828 of file meshGRegionLocalMeshMod.cpp.

Here is the call graph for this function:

◆ smooth_obj_3D()

double smooth_obj_3D ( double *  XYZ,
void *  data 
)

Definition at line 750 of file meshGRegionLocalMeshMod.cpp.

Here is the call graph for this function:

◆ smoothing_objective_function_3D()

double smoothing_objective_function_3D ( double  X,
double  Y,
double  Z,
MVertex v,
std::vector< MTet4 * > &  ts 
)

Definition at line 707 of file meshGRegionLocalMeshMod.cpp.

Referenced by deriv_smoothing_objective_function_3D(), and smooth_obj_3D().

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

◆ smoothVertex()

bool smoothVertex ( MTet4 t,
int  iVertex,
const qmTetrahedron::Measures cr 
)

Definition at line 624 of file meshGRegionLocalMeshMod.cpp.

Referenced by insertVerticesInRegion(), adaptMeshGRegion::operator()(), and optimizeMesh().

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

◆ smoothVertexOptimize()

bool smoothVertexOptimize ( MTet4 t,
int  iVertex,
const qmTetrahedron::Measures cr 
)

Definition at line 757 of file meshGRegionLocalMeshMod.cpp.

Here is the call graph for this function:

Variable Documentation

◆ edges

int edges[6][2] = {{0, 1}, {0, 2}, {0, 3}, {1, 2}, {1, 3}, {2, 3}}
static

◆ efaces

int efaces[6][2] = {{0, 2}, {0, 1}, {1, 2}, {0, 3}, {2, 3}, {1, 3}}
static

Definition at line 24 of file meshGRegionLocalMeshMod.cpp.

Referenced by blyr_manager::blyr_manager(), and buildEdgeCavity().

◆ faces

int faces[4][3] = {{0, 1, 2}, {0, 2, 3}, {0, 1, 3}, {1, 2, 3}}
static

Definition at line 27 of file meshGRegionLocalMeshMod.cpp.

Referenced by buildEdgeCavity(), and faceSwap().

◆ vFac

int vFac[4][3] = {{0, 1, 2}, {0, 2, 3}, {0, 1, 3}, {1, 2, 3}}
static

Definition at line 29 of file meshGRegionLocalMeshMod.cpp.

Referenced by buildVertexCavity_recur().

◆ vnofaces

int vnofaces[4] = {3, 1, 2, 0}
static

Definition at line 28 of file meshGRegionLocalMeshMod.cpp.

Referenced by faceSwap().