mmg2d
mmg2d9.c File Reference

Lagrangian meshing. More...

#include "mmg2d.h"
Include dependency graph for mmg2d9.c:

Macros

#define MMG2D_DEGTOL   5.e-1
 

Functions

double MMG2D_estavglen (MMG5_pMesh mesh)
 
static double MMG2D_caltri_iso_3pt (double *a, double *b, double *c)
 
int MMG2D_chkmovmesh (MMG5_pMesh mesh, MMG5_pSol disp, short t, int *triIdx)
 
short MMG2D_dikomv (MMG5_pMesh mesh, MMG5_pSol disp, short *lastt)
 
int MMG2D_dispmesh (MMG5_pMesh mesh, MMG5_pSol disp, short t, int itdeg)
 
int MMG2D_spllag (MMG5_pMesh mesh, MMG5_pSol disp, MMG5_pSol met, int itdeg, int *warn)
 
static int MMG2D_coleltlag (MMG5_pMesh mesh, MMG5_pSol met, int itdeg)
 
int MMG2D_swpmshlag (MMG5_pMesh mesh, MMG5_pSol met, double crit, int itdeg)
 
int MMG2D_saveDisp (MMG5_pMesh mesh, MMG5_pSol disp)
 
int MMG2D_movtrilag (MMG5_pMesh mesh, MMG5_pSol met, int itdeg)
 
int MMG2D_mmg2d9 (MMG5_pMesh mesh, MMG5_pSol disp, MMG5_pSol met, int **invalidTrias)
 

Detailed Description

Lagrangian meshing.

Velocity extension for 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
Author
Charles Dapogny (UPMC)
Cécile Dobrzynski (Bx INP/Inria/UBordeaux)
Pascal Frey (UPMC)
Algiane Froehly (Inria/UBordeaux)
Version
5
Todo:
Doxygen documentation

Macro Definition Documentation

◆ MMG2D_DEGTOL

#define MMG2D_DEGTOL   5.e-1

Function Documentation

◆ MMG2D_caltri_iso_3pt()

static double MMG2D_caltri_iso_3pt ( double *  a,
double *  b,
double *  c 
)
inlinestatic

Compute quality of a triangle from the datum of its 3 vertices

Here is the caller graph for this function:

◆ MMG2D_chkmovmesh()

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

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

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

◆ MMG2D_coleltlag()

static int MMG2D_coleltlag ( 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 tria with cc itdeg.

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

◆ MMG2D_dikomv()

short MMG2D_dikomv ( MMG5_pMesh  mesh,
MMG5_pSol  disp,
short *  lastt 
)
Parameters
meshpointer toward the mesh structure
disppointer toward the displacement field
lastt0 if a movement is possible, pointer toward the last tested fraction otherwise

Return the largest fraction t that makes the motion along disp valid.

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

◆ MMG2D_dispmesh()

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

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

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

◆ MMG2D_estavglen()

double MMG2D_estavglen ( MMG5_pMesh  mesh)
Here is the caller graph for this function:

◆ MMG2D_mmg2d9()

int MMG2D_mmg2d9 ( MMG5_pMesh  mesh,
MMG5_pSol  disp,
MMG5_pSol  met,
int **  invalidTrias 
)
Parameters
meshmesh structure
dispdisplacement structure
metmetric structure
invalidTriaxarray to store the list of invalid tria if we are unable to move
Returns
0 if fail, 1 if success to move, the opposite of the number of non valid trias if we can't move (-ninvalidTrias).

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

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

◆ MMG2D_movtrilag()

int MMG2D_movtrilag ( 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 trias with cc = itdeg and move internal points so as to make mesh more uniform.

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

◆ MMG2D_saveDisp()

int MMG2D_saveDisp ( MMG5_pMesh  mesh,
MMG5_pSol  disp 
)

For debugging purposes: save disp

◆ MMG2D_spllag()

int MMG2D_spllag ( MMG5_pMesh  mesh,
MMG5_pSol  disp,
MMG5_pSol  met,
int  itdeg,
int *  warn 
)
Parameters
meshpointer toward the mesh structure.
disppointer toward the displacement structure.
metpointer toward the metric structure.
itdegdegraded elements.
*warnwarn is set to 1 if not enough memory is available to complete mesh.
Returns
-1 if failed.
number of new points.

Split edges of length bigger than MMG5_LOPTL, in the Lagrangian mode. Only affects triangles with cc itdeg

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

◆ MMG2D_swpmshlag()

int MMG2D_swpmshlag ( MMG5_pMesh  mesh,
MMG5_pSol  met,
double  crit,
int  itdeg 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
critcoefficient of quality improvment.
itdegdegraded elements.

Internal edge flipping in the Lagrangian mode; only affects trias with cc itdeg

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