mmg2d
mmg2d.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 #ifndef MMG2D_H
24 #define MMG2D_H
25 
26 #include <assert.h>
27 #include <stdlib.h>
28 #include <stdio.h>
29 #include <limits.h>
30 #include <math.h>
31 #include <string.h>
32 #include <signal.h>
33 #include <ctype.h>
34 #include <float.h>
35 
36 #include "libmmg2d.h"
37 #include "mmgcommon.h"
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 /* constantes */
44 
45 #define M_MAX(a,b) (((a) > (b)) ? (a) : (b))
46 #define M_MIN(a,b) (((a) < (b)) ? (a) : (b))
47 
48 #define M_LAMBDA 0.34
49 #define M_MU 0.33
50 
51 #define MMG2D_EPSD 1.e-10 //e-20??
52 #define MMG2D_EPSA 1.e-12
53 
54 #define MMG2D_PRECI 1.
55 #define MMG2D_SIZE 0.75
56 #define MMG2D_ALPHA 0.28867513459
57 #define MMG2D_ALPHAD 3.464101615137755 /* 6.0 / sqrt(3.0) */
58 #define MMG2D_LONMAX 1024
59 #define MMG2D_BADKAL 0.2
60 #define MMG2D_NULKAL 1.e-6
61 #define MMG2D_ANGCORN -1.e-6
62 #define MMG2D_SHORTMAX 0x7fff
63 #define MMG2D_LPARMAX 200
64 
65 #define MMG2D_LLONG 2.0
66 #define MMG2D_LSHRT 0.3
67 #define MMG2D_LOPTL 1.4
68 #define MMG2D_LOPTS 0.71
69 
70 #define MMG2D_NPMAX 50000
71 #define MMG2D_NEDMAX 100000
72 #define MMG2D_NEMAX 100000
73 
75 #define MMG2D_RETURN_AND_FREE(mesh,met,disp,val)do \
76  { \
77  if ( !MMG2D_Free_all(MMG5_ARG_start, \
78  MMG5_ARG_ppMesh,&mesh,MMG5_ARG_ppMet,&met, \
79  MMG5_ARG_end) ) { \
80  return MMG5_LOWFAILURE; \
81  } \
82  return val; \
83  }while(0)
84 
91 static inline
92 void MMG2D_excfun(int sigid) {
93  fprintf(stdout,"\n Unexpected error:"); fflush(stdout);
94  switch(sigid) {
95  case SIGABRT:
96  fprintf(stdout," Abnormal stop\n"); break;
97  case SIGFPE:
98  fprintf(stdout," Floating-point exception\n"); break;
99  case SIGILL:
100  fprintf(stdout," Illegal instruction\n"); break;
101  case SIGSEGV:
102  fprintf(stdout," Segmentation fault\n"); break;
103  case SIGTERM:
104  case SIGINT:
105  fprintf(stdout," Program killed\n"); break;
106  }
107  exit(EXIT_FAILURE);
108 }
109 
110 typedef struct squeue {
111  int *stack,cur;
112 } Queue;
113 typedef Queue * pQueue;
114 
115 typedef struct {
116  int size;
117  int *head;
118  int *link;
119 } Bucket;
120 typedef Bucket * pBucket;
121 
122 typedef struct {
123  int min,max,iel,nxt;
124 } Hedge;
125 
126 typedef struct {
127  int size,nxtmax,hnxt;
129 } HashTable;
131 
132 static const int MMG2D_iare[3][2] = {{1,2},{2,0},{0,1}};
133 static const int MMG2D_iopp[3][2] = {{1,2},{0,2},{0,1}};
134 static const unsigned int MMG2D_idir[5] = {0,1,2,0,1};
135 static const unsigned int MMG2D_inxt[5] = {1,2,0,1,2};
136 
137 
140 #define MMG2D_POINT_REALLOC(mesh,sol,ip,wantedGap,law,o,tag ) do \
141  { \
142  int klink; \
143  \
144  MMG5_TAB_RECALLOC(mesh,mesh->point,mesh->npmax,wantedGap,MMG5_Point, \
145  "larger point table",law); \
146  \
147  mesh->npnil = mesh->np+1; \
148  for (klink=mesh->npnil; klink<mesh->npmax-1; klink++) \
149  mesh->point[klink].tmp = klink+1; \
150  \
151  /* solution */ \
152  if ( sol->m ) { \
153  MMG5_ADD_MEM(mesh,(sol->size*(mesh->npmax-sol->npmax))*sizeof(double), \
154  "larger solution",law); \
155  MMG5_SAFE_REALLOC(sol->m,sol->size*(sol->npmax+1), \
156  sol->size*(mesh->npmax+1), \
157  double,"larger solution",law); \
158  } \
159  sol->npmax = mesh->npmax; \
160  \
161  /* We try again to add the point */ \
162  ip = MMG2D_newPt(mesh,o,tag); \
163  if ( !ip ) {law;} \
164  }while(0)
165 
168 #define MMG2D_TRIA_REALLOC(mesh,jel,wantedGap,law ) do \
169  { \
170  int klink,oldSiz; \
171  \
172  oldSiz = mesh->ntmax; \
173  MMG5_TAB_RECALLOC(mesh,mesh->tria,mesh->ntmax,wantedGap,MMG5_Tria, \
174  "larger tria table",law); \
175  \
176  mesh->nenil = mesh->nt+1; \
177  for (klink=mesh->nenil; klink<mesh->ntmax-1; klink++) \
178  mesh->tria[klink].v[2] = klink+1; \
179  \
180  if ( mesh->adja ) { \
181  /* adja table */ \
182  MMG5_ADD_MEM(mesh,3*(mesh->ntmax-oldSiz)*sizeof(int), \
183  "larger adja table",law); \
184  MMG5_SAFE_RECALLOC(mesh->adja,3*oldSiz+5,3*mesh->ntmax+5,int \
185  ,"larger adja table",law); \
186  } \
187  \
188  /* We try again to add the point */ \
189  jel = MMG2D_newElt(mesh); \
190  if ( !jel ) {law;} \
191  }while(0)
192 
193 /* Prototypes */
194 /*zaldy*/
195 int MMG2D_newPt(MMG5_pMesh mesh,double c[2],int16_t tag);
196 void MMG2D_delPt(MMG5_pMesh mesh,int ip) ;
197 void MMG5_delEdge(MMG5_pMesh mesh,int iel);
199 int MMG2D_delElt(MMG5_pMesh mesh,int iel);
200 int MMG5_getnElt(MMG5_pMesh mesh,int n);
202 size_t MMG5_memSize(void);
205 
210 //int MMG2D_mmg2d0(MMG5_pMesh ,MMG5_pSol );
212 //int MMG2D_split(MMG5_pMesh ,MMG5_pSol ,int ,int ,int,double );
213 //int MMG2D_splitbdry(MMG5_pMesh ,MMG5_pSol ,int ,int ,int,double*);
214 //int MMG2D_colpoi(MMG5_pMesh ,MMG5_pSol , int ,int ,int ,int ,double );
215 //int MMG2D_colpoibdry(MMG5_pMesh ,MMG5_pSol , int ,int ,int ,int ,double );
216 
217 int MMG2D_Init_mesh_var( va_list argptr );
218 int MMG2D_Free_all_var( va_list argptr );
219 int MMG2D_Free_structures_var( va_list argptr );
220 int MMG2D_Free_names_var( va_list argptr );
221 
223 
227 //int MMG2D_cendel(MMG5_pMesh ,MMG5_pSol ,double ,int );
228 int MMG2D_swapdelone(MMG5_pMesh ,MMG5_pSol ,int ,char ,double ,int *);
229 int MMG5_mmg2dChkmsh(MMG5_pMesh , int, int );
230 int MMG2D_boulep(MMG5_pMesh , int , int , int * );
231 //int MMG2D_markBdry(MMG5_pMesh );
233 
234 int MMG2D_coorbary(MMG5_pMesh ,MMG5_pTria ,double c[2],double* ,double* ,double* );
235 int MMG2D_isInTriangle(MMG5_pMesh ,int,double c[2]);
237 int MMG2D_cutEdgeTriangle(MMG5_pMesh ,int ,int ,int );
238 int MMG2D_findTria(MMG5_pMesh ,int );
239 //int MMG2D_findpos(MMG5_pMesh ,MMG5_pTria ,int ,int ,int ,int ,int );
240 int MMG2D_locateEdge(MMG5_pMesh ,int ,int ,int* ,int* ) ;
243 int MMG2D_findtrianglestate(MMG5_pMesh ,int ,int ,int ,int ,int ,int );
244 
245 pQueue MMG2D_kiuini(MMG5_pMesh mesh,int nbel,double declic,int base);
246 void MMG2D_kiufree(pQueue q);
247 int MMG2D_kiudel(pQueue q,int iel);
248 int MMG2D_kiuput(pQueue q,int iel);
249 int MMG2D_kiupop(pQueue q);
250 
251 int MMG2D_hashEdge(pHashTable edgeTable,int iel,int ia, int ib);
252 //int MMG2D_hashel(MMG5_pMesh mesh);
253 int MMG2D_hashNew(HashTable *hash,int hsize,int hmax);
255 
256 int simred(double *m1,double *m2,double *m);
257 
258 //int MMG2D_evalgeom(MMG5_pMesh mesh);
259 
260 int MMG2D_cavity(MMG5_pMesh ,MMG5_pSol ,int ,int *);
261 int MMG2D_delone(MMG5_pMesh ,MMG5_pSol ,int ,int *,int );
262 int MMG2D_cenrad_iso(MMG5_pMesh ,double *,double *,double *);
263 
264 /* Adds Charles */
265 int MMG2D_getIniRef(MMG5_pMesh ,int );
266 int MMG2D_isSplit(MMG5_pMesh ,int ,int *,int *);
268 int MMG2D_ismaniball(MMG5_pMesh , MMG5_pSol , int , char );
269 int MMG2D_snapval(MMG5_pMesh ,MMG5_pSol ,double *);
275 int MMG2D_split1_sim(MMG5_pMesh ,MMG5_pSol ,int ,int vx[3]);
276 int MMG2D_split2_sim(MMG5_pMesh ,MMG5_pSol ,int ,int vx[3]);
277 int MMG2D_split3_sim(MMG5_pMesh ,MMG5_pSol ,int ,int vx[3]);
278 int MMG2D_split1(MMG5_pMesh ,MMG5_pSol ,int ,int vx[3]);
279 int MMG2D_split2(MMG5_pMesh ,MMG5_pSol ,int ,int vx[3]);
280 int MMG2D_split3(MMG5_pMesh ,MMG5_pSol ,int ,int vx[3]);
281 int MMG2D_splitbar(MMG5_pMesh ,int ,int );
285 int MMG2D_singul(MMG5_pMesh,int );
287 int MMG2D_norver(MMG5_pMesh,int );
289 int MMG2D_boulen(MMG5_pMesh , int ,char ,int *,int *,double *);
291 int MMG2D_anatri(MMG5_pMesh ,MMG5_pSol ,char );
295 int MMG2D_defmetbdy_2d(MMG5_pMesh ,MMG5_pSol ,int ,char );
296 int MMG2D_defaultmet_2d(MMG5_pMesh ,MMG5_pSol ,int ,char );
301 int MMG2D_anaelt(MMG5_pMesh ,MMG5_pSol ,int );
302 int MMG2D_colelt(MMG5_pMesh ,MMG5_pSol ,int );
303 int MMG2D_swpmsh(MMG5_pMesh ,MMG5_pSol ,int );
304 double MMG2D_lencurv_iso(MMG5_pMesh ,MMG5_pSol ,int ,int );
305 double MMG2D_lencurv_ani(MMG5_pMesh ,MMG5_pSol ,int ,int );
306 int MMG2D_chkedg(MMG5_pMesh ,int );
307 int MMG2D_bezierCurv(MMG5_pMesh ,int ,char ,double ,double *,double *);
308 int MMG2D_dichoto(MMG5_pMesh ,MMG5_pSol ,int ,int *);
310 int MMG2D_chkcol(MMG5_pMesh,MMG5_pSol,int,char,int *,char);
311 int MMG2D_colver(MMG5_pMesh,int,int*);
312 int MMG2D_colver3(MMG5_pMesh,int*);
313 int MMG2D_colver2(MMG5_pMesh,int*);
314 int MMG2D_boulet(MMG5_pMesh,int,char,int*);
315 int MMG2D_bouleendp(MMG5_pMesh,int,char,int*,int*);
316 int MMG2D_savemesh_db(MMG5_pMesh ,char* ,char );
317 int MMG2D_savemet_db(MMG5_pMesh ,MMG5_pSol ,char* ,char );
318 int MMG2D_chkswp(MMG5_pMesh , MMG5_pSol ,int ,char ,char );
319 int MMG2D_swapar(MMG5_pMesh ,int ,char );
320 int MMG5_interpmet22(MMG5_pMesh ,double *,double *,double ,double *);
321 int MMG2D_intmet_iso(MMG5_pMesh ,MMG5_pSol ,int ,char ,int ,double );
322 int MMG2D_intmet_ani(MMG5_pMesh ,MMG5_pSol ,int ,char ,int ,double );
325 int MMG2D_movtri(MMG5_pMesh ,MMG5_pSol ,int ,char );
326 int MMG2D_chkspl(MMG5_pMesh ,MMG5_pSol ,int ,char );
327 int MMG2D_split1b(MMG5_pMesh ,int ,char ,int );
328 int MMG2D_movedgpt(MMG5_pMesh ,MMG5_pSol ,int ,int *,char );
329 int MMG2D_movintpt(MMG5_pMesh ,MMG5_pSol ,int ,int *,char );
330 int MMG2D_movintpt_ani(MMG5_pMesh ,MMG5_pSol ,int ,int *,char );
332 int MMG2D_chkor(MMG5_pMesh );
333 int MMG2D_savenor_db(MMG5_pMesh ,char *,char );
334 int MMG2D_savedisp_db(MMG5_pMesh mesh,MMG5_pSol ,char *,char );
336 
337 /* useful functions to debug */
338 int MMG2D_indElt(MMG5_pMesh mesh,int kel);
339 int MMG2D_indPt(MMG5_pMesh mesh,int kp);
340 
341 /* Management of local parameters */
343 
344 /* functions pointers */
345 double long_ani(double *ca,double *cb,double *ma,double *mb);
346 double long_iso(double *ca,double *cb,double *ma,double *mb);
349 int optlen_ani(MMG5_pMesh mesh,MMG5_pSol sol,double declic,int base);
350 int optlen_iso(MMG5_pMesh mesh,MMG5_pSol sol,double declic,int base);
351 int optlen_iso_bar(MMG5_pMesh mesh,MMG5_pSol sol,double declic,int base);
352 int interp_ani(double *,double *,double * ,double );
353 int interp_iso(double *,double *,double * ,double );
358 
359 extern double (*MMG2D_lencurv)(MMG5_pMesh ,MMG5_pSol ,int ,int );
360 extern double (*MMG2D_caltri)(MMG5_pMesh ,MMG5_pSol ,MMG5_pTria );
361 extern int (*MMG2D_optlen)(MMG5_pMesh ,MMG5_pSol ,double ,int );
362 extern int (*MMG2D_intmet)(MMG5_pMesh ,MMG5_pSol ,int ,char ,int ,double );
363 extern int (*MMG2D_gradsiz)(MMG5_pMesh ,MMG5_pSol );
364 extern int (*MMG2D_gradsizreq)(MMG5_pMesh ,MMG5_pSol );
365 extern int (*MMG2D_defsiz)(MMG5_pMesh ,MMG5_pSol );
366 
367 /* init structures */
369 
374 static inline
379 
380  return;
381 }
382 
383 #ifdef __cplusplus
384 }
385 #endif
386 
387 #endif
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
MMG2D_split3
int MMG2D_split3(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:624
m
! double * m
Definition: libmmgtypesf.h:627
MMG2D_IPARAM_angle
@ MMG2D_IPARAM_angle
Definition: libmmg2d.h:61
MMG5_Info::npar
int npar
Definition: libmmgtypes.h:447
MMG5_intersecmet22
int MMG5_intersecmet22(MMG5_pMesh mesh, double *m, double *n, double *mr)
Definition: mettools.c:254
MMG2D_setfunc
void MMG2D_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:35
MMG2D_norver
int MMG2D_norver(MMG5_pMesh, int)
Definition: analys_2d.c:339
MMG2D_defmetbdy_2d
int MMG2D_defmetbdy_2d(MMG5_pMesh, MMG5_pSol, int, char)
Definition: anisosiz_2d.c:84
MMG2D_IPARAM_debug
@ MMG2D_IPARAM_debug
Definition: libmmg2d.h:60
MMG5_Sol::np
int np
Definition: libmmgtypes.h:566
MMG5_Point::c
double c[3]
Definition: libmmgtypes.h:215
MMG2D_Set_commonFunc
static void MMG2D_Set_commonFunc()
Definition: mmg2d.h:375
MMG2D_gradsiz
int(* MMG2D_gradsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d.c:32
MMG2D_adpcol
int MMG2D_adpcol(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d1.c:688
MMG2D_caltri
double(* MMG2D_caltri)(MMG5_pMesh, MMG5_pSol, MMG5_pTria)
Definition: mmg2d.c:31
MMG2D_swapar
int MMG2D_swapar(MMG5_pMesh, int, char)
Definition: swapar_2d.c:221
MMG2D_indElt
int MMG2D_indElt(MMG5_pMesh mesh, int kel)
Definition: tools_2d.c:45
MG_MAX
#define MG_MAX(a, b)
Definition: mmgcommon.h:136
MMG2D_memOption
int MMG2D_memOption(MMG5_pMesh mesh)
Definition: zaldy_2d.c:218
MMG5_Info::hmin
double hmin
Definition: libmmgtypes.h:445
MMG2D_newPt
int MMG2D_newPt(MMG5_pMesh mesh, double c[2], int16_t tag)
Definition: zaldy_2d.c:38
MMG2D_hashTria
int MMG2D_hashTria(MMG5_pMesh)
Definition: hash_2d.c:49
MMG5_Tria::v
int v[3]
Definition: libmmgtypes.h:272
MMG5_MILLION
#define MMG5_MILLION
Definition: mmgcommon.h:88
MMG2D_Free_names_var
int MMG2D_Free_names_var(va_list argptr)
Definition: variadic_2d.c:440
simred
int simred(double *m1, double *m2, double *m)
Hedge::nxt
int nxt
Definition: mmg2d.h:123
MMG5_Sol
Definition: libmmgtypes.h:563
MG_SIN
#define MG_SIN(tag)
Definition: mmgcommon.h:163
MMG2D_solTruncatureForOptim
void MMG2D_solTruncatureForOptim(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d.c:49
squeue::cur
int cur
Definition: mmg2d.h:111
MMG2D_Set_outputSolName
int MMG2D_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
Definition: API_functions_2d.c:77
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
MMG5_Point::s
int s
Definition: libmmgtypes.h:222
MMG5_ARG_ppDisp
#define MMG5_ARG_ppDisp
Definition: libmmgtypes.h:112
MMG2D_isInTriangle
int MMG2D_isInTriangle(MMG5_pMesh mesh, int k, double c[2])
Definition: locate_2d.c:69
MMG5_Edge::ref
int ref
Definition: libmmgtypes.h:245
Bucket::size
int size
Definition: mmg2d.h:116
MG_REL
#define MG_REL
Definition: mmgcommon.h:62
MMG5_interpmet22
int MMG5_interpmet22(MMG5_pMesh, double *, double *, double, double *)
Definition: intmet_2d.c:54
max
! double max[3]
Definition: libmmgtypesf.h:496
lissmet_ani
int lissmet_ani(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: lissmet_2d.c:47
MMG2D_setref_ls
int MMG2D_setref_ls(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d6.c:553
MG_EOK
#define MG_EOK(pt)
Definition: mmgcommon.h:160
MMG2D_defsiz
int(* MMG2D_defsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d.c:27
MMG2D_baseBdry
int MMG2D_baseBdry(MMG5_pMesh mesh)
namein
! char * namein
Definition: libmmgtypesf.h:608
MMG2D_movintpt
int MMG2D_movintpt(MMG5_pMesh, MMG5_pSol, int, int *, char)
Definition: movpt_2d.c:212
MG_NOM
#define MG_NOM
Definition: mmgcommon.h:144
MMG2D_colver
int MMG2D_colver(MMG5_pMesh, int, int *)
Definition: colver_2d.c:270
MMG5_Sol::namein
char * namein
Definition: libmmgtypes.h:573
long_ani
double long_ani(double *ca, double *cb, double *ma, double *mb)
Definition: length_2d.c:46
main
int main(int argc, char *argv[])
Definition: mmg2d.c:606
MMG5_ARG_start
#define MMG5_ARG_start
Definition: libmmgtypes.h:73
MMG5_Info::iso
char iso
Definition: libmmgtypes.h:453
MMG2D_cutEdgeTriangle
int MMG2D_cutEdgeTriangle(MMG5_pMesh mesh, int k, int ia, int ib)
Definition: locate_2d.c:129
MMG5_grad2metreq_ani
int(* MMG5_grad2metreq_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:33
MMG5_Sol::size
int size
Definition: libmmgtypes.h:569
MG_STR
#define MG_STR
Definition: mmgcommon.h:64
MMG2D_intmet_iso
int MMG2D_intmet_iso(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: intmet_2d.c:38
MMG5_defaultValues
static int MMG5_defaultValues(MMG5_pMesh mesh)
Definition: mmg2d.c:82
MMG2D_split2_sim
int MMG2D_split2_sim(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:450
Bucket::head
int * head
Definition: mmg2d.h:117
MMG2D_setMeshSize_alloc
int MMG2D_setMeshSize_alloc(MMG5_pMesh)
Definition: zaldy_2d.c:237
MMG2D_hashNew
int MMG2D_hashNew(HashTable *hash, int hsize, int hmax)
Definition: hash_2d.c:28
MMG2D_RETURN_AND_FREE
#define MMG2D_RETURN_AND_FREE(mesh, met, disp, val)
Definition: mmg2d.h:75
nt
! int nt
Definition: libmmgtypesf.h:571
MMG5_Mesh::point
MMG5_pPoint point
Definition: libmmgtypes.h:542
MMG2D_IPARAM_numsubdomain
@ MMG2D_IPARAM_numsubdomain
Definition: libmmg2d.h:65
MG_VER
#define MG_VER
Definition: mmgcommon.h:61
k
! int k
Definition: libmmgtypesf.h:543
MMG2D_splitbar
int MMG2D_splitbar(MMG5_pMesh, int, int)
Definition: split_2d.c:715
MMG2D_isInTriangle
int MMG2D_isInTriangle(MMG5_pMesh, int, double c[2])
Definition: locate_2d.c:69
pHashTable
HashTable * pHashTable
Definition: mmg2d.h:130
HashTable::item
Hedge * item
Definition: mmg2d.h:128
MMG2D_colver2
int MMG2D_colver2(MMG5_pMesh, int *)
Definition: colver_2d.c:418
mmg2d.h
MMG5_Mesh::memMax
size_t memMax
Definition: libmmgtypes.h:510
MMG2D_colver3
int MMG2D_colver3(MMG5_pMesh, int *)
Definition: colver_2d.c:356
MMG2D_locateEdge
int MMG2D_locateEdge(MMG5_pMesh mesh, int ia, int ib, int *kdep, int *list)
Definition: locate_2d.c:323
MMG5_endcod
static void MMG5_endcod()
Definition: mmg2d.c:37
MMG2D_kiuput
int MMG2D_kiuput(pQueue q, int iel)
MMG2D_IPARAM_iso
@ MMG2D_IPARAM_iso
Definition: libmmg2d.h:62
MMG5_Mesh::base
int base
Definition: libmmgtypes.h:521
n1
! double n1[3]
Definition: libmmgtypesf.h:275
MMG2D_locateEdge
int MMG2D_locateEdge(MMG5_pMesh, int, int, int *, int *)
Definition: locate_2d.c:323
MMG2D_adpspl
int MMG2D_adpspl(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d1.c:632
MMG2D_boulep
int MMG2D_boulep(MMG5_pMesh, int, int, int *)
Definition: boulep_2d.c:34
MMG2D_movedgpt
int MMG2D_movedgpt(MMG5_pMesh, MMG5_pSol, int, int *, char)
Definition: movpt_2d.c:52
sol
MMG5_pMesh MMG5_pSol * sol
Definition: API_functionsf_2d.c:63
MMG2D_kiuini
pQueue MMG2D_kiuini(MMG5_pMesh mesh, int nbel, double declic, int base)
MMG2D_split1
int MMG2D_split1(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:384
MMG5_Mesh::np
int np
Definition: libmmgtypes.h:516
MMG2D_chkmsh
int MMG2D_chkmsh(MMG5_pMesh)
Definition: chkmsh_2d.c:204
MMG2D_IPARAM_noinsert
@ MMG2D_IPARAM_noinsert
Definition: libmmg2d.h:67
lissmet_ani
int lissmet_ani(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: lissmet_2d.c:47
MMG2D_caltri_iso
double MMG2D_caltri_iso(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pTria)
Definition: quality_2d.c:59
MMG2D_setadj
int MMG2D_setadj(MMG5_pMesh)
Definition: analys_2d.c:48
MMG5_Add_inode
int MMG5_Add_inode(MMG5_pMesh mesh, MMG5_iNode **liLi, int val)
Definition: tools.c:642
MMG2D_idir
static const unsigned int MMG2D_idir[5]
Definition: mmg2d.h:134
optlen_iso
int optlen_iso(MMG5_pMesh mesh, MMG5_pSol sol, double declic, int base)
MMG2D_DPARAM_hmin
@ MMG2D_DPARAM_hmin
Definition: libmmg2d.h:72
MMG5_Info::optim
unsigned char optim
Definition: libmmgtypes.h:457
MMG5_Point::tagdel
char tagdel
Definition: libmmgtypes.h:225
MMG2D_usage
static int MMG2D_usage(char *name)
Definition: mmg2d.c:45
MMG2D_zaldy
int MMG2D_zaldy(MMG5_pMesh mesh)
Definition: zaldy_2d.c:283
MMG5_mmgDefaultValues
void MMG5_mmgDefaultValues(MMG5_pMesh mesh)
Definition: mmg.c:80
MMG2D_velextLS
int MMG2D_velextLS(MMG5_pMesh, MMG5_pSol)
Hedge
Definition: mmg2d.h:122
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
MMG2D_grad2metreq_ani
int MMG2D_grad2metreq_ani(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: anisosiz_2d.c:635
MMG2D_inxt
static const unsigned int MMG2D_inxt[5]
Definition: mmg2d.h:135
MG_CPY
#define MG_CPY
Definition: mmgcommon.h:63
MMG2D_IPARAM_nosurf
@ MMG2D_IPARAM_nosurf
Definition: libmmg2d.h:70
MMG2D_movtri
int MMG2D_movtri(MMG5_pMesh, MMG5_pSol, int, char)
Definition: mmg2d1.c:745
MMG2D_gradsiz_ani
int MMG2D_gradsiz_ani(MMG5_pMesh, MMG5_pSol)
MMG2D_split1_sim
int MMG2D_split1_sim(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:339
MMG5_Mesh::adja
int * adja
Definition: libmmgtypes.h:529
parsar
int parsar(int argc, char *argv[], MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmg2d.c:319
MMG2D_kiufree
void MMG2D_kiufree(pQueue q)
MMG2D_analys
int MMG2D_analys(MMG5_pMesh)
Definition: analys_2d.c:680
MMG5_iprv2
static const unsigned char MMG5_iprv2[3]
Definition: mmgcommon.h:471
MMG2D_assignEdge
int MMG2D_assignEdge(MMG5_pMesh)
Definition: hash_2d.c:214
MMG5_Info::hausd
double hausd
Definition: libmmgtypes.h:445
MMG5_Mesh::tria
MMG5_pTria tria
Definition: libmmgtypes.h:548
argptr
const int va_list argptr
Definition: API_functionsf_2d.c:592
MMG2D_Init_mesh
int MMG2D_Init_mesh(const int starter,...)
Definition: API_functions_2d.c:43
base
! int base
Definition: libmmgtypesf.h:288
MMG2D_adptri
int MMG2D_adptri(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d1.c:542
M_MAX
#define M_MAX(a, b)
Definition: mmg2d.h:45
MMG2D_defaultOption
static int MMG2D_defaultOption(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmg2d.c:236
MMG2D_IPARAM_verbose
@ MMG2D_IPARAM_verbose
Definition: libmmg2d.h:58
MMG5_Mesh::mark
int mark
Definition: libmmgtypes.h:523
MMG2D_unscaleMesh
int MMG2D_unscaleMesh(MMG5_pMesh, MMG5_pSol)
Definition: scalem_2d.c:311
MMG2D_IPARAM_nomove
@ MMG2D_IPARAM_nomove
Definition: libmmg2d.h:69
mesh
MMG5_pMesh * mesh
Definition: API_functionsf_2d.c:63
MMG2D_defsiz_iso
int MMG2D_defsiz_iso(MMG5_pMesh, MMG5_pSol)
Definition: isosiz_2d.c:129
MMG2D_findTria
int MMG2D_findTria(MMG5_pMesh, int)
Definition: locate_2d.c:215
MMG2D_bezierCurv
int MMG2D_bezierCurv(MMG5_pMesh, int, char, double, double *, double *)
Definition: bezier_2d.c:117
_LIBMMG5_RETURN
#define _LIBMMG5_RETURN(mesh, met, val)
Definition: mmgcommon.h:177
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
MMG2D_defaultmet_2d
int MMG2D_defaultmet_2d(MMG5_pMesh, MMG5_pSol, int, char)
Definition: anisosiz_2d.c:49
chrono
void chrono(int cmode, mytime *ptt)
Function to measure time.
Definition: chrono.c:49
MMG5_Free_ilinkedList
void MMG5_Free_ilinkedList(MMG5_pMesh mesh, MMG5_iNode *liLi)
Definition: tools.c:694
MMG2D_DPARAM_ls
@ MMG2D_DPARAM_ls
Definition: libmmg2d.h:78
MMG2D_delPt
void MMG2D_delPt(MMG5_pMesh mesh, int ip)
Definition: zaldy_2d.c:57
MMG5_Tria::ref
int ref
Definition: libmmgtypes.h:273
interp_ani
int interp_ani(double *, double *, double *, double)
MMG5_Point
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:214
MMG2D_split2
int MMG2D_split2(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:499
MMG2D_mmg2dmov
int MMG2D_mmg2dmov(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol disp)
Definition: libmmg2d.c:768
MMG5_Sol::nameout
char * nameout
Definition: libmmgtypes.h:574
MMG2D_set_metricAtPointsOnReqEdges
int MMG2D_set_metricAtPointsOnReqEdges(MMG5_pMesh, MMG5_pSol)
Definition: isosiz_2d.c:73
MMG2D_anaelt
int MMG2D_anaelt(MMG5_pMesh, MMG5_pSol, int)
Definition: mmg2d1.c:109
mytime
Chrono object.
Definition: chrono.h:58
MMG5_Sol::m
double * m
Definition: libmmgtypes.h:571
MMG5_ARG_end
#define MMG5_ARG_end
Definition: libmmgtypes.h:159
MMG5_delEdge
void MMG5_delEdge(MMG5_pMesh mesh, int iel)
Definition: zaldy_2d.c:70
MMG2D_snapval
int MMG2D_snapval(MMG5_pMesh, MMG5_pSol, double *)
Definition: mmg2d6.c:183
lissmet_iso
int lissmet_iso(MMG5_pMesh mesh, MMG5_pSol sol)
MMG5_rotmatrix
int MMG5_rotmatrix(double n[3], double r[3][3])
Definition: tools.c:232
MMG2D_DPARAM_angleDetection
@ MMG2D_DPARAM_angleDetection
Definition: libmmg2d.h:71
MMG2D_anatri
int MMG2D_anatri(MMG5_pMesh, MMG5_pSol, char)
Definition: mmg2d1.c:39
MMG5_STRONGFAILURE
#define MMG5_STRONGFAILURE
Definition: libmmgtypes.h:56
MMG2D_lencurv
double(* MMG2D_lencurv)(MMG5_pMesh, MMG5_pSol, int, int)
Definition: mmg2d.c:29
MMG2D_intmet_ani
int MMG2D_intmet_ani(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: intmet_2d.c:237
MMG5_mark_pointsOnReqEdge_fromTria
void MMG5_mark_pointsOnReqEdge_fromTria(MMG5_pMesh mesh)
Definition: isosiz.c:233
MMG2D_mmg2d1n
int MMG2D_mmg2d1n(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d1.c:806
MMG2D_sum_reqEdgeLengthsAtPoint
int MMG2D_sum_reqEdgeLengthsAtPoint(MMG5_pMesh, MMG5_pSol, MMG5_pTria, char)
Definition: isosiz_2d.c:49
MMG2D_cavity
int MMG2D_cavity(MMG5_pMesh, MMG5_pSol, int, int *)
Definition: delone_2d.c:175
MMG2D_boulet
int MMG2D_boulet(MMG5_pMesh, int, char, int *)
Definition: boulep_2d.c:202
MMG2D_lencurv_iso
double MMG2D_lencurv_iso(MMG5_pMesh, MMG5_pSol, int, int)
Definition: length_2d.c:62
MMG5_Compute_constantSize
int MMG5_Compute_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double *hsiz)
Definition: API_functions.c:487
MMG2D_pack
int MMG2D_pack(MMG5_pMesh, MMG5_pSol)
Definition: hash_2d.c:354
MMG2D_chkswp
int MMG2D_chkswp(MMG5_pMesh, MMG5_pSol, int, char, char)
Definition: swapar_2d.c:128
MMG5_mmg2dChkmsh
int MMG5_mmg2dChkmsh(MMG5_pMesh, int, int)
Definition: chkmsh_2d.c:34
Queue
struct squeue Queue
MMG2D_mmg2d1
int MMG2D_mmg2d1(MMG5_pMesh, MMG5_pSol)
Hedge::max
int max
Definition: mmg2d.h:123
MMG2D_parsop
int MMG2D_parsop(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:67
MMG2D_writeLocalParamAtEdg
static int MMG2D_writeLocalParamAtEdg(MMG5_pMesh mesh, MMG5_iNode *bdryRefs, FILE *out)
Definition: mmg2d.c:146
MG_MIN
#define MG_MIN(a, b)
Definition: mmgcommon.h:137
optlen_iso_bar
int optlen_iso_bar(MMG5_pMesh mesh, MMG5_pSol sol, double declic, int base)
MMG2D_cuttri_ls
int MMG2D_cuttri_ls(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d6.c:413
MMG2D_IPARAM_noswap
@ MMG2D_IPARAM_noswap
Definition: libmmg2d.h:68
MMG5_Mesh::na
int na
Definition: libmmgtypes.h:516
MMG5_pTria
MMG5_Tria * MMG5_pTria
Definition: libmmgtypes.h:283
MMG2D_intmet
int(* MMG2D_intmet)(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: mmg2d.c:28
MMG2D_ismaniball
int MMG2D_ismaniball(MMG5_pMesh, MMG5_pSol, int, char)
Definition: mmg2d6.c:113
MMG2D_movintpt_ani
int MMG2D_movintpt_ani(MMG5_pMesh, MMG5_pSol, int, int *, char)
Definition: anisomovpt_2d.c:37
MMG5_Info::imprim
char imprim
Definition: libmmgtypes.h:453
MMG2D_Free_names
int MMG2D_Free_names(const int starter,...)
Definition: API_functions_2d.c:1480
MMG2D_defsiz
int(* MMG2D_defsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d.c:27
MMG5_Info::hgrad
double hgrad
Definition: libmmgtypes.h:445
MMG5_EPS
#define MMG5_EPS
Definition: eigenv.h:32
MMG2D_dichoto
int MMG2D_dichoto(MMG5_pMesh, MMG5_pSol, int, int *)
Definition: mmg2d1.c:357
MMG5_Point::tag
int16_t tag
Definition: libmmgtypes.h:223
MMG2D_swapdelone
int MMG2D_swapdelone(MMG5_pMesh, MMG5_pSol, int, char, double, int *)
Definition: swapar_2d.c:39
MMG5_xPoint::n1
double n1[3]
Definition: libmmgtypes.h:234
MMG5_Tria
Definition: libmmgtypes.h:270
MMG5_SUCCESS
#define MMG5_SUCCESS
Definition: libmmgtypes.h:40
MMG2D_savemet_db
int MMG2D_savemet_db(MMG5_pMesh, MMG5_pSol, char *, char)
Definition: inout_2d.c:1647
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_LOWFAILURE
#define MMG5_LOWFAILURE
Definition: libmmgtypes.h:48
MMG2D_mmg2dmesh
int MMG2D_mmg2dmesh(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d.c:384
MMG2D_hashEdge
int MMG2D_hashEdge(pHashTable edgeTable, int iel, int ia, int ib)
Definition: hash_2d.c:154
squeue
Definition: mmg2d.h:110
MMG2D_getIniRef
int MMG2D_getIniRef(MMG5_pMesh, int)
Definition: mmg2d6.c:70
MMG2D_Init_mesh_var
int MMG2D_Init_mesh_var(va_list argptr)
Definition: variadic_2d.c:146
MMG2D_outqua
int MMG2D_outqua(MMG5_pMesh, MMG5_pSol)
Definition: quality_2d.c:156
MMG5_Tria::base
int base
Definition: libmmgtypes.h:274
MMG2D_chkor
int MMG2D_chkor(MMG5_pMesh)
Definition: chkmsh_2d.c:404
MMG2D_DPARAM_hmax
@ MMG2D_DPARAM_hmax
Definition: libmmg2d.h:73
b
! int b
Definition: libmmgtypesf.h:286
MMG2D_caltri_ani
double MMG2D_caltri_ani(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pTria)
Definition: quality_2d.c:95
hsiz
! double hsiz
Definition: libmmgtypesf.h:495
MMG5_mmgUsage
void MMG5_mmgUsage(char *prog)
Definition: mmg.c:44
MMG5_chkmsh
int(* MMG5_chkmsh)(MMG5_pMesh, int, int)
Definition: mmgexterns.c:27
c
! double c[3]
Definition: libmmgtypesf.h:255
tag
! int16_t tag
Definition: libmmgtypesf.h:263
MMG2D_EPSD
#define MMG2D_EPSD
Definition: mmg2d.h:51
Bucket
Definition: mmg2d.h:115
MMG5_Mesh::xpoint
MMG5_pxPoint xpoint
Definition: libmmgtypes.h:543
np
! int np
Definition: libmmgtypesf.h:571
MMG5_mmgIntextmet
int MMG5_mmgIntextmet(MMG5_pMesh mesh, MMG5_pSol met, int np, double me[6], double n[3])
Definition: mettools.c:443
MMG2D_chkedg
int MMG2D_chkedg(MMG5_pMesh, int)
Definition: bezier_2d.c:28
MMG2D_Free_all_var
int MMG2D_Free_all_var(va_list argptr)
Definition: variadic_2d.c:239
MMG2D_isSplit
int MMG2D_isSplit(MMG5_pMesh, int, int *, int *)
Definition: mmg2d6.c:45
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
MMG2D_saveSol
int MMG2D_saveSol(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:1453
long_iso
double long_iso(double *ca, double *cb, double *ma, double *mb)
Definition: length_2d.c:26
MMG5_Point::xp
int xp
Definition: libmmgtypes.h:218
n2
! double n2[3]
Definition: libmmgtypesf.h:275
MMG5_EPSD2
#define MMG5_EPSD2
Definition: mmgcommon.h:96
MMG5_Tensor
@ MMG5_Tensor
Definition: libmmgtypes.h:177
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_ARG_ppMesh
#define MMG5_ARG_ppMesh
Definition: libmmgtypes.h:82
mmgcommon.h
MMG2D_kiudel
int MMG2D_kiudel(pQueue q, int iel)
MMG2D_writeLocalParam
static int MMG2D_writeLocalParam(MMG5_pMesh mesh)
Definition: mmg2d.c:171
MMG5_Info::renum
int renum
Definition: libmmgtypes.h:449
MMG5_Info::dhd
double dhd
Definition: libmmgtypes.h:445
tminit
void tminit(mytime *t, int maxtim)
Initialize mytime object.
Definition: chrono.c:120
MMG5_pMesh
MMG5_Mesh * MMG5_pMesh
Definition: libmmgtypes.h:557
HashTable::size
int size
Definition: mmg2d.h:127
hmax
! double hmax
Definition: libmmgtypesf.h:242
Bucket::link
int * link
Definition: mmg2d.h:118
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
MMG2D_loadMesh
int MMG2D_loadMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_2d.c:78
MMG2D_split1b
int MMG2D_split1b(MMG5_pMesh, int, char, int)
Definition: split_2d.c:238
MMG2D_prilen
int MMG2D_prilen(MMG5_pMesh, MMG5_pSol)
Definition: length_2d.c:124
MMG2D_split3_sim
int MMG2D_split3_sim(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:586
npar
! int npar
Definition: libmmgtypesf.h:497
MMG5_Mesh::nt
int nt
Definition: libmmgtypes.h:516
squeue::stack
int * stack
Definition: mmg2d.h:111
MMG5_Mesh
MMG mesh structure.
Definition: libmmgtypes.h:509
MMG2D_defsiz_ani
int MMG2D_defsiz_ani(MMG5_pMesh, MMG5_pSol)
Definition: anisosiz_2d.c:359
EPST
#define EPST
Definition: locate_2d.c:33
MMG5_countLocalParamAtTri
int MMG5_countLocalParamAtTri(MMG5_pMesh mesh, MMG5_iNode **bdryRefs)
Definition: mmg.c:117
MMG5_ctim
mytime MMG5_ctim[TIMEMAX]
Definition: mmg2d.c:25
MMG2D_delElt
int MMG2D_delElt(MMG5_pMesh mesh, int iel)
Definition: zaldy_2d.c:105
MMG5_xPoint::n2
double n2[3]
Definition: libmmgtypes.h:234
MMG2D_chkcol
int MMG2D_chkcol(MMG5_pMesh, MMG5_pSol, int, char, int *, char)
Definition: colver_2d.c:41
MMG2D_excfun
static void MMG2D_excfun(int sigid)
Definition: mmg2d.h:92
MMG2D_freeLocalPar
int MMG2D_freeLocalPar(MMG5_pMesh)
Definition: libmmg2d_tools.c:190
MMG2D_gradsizreq_ani
int MMG2D_gradsizreq_ani(MMG5_pMesh, MMG5_pSol)
MMG5_xPoint
Structure to store surface points of a MMG mesh.
Definition: libmmgtypes.h:233
MMG2D_lencurv
double(* MMG2D_lencurv)(MMG5_pMesh, MMG5_pSol, int, int)
Definition: mmg2d.c:29
MMG2D_mmg2d2
int MMG2D_mmg2d2(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d2.c:495
MMG2D_bdryenforcement
int MMG2D_bdryenforcement(MMG5_pMesh, MMG5_pSol)
Definition: enforcement_2d.c:34
MMG2D_findtrianglestate
int MMG2D_findtrianglestate(MMG5_pMesh, int, int, int, int, int, int)
Definition: mmg2d2.c:132
MMG5_memSize
size_t MMG5_memSize(void)
Definition: tools.c:546
MMG5_writeLocalParamAtTri
int MMG5_writeLocalParamAtTri(MMG5_pMesh mesh, MMG5_iNode *bdryRefs, FILE *out)
Definition: mmg.c:162
MMG2D_Set_outputMeshName
int MMG2D_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
Definition: API_functions_2d.c:72
MMG2D_cenrad_iso
int MMG2D_cenrad_iso(MMG5_pMesh, double *, double *, double *)
Definition: cenrad_2d.c:42
MMG2D_chkspl
int MMG2D_chkspl(MMG5_pMesh, MMG5_pSol, int, char)
Definition: split_2d.c:50
MMG5_ARG_ppMet
#define MMG5_ARG_ppMet
Definition: libmmgtypes.h:102
MMG2D_parsop
int MMG2D_parsop(MMG5_pMesh, MMG5_pSol)
Definition: libmmg2d_tools.c:67
MMG5_Info::hmax
double hmax
Definition: libmmgtypes.h:445
MMG2D_quickcal
double MMG2D_quickcal(MMG5_pMesh, MMG5_pTria)
Definition: quality_2d.c:45
MMG5_Mesh::namein
char * namein
Definition: libmmgtypes.h:553
MMG2D_gradsizreq
int(* MMG2D_gradsizreq)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d.c:30
MMG5_getnElt
int MMG5_getnElt(MMG5_pMesh mesh, int n)
Definition: zaldy_2d.c:128
MMG2D_cutEdge
int MMG2D_cutEdge(MMG5_pMesh, MMG5_pTria, MMG5_pPoint, MMG5_pPoint)
Definition: locate_2d.c:90
MMG2D_intmet
int(* MMG2D_intmet)(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: mmg2d.c:28
MMG5_Mesh::info
MMG5_Info info
Definition: libmmgtypes.h:552
MMG2D_DPARAM_hgradreq
@ MMG2D_DPARAM_hgradreq
Definition: libmmg2d.h:77
MMG2D_saveMshMesh
int MMG2D_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:1410
MMG2D_settagtriangles
int MMG2D_settagtriangles(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d2.c:99
pBucket
Bucket * pBucket
Definition: mmg2d.h:120
min
! double min[3]
Definition: libmmgtypesf.h:496
MMG2D_doSol
int MMG2D_doSol(MMG5_pMesh mesh, MMG5_pSol met)
Definition: solmap_2d.c:46
MMG2D_swpmsh
int MMG2D_swpmsh(MMG5_pMesh, MMG5_pSol, int)
Definition: mmg2d1.c:507
HashTable::hnxt
int hnxt
Definition: mmg2d.h:127
MMG2D_cutEdge
int MMG2D_cutEdge(MMG5_pMesh mesh, MMG5_pTria pt, MMG5_pPoint ppa, MMG5_pPoint ppb)
Definition: locate_2d.c:90
MMG5_rmtr
int MMG5_rmtr(double r[3][3], double m[6], double mr[6])
Definition: tools.c:198
MMG2D_hashEdge
int MMG2D_hashEdge(pHashTable edgeTable, int iel, int ia, int ib)
Definition: hash_2d.c:154
MMG2D_scaleMesh
int MMG2D_scaleMesh(MMG5_pMesh, MMG5_pSol)
Definition: scalem_2d.c:47
MMG2D_kiupop
int MMG2D_kiupop(pQueue q)
MMG2D_DPARAM_hausd
@ MMG2D_DPARAM_hausd
Definition: libmmg2d.h:75
MMG2D_mmg2d9
int MMG2D_mmg2d9(MMG5_pMesh, MMG5_pSol, MMG5_pSol)
Definition: mmg2d9.c:530
MMG2D_mmg2dls
int MMG2D_mmg2dls(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d.c:597
optlen_ani
int optlen_ani(MMG5_pMesh mesh, MMG5_pSol sol, double declic, int base)
MMG2D_findTria
int MMG2D_findTria(MMG5_pMesh mesh, int ip)
Definition: locate_2d.c:215
n
! double n[3]
Definition: libmmgtypesf.h:256
MMG2D_grad2met_ani
int MMG2D_grad2met_ani(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: anisosiz_2d.c:572
MMG2D_bdryEdge
int MMG2D_bdryEdge(MMG5_pMesh)
Definition: hash_2d.c:275
libmmg2d.h
API headers for the mmg2d library.
MMG2D_coorbary
int MMG2D_coorbary(MMG5_pMesh, MMG5_pTria, double c[2], double *, double *, double *)
Definition: locate_2d.c:37
MMG2D_saveMesh
int MMG2D_saveMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_2d.c:970
MMG5_Mesh::nameout
char * nameout
Definition: libmmgtypes.h:554
MMG2D_gradsiz
int(* MMG2D_gradsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d.c:32
MMG2D_caltri
double(* MMG2D_caltri)(MMG5_pMesh, MMG5_pSol, MMG5_pTria)
Definition: mmg2d.c:31
MMG2D_DPARAM_hsiz
@ MMG2D_DPARAM_hsiz
Definition: libmmg2d.h:74
MMG5_inxt2
static const unsigned char MMG5_inxt2[6]
Definition: mmgcommon.h:470
MMG2D_DPARAM_hgrad
@ MMG2D_DPARAM_hgrad
Definition: libmmg2d.h:76
MMG5_SAFE_CALLOC
#define MMG5_SAFE_CALLOC(ptr, size, type, law)
Definition: mmgcommon.h:289
MMG2D_savemesh_db
int MMG2D_savemesh_db(MMG5_pMesh, char *, char)
Definition: inout_2d.c:1558
MMG2D_Set_inputMeshName
int MMG2D_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
Definition: API_functions_2d.c:63
MMG2D_Set_solSize
int MMG2D_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, int np, int typSol)
Definition: API_functions_2d.c:284
MMG5_Scalar
@ MMG5_Scalar
Definition: libmmgtypes.h:175
MMG2D_singul
int MMG2D_singul(MMG5_pMesh, int)
Definition: analys_2d.c:206
MMG2D_countLocalParamAtEdg
static int MMG2D_countLocalParamAtEdg(MMG5_pMesh mesh, MMG5_iNode **bdyRefs)
Definition: mmg2d.c:102
MMG5_DEL_MEM
#define MMG5_DEL_MEM(mesh, ptr)
Definition: mmgcommon.h:266
MMG5_Mesh::edge
MMG5_pEdge edge
Definition: libmmgtypes.h:550
MMG2D_Set_inputSolName
int MMG2D_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
Definition: API_functions_2d.c:68
ier
int ier
Definition: API_functionsf_2d.c:594
MMG5_Info::ddebug
char ddebug
Definition: libmmgtypes.h:453
interp_iso
int interp_iso(double *, double *, double *, double)
MMG5_Info::lag
char lag
Definition: libmmgtypes.h:453
MMG2D_IPARAM_lag
@ MMG2D_IPARAM_lag
Definition: libmmg2d.h:63
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
MMG2D_boulen
int MMG2D_boulen(MMG5_pMesh, int, char, int *, int *, double *)
Definition: boulep_2d.c:96
MMG2D_Set_iparameter
int MMG2D_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, int val)
Definition: API_functions_2d.c:101
HashTable
Definition: mmg2d.h:126
MMG2D_indPt
int MMG2D_indPt(MMG5_pMesh mesh, int kp)
Definition: tools_2d.c:69
MMG2D_mmg2d6
int MMG2D_mmg2d6(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d6.c:617
MMG2D_IPARAM_mem
@ MMG2D_IPARAM_mem
Definition: libmmg2d.h:59
MMG2D_newElt
int MMG2D_newElt(MMG5_pMesh mesh)
Definition: zaldy_2d.c:85
MMG2D_iopp
static const int MMG2D_iopp[3][2]
Definition: mmg2d.h:133
MMG2D_IPARAM_msh
@ MMG2D_IPARAM_msh
Definition: libmmg2d.h:64
MMG2D_Free_structures_var
int MMG2D_Free_structures_var(va_list argptr)
Definition: variadic_2d.c:340
MMG2D_resetRef
int MMG2D_resetRef(MMG5_pMesh)
Definition: mmg2d6.c:83
MMG2D_bouleendp
int MMG2D_bouleendp(MMG5_pMesh, int, char, int *, int *)
Definition: boulep_2d.c:255
MMG2D_chkmanimesh
int MMG2D_chkmanimesh(MMG5_pMesh)
Definition: mmg2d6.c:343
MMG5_Info::hsiz
double hsiz
Definition: libmmgtypes.h:445
MMG5_Mesh::ntmax
int ntmax
Definition: libmmgtypes.h:516
MMG2D_IPARAM_optim
@ MMG2D_IPARAM_optim
Definition: libmmg2d.h:66
MMG2D_lencurv_ani
double MMG2D_lencurv_ani(MMG5_pMesh, MMG5_pSol, int, int)
Definition: length_2d.c:81
TIMEMAX
#define TIMEMAX
Definition: chrono.h:49
HashTable::nxtmax
int nxtmax
Definition: mmg2d.h:127
MMG2D_delone
int MMG2D_delone(MMG5_pMesh, MMG5_pSol, int, int *, int)
Definition: delone_2d.c:264
MMG2D_loadMshMesh
int MMG2D_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:606
MMG5_EPSD
#define MMG5_EPSD
Definition: eigenv.h:31
MMG5_Vertex
@ MMG5_Vertex
Definition: libmmgtypes.h:186
pQueue
Queue * pQueue
Definition: mmg2d.h:113
MMG2D_coorbary
int MMG2D_coorbary(MMG5_pMesh mesh, MMG5_pTria pt, double c[2], double *det, double *l1, double *l2)
Definition: locate_2d.c:37
MMG2D_cutEdgeTriangle
int MMG2D_cutEdgeTriangle(MMG5_pMesh, int, int, int)
Definition: locate_2d.c:129
MMG5_SAFE_FREE
MMG5_SAFE_FREE(tmp)
MMG2D_savenor_db
int MMG2D_savenor_db(MMG5_pMesh, char *, char)
Definition: inout_2d.c:1707
MMG2D_colelt
int MMG2D_colelt(MMG5_pMesh, MMG5_pSol, int)
Definition: mmg2d1.c:433
MMG2D_savedisp_db
int MMG2D_savedisp_db(MMG5_pMesh mesh, MMG5_pSol, char *, char)
Definition: inout_2d.c:1762
Hedge::min
int min
Definition: mmg2d.h:123
MMG2D_Init_parameters
void MMG2D_Init_parameters(MMG5_pMesh mesh)
Definition: API_functions_2d.c:80
MMG2D_loadSol
int MMG2D_loadSol(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:795
MMG2D_iare
static const int MMG2D_iare[3][2]
Definition: mmg2d.h:132
MMG2D_gradsizreq
int(* MMG2D_gradsizreq)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d.c:30
MMG2D_optlen
int(* MMG2D_optlen)(MMG5_pMesh, MMG5_pSol, double, int)
a
! int a
Definition: libmmgtypesf.h:286
MMG2D_solTruncatureForOptim
void MMG2D_solTruncatureForOptim(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d.c:49
MMG2D_mmg2dlib
int MMG2D_mmg2dlib(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d.c:141
MMG2D_Set_dparameter
int MMG2D_Set_dparameter(MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val)
Definition: API_functions_2d.c:189
MMG5_Point::n
double n[3]
Definition: libmmgtypes.h:216
MMG2D_regnor
int MMG2D_regnor(MMG5_pMesh)
Definition: analys_2d.c:444