Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
Functions | Variables
mmg3d1.c File Reference

Perform volume and surface mesh adaptation with pattern splitting. More...

#include "libmmg3d.h"
#include "inlined_functions_3d_private.h"
#include "mmgexterns_private.h"
#include "mmg3dexterns_private.h"
Include dependency graph for mmg3d1.c:

Go to the source code of this file.

Functions

void MMG3D_set_geom (MMG5_pMesh mesh, MMG5_pPoint ppt, int16_t tag, MMG5_int nmref, MMG5_int edgref, double no1[3], double no2[3], double to[3])
 
void MMG5_tet2tri (MMG5_pMesh mesh, MMG5_int k, int8_t ie, MMG5_Tria *ptt)
 
int MMG3D_dichoto (MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, MMG5_int *vx)
 
int MMG3D_dichoto1b (MMG5_pMesh mesh, MMG5_pSol met, int64_t *list, int ret, MMG5_int ip)
 
int8_t MMG5_chkedg (MMG5_pMesh mesh, MMG5_Tria *pt, int8_t ori, double hmax, double hausd, int locPar)
 
MMG5_int MMG5_swpmsh (MMG5_pMesh mesh, MMG5_pSol met, MMG3D_pPROctree PROctree, int typchk)
 
MMG5_int MMG5_swptet (MMG5_pMesh mesh, MMG5_pSol met, double crit, double declic, MMG3D_pPROctree PROctree, int typchk, MMG5_int testmark)
 
MMG5_int MMG5_movtet (MMG5_pMesh mesh, MMG5_pSol met, MMG3D_pPROctree PROctree, double clickSurf, double clickVol, int moveVol, int improveSurf, int improveVolSurf, int improveVol, int maxit, MMG5_int testmark)
 
static int MMG5_coltet (MMG5_pMesh mesh, MMG5_pSol met, int8_t typchk)
 
int MMG3D_adpcoledg (MMG5_pMesh mesh, MMG5_pSol met, MMG3D_pPROctree *PROctree, MMG5_int k, int8_t imin, double lmin, MMG5_int *nc)
 
static int MMG3D_delPatternPts (MMG5_pMesh mesh, MMG5_Hash hash)
 
static MMG5_int MMG5_anatetv (MMG5_pMesh mesh, MMG5_pSol met, int8_t typchk)
 
static int MMG3D_update_rid_geom (MMG5_pPoint ppt, MMG5_pxPoint pxp, double no[3])
 
int MMG3D_normalAndTangent_at_sinRidge (MMG5_pMesh mesh, MMG5_int k, int i, int j, double no1[3], double no2[3], double to[3])
 
int8_t MMG3D_build_bezierEdge (MMG5_pMesh mesh, MMG5_int k, int8_t imax, int8_t i, int8_t j, MMG5_pxTetra pxt, MMG5_int ip1, MMG5_int ip2, MMG5_pPoint p0, MMG5_pPoint p1, MMG5_int *ref, int16_t *tag, double o[3], double to[3], double no1[3], double no2[3], int64_t *list, int *ilist)
 
void MMG3D_find_bdyface_from_edge (MMG5_pMesh mesh, MMG5_pTetra pt, int8_t ied, int8_t *i, int8_t *j, int8_t *i1, int8_t *i2, MMG5_int *ip1, MMG5_int *ip2, MMG5_pPoint *p0, MMG5_pPoint *p1)
 
int MMG3D_splsurfedge (MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, MMG5_pTetra pt, MMG5_pxTetra pxt, int8_t imax, int8_t typchk, int8_t chkRidTet, int *warn)
 
static int MMG3D_chkbdyface (MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, MMG5_pTetra pt, MMG5_pxTetra pxt, int8_t i, MMG5_pTria ptt, int8_t typchk)
 
static MMG5_int MMG3D_anatets_ani (MMG5_pMesh mesh, MMG5_pSol met, int8_t typchk)
 
static MMG5_int MMG3D_anatets_iso (MMG5_pMesh mesh, MMG5_pSol met, int8_t typchk)
 
static int MMG3D_anatet4_sim (MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, int8_t metRidTyp, int *ifac, int *conf0, MMG5_int *adj, int *conf1)
 
static MMG5_int MMG5_anatet4 (MMG5_pMesh mesh, MMG5_pSol met, MMG5_int *nf, int8_t typchk)
 
static MMG5_int MMG5_anatet4rid (MMG5_pMesh mesh, MMG5_pSol met, MMG5_int *nf, int8_t typchk)
 
