mmg2d
libmmgtypesf.h
Go to the documentation of this file.
1 ! /* This file is automatically generated by the"genheader.c" code
2 ! ** and the "genfort.pl" script (scripts directory).
3 ! ** Do not modified it by hand, it will be discarded.
4 ! **
5 ! ** This scripts recopy the macros of the libmmg*.h file
6 ! ** and convert enumerations into macros.
7 ! **
8 ! ** Note: "genfort.pl" is automatically called by the "genheader.c"
9 ! ** executable code.
10 ! **
11 ! ** See the "libmmg*.h" file for a correct displaying of the documentation.
12 ! */
13 
14 #define MMG5_DATA_PTR_T INTEGER(kind=4)
15 ! /* =============================================================================
16 ! ** This file is part of the mmg software package for the tetrahedral
17 ! ** mesh modification.
18 ! ** Copyright (c) Bx INP/CNRS/Inria/UBordeaux/UPMC, 2004-
19 ! **
20 ! ** mmg is free software: you can redistribute it and/or modify it
21 ! ** under the terms of the GNU Lesser General Public License as published
22 ! ** by the Free Software Foundation, either version 3 of the License, or
23 ! ** (at your option) any later version.
24 ! **
25 ! ** mmg is distributed in the hope that it will be useful, but WITHOUT
26 ! ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
27 ! ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
28 ! ** License for more details.
29 ! **
30 ! ** You should have received a copy of the GNU Lesser General Public
31 ! ** License and of the GNU General Public License along with mmg (in
32 ! ** files COPYING.LESSER and COPYING). If not, see
33 ! ** <http://www.gnu.org/licenses/>. Please read their terms carefully and
34 ! ** use this copy of the mmg distribution only if you accept them.
35 ! ** =============================================================================
36 ! */
37 
38 
39 !
43 ! #include <stdint.h>
44 ! #include <stdarg.h>
45 ! #include <stddef.h>
46 
47 #ifndef _LIBMMGTYPES_H
48 #define _LIBMMGTYPES_H
49 
50 !
57 #define MMG5_SUCCESS 0
58 !
66 #define MMG5_LOWFAILURE 1
67 !
75 #define MMG5_STRONGFAILURE 2
76 
77 !
82 #define MG_ISO 10
83 
84 !
94 #define MMG5_ARG_start %val(1)
95 !
104 #define MMG5_ARG_ppMesh %val(2)
105 !
115 #define MMG5_ARG_ppLs %val(3)
116 !
126 #define MMG5_ARG_ppMet %val(4)
127 !
137 #define MMG5_ARG_ppDisp %val(5)
138 !
148 #define MMG5_ARG_ppSols %val(6)
149 !
158 #define MMG5_ARG_pMesh %val(7)
159 !
168 #define MMG5_ARG_pMet %val(8)
169 !
178 #define MMG5_ARG_pDisp %val(9)
179 !
189 #define MMG5_ARG_end %val(10)
190 
191 !
198 #define MMG5_NSOLS_MAX 100
199 
200 !
205 !
206 #define MMG5_Notype 0
207 !
208 #define MMG5_Scalar 1
209 !
210 #define MMG5_Vector 2
211 !
212 #define MMG5_Tensor 3
213 
214 !
219 !
220 #define MMG5_Noentity 0
221 !
222 #define MMG5_Vertex 1
223 !
224 #define MMG5_Edg 2
225 !
226 #define MMG5_Triangle 3
227 !
228 #define MMG5_Tetrahedron 4
229 
230 !
240 ! typedef struct {
241 ! double hmin;
242 ! double hmax;
243 ! double hausd;
244 ! int ref;
245 ! char elt;
246 ! } MMG5_Par; typedef MMG5_Par * MMG5_pPar;
247 
248 !
254 ! typedef struct {
255 ! double c[3];
256 ! double n[3];
257 ! int ref;
258 ! int xp;
259 ! int tmp;
261 ! int flag;
262 ! int s;
263 ! int16_t tag;
265 ! char tagdel;
266 ! } MMG5_Point;
268 
269 !
274 ! typedef struct {
275 ! double n1[3],n2[3];
277 ! } MMG5_xPoint;
279 
280 !
285 ! typedef struct {
286 ! int a,b;
287 ! int ref;
288 ! int base;
290 ! int16_t tag;
291 ! } MMG5_Edge;
292 ! typedef MMG5_Edge * MMG5_pEdge;
293 
294 !
313 ! typedef struct {
314 ! double qual; /*Quality of the triangle*/
315 ! int v[3];
316 ! int ref;
317 ! int base;
318 ! int cc;
320 ! int edg[3];
322 ! int flag;
323 ! int16_t tag[3];
325 ! } MMG5_Tria;
326 ! typedef MMG5_Tria * MMG5_pTria;
327 
328 
329 !
348 ! typedef struct {
349 ! int v[4];
350 ! int ref;
351 ! int base;
352 ! int edg[4];
354 ! int16_t tag[4];
356 ! } MMG5_Quad;
357 ! typedef MMG5_Quad * MMG5_pQuad;
358 
359 
360 !
384 ! typedef struct {
385 ! double qual;
386 ! int v[4];
387 ! int ref;
388 ! int base;
389 ! int mark;
390 ! int xt;
392 ! int flag;
393 ! int16_t tag;
394 ! } MMG5_Tetra;
396 
397 !
402 ! typedef struct {
403 ! int ref[4];
405 ! int edg[6];
407 ! int16_t ftag[4];
409 ! int16_t tag[6];
411 ! char ori;
414 ! } MMG5_xTetra;
416 
417 !
447 ! typedef struct {
448 ! int v[6];
449 ! int ref;
450 ! int base;
451 ! int flag;
452 ! int xpr;
454 ! char tag;
455 ! } MMG5_Prism;
457 
458 !
463 ! typedef struct {
464 ! int ref[5];
466 ! int edg[9];
470 ! int16_t ftag[5];
472 ! int16_t tag[9];
474 ! } MMG5_xPrism;
476 
477 !
482 ! typedef struct {
483 ! char dospl;
484 ! int ref,rin,rex;
485 ! } MMG5_Mat;
486 ! typedef MMG5_Mat * MMG5_pMat;
487 
488 !
493 ! typedef struct {
496 ! double min[3],max[3],delta,ls;
497 ! int mem,npar,npari;
498 ! int opnbdy;
499 ! int renum;
500 ! int PROctree;
501 ! int nmat;
502 ! char nreg;
504 ! char parTyp;
507 ! unsigned char optim, optimLES, noinsert, noswap, nomove, nosurf;
508 ! unsigned char inputMet;
510 ! } MMG5_Info;
511 
512 !
517 ! typedef struct {
518 ! int a;
519 ! int b;
520 ! int ref;
521 ! int nxt;
522 ! int16_t tag;
523 ! } MMG5_hgeom;
524 
525 !
530 ! typedef struct {
532 ! int siz,max,nxt;
533 ! } MMG5_HGeom;
534 
535 
536 !
541 ! typedef struct {
542 ! int a,b,nxt;
543 ! int k;
544 ! int s;
545 ! } MMG5_hedge;
546 
547 !
553 ! typedef struct {
554 ! int siz,max,nxt;
556 ! } MMG5_Hash;
557 
558 !
564 ! typedef struct {
565 ! size_t memMax;
566 ! size_t memCur;
567 ! double gap;
568 ! int ver;
569 ! int dim;
570 ! int type;
572 ! int nquad,nprism; /* number of quadrangles and prisms */
573 ! int nsols; /* number of solutions (metric excluded) in the solution file */
574 ! int nc1;
575 
576 ! int base;
578 ! int mark;
580 ! int xp,xt,xpr;
581 ! int npnil;
582 ! int nenil;
583 ! int nanil;
584 ! int *adja;
588 ! int *adjt;
592 ! int *adjapr;
596 ! int *ipar;
608 ! char *namein;
609 ! char *nameout;
611 ! } MMG5_Mesh;
612 ! typedef MMG5_Mesh * MMG5_pMesh;
613 
614 !
619 ! typedef struct {
620 ! int ver; /* Version of the solution file */
621 ! int dim; /* Dimension of the solution file*/
622 ! int np; /* Number of points of the solution */
623 ! int npmax; /* Maximum number of points */
624 ! int npi; /* Temporary number of points (internal use only) */
625 ! int size; /* Number of solutions per entity */
626 ! int type; /* Type of the solution (scalar, vectorial of tensorial) */
627 ! double *m;
628 ! double umin,umax;
629 ! char *namein;
630 ! char *nameout;
631 ! } MMG5_Sol;
632 ! typedef MMG5_Sol * MMG5_pSol;
633 
634 #endif
MMG5_Edge
Structure to store edges of a MMG mesh.
Definition: libmmgtypes.h:243
m
! double * m
Definition: libmmgtypesf.h:627
noinsert
! unsigned char noinsert
Definition: libmmgtypesf.h:507
npari
! int npari
Definition: libmmgtypesf.h:497
ntmax
! int ntmax
Definition: libmmgtypesf.h:571
nsols
! int nsols
Definition: libmmgtypesf.h:573
dhd
! double dhd
Definition: libmmgtypesf.h:495
MMG5_hgeom
Cell of the hash table of geom edges.
Definition: libmmgtypes.h:466
rex
! int rex
Definition: libmmgtypesf.h:484
renum
! int renum
Definition: libmmgtypesf.h:499
MMG5_Tetra
Definition: libmmgtypes.h:339
MMG5_Prism
! typedef struct @8 MMG5_Prism
MMG5_Sol
Definition: libmmgtypes.h:563
type
! int type
Definition: libmmgtypesf.h:570
adja
! int * adja
Definition: libmmgtypesf.h:584
lag
! char lag
Definition: libmmgtypesf.h:503
PROctree
! int PROctree
Definition: libmmgtypesf.h:500
xt
! int xt
Definition: libmmgtypesf.h:390
MMG5_xPoint
! typedef struct @2 MMG5_xPoint
max
! double max[3]
Definition: libmmgtypesf.h:496
MMG5_pPoint
! typedef MMG5_Point * MMG5_pPoint
Definition: libmmgtypesf.h:267
nemax
! int nemax
Definition: libmmgtypesf.h:571
xtmax
! int xtmax
Definition: libmmgtypesf.h:571
namein
! char * namein
Definition: libmmgtypesf.h:608
xpr
! int xpr
Definition: libmmgtypesf.h:452
xpmax
! int xpmax
Definition: libmmgtypesf.h:571
geom
! MMG5_hgeom * geom
Definition: libmmgtypesf.h:531
MMG5_HGeom
Hash table to store geometric edges.
Definition: libmmgtypes.h:478
xprism
! MMG5_pxPrism xprism
Definition: libmmgtypesf.h:602
elt
! char elt
Definition: libmmgtypesf.h:245
qual
! double qual
Definition: libmmgtypesf.h:314
tmp
! int tmp
Definition: libmmgtypesf.h:259
namax
! int namax
Definition: libmmgtypesf.h:571
mem
! int mem
Definition: libmmgtypesf.h:497
tetra
! MMG5_pTetra tetra
Definition: libmmgtypesf.h:599
nt
! int nt
Definition: libmmgtypesf.h:571
MMG5_xPrism
! typedef struct @9 MMG5_xPrism
k
! int k
Definition: libmmgtypesf.h:543
item
! MMG5_hedge * item
Definition: libmmgtypesf.h:555
nomove
! unsigned char nomove
Definition: libmmgtypesf.h:507
tria
! MMG5_pTria tria
Definition: libmmgtypesf.h:603
n1
! double n1[3]
Definition: libmmgtypesf.h:275
nquad
! int nquad
Definition: libmmgtypesf.h:572
nxt
! int nxt
Definition: libmmgtypesf.h:521
iso
! char iso
Definition: libmmgtypesf.h:503
imprim
! char imprim
Definition: libmmgtypesf.h:503
memMax
! size_t memMax
Definition: libmmgtypesf.h:565
MMG5_Sol
! typedef struct @17 MMG5_Sol
ipar
! int * ipar
Definition: libmmgtypesf.h:596
MMG5_pTria
! typedef MMG5_Tria * MMG5_pTria
Definition: libmmgtypesf.h:326
MMG5_Mat
To store user-defined references in the mesh (useful in LS mode)
Definition: libmmgtypes.h:433
siz
! int siz
Definition: libmmgtypesf.h:532
parTyp
! char parTyp
Definition: libmmgtypesf.h:504
flag
! int flag
Definition: libmmgtypesf.h:261
quadra
! MMG5_pQuad quadra
Definition: libmmgtypesf.h:604
hmin
! double hmin
Definition: libmmgtypesf.h:241
prism
! MMG5_pPrism prism
Definition: libmmgtypesf.h:601
edge
! MMG5_pEdge edge
Definition: libmmgtypesf.h:605
nameout
! char * nameout
Definition: libmmgtypesf.h:609
inputMet
! unsigned char inputMet
Definition: libmmgtypesf.h:508
base
! int base
Definition: libmmgtypesf.h:288
dospl
! char dospl
Definition: libmmgtypesf.h:483
delta
! double delta
Definition: libmmgtypesf.h:496
nai
! int nai
Definition: libmmgtypesf.h:571
MMG5_Hash
! typedef struct @15 MMG5_Hash
v
! int v[3]
Definition: libmmgtypesf.h:315
MMG5_pxTetra
! typedef MMG5_xTetra * MMG5_pxTetra
Definition: libmmgtypesf.h:415
mat
! MMG5_pMat mat
Definition: libmmgtypesf.h:509
ddebug
! char ddebug
Definition: libmmgtypesf.h:503
MMG5_pQuad
! typedef MMG5_Quad * MMG5_pQuad
Definition: libmmgtypesf.h:357
xtetra
! MMG5_pxTetra xtetra
Definition: libmmgtypesf.h:600
MMG5_Point
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:214
info
! MMG5_Info info
Definition: libmmgtypesf.h:607
MMG5_pMat
! typedef MMG5_Mat * MMG5_pMat
Definition: libmmgtypesf.h:486
noswap
! unsigned char noswap
Definition: libmmgtypesf.h:507
hgrad
! double hgrad
Definition: libmmgtypesf.h:495
MMG5_xPrism
Structure to store the surface prism of a MMG mesh.
Definition: libmmgtypes.h:415
MMG5_xTetra
! typedef struct @7 MMG5_xTetra
s
! int s
Definition: libmmgtypesf.h:262
MMG5_pPar
MMG5_Par * MMG5_pPar
Definition: libmmgtypesf.h:246
nenil
! int nenil
Definition: libmmgtypesf.h:582
nti
! int nti
Definition: libmmgtypesf.h:571
npmax
! int npmax
Definition: libmmgtypesf.h:571
ver
! int ver
Definition: libmmgtypesf.h:568
npi
! int npi
Definition: libmmgtypesf.h:571
opnbdy
! int opnbdy
Definition: libmmgtypesf.h:498
nanil
! int nanil
Definition: libmmgtypesf.h:583
dim
! int dim
Definition: libmmgtypesf.h:569
MMG5_pSol
! typedef MMG5_Sol * MMG5_pSol
Definition: libmmgtypesf.h:632
ne
! int ne
Definition: libmmgtypesf.h:571
htab
! MMG5_HGeom htab
Definition: libmmgtypesf.h:606
MMG5_pPrism
! typedef MMG5_Prism * MMG5_pPrism
Definition: libmmgtypesf.h:456
adjapr
! int * adjapr
Definition: libmmgtypesf.h:592
hausd
! double hausd
Definition: libmmgtypesf.h:243
MMG5_Tria
Definition: libmmgtypes.h:270
MMG5_hedge
Used to hash edges (memory economy compared to MMG5_hgeom).
Definition: libmmgtypes.h:488
nmat
! int nmat
Definition: libmmgtypesf.h:501
MMG5_hgeom
! typedef struct @12 MMG5_hgeom
adjt
! int * adjt
Definition: libmmgtypesf.h:588
b
! int b
Definition: libmmgtypesf.h:286
MMG5_HGeom
! typedef struct @13 MMG5_HGeom
MMG5_Info
! typedef struct @11 MMG5_Info
hsiz
! double hsiz
Definition: libmmgtypesf.h:495
ori
! char ori
Definition: libmmgtypesf.h:411
c
! double c[3]
Definition: libmmgtypesf.h:255
tag
! int16_t tag
Definition: libmmgtypesf.h:263
np
! int np
Definition: libmmgtypesf.h:571
nc1
! int nc1
Definition: libmmgtypesf.h:574
MMG5_Quad
! typedef struct @5 MMG5_Quad
n2
! double n2[3]
Definition: libmmgtypesf.h:275
MMG5_xTetra
Structure to store the surface tetrahedra of a MMG mesh.
Definition: libmmgtypes.h:356
MMG5_hedge
! typedef struct @14 MMG5_hedge
ref
! int ref
Definition: libmmgtypesf.h:244
na
! int na
Definition: libmmgtypesf.h:571
umax
! double umax
Definition: libmmgtypesf.h:628
par
! MMG5_pPar par
Definition: libmmgtypesf.h:494
hmax
! double hmax
Definition: libmmgtypesf.h:242
gap
! double gap
Definition: libmmgtypesf.h:567
fem
! char fem
Definition: libmmgtypesf.h:503
MMG5_Quad
Definition: libmmgtypes.h:304
npar
! int npar
Definition: libmmgtypesf.h:497
MMG5_Mat
! typedef struct @10 MMG5_Mat
To store user-defined references in the mesh (useful in LS mode) !
MMG5_Mesh
MMG mesh structure.
Definition: libmmgtypes.h:509
rin
! int rin
Definition: libmmgtypesf.h:484
nosurf
! unsigned char nosurf
Definition: libmmgtypesf.h:507
MMG5_pxPoint
! typedef MMG5_xPoint * MMG5_pxPoint
Definition: libmmgtypesf.h:278
MMG5_xPoint
Structure to store surface points of a MMG mesh.
Definition: libmmgtypes.h:233
edg
! int edg[3]
Definition: libmmgtypesf.h:320
MMG5_Par
Definition: libmmgtypes.h:201
xp
! int xp
Definition: libmmgtypesf.h:258
min
! double min[3]
Definition: libmmgtypesf.h:496
nreg
! char nreg
Definition: libmmgtypesf.h:502
hgradreq
! double hgradreq
Definition: libmmgtypesf.h:495
umin
! double umin
Definition: libmmgtypesf.h:628
MMG5_Point
! typedef struct @1 MMG5_Point
n
! double n[3]
Definition: libmmgtypesf.h:256
MMG5_Info
Store input parameters of the run.
Definition: libmmgtypes.h:443
MMG5_pEdge
! typedef MMG5_Edge * MMG5_pEdge
Definition: libmmgtypesf.h:292
MMG5_Tria
! typedef struct @4 MMG5_Tria
MMG5_pTetra
! typedef MMG5_Tetra * MMG5_pTetra
Definition: libmmgtypesf.h:395
tagdel
! char tagdel
Definition: libmmgtypesf.h:265
ls
! double ls
Definition: libmmgtypesf.h:496
size
! int size
Definition: libmmgtypesf.h:625
optimLES
! unsigned char optimLES
Definition: libmmgtypesf.h:507
MMG5_Edge
! typedef struct @3 MMG5_Edge
memCur
! size_t memCur
Definition: libmmgtypesf.h:566
MMG5_Prism
Definition: libmmgtypes.h:400
optim
! unsigned char optim
Definition: libmmgtypesf.h:507
ftag
! int16_t ftag[4]
Definition: libmmgtypesf.h:407
point
! MMG5_pPoint point
Definition: libmmgtypesf.h:597
MMG5_Tetra
! typedef struct @6 MMG5_Tetra
mark
! int mark
Definition: libmmgtypesf.h:389
badkal
! char badkal
Definition: libmmgtypesf.h:503
MMG5_pxPrism
! typedef MMG5_xPrism * MMG5_pxPrism
Definition: libmmgtypesf.h:475
nei
! int nei
Definition: libmmgtypesf.h:571
MMG5_Mesh
! typedef struct @16 MMG5_Mesh
cc
! int cc
Definition: libmmgtypesf.h:318
MMG5_Par
! typedef struct @0 MMG5_Par
nprism
! int nprism
Definition: libmmgtypesf.h:572
xpoint
! MMG5_pxPoint xpoint
Definition: libmmgtypesf.h:598
MMG5_pMesh
! typedef MMG5_Mesh * MMG5_pMesh
Definition: libmmgtypesf.h:612
a
! int a
Definition: libmmgtypesf.h:286
npnil
! int npnil
Definition: libmmgtypesf.h:581