Go to the documentation of this file.
35 #define MMGS_ALPHAD 3.464101615137755
37 #define MMGS_LOPTL 1.4
38 #define MMGS_LOPTS 0.71
39 #define MMGS_LLONG 2.0
40 #define MMGS_LSHRT 0.3
42 #define MMGS_LMAX 1024
43 #define MMGS_BADKAL 2.e-2
44 #define MMGS_NULKAL 1.e-4
46 #define MMGS_NPMAX 500000
47 #define MMGS_NTMAX 1000000
48 #define MMGS_XPMAX 500000
51 #define MS_SIN(tag) ((tag & MG_CRN) || (tag & MG_REQ) || (tag & MG_NOM))
55 #define MMGS_RETURN_AND_FREE(mesh,met,val)do \
57 if ( !MMGS_Free_all(MMG5_ARG_start, \
58 MMG5_ARG_ppMesh,&mesh,MMG5_ARG_ppMet,&met, \
60 return MMG5_LOWFAILURE; \
67 #define MMGS_POINT_REALLOC(mesh,sol,ip,wantedGap,law,o,tag ) do \
71 MMG5_TAB_RECALLOC(mesh,mesh->point,mesh->npmax,wantedGap,MMG5_Point, \
72 "larger point table",law); \
74 mesh->npnil = mesh->np+1; \
75 for (klink=mesh->npnil; klink<mesh->npmax-1; klink++) \
76 mesh->point[klink].tmp = klink+1; \
80 MMG5_ADD_MEM(mesh,(sol->size*(mesh->npmax-sol->npmax))*sizeof(double), \
81 "larger solution",law); \
82 MMG5_SAFE_REALLOC(sol->m,sol->size*(sol->npmax+1), \
83 sol->size*(mesh->npmax+1),double, \
84 "larger solution",law); \
86 sol->npmax = mesh->npmax; \
89 ip = MMGS_newPt(mesh,o,tag); \
95 #define MMGS_TRIA_REALLOC( mesh,jel,wantedGap,law ) do \
99 oldSiz = mesh->ntmax; \
100 MMG5_TAB_RECALLOC(mesh,mesh->tria,mesh->ntmax,wantedGap,MMG5_Tria, \
101 "larger tria table",law); \
103 mesh->nenil = mesh->nt+1; \
104 for (klink=mesh->nenil; klink<mesh->ntmax-1; klink++) \
105 mesh->tria[klink].v[2] = klink+1; \
107 if ( mesh->adja ) { \
109 MMG5_ADD_MEM(mesh,3*(mesh->ntmax-oldSiz)*sizeof(int), \
110 "larger adja table",law); \
111 MMG5_SAFE_RECALLOC(mesh->adja,3*oldSiz+5,3*mesh->ntmax+5,int \
112 ,"larger adja table",law); \
116 jel = MMGS_newElt(mesh); \
165 int paratmet(
double c0[3],
double n0[3],
double m[6],
double c1[3],
double n1[3],
double mt[6]);
226 MMG5_renumbering = MMG5_mmgsRenumbering;
int(* MMG5_compute_meanMetricAtMarkedPoints)(MMG5_pMesh, MMG5_pSol)
Definition: mmgexterns.c:34
! double * m
Definition: libmmgtypesf.h:627
int(* MMG5_indPt)(MMG5_pMesh mesh, int kp)
Definition: mmgexterns.c:31
static void MMG5_endcod()
Definition: mmgs.c:52
int MMG5_intridmet(MMG5_pMesh, MMG5_pSol, int, int, double, double *, double *)
int intregmet(MMG5_pMesh mesh, MMG5_pSol met, int k, char i, double s, double mr[6])
Definition: intmet_s.c:57
int(* MMG5_grad2met_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:32
const int va_list argptr
Definition: API_functionsf_s.c:627
int MMGS_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_s.c:1245
int MMGS_Init_mesh(const int starter,...)
Definition: API_functions_s.c:42
int npar
Definition: libmmgtypes.h:447
int np
Definition: libmmgtypes.h:566
double(* MMG5_lenSurfEdg)(MMG5_pMesh mesh, MMG5_pSol sol, int, int, char)
Definition: mmgexterns.c:29
int MMGS_loadSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_s.c:1264
Definition: libmmgtypes.h:563
int(* movintpt)(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: mmgs.c:41
int colver2(MMG5_pMesh mesh, int *ilist)
Definition: colver_s.c:415
#define MG_REL
Definition: mmgcommon.h:62
int MMG5_mmgs1(MMG5_pMesh, MMG5_pSol)
Definition: mmgs1.c:1349
int MMGS_saveSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_s.c:1447
@ MMG5_Triangle
Definition: libmmgtypes.h:188
static void MMG5_excfun(int sigid)
Definition: mmgcommon.h:404
int litswp(MMG5_pMesh mesh, int k, char i, double kal)
Definition: swapar_s.c:374
char * namein
Definition: libmmgtypes.h:573
static int MMGS_writeLocalParam(MMG5_pMesh mesh)
Definition: mmgs.c:145
int MMGS_Free_structures_var(va_list argptr)
Definition: variadic_s.c:296
#define MMG5_ARG_start
Definition: libmmgtypes.h:73
char iso
Definition: libmmgtypes.h:453
int(* MMG5_grad2metreq_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:33
int MMG5_scaleMesh(MMG5_pMesh mesh, MMG5_pSol met)
Definition: scalem.c:89
#define MG_STR
Definition: mmgcommon.h:64
mytime MMG5_ctim[TIMEMAX]
Definition: mmgs.c:39
int split1b(MMG5_pMesh mesh, int k, char i, int ip)
Definition: split_s.c:220
int MMG5_grad2metSurf(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria pt, int np1, int np2)
Definition: anisosiz.c:912
int MMGS_mmgslib(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs.c:429
int bouletrid(MMG5_pMesh mesh, int start, int ip, int *il1, int *l1, int *il2, int *l2, int *ip0, int *ip1)
Definition: boulep_s.c:312
int MMGS_gradsiz_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz_s.c:767
int chkcol(MMG5_pMesh mesh, MMG5_pSol met, int k, char i, int *list, char typchk)
Definition: colver_s.c:53
int(* MMG5_grad2metreq_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:33
int movintpt_ani(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: anisomovpt_s.c:48
#define MG_VER
Definition: mmgcommon.h:61
! int k
Definition: libmmgtypesf.h:543
size_t MMG5_memSize(void)
Definition: tools.c:546
int intmet_iso(MMG5_pMesh mesh, MMG5_pSol met, int k, char i, int ip, double s)
Definition: intmet_s.c:77
int MMGS_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, int val)
Definition: API_functions_s.c:1216
int(* MMG5_indPt)(MMG5_pMesh mesh, int kp)
Definition: mmgexterns.c:31
int MMGS_memOption(MMG5_pMesh mesh)
Definition: zaldy_s.c:183
int intmet_ani(MMG5_pMesh mesh, MMG5_pSol met, int k, char i, int ip, double s)
Definition: intmet_s.c:104
int MMGS_saveMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_s.c:815
! double n1[3]
Definition: libmmgtypesf.h:275
int(* movridpt)(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: mmgs.c:47
int litcol(MMG5_pMesh mesh, int k, char i, double kal)
Definition: colver_s.c:455
MMG5_Bezier * MMG5_pBezier
Definition: mmgcommon.h:486
int np
Definition: libmmgtypes.h:516
int(* intmet)(MMG5_pMesh mesh, MMG5_pSol met, int k, char i, int ip, double s)
Definition: mmgs.c:46
int(* MMGS_defsiz)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgs.c:42
MMG5_pMesh * mesh
Definition: API_functionsf_s.c:63
int colver(MMG5_pMesh mesh, int *list, int ilist)
Definition: colver_s.c:262
int ier
Definition: API_functionsf_s.c:629
int(* MMG5_grad2met_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:32
#define MG_CPY
Definition: mmgcommon.h:63
int MMGS_analys(MMG5_pMesh mesh)
Definition: analys_s.c:819
int MMGS_Init_mesh_var(va_list argptr)
Definition: variadic_s.c:123
int(* MMG5_indElt)(MMG5_pMesh mesh, int kel)
Definition: mmgexterns.c:30
double caleltsig_ani(MMG5_pMesh mesh, MMG5_pSol met, int iel)
Definition: quality_s.c:52
int swapar(MMG5_pMesh mesh, int k, int i)
Definition: swapar_s.c:296
int mark
Definition: libmmgtypes.h:523
#define _LIBMMG5_RETURN(mesh, met, val)
Definition: mmgcommon.h:177
int MMGS_defsiz_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz_s.c:676
void chrono(int cmode, mytime *ptt)
Function to measure time.
Definition: chrono.c:49
int MMGS_hashTria(MMG5_pMesh)
Definition: hash_s.c:77
int chkedg(MMG5_pMesh, int)
Definition: mmgs1.c:210
int MMGS_loadMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_s.c:100
int MMGS_split3(MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
Definition: split_s.c:575
int MMGS_mmgsls(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs.c:270
int MMG5_split2_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
Definition: split_s.c:338
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:214
API headers for the mmgs library.
char * nameout
Definition: libmmgtypes.h:574
int MMGS_split2(MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
Definition: split_s.c:414
int MMGS_newElt(MMG5_pMesh mesh)
Definition: zaldy_s.c:71
int(* MMGS_gradsiz)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgs.c:44
static int MMGS_defaultOption(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgs.c:198
void MMGS_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs_tools.c:39
void MMGS_delPt(MMG5_pMesh mesh, int ip)
Definition: zaldy_s.c:58
int MMGS_Free_names_var(va_list argptr)
Definition: variadic_s.c:388
Chrono object.
Definition: chrono.h:58
! int s
Definition: libmmgtypesf.h:262
double * m
Definition: libmmgtypes.h:571
#define MMG5_ARG_end
Definition: libmmgtypes.h:159
int MMG5_unscaleMesh(MMG5_pMesh mesh, MMG5_pSol met)
Definition: scalem.c:260
#define MMG5_STRONGFAILURE
Definition: libmmgtypes.h:56
@ MMGS_IPARAM_numberOfLocalParam
Definition: libmmgs.h:71
int MMG5_Compute_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double *hsiz)
Definition: API_functions.c:487
int(* intmet)(MMG5_pMesh mesh, MMG5_pSol met, int k, char i, int ip, double s)
Definition: mmgs.c:46
int MMGS_mmgs2(MMG5_pMesh, MMG5_pSol)
Definition: mmgs2.c:583
int MMG5_mmgsBezierCP(MMG5_pMesh, MMG5_Tria *, MMG5_pBezier, char ori)
Definition: bezier_s.c:54
MMG5_Tria * MMG5_pTria
Definition: libmmgtypes.h:283
char imprim
Definition: libmmgtypes.h:453
int(* MMGS_defsiz)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgs.c:42
int curvpo(MMG5_pMesh, MMG5_pSol)
! double hausd
Definition: libmmgtypesf.h:243
Definition: libmmgtypes.h:270
#define MMG5_SUCCESS
Definition: libmmgtypes.h:40
Definition: mmgcommon.h:480
int MMGS_zaldy(MMG5_pMesh mesh)
Definition: zaldy_s.c:241
void MMG5_defaultValues(MMG5_pMesh)
Cell for linked list of integer value.
static void MMGS_Set_commonFunc()
Definition: mmgs.h:218
int MMGS_split1_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int i, int *vx)
Definition: split_s.c:50
#define MMG5_LOWFAILURE
Definition: libmmgtypes.h:48
char typelt(MMG5_pPoint p[3], char *ia)
Definition: quality_s.c:509
int(* MMGS_gradsiz)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgs.c:44
int MMG5_grad2metSurfreq(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria pt, int npmaster, int npslave)
Definition: anisosiz.c:1450
! double hsiz
Definition: libmmgtypesf.h:495
! char ori
Definition: libmmgtypesf.h:411
int(* MMG5_chkmsh)(MMG5_pMesh, int, int)
Definition: mmgexterns.c:27
! double c[3]
Definition: libmmgtypesf.h:255
int MMGS_newPt(MMG5_pMesh mesh, double c[3], double n[3])
Definition: zaldy_s.c:39
MMG5_Sol * MMG5_pSol
Definition: libmmgtypes.h:576
void printim(double elps, char *stim)
Print real time.
Definition: chrono.c:149
void MMG5_chooseOutputFormat(MMG5_pMesh mesh, int *msh)
Definition: mmg.c:186
int MMGS_split1(MMG5_pMesh mesh, MMG5_pSol met, int k, int i, int *vx)
Definition: split_s.c:107
int(* MMGS_gradsizreq)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgs.c:45
int swpedg(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist, char typchk)
Definition: swapar_s.c:427
#define MMG5_ARG_ppMesh
Definition: libmmgtypes.h:82
int MMGS_simbulgept(MMG5_pMesh mesh, MMG5_pSol met, int k, int i, int ip)
Definition: split_s.c:158
#define MMGS_RETURN_AND_FREE(mesh, met, val)
Definition: mmgs.h:55
! int ref
Definition: libmmgtypesf.h:244
int boulep(MMG5_pMesh mesh, int start, int ip, int *list)
Definition: boulep_s.c:242
void tminit(mytime *t, int maxtim)
Initialize mytime object.
Definition: chrono.c:120
MMG5_Mesh * MMG5_pMesh
Definition: libmmgtypes.h:557
int(* movridpt)(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: mmgs.c:47
int MMGS_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_s.c:688
! int npar
Definition: libmmgtypesf.h:497
MMG mesh structure.
Definition: libmmgtypes.h:509
double(* MMG5_calelt)(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
Definition: mmgs.c:43
int MMGS_Free_all_var(va_list argptr)
Definition: variadic_s.c:205
int MMG5_countLocalParamAtTri(MMG5_pMesh mesh, MMG5_iNode **bdryRefs)
Definition: mmg.c:117
int setref(MMG5_pMesh, int, int, int)
Definition: gentools_s.c:64
int MMG5_mmgsChkmsh(MMG5_pMesh, int, int)
Definition: chkmsh_s.c:48
int MMG5_writeLocalParamAtTri(MMG5_pMesh mesh, MMG5_iNode *bdryRefs, FILE *out)
Definition: mmg.c:162
int MMGS_setMeshSize_alloc(MMG5_pMesh mesh)
Definition: zaldy_s.c:201
#define MMG5_ARG_ppMet
Definition: libmmgtypes.h:102
int(* MMG5_chkmsh)(MMG5_pMesh, int, int)
Definition: mmgexterns.c:27
int movridpt_iso(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: movpt_s.c:333
int colver3(MMG5_pMesh mesh, int *list)
Definition: colver_s.c:352
int movintpt_iso(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: movpt_s.c:41
int chkmet(MMG5_pMesh, MMG5_pSol)
Definition: chkmsh_s.c:290
char * namein
Definition: libmmgtypes.h:553
MMG5_Info info
Definition: libmmgtypes.h:552
int MMGS_delElt(MMG5_pMesh mesh, int iel)
Definition: zaldy_s.c:93
int boulechknm(MMG5_pMesh mesh, int start, int ip, int *list)
Definition: boulep_s.c:111
! double n[3]
Definition: libmmgtypesf.h:256
char * nameout
Definition: libmmgtypes.h:554
double(* MMG5_calelt)(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
Definition: mmgs.c:43
int(* MMG5_bezierCP)(MMG5_pMesh, MMG5_Tria *, MMG5_pBezier, char)
Definition: mmgexterns.c:28
static int MMG5_parsop(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgs.c:71
int(* MMGS_gradsizreq)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgs.c:45
#define MMG5_DEL_MEM(mesh, ptr)
Definition: mmgcommon.h:266
int main(int argc, char *argv[])
Definition: mmgs.c:274
int boulet(MMG5_pMesh mesh, int start, int ip, int *list)
Definition: boulep_s.c:49
int(* movintpt)(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: mmgs.c:41
int MMGS_indPt(MMG5_pMesh mesh, int kp)
Definition: gentools_s.c:138
int MMGS_set_metricAtPointsOnReqEdges(MMG5_pMesh, MMG5_pSol)
Definition: isosiz_s.c:86
int chknor(MMG5_pMesh)
Definition: chkmsh_s.c:403
int paratmet(double c0[3], double n0[3], double m[6], double c1[3], double n1[3], double mt[6])
int(* MMG5_bezierCP)(MMG5_pMesh, MMG5_Tria *, MMG5_pBezier, char)
Definition: mmgexterns.c:28
int MMGS_parsar(int argc, char *argv[], MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs_tools.c:97
int MMGS_Set_localParameter(MMG5_pMesh mesh, MMG5_pSol sol, int typ, int ref, double hmin, double hmax, double hausd)
Definition: API_functions_s.c:1405
int MMGS_inqua(MMG5_pMesh, MMG5_pSol)
Definition: quality_s.c:386
int(* MMG5_indElt)(MMG5_pMesh mesh, int kel)
Definition: mmgexterns.c:30
double hsiz
Definition: libmmgtypes.h:445
int MMGS_intmet33_ani(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: intmet_s.c:143
#define TIMEMAX
Definition: chrono.h:49
int assignEdge(MMG5_pMesh mesh)
Definition: hash_s.c:113
int MMGS_defsiz_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz_s.c:137
double caleltsig_iso(MMG5_pMesh mesh, MMG5_pSol met, int iel)
Definition: quality_s.c:139
int MMGS_bezierInt(MMG5_pBezier, double *, double *, double *, double *)
int MMGS_gradsizreq_ani(MMG5_pMesh mesh, MMG5_pSol met)
int chkswp(MMG5_pMesh mesh, MMG5_pSol met, int k, int i, char typchk)
Definition: swapar_s.c:39
int MMGS_split3_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
Definition: split_s.c:487
int MMGS_prilen(MMG5_pMesh mesh, MMG5_pSol met, int)
Definition: quality_s.c:281
int delref(MMG5_pMesh)
Definition: gentools_s.c:39
int MMGS_indElt(MMG5_pMesh mesh, int kel)
Definition: gentools_s.c:122
void MMG5_Init_parameters(MMG5_pMesh mesh)
Definition: API_functions.c:51
int MMGS_outqua(MMG5_pMesh, MMG5_pSol)
Definition: quality_s.c:452
int movridpt_ani(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: anisomovpt_s.c:265
int MMGS_Free_names(const int starter,...)
Definition: API_functions_s.c:1501