int MMG5_anatet (MMG5_pMesh mesh, MMG5_pSol met, int8_t typchk, int patternMode)
 

Variables

int8_t ddb
 
static MMG5_int(* MMG3D_anatets )(MMG5_pMesh mesh, MMG5_pSol met, int8_t typchk)
 

Detailed Description

Perform volume and surface mesh adaptation with pattern splitting.

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

Perform volume and surface mesh adaptation with pattern splitting (MMG_PATTERN preprocessor flag set to ON).

Definition in file mmg3d1.c.

Function Documentation

◆ MMG3D_adpcoledg()

int MMG3D_adpcoledg ( MMG5_pMesh  mesh,
MMG5_pSol  met,
MMG3D_pPROctree PROctree,
MMG5_int  k,
int8_t  imin,
double  lmin,
MMG5_int *  nc 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
PROctreepointer toward the PROctree structure.
kindex of tetra in which we work.
iminindex in k of edge that we consider for collapse.
lminlength of edge imin.
ncpointer toward count of collapses (has to be updated)
Returns
-1 for strong failure.
0 if edge cannot be collapsed and if we want to pass to next loop step (next element or next tetra edge)
2 if edge has been collapsed.
3 if nothing has been done (no error but no collapse either).

Try to collapse edge imin it too small.

Compute edge shell

Collapse

Definition at line 1180 of file mmg3d1.c.

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

◆ MMG3D_anatet4_sim()

static int MMG3D_anatet4_sim ( MMG5_pMesh  mesh,
MMG5_pSol  met,
MMG5_int  k,
int8_t  metRidTyp,
int *  ifac,
int *  conf0,
MMG5_int *  adj,
int *  conf1 
)
static
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of the tetrahedron with multiple boundary faces (to be swapped)
metRidTypmetric storage (classic or special)
ifacface of the tetra k that give the best results for the swap23
conf0detected configuration for the swap23 of the tetra k
adjneighbour of the tetra k through the face ifac (4*k1+ifac1)
conf1detected configuration for the swap23 of the tetra adj/4
Returns
0 if failed (too bad quality), the type of operator that creates the best worst quality otherwise (1 if split4bar, 2 if swap23).

Simulation of the swap23 and of the split at its barycenter of a tetra when more than 1 boundary face. The quality of the worst created element is computed for both operators and we return the identifier of the operator that give the best results. If the swap23 is choosen, we fill the needed info to perform it (index of the face and tetra that are choosen to swap) and configuration of both tetra.

Step 1: test the split4bar

Step 2: test the swap23

Neighbouring element with which we will try to swap

Do not choose a config that creates a tetra with more than 2 bdries

Test volume of the 3 created tets

Definition at line 2712 of file mmg3d1.c.

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

◆ MMG3D_anatets_ani()

static MMG5_int MMG3D_anatets_ani ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int8_t  typchk 
)
static
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
typchktype of checking permformed for edge length (hmax or MMG3D_LLONG criterion).
Returns
-1 if failed.
number of new points.

Split surface edges on geometric criterion.

Split only the longest edge

Definition at line 2153 of file mmg3d1.c.

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

◆ MMG3D_anatets_iso()

static MMG5_int MMG3D_anatets_iso ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int8_t  typchk 
)
static
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
typchktype of checking permformed for edge length (hmax or MMG3D_LLONG criterion).
Returns
-1 if failed.
number of new points.

Analyze tetra and split on geometric criterion.

Remarks
ridge points creation: with fem (finite element method) mode a tetra cannot have 2 boundary faces. Thus, the ridge point is created from a given tetra and it is seen a second time from another tetra, which allows to update its second normal. With nofem mode, a ref edge or ridge can be at the interface of 2 boundary faces belonging to the same tetra.
  1. analysis of boundary elements
  2. check if split by adjacent; besides, a triangle may have been splitted and not its adjacent (thus, the associated n2 may not exist) : update this normal if need be

Edge analysis

  1. Simulate splitting and delete points leading to invalid configurations
  2. splitting

Definition at line 2253 of file mmg3d1.c.

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

◆ MMG3D_build_bezierEdge()

int8_t MMG3D_build_bezierEdge ( MMG5_pMesh  mesh,
MMG5_int  k,
int8_t  imax,
int8_t  i,
int8_t  j,
MMG5_pxTetra  pxt,
MMG5_int  ip1,
MMG5_int  ip2,
MMG5_pPoint  p0,
MMG5_pPoint  p1,
MMG5_int *  ref,
int16_t *  tag,
double  o[3],
double  to[3],
double  no1[3],
double  no2[3],
int64_t *  list,
int *  ilist 
)
Parameters
meshpointer toward mesh
kindex of input tetra
imaxindex of edge in tetra k
iindex of boundary face of tetra from which we will work
jindex of edge in face i
pxtboundary tetra associated to k
ip1first vertex of edge i
ip2second vertex of edge i
p0point ip1
p1point ip2
refedge ref (to fill)
tagedge tag (to fill)
ocoordinates of new point along bezier edge (to fill)
totangent at new point o (to fill if needed)
no1first normal at new point o (to fill if needed)
no2second normal at new point (to fill if needed)
listpointer toward edge shell (to fill)
ilist2x edge shell size (+1 for a bdy edge)
Returns
-1 for strong failure.
0 edge shell contains a required tet or non manifold edge or ridge reconstruction has failed.
1 ref or regular edge reconstruction has failed.
2 if successful (we can compute new point).

Build Bezier edge from the boundary face of a boundary tetra and compute position and feature of new point along this edge.

a/ computation of bezier edge

Definition at line 1750 of file mmg3d1.c.

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

◆ MMG3D_chkbdyface()

static int MMG3D_chkbdyface ( MMG5_pMesh  mesh,
MMG5_pSol  met,
MMG5_int  k,
MMG5_pTetra  pt,
MMG5_pxTetra  pxt,
int8_t  i,
MMG5_pTria  ptt,
int8_t  typchk 
)
static
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of tetra thath we check
ptpointer toward the tetra that we check
pxtpointer toward the xtetra that we check
iindex of the face in k that we check
pttpointer toward the virtual triangle build from the face \i of k.
typchktype of checking permformed for edge length (hmax or MMG3D_LLONG criterion).
Returns
1 if success, 0 if fail.

Mark edges to split on geometric criterion (mark stored in pt->flag)

Definition at line 2045 of file mmg3d1.c.

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

◆ MMG3D_delPatternPts()

static int MMG3D_delPatternPts ( MMG5_pMesh  mesh,
MMG5_Hash  hash 
)
inlinestatic
Parameters
meshpointer toward the mesh structure.
hashpointer toward the hash table of edges.
Returns
0 if failed, 1 if success

Delete the points inserted by pattern if the pattern step fail.

Definition at line 1289 of file mmg3d1.c.

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

◆ MMG3D_dichoto()

