mmg3d
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=8)
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
! char tagdel
Definition: libmmgtypesf.h:265
! typedef struct @15 MMG5_Hash
! int xpmax
Definition: libmmgtypesf.h:571
! int size
Definition: libmmgtypesf.h:625
! typedef struct @14 MMG5_hedge
! MMG5_pPoint point
Definition: libmmgtypesf.h:597
! int a
Definition: libmmgtypesf.h:286
! MMG5_pxPoint xpoint
Definition: libmmgtypesf.h:598
! MMG5_pQuad quadra
Definition: libmmgtypesf.h:604
! double max[3]
Definition: libmmgtypesf.h:496
! MMG5_Info info
Definition: libmmgtypesf.h:607
! MMG5_hedge * item
Definition: libmmgtypesf.h:555
! typedef MMG5_Point * MMG5_pPoint
Definition: libmmgtypesf.h:267
! double * m
Definition: libmmgtypesf.h:627
! typedef MMG5_Prism * MMG5_pPrism
Definition: libmmgtypesf.h:456
! int * adjapr
Definition: libmmgtypesf.h:592
! double dhd
Definition: libmmgtypesf.h:495
! typedef struct @1 MMG5_Point
Definition: libmmgtypes.h:339
! typedef struct @7 MMG5_xTetra
! MMG5_pTria tria
Definition: libmmgtypesf.h:603
! int * adjt
Definition: libmmgtypesf.h:588
! typedef struct @6 MMG5_Tetra
! MMG5_pEdge edge
Definition: libmmgtypesf.h:605
! unsigned char optimLES
Definition: libmmgtypesf.h:507
! int k
Definition: libmmgtypesf.h:543
! int nt
Definition: libmmgtypesf.h:571
! unsigned char optim
Definition: libmmgtypesf.h:507
! double c[3]
Definition: libmmgtypesf.h:255
! int ntmax
Definition: libmmgtypesf.h:571
! int npnil
Definition: libmmgtypesf.h:581
! MMG5_pTetra tetra
Definition: libmmgtypesf.h:599
! char badkal
Definition: libmmgtypesf.h:503
Definition: libmmgtypes.h:563
! int nsols
Definition: libmmgtypesf.h:573
! typedef MMG5_xTetra * MMG5_pxTetra
Definition: libmmgtypesf.h:415
! MMG5_pxPrism xprism
Definition: libmmgtypesf.h:602
! double qual
Definition: libmmgtypesf.h:314
! typedef struct @11 MMG5_Info
! typedef struct @8 MMG5_Prism
! unsigned char noswap
Definition: libmmgtypesf.h:507
! int nquad
Definition: libmmgtypesf.h:572
! char * nameout
Definition: libmmgtypesf.h:609
! int16_t ftag[4]
Definition: libmmgtypesf.h:407
! typedef MMG5_Tria * MMG5_pTria
Definition: libmmgtypesf.h:326
! int xpr
Definition: libmmgtypesf.h:452
! typedef struct @9 MMG5_xPrism
! int rex
Definition: libmmgtypesf.h:484
! unsigned char inputMet
Definition: libmmgtypesf.h:508
! int type
Definition: libmmgtypesf.h:570
! int xt
Definition: libmmgtypesf.h:390
! typedef MMG5_Quad * MMG5_pQuad
Definition: libmmgtypesf.h:357
! int npi
Definition: libmmgtypesf.h:571
! double hgrad
Definition: libmmgtypesf.h:495
Store input parameters of the run.
Definition: libmmgtypes.h:443
! int flag
Definition: libmmgtypesf.h:261
! int dim
Definition: libmmgtypesf.h:569
! int nc1
Definition: libmmgtypesf.h:574
! int ver
Definition: libmmgtypesf.h:568
! unsigned char noinsert
Definition: libmmgtypesf.h:507
! int npmax
Definition: libmmgtypesf.h:571
! int nenil
Definition: libmmgtypesf.h:582
! MMG5_HGeom htab
Definition: libmmgtypesf.h:606
! double gap
Definition: libmmgtypesf.h:567
! double delta
Definition: libmmgtypesf.h:496
! int nai
Definition: libmmgtypesf.h:571
! double hgradreq
Definition: libmmgtypesf.h:495
! size_t memMax
Definition: libmmgtypesf.h:565
! char dospl
Definition: libmmgtypesf.h:483
Definition: libmmgtypes.h:304
! char fem
Definition: libmmgtypesf.h:503
! char parTyp
Definition: libmmgtypesf.h:504
! double hausd
Definition: libmmgtypesf.h:243
! typedef struct @2 MMG5_xPoint
! int siz
Definition: libmmgtypesf.h:532
! MMG5_pPar par
Definition: libmmgtypesf.h:494
MMG5_Par * MMG5_pPar
Definition: libmmgtypesf.h:246
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:214
! double hmin
Definition: libmmgtypesf.h:241
! int xp
Definition: libmmgtypesf.h:258
! int nxt
Definition: libmmgtypesf.h:521
! int opnbdy
Definition: libmmgtypesf.h:498
! char iso
Definition: libmmgtypesf.h:503
Structure to store edges of a MMG mesh.
Definition: libmmgtypes.h:243
! char ddebug
Definition: libmmgtypesf.h:503
! int nanil
Definition: libmmgtypesf.h:583
! int * ipar
Definition: libmmgtypesf.h:596
To store user-defined references in the mesh (useful in LS mode)
Definition: libmmgtypes.h:433
! MMG5_pPrism prism
Definition: libmmgtypesf.h:601
! int16_t tag
Definition: libmmgtypesf.h:263
! typedef MMG5_Mat * MMG5_pMat
Definition: libmmgtypesf.h:486
Structure to store the surface prism of a MMG mesh.
Definition: libmmgtypes.h:415
! int npar
Definition: libmmgtypesf.h:497
! double min[3]
Definition: libmmgtypesf.h:496
! int ref
Definition: libmmgtypesf.h:244
! int nmat
Definition: libmmgtypesf.h:501
! int * adja
Definition: libmmgtypesf.h:584
MMG mesh structure.
Definition: libmmgtypes.h:509
Structure to store surface points of a MMG mesh.
Definition: libmmgtypes.h:233
! typedef struct @17 MMG5_Sol
! typedef struct @13 MMG5_HGeom
! MMG5_pMat mat
Definition: libmmgtypesf.h:509
! typedef MMG5_xPrism * MMG5_pxPrism
Definition: libmmgtypesf.h:475
Structure to store the surface tetrahedra of a MMG mesh.
Definition: libmmgtypes.h:356
! double n2[3]
Definition: libmmgtypesf.h:275
! typedef MMG5_Tetra * MMG5_pTetra
Definition: libmmgtypesf.h:395
! int nti
Definition: libmmgtypesf.h:571
! int tmp
Definition: libmmgtypesf.h:259
! typedef struct @10 MMG5_Mat
To store user-defined references in the mesh (useful in LS mode) !
! double hmax
Definition: libmmgtypesf.h:242
! int np
Definition: libmmgtypesf.h:571
! int rin
Definition: libmmgtypesf.h:484
! typedef struct @12 MMG5_hgeom
! int PROctree
Definition: libmmgtypesf.h:500
! int ne
Definition: libmmgtypesf.h:571
! char ori
Definition: libmmgtypesf.h:411
! char * namein
Definition: libmmgtypesf.h:608
! double n[3]
Definition: libmmgtypesf.h:256
! int mark
Definition: libmmgtypesf.h:389
! typedef MMG5_Edge * MMG5_pEdge
Definition: libmmgtypesf.h:292
! typedef struct @0 MMG5_Par
! unsigned char nomove
Definition: libmmgtypesf.h:507
! char nreg
Definition: libmmgtypesf.h:502
! int b
Definition: libmmgtypesf.h:286
! int renum
Definition: libmmgtypesf.h:499
! MMG5_pxTetra xtetra
Definition: libmmgtypesf.h:600
! double n1[3]
Definition: libmmgtypesf.h:275
! double umax
Definition: libmmgtypesf.h:628
! int namax
Definition: libmmgtypesf.h:571
! int npari
Definition: libmmgtypesf.h:497
! int na
Definition: libmmgtypesf.h:571
Definition: libmmgtypes.h:400
! double ls
Definition: libmmgtypesf.h:496
! double umin
Definition: libmmgtypesf.h:628
Definition: libmmgtypes.h:201
! int v[3]
Definition: libmmgtypesf.h:315
! int xtmax
Definition: libmmgtypesf.h:571
! int nei
Definition: libmmgtypesf.h:571
! int nprism
Definition: libmmgtypesf.h:572
! typedef MMG5_Sol * MMG5_pSol
Definition: libmmgtypesf.h:632
Cell of the hash table of geom edges.
Definition: libmmgtypes.h:466
Definition: libmmgtypes.h:270
! int nemax
Definition: libmmgtypesf.h:571
! typedef struct @4 MMG5_Tria
! int cc
Definition: libmmgtypesf.h:318
! char imprim
Definition: libmmgtypesf.h:503
! char lag
Definition: libmmgtypesf.h:503
! int s
Definition: libmmgtypesf.h:262
! typedef MMG5_xPoint * MMG5_pxPoint
Definition: libmmgtypesf.h:278
! unsigned char nosurf
Definition: libmmgtypesf.h:507
! int base
Definition: libmmgtypesf.h:288
! int mem
Definition: libmmgtypesf.h:497
Used to hash edges (memory economy compared to MMG5_hgeom).
Definition: libmmgtypes.h:488
! double hsiz
Definition: libmmgtypesf.h:495
! char elt
Definition: libmmgtypesf.h:245
! typedef struct @16 MMG5_Mesh
! typedef MMG5_Mesh * MMG5_pMesh
Definition: libmmgtypesf.h:612
! typedef struct @3 MMG5_Edge
! typedef struct @5 MMG5_Quad
! MMG5_hgeom * geom
Definition: libmmgtypesf.h:531
! int edg[3]
Definition: libmmgtypesf.h:320
! size_t memCur
Definition: libmmgtypesf.h:566
Hash table to store geometric edges.
Definition: libmmgtypes.h:478