Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
|
Functions for ball of points computation. More...
Go to the source code of this file.
Functions | |
int | MMG5_boulevolp (MMG5_pMesh mesh, MMG5_int start, int ip, int64_t *list) |
int | MMG3D_findEdge (MMG5_pMesh mesh, MMG5_pTetra pt, MMG5_int k, MMG5_int na, MMG5_int nb, int error, int8_t *mmgWarn, int8_t *ia) |
static void | MMG3D_compute_tangent (MMG5_pMesh mesh, int nump, int ip0, int ip1, double t[3]) |
int | MMG5_boulenm (MMG5_pMesh mesh, MMG5_int start, int ip, int iface, double n[3], double t[3]) |
int | MMG5_boulenmInt (MMG5_pMesh mesh, MMG5_int start, int ip, double t[3]) |
int | MMG5_boulernm (MMG5_pMesh mesh, MMG5_Hash *hash, MMG5_int start, int ip, MMG5_int *ng, MMG5_int *nr, MMG5_int *nm) |
int | MMG5_boulesurfvolp (MMG5_pMesh mesh, MMG5_int start, int ip, int iface, int64_t *listv, int *ilistv, MMG5_int *lists, int *ilists, int isnm) |
int | MMG5_boulesurfvolpNom (MMG5_pMesh mesh, MMG5_int start, int ip, int iface, int64_t *listv, int *ilistv, MMG5_int *lists, int *ilists, MMG5_int *refmin, MMG5_int *refplus, int isnm) |
int | MMG5_bouletrid (MMG5_pMesh mesh, MMG5_int start, int iface, int ip, int *il1, MMG5_int *l1, int *il2, MMG5_int *l2, MMG5_int *ip0, MMG5_int *ip1) |
static int | MMG3D_settag_oneDir (MMG5_pMesh mesh, MMG5_int start, MMG5_int na, MMG5_int nb, int16_t tag, int edg, MMG5_int piv, MMG5_int adj) |
int | MMG5_settag (MMG5_pMesh mesh, MMG5_int start, int ia, int16_t tag, int edg) |
static int | MMG3D_deltag_oneDir (MMG5_pMesh mesh, MMG5_int start, MMG5_int na, MMG5_int nb, int16_t tag, MMG5_int piv, MMG5_int adj) |
int | MMG5_deltag (MMG5_pMesh mesh, MMG5_int start, int ia, int16_t tag) |
int | MMG5_coquil (MMG5_pMesh mesh, MMG5_int start, int ia, int64_t *list, int8_t *isbdy) |
int | MMG5_srcbdy (MMG5_pMesh mesh, MMG5_int start, int ia) |
void | MMG5_coquilFaceErrorMessage (MMG5_pMesh mesh, MMG5_int k1, MMG5_int k2) |
int | MMG3D_coquilFaceFirstLoop (MMG5_pMesh mesh, MMG5_int start, MMG5_int na, MMG5_int nb, int8_t iface, int8_t ia, int64_t *list, int *ilist, MMG5_int *it1, MMG5_int *it2, MMG5_int *piv, MMG5_int *adj, int8_t *hasadja, int *nbdy, int silent) |
void | MMG3D_coquilFaceSecondLoopInit (MMG5_pMesh mesh, MMG5_int piv, int8_t *iface, int8_t *ia, int64_t *list, int *ilist, MMG5_int *it1, MMG5_int *pradj, MMG5_int *adj) |
int | MMG5_coquilface (MMG5_pMesh mesh, MMG5_int start, int8_t iface, int ia, int64_t *list, MMG5_int *it1, MMG5_int *it2, int silent) |
int16_t | MMG5_coquilTravel (MMG5_pMesh mesh, MMG5_int na, MMG5_int nb, MMG5_int *adj, MMG5_int *piv, int8_t *iface, int8_t *i) |
int16_t | MMG5_openCoquilTravel (MMG5_pMesh mesh, MMG5_int na, MMG5_int nb, MMG5_int *adj, MMG5_int *piv, int8_t *iface, int8_t *i) |
Variables | |
MMG5_Info | info |
Functions for ball of points computation.
Definition in file boulep_3d.c.
|
inlinestatic |
int MMG3D_coquilFaceFirstLoop | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
MMG5_int | na, | ||
MMG5_int | nb, | ||
int8_t | iface, | ||
int8_t | ia, | ||
int64_t * | list, | ||
int * | ilist, | ||
MMG5_int * | it1, | ||
MMG5_int * | it2, | ||
MMG5_int * | piv, | ||
MMG5_int * | adj, | ||
int8_t * | hasadja, | ||
int * | nbdy, | ||
int | silent | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetrahedron. |
na | global index of the 1st extremity of the edge whose shell is computed |
nb | global index of the 2d extremity of the edge whose shell is computed |
iface | index of the face from which we come. |
ia | index of edge whose shell is computed (in tetra). |
list | pointer toward the list of tetra in the shell (to fill). |
ilist | pointer toward the number of tetra in the shell (to fill). |
it1 | pointer toward the index of the 1st boundary face sharing ia |
it2 | pointer toward the index of the 2d boundary face sharing ia (to fill). |
adj | pointer toward the adjacent to treat in the shell (to update) |
hasadja | pointer toward 0 if we don't have adja through iface, 1 otherwise (to fill) |
nbdy | pointer toward the number of boundaries found minus 1 (to update) |
silent | if 1, print error message for more than 2 boundary triangles in the shell |
Travel in the shell of the edge until meeting the first tetra or reaching a tetra without adjacent. Fill it2 and list.
Definition at line 1686 of file boulep_3d.c.
void MMG3D_coquilFaceSecondLoopInit | ( | MMG5_pMesh | mesh, |
MMG5_int | piv, | ||
int8_t * | iface, | ||
int8_t * | ia, | ||
int64_t * | list, | ||
int * | ilist, | ||
MMG5_int * | it1, | ||
MMG5_int * | pradj, | ||
MMG5_int * | adj | ||
) |
mesh | pointer toward the mesh structure. |
piv | global index of the pivot. |
iface | index of the face from which we come. |
i | index of edge whose shell is computed (in tetra). |
list | pointer toward the list of tetra in the shell (to fill). |
ilist | pointer toward the number of tetra in the shell (to fill). |
it1 | pointer toward the index of the 1st boundary face sharing ia |
pradj | pointer toward the first tetra of the shell (to fill). |
adj | pointer toward the adjacent to treat in the shell (to update) |
Initialize the travel in the shell of the edge in reverse direction than in the coquilFaceFirstLoop function.
Definition at line 1787 of file boulep_3d.c.
|
inlinestatic |
mesh | pointer toward the mesh |
start | tetra from which we start to travel |
na | edge vertex |
nb | edge vertex |
tag | new edge tag |
piv | global index of the pivot to set the sense of travel |
adj | index of adjacent tetra for the travel |
Remove the tag tag of edge ia in tetra start by travelling its shell in one direction (given by the pivot piv).
Definition at line 1297 of file boulep_3d.c.
int MMG3D_findEdge | ( | MMG5_pMesh | mesh, |
MMG5_pTetra | pt, | ||
MMG5_int | k, | ||
MMG5_int | na, | ||
MMG5_int | nb, | ||
int | error, | ||
int8_t * | mmgWarn, | ||
int8_t * | ia | ||
) |
mesh | pointer toward the mesh structure. |
pt | pointer toward the working tetra |
k | index of the tetra pt. |
na | index of the first extermity of the seeking edge. |
nb | index of the second extermity of the seeking edge. |
error | 1 if we want to print an error message, 0 for a warning. |
mmgWarn | static variable to print warning only once (not used if error==1) |
ia | pointer toward the edge index (to fill). |
Find the local index of the edge ia in the tetra pt of index k;
Definition at line 113 of file boulep_3d.c.
|
inlinestatic |
mesh | pointer toward the mesh |
start | tetra from which we start to travel |
na | edge vertex |
nb | edge vertex |
tag | new edge tag |
edg | new edge ref |
piv | global index of the pivot to set the sense of travel |
adj | index of adjacent tetra for the travel |
Set tag and ref of the edge na nb from tetra start by traveling its shell in one direction (given by the pivot piv).
Definition at line 1170 of file boulep_3d.c.
int MMG5_boulenm | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int | ip, | ||
int | iface, | ||
double | n[3], | ||
double | t[3] | ||
) |
mesh | pointer toward the mesh structure. |
start | tetra index. |
ip | point index. |
iface | face index. |
n | computed normal vector. |
t | computed tangent vector. |
Define normal and tangent vectors at a non manifold point (ip in start, supported by face iface), enumerating its (outer)surfacic ball.
Definition at line 196 of file boulep_3d.c.
int MMG5_boulenmInt | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int | ip, | ||
double | t[3] | ||
) |
mesh | pointer toward the mesh structure. |
start | tetra index. |
ip | point index. |
t | computed tangent vector. |
Travel the ball of the internal non manifold point ip in tetra start and calculate the tangent vector to the underlying curve.
Definition at line 342 of file boulep_3d.c.
int MMG5_boulernm | ( | MMG5_pMesh | mesh, |
MMG5_Hash * | hash, | ||
MMG5_int | start, | ||
int | ip, | ||
MMG5_int * | ng, | ||
MMG5_int * | nr, | ||
MMG5_int * | nm | ||
) |
mesh | pointer toward the mesh structure. |
hash | pointer toward an allocated hash table. |
start | index of the starting tetrahedra. |
ip | local index of the point in the tetrahedra start. |
ng | pointer toward the number of ridges. |
nr | pointer toward the number of reference edges. |
nm | pointer toward the number of non-manifold edges. |
Count the numer of ridges and reference edges incident to the vertex ip when ip is non-manifold.
Definition at line 455 of file boulep_3d.c.
int MMG5_boulesurfvolp | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int | ip, | ||
int | iface, | ||
int64_t * | listv, | ||
int * | ilistv, | ||
MMG5_int * | lists, | ||
int * | ilists, | ||
int | isnm | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetra. |
ip | index in start of the looked point. |
iface | index in start of the starting face. |
listv | pointer toward the computed volumic ball. |
ilistv | pointer toward the computed volumic ball size. |
lists | pointer toward the computed surfacic ball. |
ilists | pointer toward the computed surfacic ball size. |
isnm | 1 if ip is non-manifold, 0 otherwise. |
Compute the volumic ball of a SURFACE point p, as well as its surfacic ball, starting from tetra start, with point ip, and face if in tetra volumic ball:
Definition at line 607 of file boulep_3d.c.
int MMG5_boulesurfvolpNom | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int | ip, | ||
int | iface, | ||
int64_t * | listv, | ||
int * | ilistv, | ||
MMG5_int * | lists, | ||
int * | ilists, | ||
MMG5_int * | refmin, | ||
MMG5_int * | refplus, | ||
int | isnm | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetra. |
ip | index in start of the looked point. |
iface | index in start of the starting face. |
listv | pointer toward the computed volumic ball. |
ilistv | pointer toward the computed volumic ball size. |
lists | pointer toward the computed surfacic ball. |
ilists | pointer toward the computed surfacic ball size. |
refmin | return the reference of one of the two subdomains in presence |
refplus | return the reference of the other subdomain in presence |
isnm | is the looked point ip non-manifold? |
Compute the volumic ball of a SURFACE point p, as well as its surfacic ball, starting from tetra start, with point ip, and face if in tetra volumic ball. listv[k] = 4*number of tet + index of point surfacic ball. lists[k] = 4*number of tet + index of face.
Definition at line 771 of file boulep_3d.c.
int MMG5_bouletrid | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int | iface, | ||
int | ip, | ||
int * | il1, | ||
MMG5_int * | l1, | ||
int * | il2, | ||
MMG5_int * | l2, | ||
MMG5_int * | ip0, | ||
MMG5_int * | ip1 | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetrahedron. |
ip | index of the looked ridge point. |
iface | index in start of the starting face. |
il1 | pointer toward the first ball size. |
l1 | pointer toward the first computed ball (associated to n_1's side). |
il2 | pointer toward the second ball size. |
l2 | pointer toward the second computed ball (associated to n_2's side). |
ip0 | index of the first extremity of the ridge. |
ip1 | index of the second extremity of the ridge. |
Computation of the two surface balls of a ridge point: the list l1 is associated to the normal of face iface. ip0 and ip1 are the indices of the 2 ending point of the ridge. Both lists are returned enumerated in direct order.
Definition at line 952 of file boulep_3d.c.
int MMG5_boulevolp | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int | ip, | ||
int64_t * | list | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetrahedra. |
ip | local index of the point in the tetrahedra start. |
list | pointer toward the list of the tetra in the volumic ball of ip. |
Fill the volumic ball (i.e. filled with tetrahedra) of point ip in tetra start. Results are stored under the form , kel = number of the tetra, jel = local index of p within kel.
Definition at line 54 of file boulep_3d.c.
int MMG5_coquil | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int | ia, | ||
int64_t * | list, | ||
int8_t * | isbdy | ||
) |
mesh | pointer toward the mesh structure |
start | index of the starting tetra |
ia | index of the edge |
list | list of tetra sharing the edge ia |
isbdy | 1 if edge is bdy, 0 otherwise (note that at interface of 2 domains the edge shell of a bdy edge can be closed) |
Find all tets sharing edge ia of tetra start.
Definition at line 1403 of file boulep_3d.c.
int MMG5_coquilface | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int8_t | iface, | ||
int | ia, | ||
int64_t * | list, | ||
MMG5_int * | it1, | ||
MMG5_int * | it2, | ||
int | silent | ||
) |
mesh | pointer toward the mesh structure. |
start | index of the starting tetrahedron. |
iface | index of the boundary face from which we come. |
ia | index of edge whose shell is computed (in tetra). |
list | pointer toward the list of tetra in the shell (to fill). |
it1 | pointer toward the index of the first boundary face sharing ia (to fill). |
it2 | pointer toward the index of the second boundary face sharing ia (to fill). |
silent | if 1, print error message for more than 2 boundary triangles in the shell |
Find all tets sharing edge ia of tetra start, and stores boundary faces when met. and , iel = index of tetra, iface = index of face in tetra.
Definition at line 1843 of file boulep_3d.c.
void MMG5_coquilFaceErrorMessage | ( | MMG5_pMesh | mesh, |
MMG5_int | k1, | ||
MMG5_int | k2 | ||
) |
mesh | pointer toward the mesh structure. |
k1 | should contain a tetra index. |
k2 | should contain a tetra index different from k2. |
Print an error message if MMG5_coquilFace detect a boundary topology problem.
Definition at line 1613 of file boulep_3d.c.
int16_t MMG5_coquilTravel | ( | MMG5_pMesh | mesh, |
MMG5_int | na, | ||
MMG5_int | nb, | ||
MMG5_int * | adj, | ||
MMG5_int * | piv, | ||
int8_t * | iface, | ||
int8_t * | i | ||
) |
mesh | pointer toward the mesh structure. |
na | global index of edge extremity. |
nb | global index of edge extremity. |
adj | starting tetrahedron at the begining and finish tet at the end. |
piv | global index of the vertex opposite to the travelling face (updated for the finish tet at the end). |
iface | previous traveling face of the tet (suspected to be boundary), updated. |
i | local index of the edge in tet adj. |
Travel around the edge from tetra adj and through the face piv.
Definition at line 1959 of file boulep_3d.c.
int MMG5_deltag | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int | ia, | ||
int16_t | tag | ||
) |
mesh | pointer toward the mesh structure |
start | index of the starting tetra |
ia | index of the edge in tetra start that we want to modify |
tag | tag to remove |
Remove the tag tag of edge ia in tetra start by travelling its shell.
Definition at line 1344 of file boulep_3d.c.
int16_t MMG5_openCoquilTravel | ( | MMG5_pMesh | mesh, |
MMG5_int | na, | ||
MMG5_int | nb, | ||
MMG5_int * | adj, | ||
MMG5_int * | piv, | ||
int8_t * | iface, | ||
int8_t * | i | ||
) |
mesh | pointer toward the mesh structure. |
na | global index of edge extremity. |
nb | global index of edge extremity. |
adj | starting tetrahedron at the begining and finish tet at the end. |
piv | global index of the vertex opposite to the travelling face (updated for the finish tet at the end). |
iface | traveling face of the tet (suspected to be boundary), updated. |
i | local index of the edge in tet adj. |
Travel around the edge from tetra adj and through the face piv. The shell of the edge is open and the tetra adj has no neighbour through the face iface.
Definition at line 2011 of file boulep_3d.c.
int MMG5_settag | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int | ia, | ||
int16_t | tag, | ||
int | edg | ||
) |
mesh | pointer toward the mesh structure |
start | tetra from which we start |
ia | local index of the edge in start |
tag | tag to set |
edg | edge reference to set |
Set tag tag and ref edg of edge ia (if need be) in tetra start by travelling its shell.
Definition at line 1228 of file boulep_3d.c.
int MMG5_srcbdy | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int | ia | ||
) |
mesh | pointer toward the mesh structure. |
start | starting tetra. |
ia | local edge index in tetra start. |
Identify whether edge ia in start is a boundary edge by unfolding its shell.
Definition at line 1554 of file boulep_3d.c.
|
extern |