int MMG3D_dichoto ( MMG5_pMesh  mesh,
MMG5_pSol  met,
MMG5_int  k,
MMG5_int *  vx 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
ktetrahedron index.
vxpointer toward table of edges to split.
Returns
1 if success, 0 if fail.

Find acceptable position for splitting.

Definition at line 140 of file mmg3d1.c.

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

◆ MMG3D_dichoto1b()

int MMG3D_dichoto1b ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int64_t *  list,
int  ret,
MMG5_int  ip 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
listpointer toward the shell of edge.
retdouble of the number of tetrahedra in the shell.
ipnew point index.
Returns
1 if success
0 if fail due to a very bad quality
2 if fail due to a sharp angle creation

Find acceptable position for MMG5_split1b, passing the shell of considered edge, starting from o point.

Definition at line 293 of file mmg3d1.c.

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

◆ MMG3D_find_bdyface_from_edge()

void MMG3D_find_bdyface_from_edge ( MMG5_pMesh  mesh,
MMG5_pTetra  pt,
int8_t  ied,
int8_t *  i,
int8_t *  j,
int8_t *  i1,
int8_t *  i2,
MMG5_int *  ip1,
MMG5_int *  ip2,
MMG5_pPoint p0,
MMG5_pPoint p1 
)
Parameters
meshpointer toward mesh
ptpointer toward tetra on which we work
iedindex in tetra pt of edge on which we work
iindex of a face of pt that contains ied. If possible we choose a boundary face with suitable orientation (to fill)
jlocal index of edge ied in face i (to fill)
i1local index in tetra pt of first extremity of edge ied (to fill)
i2local index in tetra pt of second extremity of edge ied (to fill)
ip1global index first extremity of edge ied (to fill)
ip2global index in tetra pt of second extremity of edge ied (to fill)
p0pointer toward first extremity of edge ied (to fill)
p1pointer toward second extremity of edge ied (to fill)

Search a face from wich we car reach edge ied. If a boundary face with good orientation exists it is choosed prior to another face, otherwise, if possible, we choose a boundary face. Fill data needed to work on edge.

An edge can be at the interface of a boundary face with good orientation and of another one with bad orientation: ensure to treat the edge from the suitable face

Definition at line 1868 of file mmg3d1.c.

Here is the caller graph for this function:

◆ MMG3D_normalAndTangent_at_sinRidge()

int MMG3D_normalAndTangent_at_sinRidge ( MMG5_pMesh  mesh,
MMG5_int  k,
int  i,
int  j,
double  no1[3],
double  no2[3],
double  to[3] 
)
Parameters
meshpointer toward the mesh structure.
kindex of the tetra to split.
iindex of (boundary) face in which we work.
jlocal index in face i of the ridge.
pttetra to split
no1first normal at new ridge point (to fill)
no2second normal at new ridge point (to fill)
totangent ar new ridge point (to fill)
Returns
0 if fail, 1 if succeed.

Compute normals and tangent at new ridge point.

Remarks
has to be called from a bdy face with suitable orientation (normal orientation is not checked along edges with 2 singular extremities)

Definition at line 1654 of file mmg3d1.c.

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

◆ MMG3D_set_geom()

void MMG3D_set_geom ( MMG5_pMesh  mesh,
MMG5_pPoint  ppt,
int16_t  tag,
MMG5_int  nmref,
MMG5_int  edgref,
double  no1[3],
double  no2[3],
double  to[3] 
)
Parameters
meshpointer toward mesh
pptpointer toward point whose geom data have to be updated
tagpoint tag
nmrefref that has to be setted at point ppt if point is non-manifold
edgrefref that has to be setted at point ppt if point is manifold (edg ref)
no1normal that has to be setted at point ppt (if needed)
no2normal that has to be setted at point ppt (if needed)
totangent that has to be setted at point ppt (if needed)

Set geometric info (ref, tag, normals and tangent) at point ppt.

Definition at line 59 of file mmg3d1.c.

Here is the caller graph for this function:

◆ MMG3D_splsurfedge()

int MMG3D_splsurfedge ( MMG5_pMesh  mesh,
MMG5_pSol  met,
MMG5_int  k,
MMG5_pTetra  pt,
MMG5_pxTetra  pxt,
int8_t  imax,
int8_t  typchk,
int8_t  chkRidTet,
int *  warn 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of the tetra to split.
pttetra to split
pxtassociated xtetra
imaxindex of the edge to split to split
typchktype of check
chkRidTetcheck for ridge metric
*warnwarn is set to 1 if we don't have enough memory to complete mesh.
Returns
-1 if fail, 0 if we can't split but the upper loop may continue, 1 if the edge is splitted, 2 if we can't split due to lack of memory

Split a surface edge using split1b

Definition at line 1927 of file mmg3d1.c.

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

◆ MMG3D_update_rid_geom()

static int MMG3D_update_rid_geom ( MMG5_pPoint  ppt,
MMG5_pxPoint  pxp,
double  no[3] 
)
inlinestatic
Parameters
pptpointer toward the point that we update
pxppoint toward the oot xpoint
nonormal at ppt
Returns
0 if failed, 1 if success.

Starting from a point for which the normal pxp->n1 is already stored, store no in pxp->n2, compute the tangent with respect to this two normals and store it in ppt->n.

Definition at line 1601 of file mmg3d1.c.

Here is the caller graph for this function:

◆ MMG5_anatet()

int MMG5_anatet ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int8_t  typchk,
int  patternMode 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
typchktype of checking for edges length.
patternModeflag to say if we perform vertex insertion by patterns or by delaunay kernel.
Returns
0 if fail, number of new points otherwise.

Analyze tetrahedra and split if needed.

Definition at line 3116 of file mmg3d1.c.

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

◆ MMG5_anatet4()

static MMG5_int MMG5_anatet4 ( MMG5_pMesh  mesh,
MMG5_pSol  met,
MMG5_int *  nf,
int8_t  typchk 
)
static
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
nfnumber of swap performed.
typchktype of checking permformed.
Returns
-1 if failed, number of new points otherwise.

Split tetra into 4 when more than 1 boundary face or if 4 boundary vertices.

Definition at line 2986 of file mmg3d1.c.

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

◆ MMG5_anatet4rid()

static MMG5_int MMG5_anatet4rid ( MMG5_pMesh  mesh,
MMG5_pSol  met,
MMG5_int *  nf,
int8_t  typchk 
)
static
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
nfnumber of swap performed.
typchktype of checking permformed.
Returns
-1 if failed, number of new points otherwise.

Split tetra into 4 when its 4 points are ridge points.

Definition at line 3071 of file mmg3d1.c.

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

◆ MMG5_anatetv()

static MMG5_int MMG5_anatetv ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int8_t  typchk 
)
static
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
typchktype of checking permformed for edge length (hmax or MMG3D_LLONG criterion).
Returns
-1 if failed.
number of new points.

Analyze volume tetra and split if needed.

  1. analysis
  2. Set flags and split internal edges
  3. check and split

Definition at line 1333 of file mmg3d1.c.

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

◆ MMG5_chkedg()

int8_t MMG5_chkedg ( MMG5_pMesh  mesh,
MMG5_Tria pt,
int8_t  ori,
double  hmax,
double  hausd,
int  locPar 
)
Parameters
meshpointer toward the mesh structure.
ptpointer toward the triangle.
oriorientation of the triangle (1 for direct orientation, 0 otherwise).
hmaxmaximal edge length.
hausdmaximal hausdorff distance.
locPar1 if hmax and hausd are locals parameters.
Returns
-1 if error
edges of the triangle pt that need to be split.

Find edges of (virtual) triangle pt that need to be split with respect to the Hausdorff criterion.

Definition at line 363 of file mmg3d1.c.

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

◆ MMG5_coltet()

static int MMG5_coltet ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int8_t  typchk 
)
static
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
typchktype of checking permformed for edge length (hmin or LSHORT criterion).
Returns
-1 if failed, number of collapsed points otherwise.

Attempt to collapse small edges.

Definition at line 888 of file mmg3d1.c.

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

◆ MMG5_movtet()

MMG5_int MMG5_movtet ( MMG5_pMesh  mesh,
MMG5_pSol  met,
MMG3D_pPROctree  PROctree,
double  clickSurf,
double  clickVol,
int  moveVol,
int  improveSurf,
int  improveVolSurf,
int  improveVol,
int  maxit,
MMG5_int  testmark 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
PROctreepointer toward the PROctree structure.
clickSurftriangle quality threshold under which we want to move
clickVoltetra quality threshold under which we want to move
moveVolinternal move
improveSurfforbid surface degradation during the move
improveVolSurfforbid volume degradation during the surfacic move
improveVolforbid volume degradation during the move
maxitmaximum number of iteration
testmarkall the tets with a mark less than testmark will not be treated.
Returns
-1 if failed, number of moved points otherwise.

Analyze tetrahedra and move points so as to make mesh more uniform.

Definition at line 732 of file mmg3d1.c.

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

◆ MMG5_swpmsh()

MMG5_int MMG5_swpmsh ( MMG5_pMesh  mesh,
MMG5_pSol  met,
MMG3D_pPROctree  PROctree,
int  typchk 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
PROctreepointer toward the PROctree structure (only for delaunay).
typchktype of checking permformed for edge length (hmin or LSHORT criterion).
Returns
-1 if failed and swap number otherwise.

Search for boundary edges that could be swapped for geometric approximation.

Definition at line 598 of file mmg3d1.c.

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

◆ MMG5_swptet()

MMG5_int MMG5_swptet ( MMG5_pMesh  mesh,
MMG5_pSol  met,
double  crit,
double  declic,
MMG3D_pPROctree  PROctree,
int  typchk,
MMG5_int  testmark 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
critcoefficient of quality improvment.
PROctreepointer toward the PROctree structure in delaunay mode and toward the NULL pointer otherwise
typchktype of checking permformed for edge length (hmin or LSHORT criterion)
testmarkall the tets with a mark less than testmark will not be treated.
Returns
-1 if fail, the number of swap otherwise.

Internal edge flipping.

Definition at line 668 of file mmg3d1.c.

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

◆ MMG5_tet2tri()

void MMG5_tet2tri ( MMG5_pMesh  mesh,
MMG5_int  k,
int8_t  ie,
MMG5_Tria ptt 
)
Parameters
meshpointer toward the mesh structure.
ktetrahedron index.
ieface index of tetrahedron.
pttpointer toward the output triangle.

Set triangle corresponding to face ie of tetra k.

Definition at line 102 of file mmg3d1.c.

Here is the caller graph for this function:

Variable Documentation

◆ ddb

int8_t ddb
extern

Definition at line 42 of file mmg3d1_delone.c.

◆ MMG3D_anatets

MMG5_int(* MMG3D_anatets) (MMG5_pMesh mesh, MMG5_pSol met, int8_t typchk) ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int8_t  typchk 
)
static

Definition at line 2688 of file mmg3d1.c.