mmgs
split_s.c File Reference

Functions to create new points. More...

#include "mmgs.h"
Include dependency graph for split_s.c:

Functions

int _MMGS_split1_sim (MMG5_pMesh mesh, MMG5_pSol met, int k, int i, int *vx)
 
int _MMGS_split1 (MMG5_pMesh mesh, MMG5_pSol met, int k, int i, int *vx)
 
int _MMGS_simbulgept (MMG5_pMesh mesh, MMG5_pSol met, int k, int i, int ip)
 
int split1b (MMG5_pMesh mesh, int k, char i, int ip)
 
int _MMG5_split2_sim (MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
 
int _MMGS_split2 (MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
 
int _MMGS_split3_sim (MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
 
int _MMGS_split3 (MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
 

Detailed Description

Functions to create new points.

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

Function Documentation

◆ _MMG5_split2_sim()

int _MMG5_split2_sim ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  k,
int *  vx 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of element to split.
vx$vx[i]$ is the index of the point to add on the edge i.
Returns
0 if split leads to invalid element, else 1.

Simulate the splitting of element k along the 2 edges i1 and i2. Check that the new triangles are not empty (otherwise we can create a 0 surface triangle).

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

◆ _MMGS_simbulgept()

int _MMGS_simbulgept ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  k,
int  i,
int  ip 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of the starting triangle.
ilocal index of the edge to split in k.
ipindex of the point that we try to create.
Returns
0 if final position is invalid, 1 if all checks are ok.

Simulate the creation of the point ip, to be inserted at an edge. Check that the new triangles are not empty (otherwise we can create a 0 surface triangle).

Remarks
Don't work for non-manifold edge.
Here is the caller graph for this function:

◆ _MMGS_split1()

int _MMGS_split1 ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  k,
int  i,
int *  vx 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of element to split.
iindex of edge to split.
vx$vx[i]$ is the index of the point to add on the edge i.
Returns
1 if success, 0 if fail.

Split element k along edge i.

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

◆ _MMGS_split1_sim()

int _MMGS_split1_sim ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  k,
int  i,
int *  vx 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of element to split.
iindex of edge to split.
vx$vx[i]$ is the index of the point to add on the edge i.
kindex of element to split.
Returns
0 if split leads to invalid element, else 1.

Simulate the splitting of element k along edge i. Check that the new triangles are not empty (otherwise we can create a 0 surface triangle).

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

◆ _MMGS_split2()

int _MMGS_split2 ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  k,
int *  vx 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of element to split.
vx$vx[i]$ is the index of the point to add on the edge i.
Returns
1 if success, 0 if fail.

Split element k along the 2 edges i1 and i2.

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

◆ _MMGS_split3()

int _MMGS_split3 ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  k,
int *  vx 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of element to split.
vx$vx[i]$ is the index of the point to add on the edge i.
Returns
1 if success, 0 if fail.

Split element k along the 3 edges

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

◆ _MMGS_split3_sim()

int _MMGS_split3_sim ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  k,
int *  vx 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
kindex of element to split.
vx$vx[i]$ is the index of the point to add on the edge i.
Returns
0 if split leads to invalid element, else 1.

Simulate the splitting of element k along the 3 edges. Check that the new triangles are not empty (otherwise we can create a 0 surface triangle).

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

◆ split1b()

int split1b ( MMG5_pMesh  mesh,
int  k,
char  i,
int  ip 
)
Parameters
meshpointer toward the mesh structure.
kindex of element to split.
iindex of edge to split.
ipindex of the new point.
Returns
0 if lack of memory, 1 otherwise.

Split element k along edge i, inserting point ip and updating the adjacency relations.

Remarks
do not call this function in non-manifold case
Here is the call graph for this function:
Here is the caller graph for this function: