mmg3d
isosiz_3d.c File Reference

Fonctions for isotropic size map computation. More...

#include "mmg3d.h"
#include "inlined_functions.h"
Include dependency graph for isosiz_3d.c:

Macros

#define MAXLEN   1.0e9
 
#define A64TH   0.015625
 
#define A16TH   0.0625
 
#define A32TH   0.03125
 

Functions

double _MMG5_lenedgCoor_iso (double *ca, double *cb, double *ma, double *mb)
 Compute edge length from edge's coordinates. More...
 
static double _MMG5_defsizreg (MMG5_pMesh mesh, MMG5_pSol met, int nump, int *lists, int ilists, double hmin, double hmax, double hausd)
 
double _MMG5_meansizreg_iso (MMG5_pMesh mesh, MMG5_pSol met, int nump, int *lists, int ilists, double hmin, double hmax)
 
int _MMG3D_defsiz_iso (MMG5_pMesh mesh, MMG5_pSol met)
 
int _MMG5_gradsiz_iso (MMG5_pMesh mesh, MMG5_pSol met)
 

Variables

char ddb
 

Detailed Description

Fonctions for isotropic size map computation.

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

Macro Definition Documentation

◆ A16TH

#define A16TH   0.0625

◆ A32TH

#define A32TH   0.03125

◆ A64TH

#define A64TH   0.015625

◆ MAXLEN

#define MAXLEN   1.0e9

Function Documentation

◆ _MMG3D_defsiz_iso()

int _MMG3D_defsiz_iso ( MMG5_pMesh  mesh,
MMG5_pSol  met 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
Returns
0 if fail, 1 otherwise.

Define isotropic size map at all boundary vertices of the mesh, associated with geometric approx, and prescribe hmax at the internal vertices Field h of Point is used, to store the prescribed size (not inverse, squared,...)

1) Size at internal points











First step: search for local parameters










Second step: set the metric









Set size at points that cannot be reached from the tetra








First step: search for local parameters







Second step: set the metric






Set size at points that cannot be reached from the tetra





2) size at regular surface points




First step: search for local parameters



Second step: set the metric


3) Travel all boundary faces to update size prescription for points on ridges/edges

First step: search for local parameters
Second step: set metric

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

◆ _MMG5_defsizreg()

static double _MMG5_defsizreg ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  nump,
int *  lists,
int  ilists,
double  hmin,
double  hmax,
double  hausd 
)
static
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
numpindex of point in which the size must be computed.
listspointer toward the surfacic ball of nump.
ilistssize of surfacic ball of nump.
hminminimal edge size.
hmaxmaximal edge size.
hausdhausdorff value.
Returns
the isotropic size at the point if success, FLT_MAX if fail.

Define isotropic size at regular point nump, whose surfacic ball is provided.

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

◆ _MMG5_gradsiz_iso()

int _MMG5_gradsiz_iso ( MMG5_pMesh  mesh,
MMG5_pSol  met 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
Returns
0 if fail, 1 otherwise.

Enforce mesh gradation by truncating size map.

Here is the caller graph for this function:

◆ _MMG5_lenedgCoor_iso()

double _MMG5_lenedgCoor_iso ( double *  ca,
double *  cb,
double *  ma,
double *  mb 
)
inline

Compute edge length from edge's coordinates.

Parameters
*capointer toward the coordinates of the first edge's extremity.
*cbpointer toward the coordinates of the second edge's extremity.
*mapointer toward the metric associated to the first edge's extremity.
*mbpointer toward the metric associated to the second edge's extremity.
Returns
edge length.

Compute length of edge $[ca,cb]$ (with ca and cb coordinates of edge extremities) according to the isotropic size prescription.

Here is the caller graph for this function:

◆ _MMG5_meansizreg_iso()

double _MMG5_meansizreg_iso ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  nump,
int *  lists,
int  ilists,
double  hmin,
double  hmax 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
numpindex of point in which the size must be computed.
listspointer toward the surfacic ball of nump.
ilistssize of surfacic ball of nump.
hminminimal edge size.
hmaxmaximal edge size.
Returns
the isotropic size at the point.

For -nosurf option : define isotropic size at regular point nump, whose surfacic ball is provided. The size is computed as the mean of the length of the surface edges passing through nump.

Here is the caller graph for this function:

Variable Documentation

◆ ddb

char ddb