Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
|
Create implicit surface in mesh. More...
Go to the source code of this file.
Variables | |
int8_t | ddb |
Create implicit surface in mesh.
Definition in file mmg3d2.c.
int MMG3D_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
Definition at line 1528 of file mmg3d2.c.
int MMG3D_chkmani2 | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol | ||
) |
mesh | pointer to the mesh structure |
sol | pointer to the metric |
Check whether implicit surface enclosed in volume is orientable (perform an additionnal test w.r.t. MMG3D_chkmani)
First test : assure no tetra has its 4 vertices on implicit boundary
Second test : check whether configuration is manifold in each ball
Definition at line 1607 of file mmg3d2.c.
int MMG3D_chkmaniball | ( | MMG5_pMesh | mesh, |
MMG5_int | start, | ||
int8_t | ip | ||
) |
mesh | pointer to 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
Definition at line 1420 of file mmg3d2.c.
int MMG3D_chkmanicoll | ( | MMG5_pMesh | mesh, |
MMG5_int | k, | ||
int | iface, | ||
int | iedg, | ||
MMG5_int | ndepmin, | ||
MMG5_int | ndepplus, | ||
MMG5_int | refmin, | ||
MMG5_int | refplus, | ||
int8_t | isminp, | ||
int8_t | isplp | ||
) |
mesh | pointer to 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 refmin and outside the shell of edge. |
ndepplus | ndex of an elt with ref refplus and outside the shell of edge. |
refmin | reference of one of the two subdomains in presence |
refplus | reference of the other subdomain in presence |
isminp | 1 if we have found a tetra with ref refmin |
isplp | 1 if we have found a tetra with ref refplus |
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
Definition at line 1683 of file mmg3d2.c.
int MMG3D_cuttet_ls | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
MMG5_pSol | met | ||
) |
mesh | pointer to the mesh structure. |
sol | pointer to the level-set values. |
met | pointer to a metric (non-mandatory). |
Proceed to discretization of the implicit function carried by sol into mesh, once values of sol have been snapped/checked
Definition at line 1026 of file mmg3d2.c.
int MMG3D_ismaniball | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
MMG5_int | k, | ||
int | indp | ||
) |
mesh | pointer to the mesh structure. |
sol | pointer to 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.
Definition at line 407 of file mmg3d2.c.
int MMG3D_mmg3d2 | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
MMG5_pSol | met | ||
) |
mesh | pointer to the mesh structure. |
sol | pointer to the level-set. |
met | pointer to a metric (optionnal). |
Create implicit surface in mesh.
Definition at line 2219 of file mmg3d2.c.
int MMG3D_resetRef_ls | ( | MMG5_pMesh | mesh | ) |
mesh | pointer to the mesh. |
Reset mesh->info.isoref vertex and tetra references to 0.
Definition at line 313 of file mmg3d2.c.
int MMG3D_rmc | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol | ||
) |
mesh | pointer to the mesh |
sol | pointer to the level-set |
Removal of small parasitic components (bubbles of material, etc) with volume less than mesh->info.rmc (default VOLFRAC) * volume of the mesh.
Definition at line 778 of file mmg3d2.c.
int MMG3D_setref_ls | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol | ||
) |
int MMG3D_snpval_ls | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol | ||
) |
mesh | pointer to the mesh structure. |
sol | pointer to the level-set function. |
Snap values of the level set function very close to 0 to exactly 0, and prevent nonmanifold patterns from being generated.
Definition at line 668 of file mmg3d2.c.
int MMG3D_update_xtetra | ( | MMG5_pMesh | mesh | ) |
double MMG3D_vfrac | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
MMG5_int | k, | ||
int | pm | ||
) |
mesh | pointer to the mesh structure |
sol | pointer to the ls function |
k | index of the triangle |
Calculate the area of the positive (if pm == 1) or negative (if pm == -1) subdomain inside tetra k defined by the ls function in sol
Checks for debug mode
Definition at line 107 of file mmg3d2.c.
|
inlinestatic |
ppt | array of points containing the tetra vertices |
i0 | local index of the vertex that has a sign different to the other vertices. |
part_opp | 0 if we want to compute the area containing the vertex i0, 1 if we want the area that do not contains i0. |
Compute the area (x6) defined by the level-set inside the tetra with vertices ppt. This tetra must be splitted by the level-set such has it has exactly 1 vertex (the vertex i0) with sign opposite to the other vertices. If part_opp == 0, we compte the area that contains i0, otherwise we compute the complementary area.
Definition at line 58 of file mmg3d2.c.
|
inlinestatic |
|
extern |
Definition at line 42 of file mmg3d1_delone.c.