mmg3d
colver_3d.c File Reference

Functions for vertices collapsing. More...

Include dependency graph for colver_3d.c:

Functions

int MMG5_chkcol_int (MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t iface, int8_t iedg, int *list, int ilist, int8_t typchk)
 
static int MMG5_topchkcol_bdy (MMG5_pMesh mesh, int k, int iface, int8_t iedg, int *lists, int ilists)
 
int MMG5_chkcol_bdy (MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t iface, int8_t iedg, int *listv, int ilistv, int *lists, int ilists, int refmin, int refplus, int8_t typchk, int isnm)
 
int MMG5_chkcol_nomint (MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t iface, int8_t iedg, int *listv, int ilistv, int8_t typchk)
 
int MMG5_colver (MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist, int8_t indq, int8_t typchk)
 

Variables

int8_t ddb
 

Detailed Description

Functions for vertices collapsing.

Author
Charles Dapogny (UPMC)
Cécile Dobrzynski (Bx INP/Inria/UBordeaux)
Pascal Frey (UPMC)
Algiane Froehly (Inria/UBordeaux)
Version
5
Todo:
doxygen documentation.

Function Documentation

◆ MMG5_chkcol_bdy()

int MMG5_chkcol_bdy ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  k,
int8_t  iface,
int8_t  iedg,
int *  listv,
int  ilistv,
int *  lists,
int  ilists,
int  refmin,
int  refplus,
int8_t  typchk,
int  isnm 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of element in which we collapse.
ifaceface through wich we perform the collapse
iedgedge to collapse (in local face num)
listvpointer toward the list of the tetra in the ball of p0.
ilistvnumber of tetra in the ball of p0.
listspointer toward the surfacic ball of p0.
ilistsnumber of tetra in the surfacic ball of p0.
refminreference of one of the two subdomains in presence
refplusreference of the other subdomain in presence
typchktypchk type of checking permformed for edge length (hmax or MMG3D_LLONG criterion).
isnm1 if edge is non-manifold
Returns
ilistv if success, 0 if the point cannot be collapsed, -1 if fail.

Check whether collapse ip -> iq could be performed, ip boundary point ; 'mechanical' tests (positive jacobian) are not performed here ; iface = boundary face on which lie edge iedg - in local face num. (pq, or ia in local tet notation). If isnm is 1, the collapse occurs along an external MG_NOM edge.

Remarks
we don't check edge lengths.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ MMG5_chkcol_int()

int MMG5_chkcol_int ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  k,
int8_t  iface,
int8_t  iedg,
int *  list,
int  ilist,
int8_t  typchk 
)

Check whether collapse ip -> iq could be performed, ip internal ; 'mechanical' tests (positive jacobian) are not performed here

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

◆ MMG5_chkcol_nomint()

int MMG5_chkcol_nomint ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  k,
int8_t  iface,
int8_t  iedg,
int *  listv,
int  ilistv,
int8_t  typchk 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of element in which we collapse.
ifaceface through wich we perform the collapse
iedgedge to collapse (in local face num)
listvpointer toward the list of the tetra in the ball of p0.
ilistvnumber of tetra in the ball of p0.
typchktypchk type of checking permformed for edge length (hmax or MMG3D_LLONG criterion).
Returns
1 if success, 0 if the point cannot be collapsed, -1 if fail.

Check whether collapse ip -> iq could be performed, ip internal non manifold point; 'mechanical' tests (positive jacobian) are not performed here ; iface = boundary face on which lie edge iedg - in local face num. (pq, or ia in local tet notation).

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

◆ MMG5_colver()

int MMG5_colver ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int *  list,
int  ilist,
int8_t  indq,
int8_t  typchk 
)
Parameters
meshpointer toward the mesh
metpointer toward the metric
listpointer toward the ball of the point
ilistnumber of elements in the ball of the point
indqlocal index of the point on which we collapse
typchktype of check performed depending on the remeshing step
Returns
np the index of the collpased point if success, 0 if we cannot collapse, -1 if we fail.

Collapse vertex p = list[0]%4 of tetra list[0]/4 over vertex indq of tetra list[0]/4. Only physical tests (positive jacobian) are done (i.e. approximation of the surface, etc... must be performed outside).

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

◆ MMG5_topchkcol_bdy()

static int MMG5_topchkcol_bdy ( MMG5_pMesh  mesh,
int  k,
int  iface,
int8_t  iedg,
int *  lists,
int  ilists 
)
static
Parameters
meshpointer toward the mesh structure.
kindex of the starting tetra.
ifacelocal index of the starting face in the tetra k.
ideglocal index of the starting edge in the face iface.
listssurfacic ball of p.
ilistsnumber of elements in the surfacic ball of p.
Returns
0 if the check of the topology fails, 1 if success, -1 if the function fails.

Topological check on the surface ball of np and nq in collapsing np->nq ; iface = boundary face on which lie edge iedg - in local face num. (pq, or ia in local tet notation). See the Mmg Google Drive/Documentation/mmg3d/topchkcol_bdy3D.pdf for a picture of the configuration.

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

Variable Documentation

◆ ddb

int8_t ddb