Go to the documentation of this file.
45 #define M_MAX(a,b) (((a) > (b)) ? (a) : (b))
46 #define M_MIN(a,b) (((a) < (b)) ? (a) : (b))
51 #define MMG2D_EPSD 1.e-10 //e-20??
52 #define MMG2D_EPSA 1.e-12
54 #define MMG2D_PRECI 1.
55 #define MMG2D_SIZE 0.75
56 #define MMG2D_ALPHA 0.28867513459
57 #define MMG2D_ALPHAD 3.464101615137755
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 #define MMG2D_VOLFRAC 1.e-5
66 #define MMG2D_LLONG 2.0
67 #define MMG2D_LSHRT 0.3
68 #define MMG2D_LOPTL 1.4
69 #define MMG2D_LOPTS 0.71
71 #define MMG2D_NPMAX 50000
72 #define MMG2D_NEDMAX 100000
73 #define MMG2D_NEMAX 100000
76 static const uint8_t
MMG2D_idir_q[4][2] = { {0,1},{0,3},{1,2},{2,3} };
79 #define MMG2D_RETURN_AND_FREE(mesh,met,ls,disp,val)do \
81 if ( !MMG2D_Free_all(MMG5_ARG_start, \
82 MMG5_ARG_ppMesh,&mesh,MMG5_ARG_ppMet,&met, \
83 MMG5_ARG_ppLs,&ls,MMG5_ARG_ppDisp,&disp, \
85 return MMG5_LOWFAILURE; \
98 fprintf(stdout,
"\n Unexpected error:"); fflush(stdout);
101 fprintf(stdout,
" Abnormal stop\n");
break;
103 fprintf(stdout,
" Floating-point exception\n");
break;
105 fprintf(stdout,
" Illegal instruction\n");
break;
107 fprintf(stdout,
" Segmentation fault\n");
break;
110 fprintf(stdout,
" Program killed\n");
break;
136 #define MMG2D_POINT_REALLOC(mesh,sol,ip,wantedGap,law,o,tag ) do \
140 assert ( mesh && mesh->point ); \
141 MMG5_TAB_RECALLOC(mesh,mesh->point,mesh->npmax,wantedGap,MMG5_Point, \
142 "larger point table",law); \
144 mesh->npnil = mesh->np+1; \
145 for (klink=mesh->npnil; klink<mesh->npmax-1; klink++) \
146 mesh->point[klink].tmp = klink+1; \
151 MMG5_ADD_MEM(mesh,(sol->size*(mesh->npmax-sol->npmax))*sizeof(double), \
152 "larger solution",law); \
153 MMG5_SAFE_REALLOC(sol->m,sol->size*(sol->npmax+1), \
154 sol->size*(mesh->npmax+1), \
155 double,"larger solution",law); \
157 sol->npmax = mesh->npmax; \
161 ip = MMG2D_newPt(mesh,o,tag); \
167 #define MMG2D_TRIA_REALLOC(mesh,jel,wantedGap,law ) do \
171 oldSiz = mesh->ntmax; \
172 MMG5_TAB_RECALLOC(mesh,mesh->tria,mesh->ntmax,wantedGap,MMG5_Tria, \
173 "larger tria table",law); \
175 mesh->nenil = mesh->nt+1; \
176 for (klink=mesh->nenil; klink<mesh->ntmax-1; klink++) \
177 mesh->tria[klink].v[2] = klink+1; \
179 if ( mesh->adja ) { \
181 MMG5_ADD_MEM(mesh,3*(mesh->ntmax-oldSiz)*sizeof(int), \
182 "larger adja table",law); \
183 MMG5_SAFE_RECALLOC(mesh->adja,3*oldSiz+5,3*mesh->ntmax+5,int \
184 ,"larger adja table",law); \
188 jel = MMG2D_newElt(mesh); \
345 double long_ani(
double *ca,
double *cb,
double *ma,
double *mb);
346 double long_iso(
double *ca,
double *cb,
double *ma,
double *mb);
352 int interp_ani(
double *,
double *,
double * ,
double );
353 int interp_iso(
double *,
double *,
double * ,
double );
int nprism
Definition: libmmgtypes.h:560
int MMG2D_split3(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:625
int MMG2D_bezierCurv(MMG5_pMesh, int, int8_t, double, double *, double *)
Definition: bezier_2d.c:117
@ MMG2D_IPARAM_angle
Definition: libmmg2d.h:61
int nmat
Definition: libmmgtypes.h:483
int npar
Definition: libmmgtypes.h:478
void MMG2D_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:36
int MMG2D_norver(MMG5_pMesh, int)
Definition: analys_2d.c:400
@ MMG2D_IPARAM_debug
Definition: libmmg2d.h:60
int np
Definition: libmmgtypes.h:613
double c[3]
Definition: libmmgtypes.h:242
int MMG2D_loadVtpMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
static void MMG5_endcod(void)
Definition: mmg2d.c:30
int MMG2D_adpcol(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d1.c:689
int MMG2D_indElt(MMG5_pMesh mesh, int kel)
Definition: tools_2d.c:45
const char * MMG5_Get_formatName(enum MMG5_Format fmt)
Definition: mmg.c:556
#define MG_MAX(a, b)
Definition: mmgcommon.h:135
int MMG2D_memOption(MMG5_pMesh mesh)
Definition: zaldy_2d.c:218
@ MMG5_FMT_GmshASCII
Definition: mmgcommon.h:534
double hmin
Definition: libmmgtypes.h:476
int MMG2D_newPt(MMG5_pMesh mesh, double c[2], int16_t tag)
Definition: zaldy_2d.c:38
int MMG2D_hashTria(MMG5_pMesh)
Definition: hash_2d.c:35
int v[3]
Definition: libmmgtypes.h:303
#define MMG5_MILLION
Definition: mmgcommon.h:81
int MMG2D_Free_names_var(va_list argptr)
Definition: variadic_2d.c:492
Definition: libmmgtypes.h:370
#define MG_MINUS
Definition: mmgcommon.h:72
Definition: libmmgtypes.h:610
char * MMG5_Get_basename(char *path)
Definition: mmg.c:402
int MMG5_hashEdge(MMG5_pMesh mesh, MMG5_Hash *hash, int a, int b, int k)
Definition: hash.c:217
#define MG_SIN(tag)
Definition: mmgcommon.h:164
void MMG2D_solTruncatureForOptim(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d.c:56
int(* MMG2D_intmet)(MMG5_pMesh, MMG5_pSol, int, int8_t, int, double)
Definition: mmg2dexterns.c:5
char * MMG5_Remove_ext(char *path, char *ext)
Definition: mmg.c:454
int cur
Definition: mmg2d.h:116
int MMG2D_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
Definition: API_functions_2d.c:77
@ MMG5_FMT_MeditASCII
Definition: mmgcommon.h:532
int s
Definition: libmmgtypes.h:252
MMG5_SAFE_MALLOC(tmp, *strlen0+1, char, return)
int MMG2D_chkspl(MMG5_pMesh, MMG5_pSol, int, int8_t)
Definition: split_2d.c:50
#define MMG5_ARG_ppDisp
Definition: libmmgtypes.h:115
int MMG2D_isInTriangle(MMG5_pMesh mesh, int k, double c[2])
Definition: locate_2d.c:69
int ref
Definition: libmmgtypes.h:276
int MMG2D_ismaniball(MMG5_pMesh, MMG5_pSol, int, int8_t)
Definition: mmg2d6.c:221
int size
Definition: mmg2d.h:121
int MMG5_interpmet22(MMG5_pMesh, double *, double *, double, double *)
Definition: intmet_2d.c:54
@ MMG5_FMT_MeditBinary
Definition: mmgcommon.h:533
int lissmet_ani(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: lissmet_2d.c:47
int MMG2D_setref_ls(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d6.c:937
#define MG_EOK(pt)
Definition: mmgcommon.h:161
int MMG2D_baseBdry(MMG5_pMesh mesh)
int rex
Definition: libmmgtypes.h:466
@ MMG2D_IPARAM_nosizreq
Definition: libmmg2d.h:76
@ MMG2D_IPARAM_opnbdy
Definition: libmmg2d.h:63
#define MG_NOM
Definition: mmgcommon.h:143
int MMG2D_colver(MMG5_pMesh, int, int *)
Definition: colver_2d.c:270
void MMG5_advancedUsage(void)
Definition: mmg.c:135
char * namein
Definition: libmmgtypes.h:620
double long_ani(double *ca, double *cb, double *ma, double *mb)
Definition: length_2d.c:46
int MMG2D_swapdelone(MMG5_pMesh, MMG5_pSol, int, int8_t, double, int *)
Definition: swapar_2d.c:39
int main(int argc, char *argv[])
Definition: mmg2d.c:666
#define MMG5_ARG_start
Definition: libmmgtypes.h:76
int nxt
Definition: libmmgtypes.h:532
int MMG2D_cutEdgeTriangle(MMG5_pMesh mesh, int k, int ia, int ib)
Definition: locate_2d.c:129
int(* MMG5_grad2metreq_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:33
int size
Definition: libmmgtypes.h:616
int MMG2D_loadVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
int rin
Definition: libmmgtypes.h:466
int imprim
Definition: libmmgtypes.h:484
int b
Definition: libmmgtypes.h:532
#define MG_STR
Definition: mmgcommon.h:57
Identic as MMG5_HGeom but use MMG5_hedge to store edges instead of MMG5_hgeom (memory economy).
Definition: libmmgtypes.h:542
static int MMG5_defaultValues(MMG5_pMesh mesh)
Definition: mmg2d.c:77
int MMG2D_split2_sim(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:451
int * head
Definition: mmg2d.h:122
int MMG2D_intmet_iso(MMG5_pMesh, MMG5_pSol, int, int8_t, int, double)
Definition: intmet_2d.c:38
int MMG2D_setMeshSize_alloc(MMG5_pMesh)
Definition: zaldy_2d.c:237
int MMG2D_intmet_ani(MMG5_pMesh, MMG5_pSol, int, int8_t, int, double)
Definition: intmet_2d.c:209
static const uint8_t MMG5_iprv2[3]
Definition: mmgcommon.h:548
MMG5_pPoint point
Definition: libmmgtypes.h:589
@ MMG2D_IPARAM_numsubdomain
Definition: libmmg2d.h:72
@ MMG2D_IPARAM_3dMedit
Definition: libmmg2d.h:65
int MMG2D_splitbar(MMG5_pMesh, int, int)
Definition: split_2d.c:716
int MMG2D_isInTriangle(MMG5_pMesh, int, double c[2])
Definition: locate_2d.c:69
int MMG2D_colver2(MMG5_pMesh, int *)
Definition: colver_2d.c:418
size_t memMax
Definition: libmmgtypes.h:553
int MMG2D_colver3(MMG5_pMesh, int *)
Definition: colver_2d.c:356
int MMG2D_locateEdge(MMG5_pMesh mesh, int ia, int ib, int *kdep, int *list)
Definition: locate_2d.c:323
int MMG2D_kiuput(pQueue q, int iel)
@ MMG2D_IPARAM_iso
Definition: libmmg2d.h:62
double hgradreq
Definition: libmmgtypes.h:476
int base
Definition: libmmgtypes.h:564
@ MMG2D_IPARAM_nreg
Definition: libmmg2d.h:71
int MMG2D_locateEdge(MMG5_pMesh, int, int, int *, int *)
Definition: locate_2d.c:323
int MMG2D_adpspl(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d1.c:633
int MMG2D_boulep(MMG5_pMesh, int, int, int *)
Definition: boulep_2d.c:34
MMG5_pMesh MMG5_pSol * sol
Definition: API_functionsf_2d.c:63
pQueue MMG2D_kiuini(MMG5_pMesh mesh, int nbel, double declic, int base)
void MMG5_solTruncatureForOptim(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmg.c:263
int MMG2D_split1(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:385
#define MG_VOK(ppt)
Definition: mmgcommon.h:160
static const uint8_t MMG5_inxt2[6]
Definition: mmgcommon.h:547
int np
Definition: libmmgtypes.h:559
#define MMG5_FILESTR_LGTH
Definition: mmgcommon.h:132
int MMG2D_chkmsh(MMG5_pMesh)
Definition: chkmsh_2d.c:204
static int MMG2D_defaultOption(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol)
Definition: mmg2d.c:234
@ MMG2D_IPARAM_noinsert
Definition: libmmg2d.h:67
void MMG5_paramUsage1(void)
Definition: mmg.c:72
int lissmet_ani(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: lissmet_2d.c:47
double MMG2D_caltri_iso(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pTria)
Definition: quality_2d.c:59
int MMG2D_setadj(MMG5_pMesh)
Definition: analys_2d.c:48
int MMG5_Add_inode(MMG5_pMesh mesh, MMG5_iNode **liLi, int val)
Definition: tools.c:644
static const unsigned int MMG2D_idir[5]
Definition: mmg2d.h:130
int optlen_iso(MMG5_pMesh mesh, MMG5_pSol sol, double declic, int base)
@ MMG2D_DPARAM_hmin
Definition: libmmg2d.h:78
int MMG2D_savemet_db(MMG5_pMesh, MMG5_pSol, char *, int8_t)
Definition: inout_2d.c:1684
int parsar(int argc, char *argv[], MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol)
Definition: mmg2d.c:325
To store user-defined references in the mesh (useful in LS mode)
Definition: libmmgtypes.h:464
int MMG2D_saveVtpMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
static int MMG2D_usage(char *name)
Definition: mmg2d.c:38
int MMG2D_zaldy(MMG5_pMesh mesh)
Definition: zaldy_2d.c:288
void MMG5_mmgDefaultValues(MMG5_pMesh mesh)
Definition: mmg.c:150
int MMG2D_velextLS(MMG5_pMesh, MMG5_pSol)
strncpy(tmp, meshin, *strlen0)
int(* MMG5_grad2met_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:32
int MMG2D_grad2metreq_ani(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: anisosiz_2d.c:637
static const unsigned int MMG2D_inxt[5]
Definition: mmg2d.h:131
int MMG2D_savenor_db(MMG5_pMesh, char *, int8_t)
Definition: inout_2d.c:1744
@ MMG2D_IPARAM_nosurf
Definition: libmmg2d.h:70
int ne
Definition: libmmgtypes.h:559
MMG5_Format
Type of supported file format.
Definition: mmgcommon.h:531
int MMG2D_scaleMesh(MMG5_pMesh, MMG5_pSol, MMG5_pSol)
Definition: scalem_2d.c:48
int MMG2D_movtri(MMG5_pMesh, MMG5_pSol, int, int8_t)
Definition: mmg2d1.c:746
int MMG2D_gradsiz_ani(MMG5_pMesh, MMG5_pSol)
int MMG2D_defaultmet_2d(MMG5_pMesh, MMG5_pSol, int, int8_t)
Definition: anisosiz_2d.c:50
int MMG2D_split1_sim(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:340
int * adja
Definition: libmmgtypes.h:572
void MMG2D_kiufree(pQueue q)
int MMG2D_analys(MMG5_pMesh)
Definition: analys_2d.c:761
int MMG2D_assignEdge(MMG5_pMesh)
Definition: hash_2d.c:333
double hausd
Definition: libmmgtypes.h:476
MMG5_pTria tria
Definition: libmmgtypes.h:595
int MMG2D_movedgpt(MMG5_pMesh, MMG5_pSol, int, int *, int8_t)
Definition: movpt_2d.c:52
const int va_list argptr
Definition: API_functionsf_2d.c:728
@ MMG5_FMT_VtkPvtu
Definition: mmgcommon.h:537
int a
Definition: libmmgtypes.h:532
int MMG2D_Init_mesh(const int starter,...)
Definition: API_functions_2d.c:43
int MMG2D_mmg2dlib(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d.c:164
int MMG2D_adptri(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d1.c:543
#define M_MAX(a, b)
Definition: mmg2d.h:45
@ MMG2D_IPARAM_verbose
Definition: libmmg2d.h:58
int mark
Definition: libmmgtypes.h:566
@ MMG2D_IPARAM_nomove
Definition: libmmg2d.h:69
MMG5_pMesh * mesh
Definition: API_functionsf_2d.c:63
int MMG2D_defsiz_iso(MMG5_pMesh, MMG5_pSol)
Definition: isosiz_2d.c:130
int MMG2D_findTria(MMG5_pMesh, int)
Definition: locate_2d.c:215
#define MG_GEO
Definition: mmgcommon.h:141
int MMG5_eigenv(int symmat, double *mat, double lambda[3], double v[3][3])
Find eigenvalues and vectors of a 3x3 matrix.
Definition: eigenv.c:384
#define MMG_FSCANF(stream, format,...)
Definition: mmgcommon.h:432
void chrono(int cmode, mytime *ptt)
Function to measure time.
Definition: chrono.c:49
void MMG5_lagUsage(void)
Definition: mmg.c:105
int MMG2D_saveVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
@ MMG5_FMT_VtkVtu
Definition: mmgcommon.h:538
void MMG5_Free_ilinkedList(MMG5_pMesh mesh, MMG5_iNode *liLi)
Definition: tools.c:696
@ MMG2D_DPARAM_ls
Definition: libmmg2d.h:84
void MMG2D_delPt(MMG5_pMesh mesh, int ip)
Definition: zaldy_2d.c:57
int ref
Definition: libmmgtypes.h:304
int interp_ani(double *, double *, double *, double)
int MMG2D_savemesh_db(MMG5_pMesh, char *, int8_t)
Definition: inout_2d.c:1591
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:241
int MMG2D_hashQuad(MMG5_pMesh mesh)
Definition: hash_2d.c:151
int MMG2D_chkswp(MMG5_pMesh, MMG5_pSol, int, int8_t, int8_t)
Definition: swapar_2d.c:128
int MMG2D_split2(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:500
int MMG2D_boulen(MMG5_pMesh, int, int8_t, int *, int *, double *)
Definition: boulep_2d.c:112
int MMG2D_mmg2dmov(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol disp)
Definition: libmmg2d.c:927
char * nameout
Definition: libmmgtypes.h:621
@ MMG5_FMT_VtkVtp
Definition: mmgcommon.h:539
int MMG2D_anaelt(MMG5_pMesh, MMG5_pSol, int)
Definition: mmg2d1.c:109
int MMG2D_set_metricAtPointsOnReqEdges(MMG5_pMesh, MMG5_pSol, int8_t)
Definition: isosiz_2d.c:75
int8_t ddebug
Definition: libmmgtypes.h:487
Chrono object.
Definition: chrono.h:58
int MMG5_hashNew(MMG5_pMesh mesh, MMG5_Hash *hash, int hsiz, int hmax)
Definition: hash.c:394
double * m
Definition: libmmgtypes.h:618
#define MMG5_ARG_end
Definition: libmmgtypes.h:162
void MMG5_delEdge(MMG5_pMesh mesh, int iel)
Definition: zaldy_2d.c:70
int lissmet_iso(MMG5_pMesh mesh, MMG5_pSol sol)
int MMG5_rotmatrix(double n[3], double r[3][3])
Definition: tools.c:233
API header for the common part of the MMG libraries.
@ MMG2D_DPARAM_angleDetection
Definition: libmmg2d.h:77
#define MMG5_STRONGFAILURE
Definition: libmmgtypes.h:59
double(* MMG2D_lencurv)(MMG5_pMesh, MMG5_pSol, int, int)
Definition: mmg2dexterns.c:6
int MMG2D_boulet(MMG5_pMesh, int, int8_t, int *)
Definition: boulep_2d.c:229
void MMG5_mark_pointsOnReqEdge_fromTria(MMG5_pMesh mesh)
Definition: isosiz.c:242
int MMG2D_mmg2d1n(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d1.c:807
int MMG2D_cavity(MMG5_pMesh, MMG5_pSol, int, int *)
Definition: delone_2d.c:147
int MMG2D_mmg2dls(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pSol umet)
Definition: libmmg2d.c:636
double MMG2D_lencurv_iso(MMG5_pMesh, MMG5_pSol, int, int)
Definition: length_2d.c:62
int MMG5_Compute_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double *hsiz)
Definition: API_functions.c:555
int MMG2D_mmg2d6(MMG5_pMesh, MMG5_pSol, MMG5_pSol)
Definition: mmg2d6.c:1001
int MMG5_mmg2dChkmsh(MMG5_pMesh, int, int)
Definition: chkmsh_2d.c:34
int MMG2D_mmg2d1(MMG5_pMesh, MMG5_pSol)
char * MMG5_Get_filenameExt(char *filename)
Definition: mmg.c:375
static int MMG2D_writeLocalParamAtEdg(MMG5_pMesh mesh, MMG5_iNode *bdryRefs, FILE *out)
Definition: mmg2d.c:141
#define MG_MIN(a, b)
Definition: mmgcommon.h:136
int optlen_iso_bar(MMG5_pMesh mesh, MMG5_pSol sol, double declic, int base)
int MMG2D_loadVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
@ MMG2D_IPARAM_noswap
Definition: libmmg2d.h:68
int na
Definition: libmmgtypes.h:559
MMG5_Tria * MMG5_pTria
Definition: libmmgtypes.h:314
int MMG2D_Free_names(const int starter,...)
Definition: API_functions_2d.c:1849
int(* MMG2D_defsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2dexterns.c:4
double hgrad
Definition: libmmgtypes.h:476
#define MMG5_EPS
Definition: eigenv.h:32
int MMG2D_dichoto(MMG5_pMesh, MMG5_pSol, int, int *)
Definition: mmg2d1.c:358
int16_t tag
Definition: libmmgtypes.h:253
double n1[3]
Definition: libmmgtypes.h:264
Definition: libmmgtypes.h:301
#define MMG5_SUCCESS
Definition: libmmgtypes.h:43
void MMG5_2d3dUsage(void)
Definition: mmg.c:121
Used to hash edges (memory economy compared to MMG5_hgeom).
Definition: libmmgtypes.h:531
int MMG2D_split1b(MMG5_pMesh, int, int8_t, int)
Definition: split_2d.c:239
Cell for linked list of integer value.
int MMG5_eigensym(double m[3], double lambda[2], double vp[2][2])
Definition: eigenv.c:797
int8_t dospl
Definition: libmmgtypes.h:465
double MMG2D_voltri(MMG5_pMesh, int, int, int)
Definition: mmg2d6.c:45
#define MG_PLUS
Definition: mmgcommon.h:71
#define MMG5_LOWFAILURE
Definition: libmmgtypes.h:51
int MMG2D_defmetbdy_2d(MMG5_pMesh, MMG5_pSol, int, int8_t)
Definition: anisosiz_2d.c:85
char * MMG5_Get_path(char *path)
Definition: mmg.c:419
int MMG5_unscaleMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol ls)
Definition: scalem.c:401
MMG5_pMat mat
Definition: libmmgtypes.h:502
int MMG2D_Init_mesh_var(va_list argptr)
Definition: variadic_2d.c:175
int MMG2D_outqua(MMG5_pMesh, MMG5_pSol)
Definition: quality_2d.c:156
int base
Definition: libmmgtypes.h:305
int MMG2D_chkor(MMG5_pMesh)
Definition: chkmsh_2d.c:404
@ MMG2D_DPARAM_hmax
Definition: libmmg2d.h:79
int MMG2D_swapar(MMG5_pMesh, int, int8_t)
Definition: swapar_2d.c:221
int MMG2D_rmc(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d6.c:545
double MMG2D_caltri_ani(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pTria)
Definition: quality_2d.c:95
void MMG5_mmgUsage(char *prog)
Definition: mmg.c:44
int(* MMG5_chkmsh)(MMG5_pMesh, int, int)
Definition: mmgexterns.c:27
#define MMG5_PATHSEP
Definition: mmgcommon.h:109
#define MMG2D_EPSD
Definition: mmg2d.h:51
MMG5_pxPoint xpoint
Definition: libmmgtypes.h:590
int MMG2D_chkedg(MMG5_pMesh, int)
Definition: bezier_2d.c:28
int MMG2D_bouleendp(MMG5_pMesh, int, int8_t, int *, int *)
Definition: boulep_2d.c:282
int MMG2D_Free_all_var(va_list argptr)
Definition: variadic_2d.c:268
MMG5_Sol * MMG5_pSol
Definition: libmmgtypes.h:623
void printim(double elps, char *stim)
Print real time.
Definition: chrono.c:149
int MMG2D_saveSol(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:1479
int MMG5_isSplit(MMG5_pMesh mesh, int ref, int *refint, int *refext)
Definition: mmg2.c:48
double long_iso(double *ca, double *cb, double *ma, double *mb)
Definition: length_2d.c:26
int xp
Definition: libmmgtypes.h:248
MMG5_pTetra tetra
Definition: libmmgtypes.h:591
#define MMG5_EPSD2
Definition: mmgcommon.h:89
@ MMG5_Tensor
Definition: libmmgtypes.h:204
#define MMG5_ARG_ppMesh
Definition: libmmgtypes.h:85
@ MMG5_FMT_VtkVtk
Definition: mmgcommon.h:540
int ref
Definition: libmmgtypes.h:466
int MMG2D_kiudel(pQueue q, int iel)
static int MMG2D_writeLocalParam(MMG5_pMesh mesh)
Definition: mmg2d.c:166
double dhd
Definition: libmmgtypes.h:476
void tminit(mytime *t, int maxtim)
Initialize mytime object.
Definition: chrono.c:120
MMG5_Mesh * MMG5_pMesh
Definition: libmmgtypes.h:604
int * link
Definition: mmg2d.h:123
int MMG2D_loadMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_2d.c:26
uint8_t optim
Definition: libmmgtypes.h:500
int MMG2D_prilen(MMG5_pMesh, MMG5_pSol)
Definition: length_2d.c:124
int MMG2D_split3_sim(MMG5_pMesh, MMG5_pSol, int, int vx[3])
Definition: split_2d.c:587
int MMG2D_mmg2d9(MMG5_pMesh, MMG5_pSol, MMG5_pSol, int **)
Definition: mmg2d9.c:571
int nt
Definition: libmmgtypes.h:559
int * stack
Definition: mmg2d.h:116
MMG5_hedge * item
Definition: libmmgtypes.h:544
int MMG5_getIniRef(MMG5_pMesh mesh, int ref)
Definition: mmg2.c:82
static const uint8_t MMG2D_idir_q[4][2]
idir[i]: vertices of edge i for a quad
Definition: mmg2d.h:76
#define _LIBMMG5_RETURN(mesh, sol, met, val)
Definition: mmgcommon.h:182
MMG mesh structure.
Definition: libmmgtypes.h:552
int MMG2D_defsiz_ani(MMG5_pMesh, MMG5_pSol)
Definition: anisosiz_2d.c:360
int MMG5_Get_format(char *ptr, int fmt)
Definition: mmg.c:508
int siz
Definition: libmmgtypes.h:543
int MMG2D_unscaleMesh(MMG5_pMesh, MMG5_pSol, MMG5_pSol)
#define EPST
Definition: locate_2d.c:33
int MMG5_countLocalParamAtTri(MMG5_pMesh mesh, MMG5_iNode **bdryRefs)
Definition: mmg.c:192
mytime MMG5_ctim[TIMEMAX]
Definition: mmg2d.c:25
int MMG2D_mmg2dmesh(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d.c:413
int MMG2D_delElt(MMG5_pMesh mesh, int iel)
Definition: zaldy_2d.c:105
double n2[3]
Definition: libmmgtypes.h:264
static void MMG2D_excfun(int sigid)
Definition: mmg2d.h:97
int MMG2D_freeLocalPar(MMG5_pMesh)
Definition: libmmg2d_tools.c:185
int MMG2D_gradsizreq_ani(MMG5_pMesh, MMG5_pSol)
Structure to store surface points of a MMG mesh.
Definition: libmmgtypes.h:263
@ MMG2D_DPARAM_rmc
Definition: libmmg2d.h:85
int MMG2D_mmg2d2(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d2.c:495
int MMG2D_bdryenforcement(MMG5_pMesh, MMG5_pSol)
Definition: enforcement_2d.c:34
int MMG2D_findtrianglestate(MMG5_pMesh, int, int, int, int, int, int)
Definition: mmg2d2.c:132
size_t MMG5_memSize(void)
Definition: tools.c:547
int MMG5_writeLocalParamAtTri(MMG5_pMesh mesh, MMG5_iNode *bdryRefs, FILE *out)
Definition: mmg.c:236
int MMG2D_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
Definition: API_functions_2d.c:72
int MMG2D_cenrad_iso(MMG5_pMesh, double *, double *, double *)
Definition: cenrad_2d.c:42
int8_t iso
Definition: libmmgtypes.h:489
void MMG5_paramUsage2(void)
Definition: mmg.c:89
#define MMG5_ARG_ppMet
Definition: libmmgtypes.h:105
int MMG2D_parsop(MMG5_pMesh, MMG5_pSol)
Definition: libmmg2d_tools.c:68
double hmax
Definition: libmmgtypes.h:476
double MMG2D_quickcal(MMG5_pMesh, MMG5_pTria)
Definition: quality_2d.c:45
char * namein
Definition: libmmgtypes.h:600
int(* MMG2D_gradsizreq)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2dexterns.c:7
int MMG5_getnElt(MMG5_pMesh mesh, int n)
Definition: zaldy_2d.c:128
int MMG2D_cutEdge(MMG5_pMesh, MMG5_pTria, MMG5_pPoint, MMG5_pPoint)
Definition: locate_2d.c:90
MMG5_Info info
Definition: libmmgtypes.h:599
@ MMG2D_DPARAM_hgradreq
Definition: libmmg2d.h:83
int MMG2D_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:1436
int MMG2D_settagtriangles(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d2.c:99
Bucket * pBucket
Definition: mmg2d.h:125
int flag
Definition: libmmgtypes.h:251
int MMG2D_doSol(MMG5_pMesh mesh, MMG5_pSol met)
Definition: solmap_2d.c:46
int MMG2D_swpmsh(MMG5_pMesh, MMG5_pSol, int)
Definition: mmg2d1.c:508
@ MMG5_FMT_Tetgen
Definition: mmgcommon.h:541
int MMG2D_cutEdge(MMG5_pMesh mesh, MMG5_pTria pt, MMG5_pPoint ppa, MMG5_pPoint ppb)
Definition: locate_2d.c:90
int MMG5_rmtr(double r[3][3], double m[6], double mr[6])
Definition: tools.c:199
int MMG2D_cuttri_ls(MMG5_pMesh, MMG5_pSol, MMG5_pSol)
Definition: mmg2d6.c:789
#define MMG2D_RETURN_AND_FREE(mesh, met, ls, disp, val)
Definition: mmg2d.h:79
int MMG2D_kiupop(pQueue q)
@ MMG2D_DPARAM_hausd
Definition: libmmg2d.h:81
double MMG2D_vfrac(MMG5_pMesh, MMG5_pSol, int, int)
Definition: mmg2d6.c:69
int optlen_ani(MMG5_pMesh mesh, MMG5_pSol sol, double declic, int base)
int MMG2D_findTria(MMG5_pMesh mesh, int ip)
Definition: locate_2d.c:215
tmp[*strlen0]
Definition: API_functionsf_2d.c:771
int MMG2D_grad2met_ani(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: anisosiz_2d.c:574
int MMG2D_bdryEdge(MMG5_pMesh)
Definition: hash_2d.c:433
API headers for the mmg2d library.
int MMG2D_coorbary(MMG5_pMesh, MMG5_pTria, double c[2], double *, double *, double *)
Definition: locate_2d.c:37
int MMG2D_saveMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_2d.c:1005
char * nameout
Definition: libmmgtypes.h:601
int(* MMG2D_gradsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2dexterns.c:9
double(* MMG2D_caltri)(MMG5_pMesh, MMG5_pSol, MMG5_pTria)
Definition: mmg2dexterns.c:8
#define MMG5_ARG_ppLs
Definition: libmmgtypes.h:95
int MMG2D_saveVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
int MMG2D_snapval(MMG5_pMesh, MMG5_pSol)
Definition: mmg2d6.c:310
@ MMG2D_DPARAM_hsiz
Definition: libmmg2d.h:80
@ MMG2D_DPARAM_hgrad
Definition: libmmg2d.h:82
int MMG2D_sum_reqEdgeLengthsAtPoint(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int8_t)
Definition: isosiz_2d.c:50
int MMG2D_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
Definition: API_functions_2d.c:63
void MMG5_check_hminhmax(MMG5_pMesh mesh, int8_t sethmin, int8_t sethmax)
Definition: scalem.c:88
int MMG2D_savedisp_db(MMG5_pMesh mesh, MMG5_pSol, char *, int8_t)
Definition: inout_2d.c:1799
int MMG2D_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, int np, int typSol)
Definition: API_functions_2d.c:431
@ MMG5_Scalar
Definition: libmmgtypes.h:202
int MMG2D_singul(MMG5_pMesh, int)
Definition: analys_2d.c:267
static int MMG2D_countLocalParamAtEdg(MMG5_pMesh mesh, MMG5_iNode **bdyRefs)
Definition: mmg2d.c:97
#define MMG5_DEL_MEM(mesh, ptr)
Definition: mmgcommon.h:281
MMG5_pEdge edge
Definition: libmmgtypes.h:597
int MMG2D_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
Definition: API_functions_2d.c:68
int ier
Definition: API_functionsf_2d.c:730
static void MMG2D_Set_commonFunc(void)
Definition: mmg2d.h:375
int interp_iso(double *, double *, double *, double)
int MMG2D_anatri(MMG5_pMesh, MMG5_pSol, int8_t)
Definition: mmg2d1.c:39
@ MMG2D_IPARAM_lag
Definition: libmmg2d.h:64
int8_t lag
Definition: libmmgtypes.h:494
void MMG2D_keep_only1Subdomain(MMG5_pMesh mesh, int nsd)
Definition: tools_2d.c:91
int MMG2D_pack(MMG5_pMesh, MMG5_pSol, MMG5_pSol)
Definition: hash_2d.c:514
int MMG2D_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, int val)
Definition: API_functions_2d.c:102
@ MMG5_FMT_GmshBinary
Definition: mmgcommon.h:535
int MMG2D_indPt(MMG5_pMesh mesh, int kp)
Definition: tools_2d.c:69
int MMG2D_movintpt(MMG5_pMesh, MMG5_pSol, int, int *, int8_t)
Definition: movpt_2d.c:212
@ MMG2D_IPARAM_mem
Definition: libmmg2d.h:59
int MMG2D_newElt(MMG5_pMesh mesh)
Definition: zaldy_2d.c:85
int MMG2D_saveTetgenMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_2d.c:2001
static const int MMG2D_iopp[3][2]
Definition: mmg2d.h:129
int8_t tagdel
Definition: libmmgtypes.h:255
int MMG2D_Free_structures_var(va_list argptr)
Definition: variadic_2d.c:377
int MMG2D_resetRef(MMG5_pMesh)
Definition: mmg2d6.c:191
int MMG2D_chkmanimesh(MMG5_pMesh)
Definition: mmg2d6.c:475
double hsiz
Definition: libmmgtypes.h:476
int ntmax
Definition: libmmgtypes.h:559
int MMG2D_2dMeshCheck(MMG5_pMesh mesh)
Definition: inout_2d.c:597
@ MMG2D_IPARAM_optim
Definition: libmmg2d.h:66
int MMG2D_chkcol(MMG5_pMesh, MMG5_pSol, int, int8_t, int *, int8_t)
Definition: colver_2d.c:41
@ MMG5_FMT_VtkPvtp
Definition: mmgcommon.h:536
double MMG2D_lencurv_ani(MMG5_pMesh, MMG5_pSol, int, int)
Definition: length_2d.c:81
#define TIMEMAX
Definition: chrono.h:49
int MMG2D_delone(MMG5_pMesh, MMG5_pSol, int, int *, int)
Definition: delone_2d.c:247
int MMG2D_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:624
#define MMG5_EPSD
Definition: eigenv.h:31
@ MMG5_Vertex
Definition: libmmgtypes.h:213
Queue * pQueue
Definition: mmg2d.h:118
int MMG2D_coorbary(MMG5_pMesh mesh, MMG5_pTria pt, double c[2], double *det, double *l1, double *l2)
Definition: locate_2d.c:37
int MMG2D_cutEdgeTriangle(MMG5_pMesh, int, int, int)
Definition: locate_2d.c:129
int MMG2D_colelt(MMG5_pMesh, MMG5_pSol, int)
Definition: mmg2d1.c:434
void MMG2D_Init_parameters(MMG5_pMesh mesh)
Definition: API_functions_2d.c:80
int MMG2D_loadSol(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:817
static const int MMG2D_iare[3][2]
Definition: mmg2d.h:128
int(* MMG2D_optlen)(MMG5_pMesh, MMG5_pSol, double, int)
void MMG2D_solTruncatureForOptim(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d.c:56
int v[4]
Definition: libmmgtypes.h:372
int MMG2D_Set_dparameter(MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val)
Definition: API_functions_2d.c:242
double n[3]
Definition: libmmgtypes.h:243
int MMG2D_regnor(MMG5_pMesh)
Definition: analys_2d.c:505
int MMG2D_movintpt_ani(MMG5_pMesh, MMG5_pSol, int, int *, int8_t)
Definition: anisomovpt_2d.c:37