Analysis routine for an input mesh without structure passing through a point.
More...
Analysis routine for an input mesh without structure passing through a point.
- Author
- Charles Dapogny (UPMC)
-
Cécile Dobrzynski (Bx INP/Inria/UBordeaux)
-
Pascal Frey (UPMC)
-
Algiane Froehly (Inria/UBordeaux)
- Version
- 5
- Copyright
- GNU Lesser General Public License.
◆ MMG2D_analys()
preprocessing stage: mesh analysis
◆ MMG2D_norver()
- Parameters
-
mesh | pointer toward the mesh structure |
ref | reference of the boundary to analyze (analyze all the boundaries if MMG5_UNSET) |
- Returns
- 1 if success, 0 if fail.
Calculate normal vectors at vertices of the mesh.
Mark the points that we don't want to analyze
◆ MMG2D_regnor()
- Parameters
-
mesh | pointer toward the mesh |
- Returns
- 0 if fail, 1 if success
Regularize normal vectors at boundary non singular edges with a Laplacian / antilaplacian smoothing
◆ MMG2D_setadj()
- Parameters
-
mesh | pointer toward the mesh |
- Returns
- 1 if success, 0 if fail
Set tags GEO and REF to triangles and points by traveling the mesh; count number of subdomains or connected components
◆ MMG2D_singul()
- Parameters
-
mesh | pointer toward the mesh structure |
ref | reference of the boundary to analyze (analyze all the boundaries if MMG5_UNSET) |
- Returns
- 1 if success, 0 if fail.
Identify singularities in the mesh.
Mark the points that we don't want to analyze
Singularity identification
◆ ddb
Structure to store edges of a MMG mesh.
Definition: libmmgtypes.h:243
#define MMG5_ARG_ppSols
Definition: libmmgtypes.h:122
int(* MMG5_compute_meanMetricAtMarkedPoints)(MMG5_pMesh, MMG5_pSol)
Definition: mmgexterns.c:34
! double * m
Definition: libmmgtypesf.h:627
double hmax
Definition: libmmgtypes.h:203
int(* MMG5_indPt)(MMG5_pMesh mesh, int kp)
Definition: mmgexterns.c:31
int(* MMG5_grad2met_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:32
int npar
Definition: libmmgtypes.h:447
#define MG_BDY
Definition: mmgcommon.h:145
int nenil
Definition: libmmgtypes.h:527
! int ntmax
Definition: libmmgtypesf.h:571
! int nsols
Definition: libmmgtypesf.h:573
double c[3]
Definition: libmmgtypes.h:215
double(* MMG5_lenSurfEdg)(MMG5_pMesh mesh, MMG5_pSol sol, int, int, char)
Definition: mmgexterns.c:29
int MMG2D_optlap(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: optlap_2d.c:40
int namax
Definition: libmmgtypes.h:516
static void MMG2D_Set_commonFunc()
Definition: mmg2d.h:375
#define MG_EDG(tag)
Definition: mmgcommon.h:162
double(* MMG2D_caltri)(MMG5_pMesh, MMG5_pSol, MMG5_pTria)
Definition: mmg2d.c:31
int MMG2D_split2_sim(MMG5_pMesh mesh, MMG5_pSol sol, int k, int vx[3])
Definition: split_2d.c:450
#define MG_MAX(a, b)
Definition: mmgcommon.h:136
double hmin
Definition: libmmgtypes.h:445
int MMG2D_newPt(MMG5_pMesh mesh, double c[2], int16_t tag)
Definition: zaldy_2d.c:38
int v[3]
Definition: libmmgtypes.h:272
#define MMG5_MILLION
Definition: mmgcommon.h:88
double MMG2D_quickcal(MMG5_pMesh mesh, MMG5_pTria pt)
Definition: quality_2d.c:45
int MMG2D_chkspl(MMG5_pMesh mesh, MMG5_pSol met, int k, char i)
Definition: split_2d.c:50
Definition: libmmgtypes.h:563
#define MG_SIN(tag)
Definition: mmgcommon.h:163
int MMG2D_newPt(MMG5_pMesh mesh, double c[2], int16_t tag)
Definition: zaldy_2d.c:38
int MMG2D_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
Definition: API_functions_2d.c:77
static void MMG2D_Init_woalloc_mesh(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pSol disp)
Definition: variadic_2d.c:88
! int * adja
Definition: libmmgtypesf.h:584
MMG5_SAFE_MALLOC(tmp, *strlen0+1, char, return)
#define MMG5_ARG_ppDisp
Definition: libmmgtypes.h:112
#define MMG5_NULKAL
Definition: mmgcommon.h:99
void MMG2D_delPt(MMG5_pMesh mesh, int ip)
Definition: zaldy_2d.c:57
double MMG2D_caltri_iso(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria pt)
Definition: quality_2d.c:59
int MMG2D_delElt(MMG5_pMesh mesh, int iel)
Definition: zaldy_2d.c:105
void MMG5_displayLengthHisto_internal(int ned, int amin, int bmin, double lmin, int amax, int bmax, double lmax, int nullEdge, double *bd, int *hl, char shift, int imprim)
Definition: quality.c:294
#define MG_EOK(pt)
Definition: mmgcommon.h:160
int MMG2D_outqua(MMG5_pMesh mesh, MMG5_pSol met)
Definition: quality_2d.c:156
#define MG_NOM
Definition: mmgcommon.h:144
#define MMG5_ARG_start
Definition: libmmgtypes.h:73
int MMG2D_scaleMesh(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: scalem_2d.c:47
char iso
Definition: libmmgtypes.h:453
#define MMG5_MEMMIN
Definition: mmgcommon.h:112
int size
Definition: libmmgtypes.h:569
int MMG2D_memOption(MMG5_pMesh mesh)
Definition: zaldy_2d.c:218
int MMG2D_Free_structures(const int starter,...)
Definition: API_functions_2d.c:1465
! int mem
Definition: libmmgtypesf.h:497
double hmin
Definition: libmmgtypes.h:202
! int nt
Definition: libmmgtypesf.h:571
void MMG2D_Init_fileNames(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: API_functions_2d.c:56
MMG5_pPoint point
Definition: libmmgtypes.h:542
MMG5_Info info
Definition: libmmgtypesf.h:607
#define MMG2D_PRECI
Definition: mmg2d.h:54
int(* MMG5_grad2metreq_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:33
! int k
Definition: libmmgtypesf.h:543
#define MG_GET(flag, bit)
Definition: mmgcommon.h:169
int edg[3]
Definition: libmmgtypes.h:277
int MMG5_scaleMesh(MMG5_pMesh mesh, MMG5_pSol met)
Definition: scalem.c:89
int16_t tag[3]
Definition: libmmgtypes.h:280
int MMG2D_chkswp(MMG5_pMesh mesh, MMG5_pSol met, int k, char i, char typchk)
Definition: swapar_2d.c:128
double MMG5_surftri33_ani(MMG5_pMesh mesh, MMG5_pTria ptt, double ma[6], double mb[6], double mc[6])
Definition: anisosiz.c:169
int(* MMG5_indPt)(MMG5_pMesh mesh, int kp)
Definition: mmgexterns.c:31
size_t memMax
Definition: libmmgtypes.h:510
double max[3]
Definition: libmmgtypes.h:446
int MMG5_boundingBox(MMG5_pMesh mesh)
Definition: scalem.c:45
double MMG5_caltri_iso(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
Definition: quality.c:198
int base
Definition: libmmgtypes.h:521
! double n1[3]
Definition: libmmgtypesf.h:275
MMG5_pMesh MMG5_pSol * sol
Definition: API_functionsf_2d.c:63
! int nxt
Definition: libmmgtypesf.h:521
MMG5_Bezier * MMG5_pBezier
Definition: mmgcommon.h:486
#define MG_VOK(ppt)
Definition: mmgcommon.h:159
int np
Definition: libmmgtypes.h:516
! char imprim
Definition: libmmgtypesf.h:503
#define MMG5_MEMMAX
Definition: mmgcommon.h:73
double MMG2D_caltri_iso(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pTria)
Definition: quality_2d.c:59
int ref
Definition: libmmgtypes.h:217
unsigned char optim
Definition: libmmgtypes.h:457
#define MMG5_MEMPERCENT
Definition: mmgcommon.h:75
char tagdel
Definition: libmmgtypes.h:225
int MMG2D_velextLS(MMG5_pMesh, MMG5_pSol)
#define MMG5_EPSOK
Definition: mmgcommon.h:98
int MMG2D_swapdelone(MMG5_pMesh mesh, MMG5_pSol sol, int k, char i, double crit, int *list)
Definition: swapar_2d.c:39
Cell for linked list of double value.
int * adja
Definition: libmmgtypes.h:529
static const unsigned char MMG5_iprv2[3]
Definition: mmgcommon.h:471
double hausd
Definition: libmmgtypes.h:445
MMG5_pTria tria
Definition: libmmgtypes.h:548
const int va_list argptr
Definition: API_functionsf_2d.c:592
static int MMG2D_Alloc_mesh(MMG5_pMesh *mesh, MMG5_pSol *sol, MMG5_pSol *disp)
Definition: variadic_2d.c:52
int MMG2D_doSol(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: solmap_2d.c:46
void MMG2D_Init_parameters(MMG5_pMesh mesh)
Definition: API_functions_2d.c:80
void MMG5_mmgFree_names(MMG5_pMesh mesh, MMG5_pSol met)
Definition: API_functions.c:434
MMG5_pMesh * mesh
Definition: API_functionsf_2d.c:63
#define MMG5_ADD_MEM(mesh, size, message, law)
Definition: mmgcommon.h:275
#define MG_GEO
Definition: mmgcommon.h:142
int MMG5_eigenv(int symmat, double *mat, double lambda[3], double v[3][3])
Find eigenvalues and vectors of a 3x3 matrix.
Definition: eigenv.c:356
int MMG5_minQualCheck(int iel, double minqual, double alpha)
Definition: quality.c:343
void MMG5_delEdge(MMG5_pMesh mesh, int iel)
Definition: zaldy_2d.c:70
int MMG2D_split3(MMG5_pMesh mesh, MMG5_pSol sol, int k, int vx[3])
Definition: split_2d.c:624
! int v[3]
Definition: libmmgtypesf.h:315
static int MMG2D_memOption_memSet(MMG5_pMesh mesh)
Definition: zaldy_2d.c:157
double MMG5_caltri_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
Definition: quality.c:115
int MMG2D_bezierCurv(MMG5_pMesh mesh, int k, char i, double s, double *o, double *no)
Definition: bezier_2d.c:117
void MMG2D_delPt(MMG5_pMesh mesh, int ip)
Definition: zaldy_2d.c:57
int ref
Definition: libmmgtypes.h:273
int MMG2D_simred(MMG5_pMesh mesh, double *m, double *n, double dm[2], double dn[2], double vp[2][2])
Definition: simred_2d.c:49
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:214
int b
Definition: libmmgtypes.h:244
double * m
Definition: libmmgtypes.h:571
#define MMG5_ARG_end
Definition: libmmgtypes.h:159
#define MG_NOTAG
Definition: mmgcommon.h:140
double delta
Definition: libmmgtypes.h:446
! int npmax
Definition: libmmgtypesf.h:571
int MMG2D_movintpt(MMG5_pMesh mesh, MMG5_pSol met, int ilist, int *list, char improve)
Definition: movpt_2d.c:212
#define MMG2D_POINT_REALLOC(mesh, sol, ip, wantedGap, law, o, tag)
Definition: mmg2d.h:140
! int ver
Definition: libmmgtypesf.h:568
#define MMG2D_NPMAX
Definition: mmg2d.h:70
#define MMG2D_ALPHAD
Definition: mmg2d.h:57
double ls
Definition: libmmgtypes.h:446
#define MG_MIN(a, b)
Definition: mmgcommon.h:137
#define MMG2D_BADKAL
Definition: mmg2d.h:59
#define MMG5_INCREASE_MEM_MESSAGE()
Definition: mmgcommon.h:374
! int dim
Definition: libmmgtypesf.h:569
int MMG2D_split1(MMG5_pMesh mesh, MMG5_pSol sol, int k, int vx[3])
Definition: split_2d.c:384
int na
Definition: libmmgtypes.h:516
MMG5_Tria * MMG5_pTria
Definition: libmmgtypes.h:283
int(* MMG2D_intmet)(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: mmg2d.c:28
char imprim
Definition: libmmgtypes.h:453
! int ne
Definition: libmmgtypesf.h:571
int MMG2D_Free_names(const int starter,...)
Definition: API_functions_2d.c:1480
#define MMG5_EPS
Definition: eigenv.h:32
int16_t tag
Definition: libmmgtypes.h:223
int MMG2D_unscaleMesh(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: scalem_2d.c:311
Definition: libmmgtypes.h:270
int nanil
Definition: libmmgtypes.h:528
void MMG5_displayLengthHisto(MMG5_pMesh mesh, int ned, double *avlen, int amin, int bmin, double lmin, int amax, int bmax, double lmax, int nullEdge, double *bd, int *hl, char shift)
Definition: quality.c:251
#define MMG2D_TRIA_REALLOC(mesh, jel, wantedGap, law)
Definition: mmg2d.h:168
Cell for linked list of integer value.
int MMG5_eigensym(double m[3], double lambda[2], double vp[2][2])
Definition: eigenv.c:746
double MMG2D_quickarea(double a[2], double b[2], double c[2])
Definition: tools.c:856
int MMG2D_movedgpt(MMG5_pMesh mesh, MMG5_pSol met, int ilist, int *list, char improve)
Definition: movpt_2d.c:52
int MMG2D_split3_sim(MMG5_pMesh mesh, MMG5_pSol sol, int k, int vx[3])
Definition: split_2d.c:586
#define MG_NUL
Definition: mmgcommon.h:152
int mem
Definition: libmmgtypes.h:447
size_t MMG5_memSize(void)
Definition: tools.c:546
int base
Definition: libmmgtypes.h:274
! int b
Definition: libmmgtypesf.h:286
double MMG2D_caltri_ani(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pTria)
Definition: quality_2d.c:95
int MMG2D_Free_names_var(va_list argptr)
Definition: variadic_2d.c:440
int MMG5_minQualCheck(int iel, double minqual, double alpha)
Definition: quality.c:343
int MMG2D_swapar(MMG5_pMesh mesh, int k, char i)
Definition: swapar_2d.c:221
! double c[3]
Definition: libmmgtypesf.h:255
! int16_t tag
Definition: libmmgtypesf.h:263
#define MMG2D_EPSD
Definition: mmg2d.h:51
! int np
Definition: libmmgtypesf.h:571
#define MMG5_ATHIRD
Definition: mmgcommon.h:93
int npnil
Definition: libmmgtypes.h:526
int MMG2D_setMeshSize_alloc(MMG5_pMesh mesh)
Definition: zaldy_2d.c:237
double qual
Definition: libmmgtypes.h:271
void MMG5_memOption_memSet(MMG5_pMesh mesh)
Definition: tools.c:585
MMG5_Sol * MMG5_pSol
Definition: libmmgtypes.h:576
char fem
Definition: libmmgtypes.h:453
! double n2[3]
Definition: libmmgtypesf.h:275
#define MMG5_EPSD2
Definition: mmgcommon.h:96
#define MMG5_ARG_ppMesh
Definition: libmmgtypes.h:82
MMG5_Mesh * MMG5_pMesh
Definition: libmmgtypes.h:557
! MMG5_pPar par
Definition: libmmgtypesf.h:494
int MMG2D_Init_mesh_var(va_list argptr)
Definition: variadic_2d.c:146
int MMG2D_newElt(MMG5_pMesh mesh)
Definition: zaldy_2d.c:85
int nt
Definition: libmmgtypes.h:516
#define MG_SET(flag, bit)
Definition: mmgcommon.h:167
double hausd
Definition: libmmgtypes.h:204
MMG mesh structure.
Definition: libmmgtypes.h:509
MMG5_pPar par
Definition: libmmgtypes.h:444
int flag
Definition: libmmgtypes.h:279
int ver
Definition: libmmgtypes.h:513
double val
Definition: mmgcommon.h:503
#define MMG2D_NULKAL
Definition: mmg2d.h:60
char badkal
Definition: libmmgtypes.h:453
int MMG2D_split1_sim(MMG5_pMesh mesh, MMG5_pSol sol, int k, int vx[3])
Definition: split_2d.c:339
#define MMG5_ARG_ppMet
Definition: libmmgtypes.h:102
int(* MMG5_chkmsh)(MMG5_pMesh, int, int)
Definition: mmgexterns.c:27
double hmax
Definition: libmmgtypes.h:445
Definition: libmmgtypes.h:201
double MMG2D_quickcal(MMG5_pMesh, MMG5_pTria)
Definition: quality_2d.c:45
char * namein
Definition: libmmgtypes.h:553
MMG5_Info info
Definition: libmmgtypes.h:552
int a
Definition: libmmgtypes.h:244
int npmax
Definition: libmmgtypes.h:516
! typedef struct @1 MMG5_Point
int MMG2D_splitbar(MMG5_pMesh mesh, int k, int ip)
Definition: split_2d.c:715
! double n[3]
Definition: libmmgtypesf.h:256
Store input parameters of the run.
Definition: libmmgtypes.h:443
char * nameout
Definition: libmmgtypes.h:554
int MMG5_Set_defaultTruncatureSizes(MMG5_pMesh mesh, char sethmin, char sethmax)
Definition: API_functions.c:458
#define MMG5_ARG_ppLs
Definition: libmmgtypes.h:92
int MMG2D_zaldy(MMG5_pMesh mesh)
Definition: zaldy_2d.c:283
static const unsigned char MMG5_inxt2[6]
Definition: mmgcommon.h:470
#define MMG5_SAFE_CALLOC(ptr, size, type, law)
Definition: mmgcommon.h:289
double MMG5_caltri33_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria pt)
Definition: quality.c:47
int(* MMG5_bezierCP)(MMG5_pMesh, MMG5_Tria *, MMG5_pBezier, char)
Definition: mmgexterns.c:28
int MMG2D_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, int np, int typSol)
Definition: API_functions_2d.c:284
#define MMG5_DEL_MEM(mesh, ptr)
Definition: mmgcommon.h:266
MMG5_pEdge edge
Definition: libmmgtypes.h:550
int MMG2D_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
Definition: API_functions_2d.c:68
int ier
Definition: API_functionsf_2d.c:594
char ddebug
Definition: libmmgtypes.h:453
! int size
Definition: libmmgtypesf.h:625
char lag
Definition: libmmgtypes.h:453
double min[3]
Definition: libmmgtypes.h:446
double gap
Definition: libmmgtypes.h:512
#define MMG5_DISPREF
Definition: mmgcommon.h:85
int MMG2D_newElt(MMG5_pMesh mesh)
Definition: zaldy_2d.c:85
int MMG5_unscaleMesh(MMG5_pMesh mesh, MMG5_pSol met)
Definition: scalem.c:260
#define MMG2D_NEMAX
Definition: mmg2d.h:72
! MMG5_pPoint point
Definition: libmmgtypesf.h:597
void MMG5_Free_structures(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: API_functions.c:401
int(* MMG5_indElt)(MMG5_pMesh mesh, int kel)
Definition: mmgexterns.c:30
double hsiz
Definition: libmmgtypes.h:445
if(!ier) exit(EXIT_FAILURE)
int ntmax
Definition: libmmgtypes.h:516
int tmp
Definition: libmmgtypes.h:219
int MMG5_boundingBox(MMG5_pMesh mesh)
Definition: scalem.c:45
! int cc
Definition: libmmgtypesf.h:318
#define MMG5_EPSD
Definition: eigenv.h:31
int dim
Definition: libmmgtypes.h:514
double MMG2D_lencurv_ani(MMG5_pMesh mesh, MMG5_pSol met, int ip1, int ip2)
Definition: length_2d.c:81
@ MMG5_Vertex
Definition: libmmgtypes.h:186
int MMG5_getnElt(MMG5_pMesh mesh, int n)
Definition: zaldy_2d.c:128
int MMG2D_split2(MMG5_pMesh mesh, MMG5_pSol sol, int k, int vx[3])
Definition: split_2d.c:499
int MMG2D_Free_all_var(va_list argptr)
Definition: variadic_2d.c:239
void __attribute__((unused))
Definition: velextls_2d.c:390
int MMG2D_Free_structures_var(va_list argptr)
Definition: variadic_2d.c:340
int MMG2D_split1b(MMG5_pMesh mesh, int k, char i, int ip)
Definition: split_2d.c:238
! int a
Definition: libmmgtypesf.h:286
double MMG2D_caltri_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria pt)
Definition: quality_2d.c:95
double n[3]
Definition: libmmgtypes.h:216