mmg3d
|
Create implicit surface in mesh. More...
#include "mmg3d.h"
Functions | |
static int | MMG5_invsl (double A[3][3], double b[3], double r[3]) |
static int | MMG5_ismaniball (MMG5_pMesh mesh, MMG5_pSol sol, int k, int indp) |
static int | MMG3D_snpval_ls (MMG5_pMesh mesh, MMG5_pSol sol, double *tmp) |
static int | MMG3D_cuttet_ls (MMG5_pMesh mesh, MMG5_pSol sol) |
static int | MMG3D_setref_ls (MMG5_pMesh mesh, MMG5_pSol sol) |
int | MMG5_chkmaniball (MMG5_pMesh mesh, int start, char ip) |
int | MMG5_chkmani (MMG5_pMesh mesh) |
int | MMG5_chkmani2 (MMG5_pMesh mesh, MMG5_pSol sol) |
int | MMG5_chkmanicoll (MMG5_pMesh mesh, int k, int iface, int iedg, int ndepmin, int ndepplus, char isminp, char isplp) |
int | MMG3D_mmg3d2 (MMG5_pMesh mesh, MMG5_pSol sol) |
Variables | |
char | ddb |
Create implicit surface in mesh.
|
static |
mesh | pointer toward the mesh structure. |
sol | pointer toward the level-set values. |
Proceed to discretization of the implicit function carried by sol into mesh, once values of sol have been snapped/checked
int MMG3D_mmg3d2 | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol | ||
) |
mesh | pointer toward the mesh structure. |
sol | pointer toward the solution structure |
Create implicit surface in mesh.
|
static |
mesh | pointer toward the mesh structure. |
sol | pointer toward the level-set values. |
Set references to tets according to the sign of the level set function.
|
static |
mesh | pointer toward the mesh structure. |
sol | pointer toward the level-set function. |
tmp | saving of the level-set values before the snap. |
Snap values of the level set function very close to 0 to exactly 0, and prevent nonmanifold patterns from being generated.
int MMG5_chkmani | ( | MMG5_pMesh | mesh | ) |
Check whether implicit surface enclosed in volume is orientable
First test : check whether a tetra has 4 boundary faces
Second test : Check whether configuration is manifold in each ball
int MMG5_chkmani2 | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol | ||
) |
mesh | pointer toward the mesh structure |
sol | pointer toward the metric |
Check whether implicit surface enclosed in volume is orientable (perform an additionnal test w.r.t. MMG5_chkmani)
First test : assure no tetra has its 4 vertices on implicit boundary
Second test : check whether configuration is manifold in each ball
int MMG5_chkmaniball | ( | MMG5_pMesh | mesh, |
int | start, | ||
char | ip | ||
) |
mesh | pointer toward the mesh |
start | index of the starting tetra |
ip | point index |
Check whether implicit surface is orientable in ball of point ip in tet iel ; Beware : may return 0 when implicit boundary is tangent to outer boundary
int MMG5_chkmanicoll | ( | MMG5_pMesh | mesh, |
int | k, | ||
int | iface, | ||
int | iedg, | ||
int | ndepmin, | ||
int | ndepplus, | ||
char | isminp, | ||
char | isplp | ||
) |
mesh | pointer toward the mesh structure. |
k | index of element in which we collapse. |
iface | face through wich we perform the collapse |
iedg | edge to collapse |
ndepmin | index of an elt with ref MG_MINUS and outside the shell of edge. |
ndepplus | ndex of an elt with ref MG_PLUS and outside the shell of edge. |
isminp | 1 if we have found a tetra with ref MG_MINUS |
isplp | 1 if we have found a tetra with ref MG_PLUS |
Check whether collapse of point np to nq does not create a non manifold situation at nq ndepmin, ndepplus = tetra of ref minus, plus in ball of np, not in shell of (np,nq).
First step : pile up tetras of future ball of nq, crossing through the shell of (np,nq), as long as they have same ref as ndepmin list[l] <= 0 if element of ball of np, >= 0, if element of ball of nq
Second step : same process, starting with a tetra of different reference, in the ball of np
|
inlinestatic |
solve 3*3 non symmetric system Ar = b
|
static |
mesh | pointer toward the mesh structure. |
sol | pointer toward the level-set values. |
k | index of the starting tetra. |
indp | local index (inside the tria k) of the vertex that we check. |
Check whether snapping the value of vertex indp to 0 exactly leads to a non manifold situation.
char ddb |