mmg3d
mmg3d.h
Go to the documentation of this file.
1 /* =============================================================================
2 ** This file is part of the mmg software package for the tetrahedral
3 ** mesh modification.
4 ** Copyright (c) Bx INP/CNRS/Inria/UBordeaux/UPMC, 2004-
5 **
6 ** mmg is free software: you can redistribute it and/or modify it
7 ** under the terms of the GNU Lesser General Public License as published
8 ** by the Free Software Foundation, either version 3 of the License, or
9 ** (at your option) any later version.
10 **
11 ** mmg is distributed in the hope that it will be useful, but WITHOUT
12 ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 ** License for more details.
15 **
16 ** You should have received a copy of the GNU Lesser General Public
17 ** License and of the GNU General Public License along with mmg (in
18 ** files COPYING.LESSER and COPYING). If not, see
19 ** <http://www.gnu.org/licenses/>. Please read their terms carefully and
20 ** use this copy of the mmg distribution only if you accept them.
21 ** =============================================================================
22 */
23 
24 #ifndef MMG3D_H
25 #define MMG3D_H
26 
27 #include "libmmg3d.h"
28 #include "libmmgcommon.h"
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
35 #define MMG5_RETURN_AND_FREE(mesh,met,disp,val)do \
36  { \
37  if ( !MMG3D_Free_all(MMG5_ARG_start, \
38  MMG5_ARG_ppMesh,&mesh,MMG5_ARG_ppMet,&met, \
39  MMG5_ARG_ppDisp,&disp, \
40  MMG5_ARG_end) ) { \
41  return MMG5_LOWFAILURE; \
42  } \
43  return val; \
44  }while(0)
45 
48 #define MMG3D_POINT_REALLOC(mesh,sol,ip,wantedGap,law,o,tag ) do \
49  { \
50  int klink; \
51  int oldnpmax = mesh->npmax; \
52  \
53  MMG5_TAB_RECALLOC(mesh,mesh->point,mesh->npmax,wantedGap,MMG5_Point, \
54  "larger point table",law); \
55  \
56  mesh->npnil = mesh->np+1; \
57  for (klink=mesh->npnil; klink<mesh->npmax-1; klink++) \
58  mesh->point[klink].tmp = klink+1; \
59  \
60  /* solution */ \
61  if ( sol ) { \
62  if ( sol->m ) { \
63  MMG5_ADD_MEM(mesh,(sol->size*(mesh->npmax-sol->npmax))*sizeof(double), \
64  "larger solution", \
65  MMG5_SAFE_RECALLOC(mesh->point,mesh->npmax+1,oldnpmax+1,MMG5_Point,,); \
66  mesh->memCur -= (mesh->npmax - oldnpmax)*sizeof(MMG5_Point); \
67  mesh->npmax = oldnpmax; \
68  mesh->np = mesh->npmax-1; \
69  mesh->npnil = 0; \
70  law); \
71  MMG5_SAFE_REALLOC(sol->m,sol->size*(sol->npmax+1), \
72  sol->size*(mesh->npmax+1), \
73  double,"larger solution", \
74  MMG5_SAFE_RECALLOC(mesh->point,mesh->npmax+1,oldnpmax+1,MMG5_Point,,); \
75  mesh->memCur -= (mesh->npmax - oldnpmax)*sizeof(MMG5_Point); \
76  mesh->npmax = oldnpmax; \
77  mesh->np = mesh->npmax-1; \
78  mesh->npnil = 0; \
79  law); \
80  } \
81  sol->npmax = mesh->npmax; \
82  } \
83  \
84  /* We try again to add the point */ \
85  ip = MMG3D_newPt(mesh,o,tag); \
86  if ( !ip ) { law; } \
87  }while(0)
88 
89 
92 #define MMG3D_TETRA_REALLOC(mesh,jel,wantedGap,law ) do \
93  { \
94  int klink,oldSiz; \
95  \
96  oldSiz = mesh->nemax; \
97  MMG5_TAB_RECALLOC(mesh,mesh->tetra,mesh->nemax,wantedGap,MMG5_Tetra, \
98  "larger tetra table",law); \
99  \
100  mesh->nenil = mesh->ne+1; \
101  for (klink=mesh->nenil; klink<mesh->nemax-1; klink++) \
102  mesh->tetra[klink].v[3] = klink+1; \
103  \
104  if ( mesh->adja ) { \
105  /* adja table */ \
106  MMG5_ADD_MEM(mesh,4*(mesh->nemax-oldSiz)*sizeof(int), \
107  "larger adja table",law); \
108  MMG5_SAFE_RECALLOC(mesh->adja,4*oldSiz+5,4*mesh->nemax+5,int \
109  ,"larger adja table",law); \
110  } \
111  \
112  /* We try again to add the point */ \
113  jel = MMG3D_newElt(mesh); \
114  if ( !jel ) {law;} \
115  }while(0)
116 
117 /* numerical accuracy */
118 #define MMG3D_ALPHAD 20.7846096908265 /* 12*sqrt(3) */
119 #define MMG3D_LLONG 2.5
120 #define MMG3D_LSHRT 0.3
121 #define MMG3D_LOPTL 1.3
122 #define MMG3D_LOPTS 0.6
123 
124 #define MMG3D_SWAP06 0.0288675 /* 0.6/MMG3D_ALPHAD */
125 #define MMG3D_SSWAPIMPROVE 1.053
126 #define MMG3D_LSWAPIMPROVE 1.1
127 
128 #define MMG3D_BADKAL 0.2
129 #define MMG3D_MAXKAL 1.
130 
131 
132 #define MMG3D_NPMAX 1000000 //200000
133 #define MMG3D_NAMAX 200000 //40000
134 #define MMG3D_NTMAX 2000000 //400000
135 #define MMG3D_NEMAX 6000000 //1200000
136 
137 #define MMG3D_SHORTMAX 0x7fff
138 
139 
141 static const unsigned char MMG5_inxt3[7] = { 1,2,3,0,1,2,3 };
143 static const unsigned char MMG5_iprv3[7] = { 3,0,1,2,3,0,1 };
145 static const unsigned char MMG5_idir[4][3] = { {1,2,3}, {0,3,2}, {0,1,3}, {0,2,1} };
146 /* \var idirinv[i][j]: num of the jth point in the ith face */
147 static const char MMG5_idirinv[4][4] = {{-1,0,1,2},{0,-1,2,1},{0,1,-1,2},{0,2,1,-1}};
149 static const unsigned char MMG5_iarf[4][3] = { {5,4,3}, {5,1,2}, {4,2,0}, {3,0,1} };
151 static const unsigned char MMG5_iarfinv[4][6] = { {-1,-1,-1,2,1,0}, {-1,1,2,-1,-1,0},{2,-1,1,-1,0,-1},{1,2,-1,0,-1,-1}};
153 static const unsigned char MMG5_iare[6][2] = { {0,1}, {0,2}, {0,3}, {1,2}, {1,3}, {2,3} };
155 static const unsigned char MMG5_ifar[6][2] = { {2,3}, {1,3}, {1,2}, {0,3}, {0,2}, {0,1} };
157 static const unsigned char MMG5_isar[6][2] = { {2,3}, {3,1}, {1,2}, {0,3}, {2,0}, {0,1} };
159 static const unsigned char MMG5_arpt[4][3] = { {0,1,2}, {0,4,3}, {1,3,5}, {2,5,4} };
160 
162 static const unsigned char MMG5_idir_pr[5][4] = { {0,1,2,0},{3,5,4,3},{1,4,5,2},{0,2,5,3},{0,3,4,1} };
164 static const unsigned char MMG5_iarf_pr[5][5] = { {0,1,3,0}, {6,8,7,6}, {3,5,8,4}, {5,1,2,7},{0,4,6,2} };
165 
182 static const unsigned char MMG5_permedge[12][6] = {
183  {0,1,2,3,4,5}, {1,2,0,5,3,4}, {2,0,1,4,5,3}, {0,4,3,2,1,5},
184  {3,0,4,1,5,2}, {4,3,0,5,2,1}, {1,3,5,0,2,4}, {3,5,1,4,0,2},
185  {5,1,3,2,4,0}, {2,5,4,1,0,3}, {4,2,5,0,3,1}, {5,4,2,3,1,0} };
186 
192 typedef struct MMG3D_PROctree_s
193 {
195  int* v;
196  int nbVer;
197  int depth;
199 
204 typedef struct
205 {
206  int nv;
207  int nc;
211 
212 
213 /* PROctree */
218 int MMG3D_isCellIncluded(double* cellCenter, double l, double* zoneCenter, double l0);
219 void MMG3D_placeInListDouble(double*, double, int, int);
221 int MMG3D_seekIndex (double* distList, double dist, int indexMin, int indexMax);
222 int MMG3D_intersectRect(double *rectin, double *rectinout);
223 int MMG3D_getListSquareRec(MMG3D_PROctree_s*,double*,double*,
224  MMG3D_PROctree_s***,double*,double*,double, int, int, int*);
226 int MMG3D_addPROctreeRec(MMG5_pMesh,MMG3D_PROctree_s*,double*, const int, int);
227 int MMG3D_addPROctree(MMG5_pMesh mesh, MMG3D_PROctree* q, const int no);
229 int MMG3D_movePROctree(MMG5_pMesh, MMG3D_pPROctree,int, double*, double*);
232 int MMG3D_delPROctreeRec(MMG5_pMesh,MMG3D_PROctree_s*,double*, const int,const int);
233 int MMG3D_delPROctree(MMG5_pMesh mesh, MMG3D_pPROctree q, const int no);
234 void MMG3D_printArbreDepth(MMG3D_PROctree_s* q, int depth, int nv, int dim);
236 void MMG3D_sizeArbreRec(MMG3D_PROctree_s* q, int nv, int dim, int*,int*);
237 int* MMG3D_sizeArbre(MMG3D_PROctree* q, int dim);
240 
241 /* prototypes */
242 int MMG3D_tetraQual(MMG5_pMesh mesh, MMG5_pSol met,char metRidTyp);
244 extern int MMG5_directsurfball(MMG5_pMesh mesh, int ip, int *list, int ilist, double n[3]);
245 
246 int MMG3D_Init_mesh_var( va_list argptr );
247 int MMG3D_Free_all_var( va_list argptr );
248 int MMG3D_Free_structures_var( va_list argptr );
249 int MMG3D_Free_names_var( va_list argptr );
250 int MMG3D_newPt(MMG5_pMesh mesh,double c[3],int16_t tag);
252 int MMG3D_delElt(MMG5_pMesh mesh,int iel);
253 void MMG3D_delPt(MMG5_pMesh mesh,int ip);
258 char MMG5_chkedg(MMG5_pMesh mesh,MMG5_pTria pt,char ori,double,double,int);
261 extern int MMG5_BezierTgt(double c1[3],double c2[3],double n1[3],double n2[3],double t1[3],double t2[3]);
262 extern double MMG5_BezierGeod(double c1[3], double c2[3], double t1[3], double t2[3]);
263 int MMG3D_bezierInt(MMG5_pBezier pb,double uv[2],double o[3],double no[3],double to[3]);
264 extern int MMG5_BezierReg(MMG5_pMesh mesh,int ip0, int ip1, double s, double v[3], double *o, double *no);
265 extern int MMG5_BezierRef(MMG5_pMesh mesh,int ip0, int ip1, double s, double *o, double *no, double *to);
266 extern int MMG5_BezierEdge(MMG5_pMesh mesh,int ip0, int ip1, double b0[3], double b1[3],char isrid, double v[3]);
267 extern int MMG5_BezierRidge(MMG5_pMesh mesh,int ip0, int ip1, double s, double *o, double *no1, double *no2, double *to);
268 extern int MMG5_BezierNom(MMG5_pMesh mesh,int ip0,int ip1,double s,double *o,double *no,double *to);
269 int MMG5_norface(MMG5_pMesh mesh ,int k, int iface, double v[3]);
270 int MMG3D_findEdge(MMG5_pMesh,MMG5_pTetra,int,int,int,int,char*,char* );
271 int MMG5_boulernm (MMG5_pMesh mesh, int start, int ip, int *ng, int *nr);
272 int MMG5_boulenm(MMG5_pMesh mesh, int start, int ip, int iface, double n[3],double t[3]);
273 int MMG5_boulevolp(MMG5_pMesh mesh, int start, int ip, int * list);
274 int MMG5_boulesurfvolp(MMG5_pMesh mesh,int start,int ip,int iface,int *listv,
275  int *ilistv,int *lists,int*ilists, int isnm);
276 int MMG5_bouletrid(MMG5_pMesh,int,int,int,int *,int *,int *,int *,int *,int *);
277 int MMG5_startedgsurfball(MMG5_pMesh mesh,int nump,int numq,int *list,int ilist);
278 int MMG5_srcbdy(MMG5_pMesh mesh,int start,int ia);
279 int MMG5_coquil(MMG5_pMesh mesh, int start, int ia, int * list);
280 int MMG5_coquilface(MMG5_pMesh mesh, int start,char iface,int,int*,int*,int*,int);
281 int MMG3D_coquilFaceFirstLoop(MMG5_pMesh mesh,int start,int na,int nb,char iface,
282  char ia,int *list,int *ilist,int *it1,int *it2,
283  int *piv,int *adj,char *hasadja,int *nbdy,int silent);
284 void MMG3D_coquilFaceSecondLoopInit(MMG5_pMesh mesh,int piv,char *iface,char *i,
285  int *list,int *ilist,int *it1,int *pradj,
286  int *adj);
287 void MMG5_coquilFaceErrorMessage(MMG5_pMesh mesh, int k1, int k2);
288 int16_t MMG5_coquilTravel(MMG5_pMesh,int,int,int*,int*,char*,char*);
289 int16_t MMG5_openCoquilTravel(MMG5_pMesh,int,int,int*,int*,char*,char*);
290 int MMG5_settag(MMG5_pMesh,int,int,int16_t,int);
291 int MMG5_deltag(MMG5_pMesh,int,int,int16_t);
293 int MMG5_chkcol_int(MMG5_pMesh,MMG5_pSol,int,char,char,int*,int,char);
294 int MMG5_chkcol_bdy(MMG5_pMesh,MMG5_pSol,int,char,char,int*,int,int*,int,char);
295 int MMG5_chkmanicoll(MMG5_pMesh,int,int,int,int,int,char,char);
297 int MMG5_colver(MMG5_pMesh,MMG5_pSol,int *,int,char,char);
307 int MMG5_hashFace(MMG5_pMesh,MMG5_Hash*,int,int,int,int);
308 int MMG5_hashGetFace(MMG5_Hash*,int,int,int);
311 int MMG5_hashPop(MMG5_Hash *hash,int a,int b);
312 int MMG5_hPop(MMG5_HGeom *hash,int a,int b,int *ref,int16_t *tag);
313 int MMG5_hTag(MMG5_HGeom *hash,int a,int b,int ref,int16_t tag);
314 int MMG5_hGet(MMG5_HGeom *hash,int a,int b,int *ref,int16_t *tag);
315 int MMG5_hEdge(MMG5_pMesh mesh,MMG5_HGeom *hash,int a,int b,int ref,int16_t tag);
316 int MMG5_hNew(MMG5_pMesh mesh,MMG5_HGeom *hash,int hsiz,int hmax);
323 int MMG5_cntbdypt(MMG5_pMesh mesh, int nump);
324 size_t MMG5_memSize(void);
331 int MMG5_mmg3dChkmsh(MMG5_pMesh,int,int);
332 int MMG3D_setMeshSize_initData(MMG5_pMesh,int,int,int,int,int,int);
334 int MMG3D_split1_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6]);
335 int MMG5_split1(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6],char metRidTyp);
336 int MMG5_split1b(MMG5_pMesh,MMG5_pSol,int*,int,int,int,char,char);
337 int MMG5_splitedg(MMG5_pMesh mesh, MMG5_pSol met,int iel, int iar, double crit);
338 int MMG3D_split2sf_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6]);
339 int MMG5_split2sf(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6],char);
340 int MMG3D_split2_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6]);
341 int MMG5_split2(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6],char);
342 int MMG3D_split3_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6]);
343 int MMG5_split3(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6],char);
344 int MMG3D_split3cone_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6]);
345 int MMG5_split3cone(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6],char);
346 int MMG3D_split3op_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6]);
347 int MMG5_split3op(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6],char);
348 int MMG3D_split4sf_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6]);
349 int MMG5_split4sf(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6],char);
350 int MMG3D_split4op_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6]);
351 int MMG5_split4op(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6],char);
352 int MMG3D_split5_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6]);
353 int MMG5_split5(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6],char);
354 int MMG3D_split6_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6]);
355 int MMG5_split6(MMG5_pMesh mesh,MMG5_pSol met,int k,int vx[6],char);
356 int MMG5_split4bar(MMG5_pMesh mesh,MMG5_pSol met,int k,char);
357 int MMG3D_simbulgept(MMG5_pMesh mesh,MMG5_pSol met, int *list, int ilist,int);
358 void MMG5_nsort(int ,double *,char *);
360 int MMG5_movintpt_iso(MMG5_pMesh ,MMG5_pSol,MMG3D_pPROctree, int *, int , int);
361 int MMG3D_movnormal_iso(MMG5_pMesh ,MMG5_pSol ,int ,int );
365  int*, int, int*, int, int ,int);
367  int*, int, int*, int, int ,int);
369  int*, int ,int);
371  int*, int ,int);
373  int*, int ,int);
375  int*, int ,int);
377  int*, int ,int);
379  int*, int ,int);
380 int MMG3D_movv_ani(MMG5_pMesh ,MMG5_pSol ,int ,int );
381 int MMG3D_movv_iso(MMG5_pMesh ,MMG5_pSol ,int ,int );
382 int MMG3D_normalAdjaTri(MMG5_pMesh,int,char,int,double n[3]);
383 int MMG5_chkswpbdy(MMG5_pMesh, MMG5_pSol,int*, int, int, int,char);
384 int MMG5_swpbdy(MMG5_pMesh,MMG5_pSol,int*,int,int,MMG3D_pPROctree,char);
385 int MMG5_swpgen(MMG5_pMesh,MMG5_pSol,int, int, int*,MMG3D_pPROctree,char);
386 int MMG5_chkswpgen(MMG5_pMesh,MMG5_pSol,int,int,int*,int*,double,char);
387 int MMG3D_swap23(MMG5_pMesh,MMG5_pSol,int,char,int,int,int,int);
388 int MMG5_srcface(MMG5_pMesh mesh,int n0,int n1,int n2);
389 int MMG5_chkptonbdy(MMG5_pMesh,int);
390 double MMG5_orcal_poi(double a[3],double b[3],double c[3],double d[3]);
391 int MMG5_countelt(MMG5_pMesh mesh,MMG5_pSol sol, double *weightelt, long *npcible);
392 /*function for agressive optimization*/
395 int MMG3D_splitItem(MMG5_pMesh , MMG5_pSol ,MMG3D_pPROctree ,int ,int ,double );
398 
399 int MMG5_trydisp(MMG5_pMesh,double *,short);
400 int MMG5_dichodisp(MMG5_pMesh,double *);
401 int MMG5_lapantilap(MMG5_pMesh,double *);
402 int MMG5_ppgdisp(MMG5_pMesh,double *);
404 int MMG3D_displayQualHisto(int,double,double,double,int,int,int,
405  int his[5],int,int,int);
406 int MMG3D_displayQualHisto_internal(int,double,double,double,int,int,int,
407  int his[5],int,int,int);
408 void MMG3D_computeInqua(MMG5_pMesh,MMG5_pSol,int*,double*,double*,double*,int*,int*,
409  int*,int his[5],int);
411 void MMG3D_computeOutqua(MMG5_pMesh,MMG5_pSol,int*,double*,double*,double*,int*,int*,
412  int*,int his[5],int*,int);
414 void MMG3D_computeLESqua(MMG5_pMesh,MMG5_pSol,int*,double*,double*,double*,int*,int*,
415  int*,int his[5],int);
416 int MMG3D_computePrilen(MMG5_pMesh,MMG5_pSol,double*,double*,double*,int*,int*,int*,
417  int*,int*,int*,char,double**, int [9] );
418 int MMG3D_prilen(MMG5_pMesh mesh,MMG5_pSol met,char);
421 int MMG5_intridmet(MMG5_pMesh,MMG5_pSol,int,int,double,double*,double*);
422 int MMG5_intregmet(MMG5_pMesh,MMG5_pSol,int,char,double, double*);
423 int MMG5_intvolmet(MMG5_pMesh,MMG5_pSol,int,char,double, double*);
424 int MMG3D_localParamReg(MMG5_pMesh,int,int*,int,int*,int,double*,double*,double*);
425 int MMG3D_localParamNm(MMG5_pMesh,int,int,int,double*,double*,double*);
426 int MMG3D_mark_packedPoints(MMG5_pMesh mesh,int *np,int *nc);
437 
438 /* useful functions to debug */
439 int MMG3D_indElt(MMG5_pMesh mesh,int kel);
440 int MMG3D_indPt(MMG5_pMesh mesh,int kp);
441 void MMG5_printTetra(MMG5_pMesh mesh,char* fileName);
442 
443 
444 #ifdef USE_SCOTCH
445 int MMG5_mmg3dRenumbering(int vertBoxNbr, MMG5_pMesh mesh, MMG5_pSol sol);
446 #endif
447 
448 int MMG5_meancur(MMG5_pMesh mesh,int np,double c[3],int ilist,int *list,double h[3]);
449 double MMG5_surftri(MMG5_pMesh,int,int);
450 double MMG5_timestepMCF(MMG5_pMesh,double);
452 double MMG5_volint(MMG5_pMesh);
453 
454 /* Lagrangian mode functions */
455 double MMG5_estavglen(MMG5_pMesh);
456 int MMG5_stiffelt(MMG5_pMesh,int,double*,double*);
460 
461 /* Delaunay functions*/
462 int MMG5_delone(MMG5_pMesh mesh,MMG5_pSol sol,int ip,int *list,int ilist);
463  int MMG5_cavity_iso(MMG5_pMesh mesh,MMG5_pSol sol,int iel,int ip,int *list,int lon,double volmin);
464  int MMG5_cavity_ani(MMG5_pMesh mesh,MMG5_pSol sol,int iel,int ip,int *list,int lon,double volmin);
465 int MMG5_cenrad_iso(MMG5_pMesh mesh,double *ct,double *c,double *rad);
466 int MMG5_cenrad_ani(MMG5_pMesh mesh,double *ct,double *m,double *c,double *rad);
467 
468 /* mmg3d1.c */
469 void MMG5_tet2tri(MMG5_pMesh mesh,int k,char ie,MMG5_Tria *ptt);
470 int MMG3D_dichoto(MMG5_pMesh mesh,MMG5_pSol met,int k,int *vx);
471 int MMG3D_dichoto1b(MMG5_pMesh mesh,MMG5_pSol met,int *list,int ret,int);
472 char MMG5_chkedg(MMG5_pMesh mesh,MMG5_Tria *pt,char ori,double,double,int);
474  char,char,int* );
475 int MMG5_anatet(MMG5_pMesh mesh,MMG5_pSol met, char typchk, int patternMode) ;
477  double clickSurf,double clickVol,int moveVol,int improveSurf,int improveVolSurf,
478  int improveVol,int maxit,int testmark);
480  int MMG5_swptet(MMG5_pMesh mesh,MMG5_pSol met,double,double,MMG3D_pPROctree, int,int);
481 
482 /* pointers */
483 /* init structures */
485 /* iso/aniso computations */
487 extern double MMG5_lenedgCoor_iso(double*, double*, double*, double*);
488 int MMG5_intmet_iso(MMG5_pMesh,MMG5_pSol,int,char,int, double);
489 int MMG5_intmet_ani(MMG5_pMesh,MMG5_pSol,int,char,int, double);
490 int MMG3D_intmet33_ani(MMG5_pMesh,MMG5_pSol,int,char,int, double);
491 int MMG5_interp4bar_ani(MMG5_pMesh,MMG5_pSol,int,int,double *);
492 int MMG5_interp4bar33_ani(MMG5_pMesh,MMG5_pSol,int,int,double *);
493 int MMG5_interp4bar_iso(MMG5_pMesh,MMG5_pSol,int,int,double *);
500 double MMG5_meansizreg_iso(MMG5_pMesh,MMG5_pSol,int,int*,int,double,double);
502 extern int MMG5_moymet(MMG5_pMesh ,MMG5_pSol ,MMG5_pTetra ,double *);
505 
506 extern double (*MMG5_lenedg)(MMG5_pMesh ,MMG5_pSol ,int, MMG5_pTetra );
507 extern double (*MMG5_lenedgspl)(MMG5_pMesh ,MMG5_pSol ,int, MMG5_pTetra );
508 extern double (*MMG5_caltet)(MMG5_pMesh mesh,MMG5_pSol met,MMG5_pTetra pt);
509 extern double (*MMG5_caltri)(MMG5_pMesh mesh,MMG5_pSol met,MMG5_pTria ptt);
510 extern int (*MMG3D_defsiz)(MMG5_pMesh ,MMG5_pSol );
511 extern int (*MMG3D_gradsiz)(MMG5_pMesh ,MMG5_pSol );
512 extern int (*MMG3D_gradsizreq)(MMG5_pMesh ,MMG5_pSol );
513 extern int (*MMG5_intmet)(MMG5_pMesh,MMG5_pSol,int,char,int, double);
514 extern int (*MMG5_interp4bar)(MMG5_pMesh,MMG5_pSol,int,int,double *);
515 extern int (*MMG5_movintpt)(MMG5_pMesh ,MMG5_pSol, MMG3D_pPROctree ,int *, int , int );
516 extern int (*MMG5_movbdyregpt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree ,int*, int, int*, int, int ,int);
517 extern int (*MMG5_movbdyrefpt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree ,int*, int, int*, int ,int);
518 extern int (*MMG5_movbdynompt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree ,int*, int, int*, int ,int);
519 extern int (*MMG5_movbdyridpt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree ,int*, int, int*, int ,int);
520 extern int (*MMG5_cavity)(MMG5_pMesh ,MMG5_pSol ,int ,int ,int *,int ,double);
521 extern int (*MMG3D_PROctreein)(MMG5_pMesh ,MMG5_pSol ,MMG3D_pPROctree ,int,double );
522 
529 static inline
531  if ( mesh->xt ) {
532  if ( mesh->xt != mesh->ne ) {
533  fprintf(stderr,"\n ## Warning: %s: %d tetra on %d reoriented.\n",
534  __func__,mesh->xt,mesh->ne);
535  fprintf(stderr," Your mesh may be non-conform.\n");
536  }
537  else {
538  fprintf(stderr,"\n ## Warning: %s: all tetra reoriented.\n",__func__);
539  }
540  }
541  mesh->xt = 0;
542 }
543 
548 static inline
556 #ifdef USE_SCOTCH
557  MMG5_renumbering = MMG5_mmg3dRenumbering;
558 #endif
559 }
560 
561 #ifdef __cplusplus
562 }
563 #endif
564 
565 #endif
MMG5_Mesh::nprism
int nprism
Definition: libmmgtypes.h:517
MMG5_buildridmet
int MMG5_buildridmet(MMG5_pMesh mesh, MMG5_pSol met, int np0, double ux, double uy, double uz, double mr[6], double r[3][3])
Definition: mettools.c:127
MMG5_Vector
@ MMG5_Vector
Definition: libmmgtypes.h:176
m
! double * m
Definition: libmmgtypesf.h:627
MMG3D_PROctree_s::v
int * v
Definition: mmg3d.h:195
MMG5_Mesh::prism
MMG5_pPrism prism
Definition: libmmgtypes.h:546
MMG5_bdryIso
int MMG5_bdryIso(MMG5_pMesh)
MMG5_movbdyrefpt
int(* MMG5_movbdyrefpt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: mmg3d.c:50
MMG5_movbdynompt_iso
int MMG5_movbdynompt_iso(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: movpt_3d.c:1126
MMG5_Info::npar
int npar
Definition: libmmgtypes.h:447
MMG5_inxt3
static const unsigned char MMG5_inxt3[7]
next vertex of tetra: {1,2,3,0,1,2,3}
Definition: mmg3d.h:141
MMG5_boulenm
int MMG5_boulenm(MMG5_pMesh mesh, int start, int ip, int iface, double n[3], double t[3])
Definition: boulep_3d.c:155
MMG5_intersecmet22
int MMG5_intersecmet22(MMG5_pMesh mesh, double *m, double *n, double *mr)
Definition: mettools.c:254
MMG5_Mesh::nenil
int nenil
Definition: libmmgtypes.h:527
MMG5_chkVertexConnectedDomains
int MMG5_chkVertexConnectedDomains(MMG5_pMesh mesh)
Definition: analys_3d.c:350
MMG5_Sol::np
int np
Definition: libmmgtypes.h:566
MMG5_iarf_pr
static const unsigned char MMG5_iarf_pr[5][5]
iarf[i]: edges of face i for a prism
Definition: mmg3d.h:164
MMG5_arpt
static const unsigned char MMG5_arpt[4][3]
arpt[i]: edges passing through vertex i
Definition: mmg3d.h:159
MMG5_lenedg
double(* MMG5_lenedg)(MMG5_pMesh, MMG5_pSol, int, MMG5_pTetra)
Definition: mmg3d.c:39
MMG5_srcface
int MMG5_srcface(MMG5_pMesh mesh, int n0, int n1, int n2)
MMG3D_Free_all_var
int MMG3D_Free_all_var(va_list argptr)
Definition: variadic_3d.c:242
MMG5_warnOrientation
static void MMG5_warnOrientation(MMG5_pMesh mesh)
Definition: mmg3d.h:530
MMG3D_bdryBuild
int MMG3D_bdryBuild(MMG5_pMesh)
Definition: libmmg3d.c:222
MMG5_boulevolp
int MMG5_boulevolp(MMG5_pMesh mesh, int start, int ip, int *list)
Definition: boulep_3d.c:53
MMG3D_Init_mesh_var
int MMG3D_Init_mesh_var(va_list argptr)
Definition: variadic_3d.c:148
MMG3D_PROctree::q0
MMG3D_PROctree_s * q0
Definition: mmg3d.h:208
MMG3D_findEdge
int MMG3D_findEdge(MMG5_pMesh, MMG5_pTetra, int, int, int, int, char *, char *)
Definition: boulep_3d.c:110
MMG3D_parsar
int MMG3D_parsar(int argc, char *argv[], MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg3d_tools.c:170
MG_MAX
#define MG_MAX(a, b)
Definition: mmgcommon.h:136
MMG5_Info::hmin
double hmin
Definition: libmmgtypes.h:445
MMG5_srcbdy
int MMG5_srcbdy(MMG5_pMesh mesh, int start, int ia)
Definition: boulep_3d.c:1191
MMG5_MILLION
#define MMG5_MILLION
Definition: mmgcommon.h:88
MMG5_split1b
int MMG5_split1b(MMG5_pMesh, MMG5_pSol, int *, int, int, int, char, char)
Definition: split_3d.c:511
MMG5_Tetra
Definition: libmmgtypes.h:339
MMG3D_zaldy
int MMG3D_zaldy(MMG5_pMesh mesh)
Definition: zaldy_3d.c:316
MMG5_Sol
Definition: libmmgtypes.h:563
MG_SIN
#define MG_SIN(tag)
Definition: mmgcommon.h:163
MMG5_meancur
int MMG5_meancur(MMG5_pMesh mesh, int np, double c[3], int ilist, int *list, double h[3])
MMG5_movbdynompt
int(* MMG5_movbdynompt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: mmg3d.c:51
MMG5_intmetsavedir
int MMG5_intmetsavedir(MMG5_pMesh mesh, double *m, double *n, double *mr)
Definition: mettools.c:86
adja
! int * adja
Definition: libmmgtypesf.h:584
MMG3D_gradsizreq
int(* MMG3D_gradsizreq)(MMG5_pMesh, MMG5_pSol)
Definition: mmg3d.c:45
MMG5_ARG_ppDisp
#define MMG5_ARG_ppDisp
Definition: libmmgtypes.h:112
MMG5_hTag
int MMG5_hTag(MMG5_HGeom *hash, int a, int b, int ref, int16_t tag)
Definition: hash_3d.c:841
MMG3D_hashTetra
int MMG3D_hashTetra(MMG5_pMesh mesh, int pack)
Definition: hash_3d.c:180
PROctree
! int PROctree
Definition: libmmgtypesf.h:500
MMG3D_setMeshSize_initData
int MMG3D_setMeshSize_initData(MMG5_pMesh, int, int, int, int, int, int)
Definition: API_functions_3d.c:201
MMG3D_writeLocalParam
static int MMG3D_writeLocalParam(MMG5_pMesh mesh)
Definition: mmg3d.c:148
MG_REL
#define MG_REL
Definition: mmgcommon.h:62
MMG5_freeXTets
void MMG5_freeXTets(MMG5_pMesh mesh)
Definition: zaldy_3d.c:329
MMG3D_newElt
int MMG3D_newElt(MMG5_pMesh mesh)
Definition: zaldy_3d.c:94
MMG3D_solTruncatureForOptim
void MMG3D_solTruncatureForOptim(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg3d.c:96
MMG3D_printArbreDepth
void MMG3D_printArbreDepth(MMG3D_PROctree_s *q, int depth, int nv, int dim)
Definition: PRoctree_3d.c:1000
MG_EOK
#define MG_EOK(pt)
Definition: mmgcommon.h:160
MMG5_paktet
int MMG5_paktet(MMG5_pMesh mesh)
Definition: hash_3d.c:49
nemax
! int nemax
Definition: libmmgtypesf.h:571
MMG3D_printArbre
void MMG3D_printArbre(MMG3D_PROctree *q)
MMG5_ppgdisp
int MMG5_ppgdisp(MMG5_pMesh, double *)
MMG5_swpgen
int MMG5_swpgen(MMG5_pMesh, MMG5_pSol, int, int, int *, MMG3D_pPROctree, char)
Definition: swapgen_3d.c:246
MMG5_caltet
double(* MMG5_caltet)(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTetra pt)
Definition: mmg3d.c:41
MMG5_excfun
static void MMG5_excfun(int sigid)
Definition: mmgcommon.h:404
MMG3D_movnormal_iso
int MMG3D_movnormal_iso(MMG5_pMesh, MMG5_pSol, int, int)
Definition: movpt_3d.c:1924
MG_NOM
#define MG_NOM
Definition: mmgcommon.h:144
MMG5_interp4bar
int(* MMG5_interp4bar)(MMG5_pMesh, MMG5_pSol, int, int, double *)
Definition: mmg3d.c:47
MMG3D_split2sf_sim
int MMG3D_split2sf_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6])
Definition: split_3d.c:1114
MMG5_Mesh::xt
int xt
Definition: libmmgtypes.h:525
MMG5_Sol::namein
char * namein
Definition: libmmgtypes.h:573
MMG3D_defsiz
int(* MMG3D_defsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg3d.c:43
MMG5_saveDisp
int MMG5_saveDisp(MMG5_pMesh, MMG5_pSol)
MMG5_ARG_start
#define MMG5_ARG_start
Definition: libmmgtypes.h:73
MMG5_Info::iso
char iso
Definition: libmmgtypes.h:453
MMG5_lenedgspl
double(* MMG5_lenedgspl)(MMG5_pMesh, MMG5_pSol, int, MMG5_pTetra)
Definition: mmg3d.c:40
MMG5_cavity_iso
int MMG5_cavity_iso(MMG5_pMesh mesh, MMG5_pSol sol, int iel, int ip, int *list, int lon, double volmin)
Definition: delaunay_3d.c:741
main
int main(int argc, char *argv[])
Definition: mmg3d.c:307
MMG3D_mergeBranches
void MMG3D_mergeBranches(MMG5_pMesh mesh, MMG3D_PROctree_s *q, int dim, int nv)
Definition: PRoctree_3d.c:859
MMG5_grad2metreq_ani
int(* MMG5_grad2metreq_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:33
MMG3D_displayQualHisto
int MMG3D_displayQualHisto(int, double, double, double, int, int, int, int his[5], int, int, int)
Definition: quality_3d.c:438
MMG5_HGeom
Hash table to store geometric edges.
Definition: libmmgtypes.h:478
MMG5_Sol::size
int size
Definition: libmmgtypes.h:569
MMG5_boulesurfvolp
int MMG5_boulesurfvolp(MMG5_pMesh mesh, int start, int ip, int iface, int *listv, int *ilistv, int *lists, int *ilists, int isnm)
Definition: boulep_3d.c:469
MMG5_cenrad_iso
int MMG5_cenrad_iso(MMG5_pMesh mesh, double *ct, double *c, double *rad)
Definition: cenrad_3d.c:45
MMG5_scaleMesh
int MMG5_scaleMesh(MMG5_pMesh mesh, MMG5_pSol met)
Definition: scalem.c:89
MMG5_volint
double MMG5_volint(MMG5_pMesh)
MG_STR
#define MG_STR
Definition: mmgcommon.h:64
MMG3D_pack_points
int MMG3D_pack_points(MMG5_pMesh mesh)
Definition: libmmg3d.c:623
MMG5_settag
int MMG5_settag(MMG5_pMesh, int, int, int16_t, int)
Definition: boulep_3d.c:839
MMG3D_mmg3dmov
int MMG3D_mmg3dmov(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol disp)
Definition: libmmg3d.c:1134
MMG5_Hash
Identic as MMG5_HGeom but use MMG5_hedge to store edges instead of MMG5_hgeom (memory economy).
Definition: libmmgtypes.h:499
MMG3D_pack_tetraAndAdja
int MMG3D_pack_tetraAndAdja(MMG5_pMesh mesh)
Definition: libmmg3d.c:347
tmp
! int tmp
Definition: libmmgtypesf.h:259
MMG3D_optlap
int MMG3D_optlap(MMG5_pMesh, MMG5_pSol)
Definition: optlap_3d.c:42
MMG3D_loadMesh
int MMG3D_loadMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_3d.c:102
MMG5_chkedg
char MMG5_chkedg(MMG5_pMesh mesh, MMG5_pTria pt, char ori, double, double, int)
nt
! int nt
Definition: libmmgtypesf.h:571
MMG5_grad2metSurf
int MMG5_grad2metSurf(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria pt, int np1, int np2)
Definition: anisosiz.c:912
MMG3D_defaultOption
static int MMG3D_defaultOption(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmg3d.c:212
MMG3D_PROctreein_iso
int MMG3D_PROctreein_iso(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int, double)
Definition: PRoctree_3d.c:1137
MMG5_Mesh::point
MMG5_pPoint point
Definition: libmmgtypes.h:542
MMG3D_memOption_memRepartition
int MMG3D_memOption_memRepartition(MMG5_pMesh mesh)
Definition: zaldy_3d.c:168
MMG3D_split5_sim
int MMG3D_split5_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6])
Definition: split_3d.c:4431
MG_VER
#define MG_VER
Definition: mmgcommon.h:61
k
! int k
Definition: libmmgtypesf.h:543
MMG3D_PROctree_s::nbVer
int nbVer
Definition: mmg3d.h:196
MMG3D_gradsiz
int(* MMG3D_gradsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg3d.c:44
MMG3D_delPt
void MMG3D_delPt(MMG5_pMesh mesh, int ip)
Definition: zaldy_3d.c:75
MMG5_movintptLES_iso
int MMG5_movintptLES_iso(MMG5_pMesh mesh, MMG5_pSol met, MMG3D_pPROctree, int *, int, int)
Definition: movpt_3d.c:193
MMG5_chkptonbdy
int MMG5_chkptonbdy(MMG5_pMesh, int)
Definition: chkmsh_3d.c:301
MMG5_indPt
int(* MMG5_indPt)(MMG5_pMesh mesh, int kp)
Definition: mmgexterns.c:31
MMG5_Mesh::memMax
size_t memMax
Definition: libmmgtypes.h:510
MMG3D_pPROctree
MMG3D_PROctree * MMG3D_pPROctree
Definition: mmg3d.h:210
MMG3D_getListSquareRec
int MMG3D_getListSquareRec(MMG3D_PROctree_s *, double *, double *, MMG3D_PROctree_s ***, double *, double *, double, int, int, int *)
Definition: PRoctree_3d.c:441
MMG5_movbdyregpt_ani
int MMG5_movbdyregpt_ani(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int, int)
Definition: anisomovpt_3d.c:195
MMG3D_prilen
int MMG3D_prilen(MMG5_pMesh mesh, MMG5_pSol met, char)
Definition: quality_3d.c:319
MMG5_endcod
static void MMG5_endcod()
Definition: mmg3d.c:59
MMG5_directsurfball
int MMG5_directsurfball(MMG5_pMesh mesh, int ip, int *list, int ilist, double n[3])
Definition: tools_3d.c:73
MMG3D_defsiz_ani
int MMG3D_defsiz_ani(MMG5_pMesh, MMG5_pSol)
Definition: anisosiz_3d.c:1255
MMG5_countelt
int MMG5_countelt(MMG5_pMesh mesh, MMG5_pSol sol, double *weightelt, long *npcible)
Definition: quality_3d.c:754
MMG3D_hashPrism
int MMG3D_hashPrism(MMG5_pMesh mesh)
Definition: hash_3d.c:295
MMG3D_localParamNm
int MMG3D_localParamNm(MMG5_pMesh, int, int, int, double *, double *, double *)
Definition: tools_3d.c:1052
MMG5_movbdyrefpt
int(* MMG5_movbdyrefpt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: mmg3d.c:50
n1
! double n1[3]
Definition: libmmgtypesf.h:275
MMG5_idir
static const unsigned char MMG5_idir[4][3]
idir[i]: vertices of face opposite to vertex i
Definition: mmg3d.h:145
MMG3D_pack_pointArray
int MMG3D_pack_pointArray(MMG5_pMesh mesh)
Definition: libmmg3d.c:569
MMG3D_gradsiz_ani
int MMG3D_gradsiz_ani(MMG5_pMesh, MMG5_pSol)
Definition: anisosiz_3d.c:1880
MMG5_orcal_poi
double MMG5_orcal_poi(double a[3], double b[3], double c[3], double d[3])
MMG5_Mesh::np
int np
Definition: libmmgtypes.h:516
MMG5_interp4bar_iso
int MMG5_interp4bar_iso(MMG5_pMesh, MMG5_pSol, int, int, double *)
MMG5_movintpt
int(* MMG5_movintpt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int)
Definition: mmg3d.c:48
MMG3D_movePROctree
int MMG3D_movePROctree(MMG5_pMesh, MMG3D_pPROctree, int, double *, double *)
Definition: PRoctree_3d.c:223
MMG3D_getListSquare
int MMG3D_getListSquare(MMG5_pMesh, double *, MMG3D_PROctree *, double *, MMG3D_PROctree_s ***)
MMG5_writeLocalParamAtTet
static int MMG5_writeLocalParamAtTet(MMG5_pMesh mesh, MMG5_iNode *bdryRefs, FILE *out)
Definition: mmg3d.c:122
MMG5_Add_inode
int MMG5_Add_inode(MMG5_pMesh mesh, MMG5_iNode **liLi, int val)
Definition: tools.c:642
MMG5_hGet
int MMG5_hGet(MMG5_HGeom *hash, int a, int b, int *ref, int16_t *tag)
Definition: hash_3d.c:932
MMG5_split3cone
int MMG5_split3cone(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6], char)
Definition: split_3d.c:2185
MMG3D_computeLESqua
void MMG3D_computeLESqua(MMG5_pMesh, MMG5_pSol, int *, double *, double *, double *, int *, int *, int *, int his[5], int)
Definition: quality_3d.c:354
MMG3D_solTruncatureForOptim
void MMG3D_solTruncatureForOptim(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg3d.c:96
MMG5_surftri
double MMG5_surftri(MMG5_pMesh, int, int)
MMG3D_PROctree::nc
int nc
Definition: mmg3d.h:207
MMG5_countLocalParamAtTet
static int MMG5_countLocalParamAtTet(MMG5_pMesh mesh, MMG5_iNode **bdyRefs)
Definition: mmg3d.c:78
MMG3D_indPt
int MMG3D_indPt(MMG5_pMesh mesh, int kp)
Definition: tools_3d.c:866
MMG3D_movv_iso
int MMG3D_movv_iso(MMG5_pMesh, MMG5_pSol, int, int)
Definition: movpt_3d.c:2031
MMG5_Info::optim
unsigned char optim
Definition: libmmgtypes.h:457
MMG3D_inqua
int MMG3D_inqua(MMG5_pMesh mesh, MMG5_pSol met)
Definition: quality_3d.c:587
MMG5_printTetra
void MMG5_printTetra(MMG5_pMesh mesh, char *fileName)
Definition: tools_3d.c:882
MMG5_movbdyridpt_iso
int MMG5_movbdyridpt_iso(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: movpt_3d.c:1474
MMG3D_seekIndex
int MMG3D_seekIndex(double *distList, double dist, int indexMin, int indexMax)
Definition: PRoctree_3d.c:335
MMG5_movbdynompt
int(* MMG5_movbdynompt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: mmg3d.c:51
MMG3D_freePROctree_s
void MMG3D_freePROctree_s(MMG5_pMesh, MMG3D_PROctree_s *q, int nv)
Definition: PRoctree_3d.c:111
MMG3D_PROctree::nv
int nv
Definition: mmg3d.h:206
MMG5_mmgDefaultValues
void MMG5_mmgDefaultValues(MMG5_pMesh mesh)
Definition: mmg.c:80
siz
! int siz
Definition: libmmgtypesf.h:532
MMG5_grad2met_ani
int(* MMG5_grad2met_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:32
MG_CPY
#define MG_CPY
Definition: mmgcommon.h:63
MMG3D_Set_inputSolName
int MMG3D_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
Definition: API_functions_3d.c:67
MMG5_Mesh::ne
int ne
Definition: libmmgtypes.h:516
MMG3D_saveSol
int MMG3D_saveSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_3d.c:1965
MMG5_chkfemtopo
int MMG5_chkfemtopo(MMG5_pMesh mesh)
Definition: chkmsh_3d.c:411
MMG3D_split1_sim
int MMG3D_split1_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6])
Definition: split_3d.c:50
MMG5_Mesh::adja
int * adja
Definition: libmmgtypes.h:529
MMG5_BezierNom
int MMG5_BezierNom(MMG5_pMesh mesh, int ip0, int ip1, double s, double *o, double *no, double *to)
Definition: tools_3d.c:525
MMG5_dichodisp
int MMG5_dichodisp(MMG5_pMesh, double *)
MMG5_Info::hausd
double hausd
Definition: libmmgtypes.h:445
MMG5_Prism::v
int v[6]
Definition: libmmgtypes.h:401
MMG5_Mesh::tria
MMG5_pTria tria
Definition: libmmgtypes.h:548
MMG3D_coquilFaceFirstLoop
int MMG3D_coquilFaceFirstLoop(MMG5_pMesh mesh, int start, int na, int nb, char iface, char ia, int *list, int *ilist, int *it1, int *it2, int *piv, int *adj, char *hasadja, int *nbdy, int silent)
Definition: boulep_3d.c:1329
MMG3D_optbdry
int MMG3D_optbdry(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int)
Definition: optbdry_3d.c:239
MMG5_indElt
int(* MMG5_indElt)(MMG5_pMesh mesh, int kel)
Definition: mmgexterns.c:30
MMG5_split4sf
int MMG5_split4sf(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6], char)
Definition: split_3d.c:3753
argptr
const int va_list argptr
Definition: API_functionsf_3d.c:837
MMG3D_split2_sim
int MMG3D_split2_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6])
Definition: split_3d.c:1456
MMG5_bdyMCF
int MMG5_bdyMCF(MMG5_pMesh)
MMG5_Mesh::mark
int mark
Definition: libmmgtypes.h:523
mesh
MMG5_pMesh * mesh
Definition: API_functionsf_3d.c:65
MMG5_ADD_MEM
#define MMG5_ADD_MEM(mesh, size, message, law)
Definition: mmgcommon.h:275
MMG3D_mark_packedPoints
int MMG3D_mark_packedPoints(MMG5_pMesh mesh, int *np, int *nc)
Definition: libmmg3d.c:317
MMG5_Mesh::quadra
MMG5_pQuad quadra
Definition: libmmgtypes.h:549
MMG5_iarfinv
static const unsigned char MMG5_iarfinv[4][6]
num of the j^th edge in the i^th face
Definition: mmg3d.h:151
MMG3D_addPROctreeRec
int MMG3D_addPROctreeRec(MMG5_pMesh, MMG3D_PROctree_s *, double *, const int, int)
Definition: PRoctree_3d.c:645
MMG5_idir_pr
static const unsigned char MMG5_idir_pr[5][4]
idir[i]: vertices of face i for a prism
Definition: mmg3d.h:162
_LIBMMG5_RETURN
#define _LIBMMG5_RETURN(mesh, met, val)
Definition: mmgcommon.h:177
MMG3D_setfunc
void MMG3D_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg3d_tools.c:35
MG_GEO
#define MG_GEO
Definition: mmgcommon.h:142
MMG5_eigenv
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
MMG5_hPop
int MMG5_hPop(MMG5_HGeom *hash, int a, int b, int *ref, int16_t *tag)
Definition: hash_3d.c:873
libmmg3d.h
API headers for the mmg3d library.
chrono
void chrono(int cmode, mytime *ptt)
Function to measure time.
Definition: chrono.c:49
MMG5_hashPop
int MMG5_hashPop(MMG5_Hash *hash, int a, int b)
Definition: hash_3d.c:778
MMG3D_PROctree_s::depth
int depth
Definition: mmg3d.h:197
MMG5_mmg3dBezierCP
int MMG5_mmg3dBezierCP(MMG5_pMesh mesh, MMG5_Tria *pt, MMG5_pBezier pb, char ori)
Definition: bezier_3d.c:327
v
! int v[3]
Definition: libmmgtypesf.h:315
MMG3D_hashTria
int MMG3D_hashTria(MMG5_pMesh mesh, MMG5_Hash *)
Definition: hash_3d.c:768
MMG3D_PROctree
Definition: mmg3d.h:204
MMG5_Free_ilinkedList
void MMG5_Free_ilinkedList(MMG5_pMesh mesh, MMG5_iNode *liLi)
Definition: tools.c:694
MMG5_bouletrid
int MMG5_bouletrid(MMG5_pMesh, int, int, int, int *, int *, int *, int *, int *, int *)
Definition: boulep_3d.c:626
MMG5_Tria::ref
int ref
Definition: libmmgtypes.h:273
MMG3D_gradsizreq_ani
int MMG3D_gradsizreq_ani(MMG5_pMesh, MMG5_pSol)
Definition: anisosiz_3d.c:2019
MMG5_Point
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:214
MMG3D_splsurfedge
int MMG3D_splsurfedge(MMG5_pMesh, MMG5_pSol, int, MMG5_pTetra, MMG5_pxTetra, char, char, char, int *)
Definition: mmg3d1.c:1383
MMG5_Init_parameters
void MMG5_Init_parameters(MMG5_pMesh mesh)
Definition: API_functions.c:51
MMG3D_gradsizreq_iso
int MMG3D_gradsizreq_iso(MMG5_pMesh, MMG5_pSol)
Definition: isosiz_3d.c:1137
MMG5_lenedg
double(* MMG5_lenedg)(MMG5_pMesh, MMG5_pSol, int, MMG5_pTetra)
Definition: mmg3d.c:39
MMG3D_delElt
int MMG3D_delElt(MMG5_pMesh mesh, int iel)
Definition: zaldy_3d.c:117
MMG5_Sol::nameout
char * nameout
Definition: libmmgtypes.h:574
MMG5_split5
int MMG5_split5(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6], char)
Definition: split_3d.c:4522
MMG3D_gradsiz
int(* MMG3D_gradsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg3d.c:44
MMG5_movbdyregpt
int(* MMG5_movbdyregpt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int, int)
Definition: mmg3d.c:49
mytime
Chrono object.
Definition: chrono.h:58
MMG3D_pack_sol
int MMG3D_pack_sol(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg3d.c:487
MMG5_mmg3d1_pattern
int MMG5_mmg3d1_pattern(MMG5_pMesh, MMG5_pSol)
Definition: mmg3d1_pattern.c:445
MMG5_split4op
int MMG5_split4op(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6], char)
Definition: split_3d.c:4111
s
! int s
Definition: libmmgtypesf.h:262
MMG5_Sol::m
double * m
Definition: libmmgtypes.h:571
MMG5_intmet
int(* MMG5_intmet)(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: mmg3d.c:46
MMG5_ARG_end
#define MMG5_ARG_end
Definition: libmmgtypes.h:159
MMG3D_sizeArbre
int * MMG3D_sizeArbre(MMG3D_PROctree *q, int dim)
MMG5_unscaleMesh
int MMG5_unscaleMesh(MMG5_pMesh mesh, MMG5_pSol met)
Definition: scalem.c:260
MMG5_idirinv
static const char MMG5_idirinv[4][4]
Definition: mmg3d.h:147
MMG3D_saveMesh
int MMG3D_saveMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_3d.c:1104
MMG3D_opttyp
int MMG3D_opttyp(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int)
Definition: opttyp_3d.c:467
MMG3D_PROctreein
int(* MMG3D_PROctreein)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int, double)
Definition: mmg3d.c:54
MMG5_freeXPrisms
void MMG5_freeXPrisms(MMG5_pMesh mesh)
Definition: zaldy_3d.c:348
MMG5_rotmatrix
int MMG5_rotmatrix(double n[3], double r[3][3])
Definition: tools.c:232
libmmgcommon.h
API header for the common part of the MMG libraries.
MMG3D_mark_pointsOnReqEdge_fromTetra
void MMG3D_mark_pointsOnReqEdge_fromTetra(MMG5_pMesh mesh)
Definition: isosiz_3d.c:1018
npmax
! int npmax
Definition: libmmgtypesf.h:571
MMG5_STRONGFAILURE
#define MMG5_STRONGFAILURE
Definition: libmmgtypes.h:56
MMG3D_intersectRect
int MMG3D_intersectRect(double *rectin, double *rectinout)
Definition: PRoctree_3d.c:383
MMG5_movbdynompt_ani
int MMG5_movbdynompt_ani(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: anisomovpt_3d.c:1028
MMG3D_nmgeom
int MMG3D_nmgeom(MMG5_pMesh mesh)
Definition: analys_3d.c:666
MMG3D_delPROctreeVertex
int MMG3D_delPROctreeVertex(MMG5_pMesh, MMG3D_PROctree_s *q, int no)
Definition: PRoctree_3d.c:795
MMG5_split1
int MMG5_split1(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6], char metRidTyp)
Definition: split_3d.c:116
MMG3D_doSol
int MMG3D_doSol(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg3d_tools.c:810
MMG5_tet2tri
void MMG5_tet2tri(MMG5_pMesh mesh, int k, char ie, MMG5_Tria *ptt)
Definition: mmg3d1.c:52
MMG3D_gradsizreq
int(* MMG3D_gradsizreq)(MMG5_pMesh, MMG5_pSol)
Definition: mmg3d.c:45
MMG3D_normalAdjaTri
int MMG3D_normalAdjaTri(MMG5_pMesh, int, char, int, double n[3])
Definition: split_3d.c:462
MMG5_Compute_constantSize
int MMG5_Compute_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double *hsiz)
Definition: API_functions.c:487
MMG3D_memOption
int MMG3D_memOption(MMG5_pMesh mesh)
Definition: zaldy_3d.c:235
MMG5_interp4bar33_ani
int MMG5_interp4bar33_ani(MMG5_pMesh, MMG5_pSol, int, int, double *)
MMG5_Quad::v
int v[4]
Definition: libmmgtypes.h:305
MMG5_intmet_iso
int MMG5_intmet_iso(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: intmet_3d.c:131
MG_MIN
#define MG_MIN(a, b)
Definition: mmgcommon.h:137
MMG5_startedgsurfball
int MMG5_startedgsurfball(MMG5_pMesh mesh, int nump, int numq, int *list, int ilist)
Definition: tools_3d.c:97
dim
! int dim
Definition: libmmgtypesf.h:569
MMG5_iprv3
static const unsigned char MMG5_iprv3[7]
previous vertex of tetra: {3,0,1,2,3,0,1}
Definition: mmg3d.h:143
MMG3D_split6_sim
int MMG3D_split6_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6])
Definition: split_3d.c:4760
MMG5_hNew
int MMG5_hNew(MMG5_pMesh mesh, MMG5_HGeom *hash, int hsiz, int hmax)
Definition: hash_3d.c:1006
MMG5_estavglen
double MMG5_estavglen(MMG5_pMesh)
MMG5_movbdyregpt_iso
int MMG5_movbdyregpt_iso(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int, int)
Definition: movpt_3d.c:357
MMG5_Info::imprim
char imprim
Definition: libmmgtypes.h:453
MMG5_Info::hgrad
double hgrad
Definition: libmmgtypes.h:445
MMG5_EPS
#define MMG5_EPS
Definition: eigenv.h:32
MMG5_split3
int MMG5_split3(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6], char)
Definition: split_3d.c:1792
MMG5_Point::tag
int16_t tag
Definition: libmmgtypes.h:223
MMG3D_set_metricAtPointsOnReqEdges
int MMG3D_set_metricAtPointsOnReqEdges(MMG5_pMesh, MMG5_pSol)
Definition: isosiz_3d.c:542
MMG5_xPoint::n1
double n1[3]
Definition: libmmgtypes.h:234
MMG5_Tria
Definition: libmmgtypes.h:270
MMG3D_bezierInt
int MMG3D_bezierInt(MMG5_pBezier pb, double uv[2], double o[3], double no[3], double to[3])
Definition: bezier_3d.c:551
MMG3D_delPROctreeRec
int MMG3D_delPROctreeRec(MMG5_pMesh, MMG3D_PROctree_s *, double *, const int, const int)
Definition: PRoctree_3d.c:891
MMG3D_sizeArbreRec
void MMG3D_sizeArbreRec(MMG3D_PROctree_s *q, int nv, int dim, int *, int *)
Definition: PRoctree_3d.c:1072
MMG5_SUCCESS
#define MMG5_SUCCESS
Definition: libmmgtypes.h:40
MMG5_Bezier
Definition: mmgcommon.h:480
MMG3D_isCellIncluded
int MMG3D_isCellIncluded(double *cellCenter, double l, double *zoneCenter, double l0)
Definition: PRoctree_3d.c:263
MMG5_lenedgspl
double(* MMG5_lenedgspl)(MMG5_pMesh, MMG5_pSol, int, MMG5_pTetra)
Definition: mmg3d.c:40
MMG5_iNode
Cell for linked list of integer value.
MMG5_eigensym
int MMG5_eigensym(double m[3], double lambda[2], double vp[2][2])
Definition: eigenv.c:746
MMG5_bdryUpdate
int MMG5_bdryUpdate(MMG5_pMesh)
Definition: hash_3d.c:1988
MMG5_cavity
int(* MMG5_cavity)(MMG5_pMesh, MMG5_pSol, int, int, int *, int, double)
Definition: mmg3d.c:53
MMG5_BezierRidge
int MMG5_BezierRidge(MMG5_pMesh mesh, int ip0, int ip1, double s, double *o, double *no1, double *no2, double *to)
Definition: tools_3d.c:150
MMG3D_outqua
int MMG3D_outqua(MMG5_pMesh mesh, MMG5_pSol met)
Definition: quality_3d.c:712
MMG5_LOWFAILURE
#define MMG5_LOWFAILURE
Definition: libmmgtypes.h:48
MMG5_Mesh::nquad
int nquad
Definition: libmmgtypes.h:517
MG_NUL
#define MG_NUL
Definition: mmgcommon.h:152
MMG3D_mergeBranchesRec
void MMG3D_mergeBranchesRec(MMG3D_PROctree_s *, MMG3D_PROctree_s *, int, int, int *)
Definition: PRoctree_3d.c:830
b
! int b
Definition: libmmgtypesf.h:286
MMG3D_dichoto1b
int MMG3D_dichoto1b(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ret, int)
Definition: mmg3d1.c:240
MMG3D_Free_topoTables
void MMG3D_Free_topoTables(MMG5_pMesh mesh)
Definition: libmmg3d.c:64
MMG5_grad2metSurfreq
int MMG5_grad2metSurfreq(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria pt, int npmaster, int npslave)
Definition: anisosiz.c:1450
MMG5_anatet
int MMG5_anatet(MMG5_pMesh mesh, MMG5_pSol met, char typchk, int patternMode)
Definition: mmg3d1.c:2578
MMG5_coquilTravel
int16_t MMG5_coquilTravel(MMG5_pMesh, int, int, int *, int *, char *, char *)
Definition: boulep_3d.c:1589
hsiz
! double hsiz
Definition: libmmgtypesf.h:495
ori
! char ori
Definition: libmmgtypesf.h:411
MMG5_mmgUsage
void MMG5_mmgUsage(char *prog)
Definition: mmg.c:44
MMG3D_dichoto
int MMG3D_dichoto(MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
Definition: mmg3d1.c:88
MMG5_chkmsh
int(* MMG5_chkmsh)(MMG5_pMesh, int, int)
Definition: mmgexterns.c:27
c
! double c[3]
Definition: libmmgtypesf.h:255
MMG5_permedge
static const unsigned char MMG5_permedge[12][6]
Definition: mmg3d.h:182
MMG5_intvolmet
int MMG5_intvolmet(MMG5_pMesh, MMG5_pSol, int, char, double, double *)
tag
! int16_t tag
Definition: libmmgtypesf.h:263
MMG3D_saveMshMesh
int MMG3D_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_3d.c:1763
MMG5_intmet_ani
int MMG5_intmet_ani(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: intmet_3d.c:51
MMG5_split6
int MMG5_split6(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6], char)
Definition: split_3d.c:4829
MMG5_Mesh::xpoint
MMG5_pxPoint xpoint
Definition: libmmgtypes.h:543
np
! int np
Definition: libmmgtypesf.h:571
MMG5_splitedg
int MMG5_splitedg(MMG5_pMesh mesh, MMG5_pSol met, int iel, int iar, double crit)
Definition: split_3d.c:5259
MMG5_mmgIntextmet
int MMG5_mmgIntextmet(MMG5_pMesh mesh, MMG5_pSol met, int np, double me[6], double n[3])
Definition: mettools.c:443
MMG5_Mesh::npnil
int npnil
Definition: libmmgtypes.h:526
MMG3D_chk4ridVertices
int MMG3D_chk4ridVertices(MMG5_pMesh mesh, MMG5_pTetra pt)
Definition: anisosiz_3d.c:38
MMG5_pSol
MMG5_Sol * MMG5_pSol
Definition: libmmgtypes.h:576
printim
void printim(double elps, char *stim)
Print real time.
Definition: chrono.c:149
MMG5_chooseOutputFormat
void MMG5_chooseOutputFormat(MMG5_pMesh mesh, int *msh)
Definition: mmg.c:186
MMG3D_computeInqua
void MMG3D_computeInqua(MMG5_pMesh, MMG5_pSol, int *, double *, double *, double *, int *, int *, int *, int his[5], int)
Definition: quality_3d.c:516
MMG5_lapantilap
int MMG5_lapantilap(MMG5_pMesh, double *)
MMG3D_indElt
int MMG3D_indElt(MMG5_pMesh mesh, int kel)
Definition: tools_3d.c:850
MMG3D_movv_ani
int MMG3D_movv_ani(MMG5_pMesh, MMG5_pSol, int, int)
Definition: movpt_3d.c:1813
MMG5_Point::xp
int xp
Definition: libmmgtypes.h:218
MMG5_singul
int MMG5_singul(MMG5_pMesh mesh)
Definition: analys_3d.c:420
MMG3D_Init_mesh
int MMG3D_Init_mesh(const int starter,...)
Definition: API_functions_3d.c:43
MMG5_Mesh::tetra
MMG5_pTetra tetra
Definition: libmmgtypes.h:544
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_BOXSIZE
#define MMG5_BOXSIZE
Definition: mmgcommon.h:70
MMG5_hashFace
int MMG5_hashFace(MMG5_pMesh, MMG5_Hash *, int, int, int, int)
Definition: hash_3d.c:95
MMG5_ifar
static const unsigned char MMG5_ifar[6][2]
ifar[i][]: faces sharing the ith edge of the tetra
Definition: mmg3d.h:155
MMG3D_Free_names
int MMG3D_Free_names(const int starter,...)
Definition: API_functions_3d.c:2309
MMG5_paratmet
int MMG5_paratmet(double c0[3], double n0[3], double m[6], double c1[3], double n1[3], double mt[6])
Definition: mettools.c:652
MMG5_velextLS
int MMG5_velextLS(MMG5_pMesh, MMG5_pSol)
MMG5_timestepMCF
double MMG5_timestepMCF(MMG5_pMesh, double)
MMG3D_set_reqBoundaries
void MMG3D_set_reqBoundaries(MMG5_pMesh mesh)
Definition: analys_3d.c:45
MMG5_ARG_ppMesh
#define MMG5_ARG_ppMesh
Definition: libmmgtypes.h:82
mmgcommon.h
MMG3D_defsiz_iso
int MMG3D_defsiz_iso(MMG5_pMesh, MMG5_pSol)
Definition: isosiz_3d.c:642
MMG5_SAFE_REALLOC
#define MMG5_SAFE_REALLOC(ptr, prevSize, newSize, type, message, law)
Definition: mmgcommon.h:310
MMG3D_split3_sim
int MMG3D_split3_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6])
Definition: split_3d.c:1721
MMG3D_coquilFaceSecondLoopInit
void MMG3D_coquilFaceSecondLoopInit(MMG5_pMesh mesh, int piv, char *iface, char *i, int *list, int *ilist, int *it1, int *pradj, int *adj)
Definition: boulep_3d.c:1424
ref
! int ref
Definition: libmmgtypesf.h:244
MMG5_Info::dhd
double dhd
Definition: libmmgtypes.h:445
MMG5_BezierGeod
double MMG5_BezierGeod(double c1[3], double c2[3], double t1[3], double t2[3])
Definition: bezier_3d.c:111
MMG3D_solTruncature
void MMG3D_solTruncature(MMG5_pMesh mesh, MMG5_pSol met)
na
! int na
Definition: libmmgtypesf.h:571
MMG5_chkcol_int
int MMG5_chkcol_int(MMG5_pMesh, MMG5_pSol, int, char, char, int *, int, char)
Definition: colver_3d.c:42
tminit
void tminit(mytime *t, int maxtim)
Initialize mytime object.
Definition: chrono.c:120
MMG5_norver
int MMG5_norver(MMG5_pMesh mesh)
Definition: analys_3d.c:494
MMG5_pMesh
MMG5_Mesh * MMG5_pMesh
Definition: libmmgtypes.h:557
MMG3D_computePrilen
int MMG3D_computePrilen(MMG5_pMesh, MMG5_pSol, double *, double *, double *, int *, int *, int *, int *, int *, int *, char, double **, int[9])
Definition: quality_3d.c:201
MMG3D_PROctree_s
Definition: mmg3d.h:192
hmax
! double hmax
Definition: libmmgtypesf.h:242
MMG5_buildridmetnor
int MMG5_buildridmetnor(MMG5_pMesh mesh, MMG5_pSol met, int np0, double nt[3], double mr[6], double r[3][3])
Definition: mettools.c:191
MMG5_boulernm
int MMG5_boulernm(MMG5_pMesh mesh, int start, int ip, int *ng, int *nr)
Definition: boulep_3d.c:323
MMG3D_PROctreein_ani
int MMG3D_PROctreein_ani(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int, double)
Definition: PRoctree_3d.c:1217
MMG3D_initPROctree_s
void MMG3D_initPROctree_s(MMG3D_PROctree_s *q)
Definition: PRoctree_3d.c:46
MMG5_stiffelt
int MMG5_stiffelt(MMG5_pMesh, int, double *, double *)
npar
! int npar
Definition: libmmgtypesf.h:497
MMG5_caltri
double(* MMG5_caltri)(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
Definition: mmg3d.c:42
MMG5_movintpt
int(* MMG5_movintpt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int)
Definition: mmg3d.c:48
MMG5_Mesh::nt
int nt
Definition: libmmgtypes.h:516
MMG3D_Set_solSize
int MMG3D_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, int np, int typSol)
Definition: API_functions_3d.c:109
MMG3D_split3cone_sim
int MMG3D_split3cone_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6])
Definition: split_3d.c:2004
MMG5_BezierEdge
int MMG5_BezierEdge(MMG5_pMesh mesh, int ip0, int ip1, double b0[3], double b1[3], char isrid, double v[3])
Definition: bezier_3d.c:152
MMG3D_computeOutqua
void MMG3D_computeOutqua(MMG5_pMesh, MMG5_pSol, int *, double *, double *, double *, int *, int *, int *, int his[5], int *, int)
Definition: quality_3d.c:635
MMG5_Mesh
MMG mesh structure.
Definition: libmmgtypes.h:509
MMG5_intmet
int(* MMG5_intmet)(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: mmg3d.c:46
MMG5_countLocalParamAtTri
int MMG5_countLocalParamAtTri(MMG5_pMesh mesh, MMG5_iNode **bdryRefs)
Definition: mmg.c:117
MMG5_ctim
mytime MMG5_ctim[TIMEMAX]
Definition: mmg3d.c:37
MMG5_BezierTgt
int MMG5_BezierTgt(double c1[3], double c2[3], double n1[3], double n2[3], double t1[3], double t2[3])
Definition: bezier_3d.c:53
MMG3D_split3op_sim
int MMG3D_split3op_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6])
Definition: split_3d.c:2719
MMG5_xPoint::n2
double n2[3]
Definition: libmmgtypes.h:234
MMG5_coquil
int MMG5_coquil(MMG5_pMesh mesh, int start, int ia, int *list)
Definition: boulep_3d.c:1053
MMG3D_memOption_memSet
int MMG3D_memOption_memSet(MMG5_pMesh mesh)
Definition: zaldy_3d.c:153
MMG5_xPoint
Structure to store surface points of a MMG mesh.
Definition: libmmgtypes.h:233
MMG3D_update_eltsVertices
int MMG3D_update_eltsVertices(MMG5_pMesh mesh)
Definition: libmmg3d.c:524
MMG5_memSize
size_t MMG5_memSize(void)
Definition: tools.c:546
MMG3D_PROctree_s
struct MMG3D_PROctree_s MMG3D_PROctree_s
MMG5_interp4bar
int(* MMG5_interp4bar)(MMG5_pMesh, MMG5_pSol, int, int, double *)
Definition: mmg3d.c:47
MMG5_writeLocalParamAtTri
int MMG5_writeLocalParamAtTri(MMG5_pMesh mesh, MMG5_iNode *bdryRefs, FILE *out)
Definition: mmg.c:162
MMG5_chkmanicoll
int MMG5_chkmanicoll(MMG5_pMesh, int, int, int, int, int, char, char)
Definition: mmg3d2.c:899
MMG5_denoisbdy
int MMG5_denoisbdy(MMG5_pMesh)
MMG5_chkswpbdy
int MMG5_chkswpbdy(MMG5_pMesh, MMG5_pSol, int *, int, int, int, char)
Definition: swap_3d.c:55
MMG5_deltag
int MMG5_deltag(MMG5_pMesh, int, int, int16_t)
Definition: boulep_3d.c:957
MMG5_caltet33_ani
double MMG5_caltet33_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTetra pt)
Definition: quality_3d.c:90
MMG3D_swap23
int MMG3D_swap23(MMG5_pMesh, MMG5_pSol, int, char, int, int, int, int)
Definition: swap_3d.c:561
MMG5_movintpt_iso
int MMG5_movintpt_iso(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int)
Definition: movpt_3d.c:55
MMG5_iarf
static const unsigned char MMG5_iarf[4][3]
iarf[i]: edges of face opposite to vertex i
Definition: mmg3d.h:149
MMG3D_placeInListDouble
void MMG3D_placeInListDouble(double *, double, int, int)
Definition: PRoctree_3d.c:296
MMG5_ARG_ppMet
#define MMG5_ARG_ppMet
Definition: libmmgtypes.h:102
MMG3D_Set_commonFunc
static void MMG3D_Set_commonFunc()
Definition: mmg3d.h:549
MMG5_nsort
void MMG5_nsort(int, double *, char *)
Definition: tools_3d.c:41
MMG3D_intmet33_ani
int MMG3D_intmet33_ani(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: intmet_3d.c:101
MMG5_split3op
int MMG5_split3op(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6], char)
Definition: split_3d.c:2851
MMG5_chkBdryTria
int MMG5_chkBdryTria(MMG5_pMesh mesh)
Definition: hash_3d.c:1402
MMG5_Info::hmax
double hmax
Definition: libmmgtypes.h:445
MMG3D_split4sf_sim
int MMG3D_split4sf_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6])
Definition: split_3d.c:3650
MMG3D_movetetrapoints
int MMG3D_movetetrapoints(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int)
Definition: optbdry_3d.c:45
MMG5_Mesh::namein
char * namein
Definition: libmmgtypes.h:553
MMG3D_freePROctree
void MMG3D_freePROctree(MMG5_pMesh, MMG3D_PROctree **q)
MMG3D_loadSol
int MMG3D_loadSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_3d.c:1782
MMG5_colver
int MMG5_colver(MMG5_pMesh, MMG5_pSol, int *, int, char, char)
Definition: colver_3d.c:713
MMG5_isar
static const unsigned char MMG5_isar[6][2]
isar[i][]: vertices of extremities of the edge opposite to the ith edge
Definition: mmg3d.h:157
MMG5_Mesh::info
MMG5_Info info
Definition: libmmgtypes.h:552
MMG5_movbdyridpt
int(* MMG5_movbdyridpt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: mmg3d.c:52
MMG3D_split4op_sim
int MMG3D_split4op_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6])
Definition: split_3d.c:3990
MMG5_BezierRef
int MMG5_BezierRef(MMG5_pMesh mesh, int ip0, int ip1, double s, double *o, double *no, double *to)
Definition: tools_3d.c:352
MMG5_movbdyrefpt_iso
int MMG5_movbdyrefpt_iso(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: movpt_3d.c:773
MMG5_intridmet
int MMG5_intridmet(MMG5_pMesh, MMG5_pSol, int, int, double, double *, double *)
MMG3D_tetraQual
int MMG3D_tetraQual(MMG5_pMesh mesh, MMG5_pSol met, char metRidTyp)
Definition: quality_3d.c:48
MMG5_Mesh::npmax
int npmax
Definition: libmmgtypes.h:516
MMG5_hashGetFace
int MMG5_hashGetFace(MMG5_Hash *, int, int, int)
Definition: hash_3d.c:143
MMG5_chkswpgen
int MMG5_chkswpgen(MMG5_pMesh, MMG5_pSol, int, int, int *, int *, double, char)
Definition: swapgen_3d.c:55
MMG5_iare
static const unsigned char MMG5_iare[6][2]
vertices of extremities of the edges of the tetra
Definition: mmg3d.h:153
MMG5_rmtr
int MMG5_rmtr(double r[3][3], double m[6], double mr[6])
Definition: tools.c:198
MMG3D_parsop
int MMG3D_parsop(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg3d_tools.c:476
MMG3D_analys
int MMG3D_analys(MMG5_pMesh mesh)
Definition: analys_3d.c:731
MMG3D_pack_prismsAndQuads
int MMG3D_pack_prismsAndQuads(MMG5_pMesh mesh)
Definition: libmmg3d.c:441
MMG5_bdryPerm
int MMG5_bdryPerm(MMG5_pMesh)
Definition: hash_3d.c:2077
MMG5_chkmani
int MMG5_chkmani(MMG5_pMesh mesh)
Definition: mmg3d2.c:756
MMG5_Tetra::ref
int ref
Definition: libmmgtypes.h:342
MMG5_split2sf
int MMG5_split2sf(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6], char)
Definition: split_3d.c:1224
MMG3D_addPROctree
int MMG3D_addPROctree(MMG5_pMesh mesh, MMG3D_PROctree *q, const int no)
n
! double n[3]
Definition: libmmgtypesf.h:256
MMG3D_splitItem
int MMG3D_splitItem(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int, int, double)
Definition: opttyp_3d.c:390
MMG5_hGeom
int MMG5_hGeom(MMG5_pMesh mesh)
Definition: hash_3d.c:1034
MMG3D_localParamReg
int MMG3D_localParamReg(MMG5_pMesh, int, int *, int, int *, int, double *, double *, double *)
Definition: tools_3d.c:932
MMG5_setNmTag
int MMG5_setNmTag(MMG5_pMesh mesh, MMG5_Hash *hash)
Definition: hash_3d.c:746
MMG5_movbdyridpt_ani
int MMG5_movbdyridpt_ani(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: anisomovpt_3d.c:1375
MMG3D_initPROctree
int MMG3D_initPROctree(MMG5_pMesh, MMG3D_pPROctree *q, int nv)
Definition: PRoctree_3d.c:63
MMG3D_mmg3dlib
int MMG3D_mmg3dlib(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg3d.c:742
MMG3D_unset_reqBoundaries
void MMG3D_unset_reqBoundaries(MMG5_pMesh mesh)
Definition: libmmg3d.c:645
MMG5_Mesh::nameout
char * nameout
Definition: libmmgtypes.h:554
MMG5_meansizreg_iso
double MMG5_meansizreg_iso(MMG5_pMesh, MMG5_pSol, int, int *, int, double, double)
Definition: isosiz_3d.c:461
mmg3d.h
MMG5_swpbdy
int MMG5_swpbdy(MMG5_pMesh, MMG5_pSol, int *, int, int, MMG3D_pPROctree, char)
Definition: swap_3d.c:434
MMG5_bdrySet
int MMG5_bdrySet(MMG5_pMesh)
Definition: hash_3d.c:1701
MMG5_SAFE_CALLOC
#define MMG5_SAFE_CALLOC(ptr, size, type, law)
Definition: mmgcommon.h:289
MMG5_swptet
int MMG5_swptet(MMG5_pMesh mesh, MMG5_pSol met, double, double, MMG3D_pPROctree, int, int)
Definition: mmg3d1.c:611
MMG3D_delPROctree
int MMG3D_delPROctree(MMG5_pMesh mesh, MMG3D_pPROctree q, const int no)
Definition: PRoctree_3d.c:972
MMG3D_placeInListPROctree
void MMG3D_placeInListPROctree(MMG3D_PROctree_s **, MMG3D_PROctree_s *, int, int)
Definition: PRoctree_3d.c:314
MMG5_mmg3d1_delone
int MMG5_mmg3d1_delone(MMG5_pMesh, MMG5_pSol)
Definition: mmg3d1_delone.c:1273
MMG5_interp4bar_ani
int MMG5_interp4bar_ani(MMG5_pMesh, MMG5_pSol, int, int, double *)
MMG5_Scalar
@ MMG5_Scalar
Definition: libmmgtypes.h:175
MMG5_moymet
int MMG5_moymet(MMG5_pMesh, MMG5_pSol, MMG5_pTetra, double *)
Definition: anisosiz_3d.c:69
MMG3D_Free_structures_var
int MMG3D_Free_structures_var(va_list argptr)
Definition: variadic_3d.c:353
MMG5_DEL_MEM
#define MMG5_DEL_MEM(mesh, ptr)
Definition: mmgcommon.h:266
MMG5_coquilFaceErrorMessage
void MMG5_coquilFaceErrorMessage(MMG5_pMesh mesh, int k1, int k2)
Definition: boulep_3d.c:1250
MMG5_coquilface
int MMG5_coquilface(MMG5_pMesh mesh, int start, char iface, int, int *, int *, int *, int)
Definition: boulep_3d.c:1480
MMG5_hEdge
int MMG5_hEdge(MMG5_pMesh mesh, MMG5_HGeom *hash, int a, int b, int ref, int16_t tag)
Definition: hash_3d.c:964
MMG5_BezierReg
int MMG5_BezierReg(MMG5_pMesh mesh, int ip0, int ip1, double s, double v[3], double *o, double *no)
Definition: tools_3d.c:684
MMG3D_loadMshMesh
int MMG3D_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_3d.c:980
MMG3D_setMeshSize_alloc
int MMG3D_setMeshSize_alloc(MMG5_pMesh)
Definition: zaldy_3d.c:254
ier
int ier
Definition: API_functionsf_3d.c:839
MMG5_trydisp
int MMG5_trydisp(MMG5_pMesh, double *, short)
MMG3D_mmg3d2
int MMG3D_mmg3d2(MMG5_pMesh, MMG5_pSol)
Definition: mmg3d2.c:1428
MMG5_Info::ddebug
char ddebug
Definition: libmmgtypes.h:453
MMG3D_mmg3dls
int MMG3D_mmg3dls(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg3d.c:951
MMG5_movbdyregpt
int(* MMG5_movbdyregpt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int, int)
Definition: mmg3d.c:49
MMG5_cavity_ani
int MMG5_cavity_ani(MMG5_pMesh mesh, MMG5_pSol sol, int iel, int ip, int *list, int lon, double volmin)
Definition: delaunay_3d.c:582
MMG5_Info::lag
char lag
Definition: libmmgtypes.h:453
MMG5_openCoquilTravel
int16_t MMG5_openCoquilTravel(MMG5_pMesh, int, int, int *, int *, char *, char *)
Definition: boulep_3d.c:1641
MMG5_chkcol_bdy
int MMG5_chkcol_bdy(MMG5_pMesh, MMG5_pSol, int, char, char, int *, int, int *, int, char)
Definition: colver_3d.c:358
MMG5_buildridmetfic
int MMG5_buildridmetfic(MMG5_pMesh mesh, double t[3], double n[3], double dtan, double dv, double dn, double m[6])
Definition: mettools.c:52
MMG5_Prism
Definition: libmmgtypes.h:400
MMG3D_simbulgept
int MMG3D_simbulgept(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist, int)
Definition: split_3d.c:321
MMG5_split2
int MMG5_split2(MMG5_pMesh mesh, MMG5_pSol met, int k, int vx[6], char)
Definition: split_3d.c:1518
MMG5_cenrad_ani
int MMG5_cenrad_ani(MMG5_pMesh mesh, double *ct, double *m, double *c, double *rad)
Definition: cenrad_3d.c:130
MMG3D_PROctreein
int(* MMG3D_PROctreein)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int, double)
Definition: mmg3d.c:54
MMG5_defaultValues
void MMG5_defaultValues(MMG5_pMesh)
MMG5_bezierCP
int(* MMG5_bezierCP)(MMG5_pMesh, MMG5_Tria *, MMG5_pBezier, char)
Definition: mmgexterns.c:28
MMG5_movtet
int MMG5_movtet(MMG5_pMesh mesh, MMG5_pSol met, MMG3D_pPROctree PROctree, double clickSurf, double clickVol, int moveVol, int improveSurf, int improveVolSurf, int improveVol, int maxit, int testmark)
Definition: mmg3d1.c:673
MMG3D_pack_tetra
int MMG3D_pack_tetra(MMG5_pMesh mesh)
Definition: libmmg3d.c:401
MMG5_setdhd
int MMG5_setdhd(MMG5_pMesh mesh)
Definition: analys_3d.c:283
MMG5_caltet
double(* MMG5_caltet)(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTetra pt)
Definition: mmg3d.c:41
MMG3D_PROctree_s::branches
struct MMG3D_PROctree_s * branches
Definition: mmg3d.h:194
MMG5_mmg3d3
int MMG5_mmg3d3(MMG5_pMesh, MMG5_pSol, MMG5_pSol)
MMG5_swpmsh
int MMG5_swpmsh(MMG5_pMesh mesh, MMG5_pSol met, MMG3D_pPROctree PROctree, int)
Definition: mmg3d1.c:542
MMG3D_swpItem
int MMG3D_swpItem(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int, int)
Definition: opttyp_3d.c:326
MMG5_delone
int MMG5_delone(MMG5_pMesh mesh, MMG5_pSol sol, int ip, int *list, int ilist)
Definition: delaunay_3d.c:140
MMG3D_defsiz
int(* MMG3D_defsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg3d.c:43
MMG5_caltri
double(* MMG5_caltri)(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
Definition: mmg3d.c:42
MMG5_Info::hsiz
double hsiz
Definition: libmmgtypes.h:445
MMG3D_Free_names_var
int MMG3D_Free_names_var(va_list argptr)
Definition: variadic_3d.c:491
librnbg.h
header file for the librnbg.c librnbg_s.c librnbg_3d.c files
MMG5_Point::tmp
int tmp
Definition: libmmgtypes.h:219
MMG5_movbdyrefpt_ani
int MMG5_movbdyrefpt_ani(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: anisomovpt_3d.c:678
MMG5_setadj
int MMG5_setadj(MMG5_pMesh mesh)
Definition: analys_3d.c:96
MMG5_norface
int MMG5_norface(MMG5_pMesh mesh, int k, int iface, double v[3])
Definition: tools_3d.c:59
MMG3D_newPt
int MMG3D_newPt(MMG5_pMesh mesh, double c[3], int16_t tag)
Definition: zaldy_3d.c:39
TIMEMAX
#define TIMEMAX
Definition: chrono.h:49
MMG5_lenedgCoor_iso
double MMG5_lenedgCoor_iso(double *, double *, double *, double *)
Compute edge length from edge's coordinates.
Definition: isosiz_3d.c:59
MMG5_Mesh::nemax
int nemax
Definition: libmmgtypes.h:516
MMG5_EPSD
#define MMG5_EPSD
Definition: eigenv.h:31
MMG5_cntbdypt
int MMG5_cntbdypt(MMG5_pMesh mesh, int nump)
Definition: chkmsh_3d.c:363
MMG5_Vertex
@ MMG5_Vertex
Definition: libmmgtypes.h:186
MMG3D_gradsiz_iso
int MMG3D_gradsiz_iso(MMG5_pMesh, MMG5_pSol)
Definition: isosiz_3d.c:1053
MMG5_split4bar
int MMG5_split4bar(MMG5_pMesh mesh, MMG5_pSol met, int k, char)
Definition: split_3d.c:3301
MMG3D_packMesh
int MMG3D_packMesh(MMG5_pMesh, MMG5_pSol, MMG5_pSol)
Definition: libmmg3d.c:674
MMG5_mmg3dChkmsh
int MMG5_mmg3dChkmsh(MMG5_pMesh, int, int)
Definition: chkmsh_3d.c:111
MMG3D_displayQualHisto_internal
int MMG3D_displayQualHisto_internal(int, double, double, double, int, int, int, int his[5], int, int, int)
Definition: quality_3d.c:472
MMG5_cavity
int(* MMG5_cavity)(MMG5_pMesh, MMG5_pSol, int, int, int *, int, double)
Definition: mmg3d.c:53
MMG5_RETURN_AND_FREE
#define MMG5_RETURN_AND_FREE(mesh, met, disp, val)
Definition: mmg3d.h:35
a
! int a
Definition: libmmgtypesf.h:286
MMG5_intregmet
int MMG5_intregmet(MMG5_pMesh, MMG5_pSol, int, char, double, double *)
MMG5_movbdyridpt
int(* MMG5_movbdyridpt)(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int *, int, int)
Definition: mmg3d.c:52
MMG5_Tetra::v
int v[4]
Definition: libmmgtypes.h:341
MMG5_pTetra
MMG5_Tetra * MMG5_pTetra
Definition: libmmgtypes.h:350
MMG5_movintpt_ani
int MMG5_movintpt_ani(MMG5_pMesh, MMG5_pSol, MMG3D_pPROctree, int *, int, int)
Definition: anisomovpt_3d.c:55
MMG5_Point::n
double n[3]
Definition: libmmgtypes.h:216