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

Lagrangian meshing. More...

#include "libmmg3d.h"
#include "libmmg3d_private.h"
#include "inlined_functions_3d_private.h"
#include "mmg3dexterns_private.h"
Include dependency graph for mmg3d3.c:

Go to the source code of this file.

Macros

#define MMG5_DEGTOL   1.e-1
 

Functions

double MMG5_estavglen (MMG5_pMesh mesh)
 
static int MMG5_intdispvol (double *v1, double *v2, double *vp, double t)
 
static MMG5_int MMG5_spllag (MMG5_pMesh mesh, MMG5_pSol disp, MMG5_pSol met, int itdeg, int *warn)
 
MMG5_int MMG5_swptetlag (MMG5_pMesh mesh, MMG5_pSol met, double crit, MMG3D_pPROctree PROctree, int itdeg)
 
MMG5_int MMG5_movtetlag (MMG5_pMesh mesh, MMG5_pSol met, int itdeg)
 
static MMG5_int MMG5_coltetlag (MMG5_pMesh mesh, MMG5_pSol met, int itdeg)
 
MMG5_int MMG5_chkmovmesh (MMG5_pMesh mesh, MMG5_pSol disp, short t, MMG5_int *tetIdx)
 
int MMG5_dispmesh (MMG5_pMesh mesh, MMG5_pSol disp, short t, int itdeg)
 
int MMG5_mmg3d3 (MMG5_pMesh mesh, MMG5_pSol disp, MMG5_pSol met, MMG5_int **invalidTets)
 

Variables

int8_t ddb
 

Detailed Description

Lagrangian meshing.

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

Definition in file mmg3d3.c.

Macro Definition Documentation

◆ MMG5_DEGTOL

#define MMG5_DEGTOL   1.e-1

Definition at line 41 of file mmg3d3.c.

Function Documentation

◆ MMG5_chkmovmesh()

MMG5_int MMG5_chkmovmesh ( MMG5_pMesh  mesh,
MMG5_pSol  disp,
short  t,
MMG5_int *  tetIdx 
)
Parameters
meshpointer toward the mesh structure
disppointer toward the displacement structure.
tfraction of displacement to test
tetIdxto fill with the list of non valid tetra if provided.
Returns
0 if success (movement can be achieved), 1 or the number of invalid tetra otherwise.

Check if moving mesh with disp for a fraction t yields a valid mesh.

Definition at line 473 of file mmg3d3.c.

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

◆ MMG5_coltetlag()

static MMG5_int MMG5_coltetlag ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  itdeg 
)
static
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
itdegdegraded elements.
Returns
-1 if failed.
number of collapsed points.

Attempt to collapse small internal edges in the Lagrangian mode; only affects tetras marked with it.

Definition at line 389 of file mmg3d3.c.

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

◆ MMG5_dispmesh()

int MMG5_dispmesh ( MMG5_pMesh  mesh,
MMG5_pSol  disp,
short  t,
int  itdeg 
)

Perform mesh motion along disp, for a fraction t, and the corresponding updates

Definition at line 512 of file mmg3d3.c.

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

◆ MMG5_estavglen()

double MMG5_estavglen ( MMG5_pMesh  mesh)

Calculate an estimate of the average (isotropic) length of edges in the mesh

Definition at line 46 of file mmg3d3.c.

Here is the caller graph for this function:

◆ MMG5_intdispvol()

static int MMG5_intdispvol ( double *  v1,
double *  v2,
double *  vp,
double  t 
)
inlinestatic

Interpolate displacement between v1 and v2 at intermediate position 0<=t<=1

Definition at line 83 of file mmg3d3.c.

Here is the caller graph for this function:

◆ MMG5_mmg3d3()

int MMG5_mmg3d3 ( MMG5_pMesh  mesh,
MMG5_pSol  disp,
MMG5_pSol  met,
MMG5_int **  invalidTets 
)
Parameters
meshmesh structure
dispdisplacement structure
metmetric structure
invalidTetsarray to store the list of invalid tetra if we are unable to move.
Returns
0 if fail, 1 if success to move, the opposite of the number of non valid tets if we can't move (- ninvalidTets).

Lagrangian node displacement and meshing. Code for options: info.lag >= 0 -> displacement, info.lag > 0 -> displacement+remeshing with swap and moves info.lag > 1 -> displacement+remeshing with split+collapse+swap+move

Definition at line 583 of file mmg3d3.c.

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

◆ MMG5_movtetlag()

MMG5_int MMG5_movtetlag ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  itdeg 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
itdegdegraded elements.
Returns
-1 if failed, number of moved points otherwise.

Analyze tetrahedra marked with it and move internal points so as to make mesh more uniform.

Definition at line 329 of file mmg3d3.c.

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

◆ MMG5_spllag()

static MMG5_int MMG5_spllag ( MMG5_pMesh  mesh,
MMG5_pSol  disp,
MMG5_pSol  met,
int  itdeg,
int *  warn 
)
static
Parameters
meshpointer toward the mesh structure.
disppointer toward the displacement structure.
metpointer toward the metric structure.
itdegdegraded elements.
*warnwarn is set to 1 if we don't have enough memory to complete mesh.
Returns
-1 if failed.
number of new points.

Split edges of length bigger than MMG3D_LOPTL, in the Lagrangian mode.

Definition at line 104 of file mmg3d3.c.

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

◆ MMG5_swptetlag()

MMG5_int MMG5_swptetlag ( MMG5_pMesh  mesh,
MMG5_pSol  met,
double  crit,
MMG3D_pPROctree  PROctree,
int  itdeg 
)
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.
itdegdegraded elements.
Returns
-1 if fail, he number of swap otherwise.

Internal edge flipping in the Lagrangian mode; only affects tetra marked with it

Definition at line 278 of file mmg3d3.c.

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

Variable Documentation

◆ ddb

int8_t ddb
extern

Definition at line 42 of file mmg3d1_delone.c.