Go to the documentation of this file.
31 #include "mmgcmakedefines.h"
32 #include "mmgversion.h"
34 #ifndef _LIBMMGTYPES_H
35 #define _LIBMMGTYPES_H
43 #define MMG5_SUCCESS 0
51 #define MMG5_LOWFAILURE 1
59 #define MMG5_STRONGFAILURE 2
76 #define MMG5_ARG_start 1
85 #define MMG5_ARG_ppMesh 2
95 #define MMG5_ARG_ppLs 3
105 #define MMG5_ARG_ppMet 4
115 #define MMG5_ARG_ppDisp 5
125 #define MMG5_ARG_ppSols 6
134 #define MMG5_ARG_pMesh 7
143 #define MMG5_ARG_pMet 8
152 #define MMG5_ARG_pDisp 9
162 #define MMG5_ARG_end 10
170 #define MMG5_NSOLS_MAX 100
178 #define MMG5_FILENAME_LEN_MAX 255
186 #define MMG5_MMAT_NoSplit 0
194 #define MMG5_MMAT_Split 1
476 double dhd,hmin,hmax,
hsiz,hgrad,hgradreq,hausd;
477 double min[3],max[3],delta,ls,
rmc;
500 uint8_t optim,
optimLES, noinsert, noswap, nomove, nosurf, nosizreq;
559 int npi,nti,nai,nei,np,na,nt,ne,npmax,namax,ntmax,nemax,xpmax,
xtmax;
#define MMGS_LMAX
Definition: libmmgs.h:49
Structure to store edges of a MMG mesh.
Definition: libmmgtypes.h:274
@ MMG5_Vector
Definition: libmmgtypes.h:203
@ MMGS_DPARAM_angleDetection
Definition: libmmgs.h:77
double hmax
Definition: libmmgtypes.h:230
@ MMGS_DPARAM_hmax
Definition: libmmgs.h:79
MMG5_pPrism prism
Definition: libmmgtypes.h:593
int xtmax
Definition: libmmgtypes.h:559
int npar
Definition: libmmgtypes.h:478
int nenil
Definition: libmmgtypes.h:570
int MMGS_defaultValues(MMG5_pMesh mesh)
Definition: libmmgs_tools.c:98
int np
Definition: libmmgtypes.h:613
double c[3]
Definition: libmmgtypes.h:242
int namax
Definition: libmmgtypes.h:559
#define MG_EDG(tag)
Definition: mmgcommon.h:163
Cell of the hash table of geom edges.
Definition: libmmgtypes.h:509
int siz
Definition: libmmgtypes.h:523
#define MG_MAX(a, b)
Definition: mmgcommon.h:135
@ MMGS_IPARAM_optim
Definition: libmmgs.h:67
int v[3]
Definition: libmmgtypes.h:303
Definition: libmmgtypes.h:370
Definition: libmmgtypes.h:610
MMG5_Par * MMG5_pPar
Definition: libmmgtypes.h:234
MMG5_Point * MMG5_pPoint
Definition: libmmgtypes.h:257
int MMG5_gradsiz_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz.c:277
size_t memCur
Definition: libmmgtypes.h:554
int nc1
Definition: libmmgtypes.h:562
int s
Definition: libmmgtypes.h:252
int ref
Definition: libmmgtypes.h:276
@ MMG5_Triangle
Definition: libmmgtypes.h:215
int cc
Definition: libmmgtypes.h:306
#define MG_EOK(pt)
Definition: mmgcommon.h:161
int16_t tag
Definition: libmmgtypes.h:514
int * ipar
Definition: libmmgtypes.h:588
void MMG5_advancedUsage(void)
Definition: mmg.c:135
int xt
Definition: libmmgtypes.h:568
char * namein
Definition: libmmgtypes.h:620
int nxt
Definition: libmmgtypes.h:532
int MMGS_hashTria(MMG5_pMesh mesh)
Definition: hash_s.c:77
Hash table to store geometric edges.
Definition: libmmgtypes.h:521
int size
Definition: libmmgtypes.h:616
int rin
Definition: libmmgtypes.h:466
int imprim
Definition: libmmgtypes.h:484
MMG5_pMesh char int int * retval
Definition: API_functionsf_s.c:750
Identic as MMG5_HGeom but use MMG5_hedge to store edges instead of MMG5_hgeom (memory economy).
Definition: libmmgtypes.h:542
@ MMG5_Noentity
Definition: libmmgtypes.h:212
uint8_t optimLES
Definition: libmmgtypes.h:500
int MMGS_gradsiz_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz_s.c:805
MMG5_Edge * MMG5_pEdge
Definition: libmmgtypes.h:281
double hmin
Definition: libmmgtypes.h:229
static const uint8_t MMG5_iprv2[3]
Definition: mmgcommon.h:548
int MMGS_mmgslib(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs.c:530
MMG5_pPoint point
Definition: libmmgtypes.h:589
@ MMGS_IPARAM_nosizreq
Definition: libmmgs.h:76
int MMGS_Get_adjaTri(MMG5_pMesh mesh, int kel, int listri[3])
Return adjacent elements of a triangle.
Definition: libmmgs_tools.c:601
MMG5_Mat * MMG5_pMat
Definition: libmmgtypes.h:468
int MMGS_doSol(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs_tools.c:689
@ MMGS_DPARAM_hausd
Definition: libmmgs.h:81
int edg[3]
Definition: libmmgtypes.h:308
@ MMGS_DPARAM_hgrad
Definition: libmmgs.h:82
int16_t tag[3]
Definition: libmmgtypes.h:311
int MMGS_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, int val)
Definition: API_functions_s.c:1300
int opnbdy
Definition: libmmgtypes.h:480
@ MMGS_DPARAM_hmin
Definition: libmmgs.h:78
@ MMGS_DPARAM_ls
Definition: libmmgs.h:84
MMG5_entities
Type of mesh entities.
Definition: libmmgtypes.h:211
size_t memMax
Definition: libmmgtypes.h:553
int MMGS_memOption(MMG5_pMesh mesh)
Definition: zaldy_s.c:183
int8_t sethmax
Definition: libmmgtypes.h:499
FORTRAN_NAME(MMGS_MMGSLIB, mmgs_mmgslib,(MMG5_pMesh *mesh, MMG5_pSol *met, int *retval),(mesh, met, retval))
Definition: libmmgsf.c:50
int base
Definition: libmmgtypes.h:564
static double MMG5_lenSurfEdg_iso(MMG5_pMesh mesh, MMG5_pSol met, int ip1, int ip2, int8_t isedg)
Definition: inlined_functions.h:291
int MMGS_defsiz_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz_s.c:139
static const uint8_t MMG5_inxt2[6]
Definition: mmgcommon.h:547
int MMGS_mmgsls(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pSol umet)
Definition: libmmgs.c:295
int np
Definition: libmmgtypes.h:559
#define MMG5_FILESTR_LGTH
Definition: mmgcommon.h:132
int nsols
Definition: libmmgtypes.h:561
void MMG5_paramUsage1(void)
Definition: mmg.c:72
double rmc
Definition: libmmgtypes.h:477
int ref
Definition: libmmgtypes.h:247
int8_t nnor
Definition: libmmgtypes.h:266
MMG5_xTetra * MMG5_pxTetra
Definition: libmmgtypes.h:400
int ref
Definition: libmmgtypes.h:232
int(* MMGS_defsiz)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgsexterns.c:5
MMG5_pMesh * mesh
Definition: API_functionsf_s.c:63
int k
Definition: libmmgtypes.h:533
MMG5_pxTetra xtetra
Definition: libmmgtypes.h:592
To store user-defined references in the mesh (useful in LS mode)
Definition: libmmgtypes.h:464
void MMG5_mmgDefaultValues(MMG5_pMesh mesh)
Definition: mmg.c:150
int s
Definition: libmmgtypes.h:534
int MMGS_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, int np, int typSol)
Definition: API_functions_s.c:88
@ MMG5_Tetrahedron
Definition: libmmgtypes.h:216
int * adja
Definition: libmmgtypes.h:572
MMG5_pTria tria
Definition: libmmgtypes.h:595
double qual
Definition: libmmgtypes.h:371
void MMGS_destockOptions(MMG5_pMesh mesh, MMG5_Info *info)
Definition: libmmgs_tools.c:458
int movridpt_ani(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: anisomovpt_s.c:235
int mark
Definition: libmmgtypes.h:566
#define MMG5_ADD_MEM(mesh, size, message, law)
Definition: mmgcommon.h:290
MMG5_pQuad quadra
Definition: libmmgtypes.h:596
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:384
#define MMG_FSCANF(stream, format,...)
Definition: mmgcommon.h:432
#define MMG5_SAFE_RECALLOC(ptr, prevSize, newSize, type, message, law)
Definition: mmgcommon.h:341
int flag
Definition: libmmgtypes.h:378
@ MMGS_IPARAM_iso
Definition: libmmgs.h:65
@ MMGS_IPARAM_keepRef
Definition: libmmgs.h:66
MMG5_HGeom htab
Definition: libmmgtypes.h:598
int ref
Definition: libmmgtypes.h:304
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:241
int8_t tag
Definition: libmmgtypes.h:438
API headers for the mmgs library.
char * nameout
Definition: libmmgtypes.h:621
int(* MMGS_gradsiz)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgsexterns.c:7
int xpr
Definition: libmmgtypes.h:436
void MMGS_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs_tools.c:39
Structure to store the surface prism of a MMG mesh.
Definition: libmmgtypes.h:446
@ MMGS_IPARAM_angle
Definition: libmmgs.h:64
double MMG5_caltri_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
Definition: quality.c:115
int8_t ddebug
Definition: libmmgtypes.h:487
int b
Definition: libmmgtypes.h:275
double * m
Definition: libmmgtypes.h:618
double umin
Definition: libmmgtypes.h:619
int MMGS_usage(char *prog)
Definition: libmmgs_tools.c:70
int MMGS_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
Definition: API_functions_s.c:71
int8_t ori
Definition: libmmgtypes.h:396
MMG5_xPrism * MMG5_pxPrism
Definition: libmmgtypes.h:458
static double MMG5_lenSurfEdg_ani(MMG5_pMesh mesh, MMG5_pSol met, int np0, int np1, int8_t isedg)
Definition: inlined_functions.h:198
int nxt
Definition: libmmgtypes.h:513
int MMG5_Compute_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double *hsiz)
Definition: API_functions.c:555
MMG5_hgeom * geom
Definition: libmmgtypes.h:522
int MMGS_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
Definition: API_functions_s.c:76
#define MG_MIN(a, b)
Definition: mmgcommon.h:136
int npari
Definition: libmmgtypes.h:478
MMG5_xPoint * MMG5_pxPoint
Definition: libmmgtypes.h:268
int MMG5_compute_meanMetricAtMarkedPoints_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz.c:1685
int na
Definition: libmmgtypes.h:559
MMG5_Tria * MMG5_pTria
Definition: libmmgtypes.h:314
int16_t tag
Definition: libmmgtypes.h:279
int16_t tag
Definition: libmmgtypes.h:253
Definition: libmmgtypes.h:301
int nanil
Definition: libmmgtypes.h:571
Used to hash edges (memory economy compared to MMG5_hgeom).
Definition: libmmgtypes.h:531
@ MMGS_DPARAM_hsiz
Definition: libmmgs.h:80
int8_t dospl
Definition: libmmgtypes.h:465
int ver
Definition: libmmgtypes.h:611
@ MMGS_IPARAM_numsubdomain
Definition: libmmgs.h:73
int nquad
Definition: libmmgtypes.h:560
int ref
Definition: libmmgtypes.h:337
MMG5_pMat mat
Definition: libmmgtypes.h:502
int mem
Definition: libmmgtypes.h:478
int8_t badkal
Definition: libmmgtypes.h:488
int type
Definition: libmmgtypes.h:617
int flag
Definition: libmmgtypes.h:435
int base
Definition: libmmgtypes.h:305
@ MMG5_Notype
Definition: libmmgtypes.h:201
int MMGS_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
Definition: API_functions_s.c:62
int nsd
Definition: libmmgtypes.h:485
void MMG5_mmgUsage(char *prog)
Definition: mmg.c:44
MMG5_pxPrism xprism
Definition: libmmgtypes.h:594
MMG5_pxPoint xpoint
Definition: libmmgtypes.h:590
int MMGS_Compute_eigenv(double m[6], double lambda[3], double vp[3][3])
Definition: libmmgs_tools.c:841
double(* MMG5_lenSurfEdg)(MMG5_pMesh mesh, MMG5_pSol sol, int, int, int8_t)
Definition: mmgexterns.c:29
int nmati
Definition: libmmgtypes.h:483
strncpy(tmp, meshin, *strlen0)
int npnil
Definition: libmmgtypes.h:569
double qual
Definition: libmmgtypes.h:302
MMG5_Sol * MMG5_pSol
Definition: libmmgtypes.h:623
int intmet_iso(MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t i, int ip, double s)
Definition: intmet_s.c:77
tmp[*strlen0]
Definition: API_functionsf_s.c:757
int xp
Definition: libmmgtypes.h:248
MMG5_pTetra tetra
Definition: libmmgtypes.h:591
Structure to store the surface tetrahedra of a MMG mesh.
Definition: libmmgtypes.h:387
@ MMG5_Tensor
Definition: libmmgtypes.h:204
int MMGS_Get_nonBdyEdge(MMG5_pMesh mesh, int *e0, int *e1, int *ref, int idx)
Definition: libmmgs_tools.c:559
int8_t fem
Definition: libmmgtypes.h:493
@ MMGS_IPARAM_nreg
Definition: libmmgs.h:71
void MMG5_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double hsiz)
Definition: API_functions.c:393
int base
Definition: libmmgtypes.h:434
int renum
Definition: libmmgtypes.h:481
double MMG5_caltri_iso(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
Definition: quality.c:198
MMG5_Mesh * MMG5_pMesh
Definition: libmmgtypes.h:604
int base
Definition: libmmgtypes.h:277
int(* movridpt)(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: mmgsexterns.c:10
int dim
Definition: libmmgtypes.h:612
int MMGS_defsiz_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz_s.c:708
uint8_t optim
Definition: libmmgtypes.h:500
Definition: libmmgtypes.h:335
@ MMGS_IPARAM_verbose
Definition: libmmgs.h:61
int nt
Definition: libmmgtypes.h:559
int base
Definition: libmmgtypes.h:338
MMG5_hedge * item
Definition: libmmgtypes.h:544
double hausd
Definition: libmmgtypes.h:231
MMG mesh structure.
Definition: libmmgtypes.h:552
double(* MMG5_calelt)(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
Definition: mmgsexterns.c:6
int siz
Definition: libmmgtypes.h:543
@ MMGS_IPARAM_mem
Definition: libmmgs.h:62
int movintpt_ani(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: anisomovpt_s.c:48
@ MMGS_IPARAM_noinsert
Definition: libmmgs.h:68
MMG5_pPar par
Definition: libmmgtypes.h:475
int a
Definition: libmmgtypes.h:510
Structure to store surface points of a MMG mesh.
Definition: libmmgtypes.h:263
int MMGS_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs_tools.c:816
int npmax
Definition: libmmgtypes.h:614
@ MMG5_Edg
Definition: libmmgtypes.h:214
int flag
Definition: libmmgtypes.h:310
int ver
Definition: libmmgtypes.h:556
MMG5_Quad * MMG5_pQuad
Definition: libmmgtypes.h:344
int8_t iso
Definition: libmmgtypes.h:489
int * adjq
Definition: libmmgtypes.h:584
void MMG5_paramUsage2(void)
Definition: mmg.c:89
int base
Definition: libmmgtypes.h:374
int intmet_ani(MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t i, int ip, double s)
Definition: intmet_s.c:104
int movridpt_iso(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: movpt_s.c:620
int movintpt_iso(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: movpt_s.c:41
int type
Definition: libmmgtypes.h:558
double hmax
Definition: libmmgtypes.h:476
int ref
Definition: libmmgtypes.h:433
Definition: libmmgtypes.h:228
char * namein
Definition: libmmgtypes.h:600
int8_t sethmin
Definition: libmmgtypes.h:498
int PROctree
Definition: libmmgtypes.h:482
MMG5_Info info
Definition: libmmgtypes.h:599
int MMGS_Set_dparameter(MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val)
Definition: API_functions_s.c:1450
int MMG5_gradsizreq_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz.c:1801
int flag
Definition: libmmgtypes.h:251
int * adjapr
Definition: libmmgtypes.h:580
int a
Definition: libmmgtypes.h:275
int8_t elt
Definition: libmmgtypes.h:233
int npmax
Definition: libmmgtypes.h:559
int ref
Definition: libmmgtypes.h:512
int ref
Definition: libmmgtypes.h:373
Store input parameters of the run.
Definition: libmmgtypes.h:474
int16_t tag
Definition: libmmgtypes.h:379
char * nameout
Definition: libmmgtypes.h:601
@ MMGS_IPARAM_renum
Definition: libmmgs.h:74
int(* intmet)(MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t i, int ip, double s)
Definition: mmgsexterns.c:9
#define MMG5_SAFE_CALLOC(ptr, size, type, law)
Definition: mmgcommon.h:304
int8_t nreg
Definition: libmmgtypes.h:486
int MMG5_gradsizreq_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz.c:368
@ MMG5_Scalar
Definition: libmmgtypes.h:202
int(* MMGS_gradsizreq)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgsexterns.c:8
#define MMG5_DEL_MEM(mesh, ptr)
Definition: mmgcommon.h:281
@ MMGS_DPARAM_hgradreq
Definition: libmmgs.h:83
MMG5_pEdge edge
Definition: libmmgtypes.h:597
int(* movintpt)(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: mmgsexterns.c:4
void MMGS_Free_solutions(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmgs_tools.c:847
int8_t lag
Definition: libmmgtypes.h:494
double gap
Definition: libmmgtypes.h:555
Definition: libmmgtypes.h:431
int mark
Definition: libmmgtypes.h:375
MMG5_type
Type of solutions.
Definition: libmmgtypes.h:200
int8_t setfem
Definition: libmmgtypes.h:490
int MMG5_compute_meanMetricAtMarkedPoints_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz.c:167
int8_t tagdel
Definition: libmmgtypes.h:255
int * adjt
Definition: libmmgtypes.h:576
int nbr
Definition: libmmgtypes.h:479
double hsiz
Definition: libmmgtypes.h:476
int tmp
Definition: libmmgtypes.h:249
int ntmax
Definition: libmmgtypes.h:559
int MMGS_Get_adjaVerticesFast(MMG5_pMesh mesh, int ip, int start, int lispoi[MMGS_LMAX])
Return adjacent elements of a triangle.
Definition: libmmgs_tools.c:615
int b
Definition: libmmgtypes.h:511
uint8_t metRidTyp
Definition: libmmgtypes.h:501
int dim
Definition: libmmgtypes.h:557
@ MMGS_IPARAM_nomove
Definition: libmmgs.h:70
int xt
Definition: libmmgtypes.h:376
@ MMG5_Vertex
Definition: libmmgtypes.h:213
int MMGS_stockOptions(MMG5_pMesh mesh, MMG5_Info *info)
Definition: libmmgs_tools.c:445
int(* MMG5_compute_meanMetricAtMarkedPoints)(MMG5_pMesh, MMG5_pSol)
Definition: mmgexterns.c:34
MMG5_Prism * MMG5_pPrism
Definition: libmmgtypes.h:440
int MMGS_Get_numberOfNonBdyEdges(MMG5_pMesh mesh, int *nb_edges)
Definition: libmmgs_tools.c:464
@ MMGS_IPARAM_noswap
Definition: libmmgs.h:69
int npi
Definition: libmmgtypes.h:615
MMG5_Tetra * MMG5_pTetra
Definition: libmmgtypes.h:381
@ MMGS_IPARAM_debug
Definition: libmmgs.h:63
int8_t parTyp
Definition: libmmgtypes.h:495
if(!ier) exit(EXIT_FAILURE)
int MMGS_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
Definition: API_functions_s.c:67