mmgs
mmgs.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 MMGS_H
25 #define MMGS_H
26 
27 #include "libmmgcommon.h"
28 #include "libmmgs.h"
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 /* numerical accuracy */
35 #define MMGS_ALPHAD 3.464101615137755 /* 6.0 / sqrt(3.0) */
36 
37 #define MMGS_LOPTL 1.4
38 #define MMGS_LOPTS 0.71
39 #define MMGS_LLONG 2.0
40 #define MMGS_LSHRT 0.3
41 
42 #define MMGS_LMAX 1024
43 #define MMGS_BADKAL 2.e-2
44 #define MMGS_NULKAL 1.e-4
45 
46 #define MMGS_NPMAX 500000
47 #define MMGS_NTMAX 1000000
48 #define MMGS_XPMAX 500000
49 
50 
51 #define MS_SIN(tag) ((tag & MG_CRN) || (tag & MG_REQ) || (tag & MG_NOM))
52 
53 
55 #define MMGS_RETURN_AND_FREE(mesh,met,ls,val)do \
56  { \
57  if ( !MMGS_Free_all(MMG5_ARG_start, \
58  MMG5_ARG_ppMesh,&mesh,MMG5_ARG_ppMet,&met, \
59  MMG5_ARG_ppLs,&ls, \
60  MMG5_ARG_end) ) { \
61  return MMG5_LOWFAILURE; \
62  } \
63  return val; \
64  }while(0)
65 
68 #define MMGS_POINT_REALLOC(mesh,sol,ip,wantedGap,law,o,tag ) do \
69  { \
70  int klink; \
71  assert ( mesh && mesh->point ); \
72  MMG5_TAB_RECALLOC(mesh,mesh->point,mesh->npmax,wantedGap,MMG5_Point, \
73  "larger point table",law); \
74  \
75  mesh->npnil = mesh->np+1; \
76  for (klink=mesh->npnil; klink<mesh->npmax-1; klink++) \
77  mesh->point[klink].tmp = klink+1; \
78  \
79  /* solution */ \
80  if ( sol->m ) { \
81  MMG5_ADD_MEM(mesh,(sol->size*(mesh->npmax-sol->npmax))*sizeof(double), \
82  "larger solution",law); \
83  MMG5_SAFE_REALLOC(sol->m,sol->size*(sol->npmax+1), \
84  sol->size*(mesh->npmax+1),double, \
85  "larger solution",law); \
86  } \
87  sol->npmax = mesh->npmax; \
88  \
89  /* We try again to add the point */ \
90  ip = MMGS_newPt(mesh,o,tag); \
91  if ( !ip ) {law;} \
92  }while(0)
93 
96 #define MMGS_TRIA_REALLOC( mesh,jel,wantedGap,law ) do \
97  { \
98  int klink,oldSiz; \
99  \
100  oldSiz = mesh->ntmax; \
101  MMG5_TAB_RECALLOC(mesh,mesh->tria,mesh->ntmax,wantedGap,MMG5_Tria, \
102  "larger tria table",law); \
103  \
104  mesh->nenil = mesh->nt+1; \
105  for (klink=mesh->nenil; klink<mesh->ntmax-1; klink++) \
106  mesh->tria[klink].v[2] = klink+1; \
107  \
108  if ( mesh->adja ) { \
109  /* adja table */ \
110  MMG5_ADD_MEM(mesh,3*(mesh->ntmax-oldSiz)*sizeof(int), \
111  "larger adja table",law); \
112  MMG5_SAFE_RECALLOC(mesh->adja,3*oldSiz+5,3*mesh->ntmax+5,int \
113  ,"larger adja table",law); \
114  } \
115  \
116  /* We try again to add the point */ \
117  jel = MMGS_newElt(mesh); \
118  if ( !jel ) {law;} \
119  }while(0)
120 
121 /* prototypes */
122 int MMGS_Init_mesh_var( va_list argptr );
123 int MMGS_Free_all_var( va_list argptr );
124 int MMGS_Free_structures_var( va_list argptr );
125 int MMGS_Free_names_var( va_list argptr );
126 
134 int MMG5_mmgs1(MMG5_pMesh ,MMG5_pSol,int* );
137 int boulet(MMG5_pMesh mesh,int start,int ip,int *list);
138 int boulechknm(MMG5_pMesh mesh,int start,int ip,int *list);
139 int bouletrid(MMG5_pMesh mesh,int start,int ip,int *il1,int *l1,int *il2,int *l2,int *ip0,int *ip1);
140 int MMGS_newPt(MMG5_pMesh mesh,double c[3],double n[3]);
141 void MMGS_delPt(MMG5_pMesh mesh,int ip);
143 int MMGS_delElt(MMG5_pMesh mesh,int iel);
144 int chkedg(MMG5_pMesh ,int );
146 int MMGS_bezierInt(MMG5_pBezier ,double *,double *,double *,double *);
147 int MMGS_simbulgept(MMG5_pMesh mesh,MMG5_pSol met, int k,int i,int ip);
148 int MMGS_split1_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int i, int *vx);
149 int MMG5_split2_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int *vx);
150 int MMGS_split3_sim(MMG5_pMesh mesh,MMG5_pSol met,int k,int *vx);
151 int MMGS_split1(MMG5_pMesh mesh,MMG5_pSol met,int k,int i,int *vx);
152 int MMGS_split2(MMG5_pMesh mesh,MMG5_pSol met,int k,int *vx);
153 int MMGS_split3(MMG5_pMesh mesh,MMG5_pSol met,int k,int *vx);
154 int split1b(MMG5_pMesh mesh,int k,int8_t i,int ip);
155 int chkcol(MMG5_pMesh mesh,MMG5_pSol met,int k,int8_t i,int *list,int8_t typchk);
156 int colver(MMG5_pMesh mesh,int *list,int ilist);
157 int colver3(MMG5_pMesh mesh,int*list);
158 int colver2(MMG5_pMesh mesh,int *ilist);
159 int swapar(MMG5_pMesh mesh,int k,int i);
160 int chkswp(MMG5_pMesh mesh,MMG5_pSol met,int k,int i,int8_t typchk);
161 int swpedg(MMG5_pMesh mesh,MMG5_pSol met,int *list,int ilist,int8_t typchk);
162 int8_t typelt(MMG5_pPoint p[3],int8_t *ia);
163 int litswp(MMG5_pMesh mesh,int k,int8_t i,double kal);
164 int litcol(MMG5_pMesh mesh,int k,int8_t i,double kal);
165 int MMG5_mmgsChkmsh(MMG5_pMesh,int,int);
166 int paratmet(double c0[3],double n0[3],double m[6],double c1[3],double n1[3],double mt[6]);
167 int intregmet(MMG5_pMesh mesh,MMG5_pSol met,int k,int8_t i,double s,double mr[6]);
168 int MMG5_intridmet(MMG5_pMesh,MMG5_pSol,int,int,double,double*,double*);
169 int setref(MMG5_pMesh,int,int,int);
170 int delref(MMG5_pMesh);
172 int chknor(MMG5_pMesh);
173 size_t MMG5_memSize(void);
176 
177 #ifdef USE_SCOTCH
178 int MMG5_mmgsRenumbering(int,MMG5_pMesh,MMG5_pSol,MMG5_pSol,int*);
179 #endif
180 
181 /* tools */
182 void MMGS_keep_only1Subdomain ( MMG5_pMesh mesh,int nsd );
183 
184 /* useful functions to debug */
185 int MMGS_indElt(MMG5_pMesh mesh,int kel);
186 int MMGS_indPt(MMG5_pMesh mesh,int kp);
187 
188 /* function pointers */
189 /* init structures */
191 /* iso/aniso computations */
192 double caleltsig_ani(MMG5_pMesh mesh,MMG5_pSol met,int iel);
193 double caleltsig_iso(MMG5_pMesh mesh,MMG5_pSol met,int iel);
199 int intmet_iso(MMG5_pMesh mesh,MMG5_pSol met,int k,int8_t i,int ip,double s);
200 int intmet_ani(MMG5_pMesh mesh,MMG5_pSol met,int k,int8_t i,int ip,double s);
201 int MMGS_intmet33_ani(MMG5_pMesh,MMG5_pSol,int,int8_t,int,double);
202 int MMGS_paramDisp(MMG5_pMesh mesh,int it1,int it2,
203  double l1old,double l2old,
204  int8_t isrid1, int8_t isrid2,int ip0,int ip1,int ip2,
205  double step,double o[3],int8_t *isrid);
207  double llold,double lam0,double lam1,double lam2,
208  double nn1[3],double nn2[3],double to[3]);
209 int movridpt_iso(MMG5_pMesh mesh,MMG5_pSol met,int *list,int ilist);
210 int movintpt_iso(MMG5_pMesh mesh,MMG5_pSol met,int *list,int ilist);
211 int movridpt_ani(MMG5_pMesh mesh,MMG5_pSol met,int *list,int ilist);
212 int movintpt_ani(MMG5_pMesh mesh,MMG5_pSol met,int *list,int ilist);
213 int MMGS_surfballRotation(MMG5_pMesh,MMG5_pPoint,int*,int,double r[3][3],double*);
214 int MMGS_prilen(MMG5_pMesh mesh,MMG5_pSol met,int);
216 
217 extern double (*MMG5_calelt)(MMG5_pMesh mesh,MMG5_pSol met,MMG5_pTria ptt);
218 extern int (*MMGS_defsiz)(MMG5_pMesh mesh,MMG5_pSol met);
219 extern int (*MMGS_gradsiz)(MMG5_pMesh mesh,MMG5_pSol met);
220 extern int (*MMGS_gradsizreq)(MMG5_pMesh mesh,MMG5_pSol met);
221 extern int (*intmet)(MMG5_pMesh mesh,MMG5_pSol met,int k,int8_t i,int ip,double s);
222 extern int (*movridpt)(MMG5_pMesh mesh,MMG5_pSol met,int *list,int ilist);
223 extern int (*movintpt)(MMG5_pMesh mesh,MMG5_pSol met,int *list,int ilist);
224 
229 static inline
237 #ifdef USE_SCOTCH
238  MMG5_renumbering = MMG5_mmgsRenumbering;
239 #endif
240 }
241 
242 #ifdef __cplusplus
243 }
244 #endif
245 
246 #endif
MMGS_set_metricAtPointsOnReqEdges
int MMGS_set_metricAtPointsOnReqEdges(MMG5_pMesh, MMG5_pSol, int8_t)
Definition: isosiz_s.c:88
MMG5_intridmet
int MMG5_intridmet(MMG5_pMesh, MMG5_pSol, int, int, double, double *, double *)
argptr
const int va_list argptr
Definition: API_functionsf_s.c:712
MMGS_saveMshMesh
int MMGS_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_s.c:1278
MMGS_Init_mesh
int MMGS_Init_mesh(const int starter,...)
Definition: API_functions_s.c:42
MMG5_Info::npar
int npar
Definition: libmmgtypes.h:478
MMG5_Sol::np
int np
Definition: libmmgtypes.h:613
MMGS_loadVtpMesh
int MMGS_loadVtpMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
MMGS_loadSol
int MMGS_loadSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_s.c:1288
MMGS_loadVtkMesh
int MMGS_loadVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
MMG5_Get_formatName
const char * MMG5_Get_formatName(enum MMG5_Format fmt)
Definition: mmg.c:556
MMG5_FMT_GmshASCII
@ MMG5_FMT_GmshASCII
Definition: mmgcommon.h:534
MMG5_bezierCP
int(* MMG5_bezierCP)(MMG5_pMesh, MMG5_Tria *, MMG5_pBezier, int8_t)
Definition: mmgexterns.c:28
MMGS_paramDisp
int MMGS_paramDisp(MMG5_pMesh mesh, int it1, int it2, double l1old, double l2old, int8_t isrid1, int8_t isrid2, int ip0, int ip1, int ip2, double step, double o[3], int8_t *isrid)
Definition: movpt_s.c:353
MMGS_keep_only1Subdomain
void MMGS_keep_only1Subdomain(MMG5_pMesh mesh, int nsd)
Definition: gentools_s.c:160
MMG5_Sol
Definition: libmmgtypes.h:610
MMG5_FMT_MeditASCII
@ MMG5_FMT_MeditASCII
Definition: mmgcommon.h:532
colver2
int colver2(MMG5_pMesh mesh, int *ilist)
Definition: colver_s.c:418
litcol
int litcol(MMG5_pMesh mesh, int k, int8_t i, double kal)
Definition: colver_s.c:458
MMGS_saveSol
int MMGS_saveSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_s.c:1451
MMG5_Triangle
@ MMG5_Triangle
Definition: libmmgtypes.h:215
MMG5_FMT_MeditBinary
@ MMG5_FMT_MeditBinary
Definition: mmgcommon.h:533
MMG5_excfun
static void MMG5_excfun(int sigid)
Definition: mmgcommon.h:463
MMGS_bdryUpdate
int MMGS_bdryUpdate(MMG5_pMesh mesh)
Definition: hash_s.c:169
MMG5_Sol::namein
char * namein
Definition: libmmgtypes.h:620
MMGS_writeLocalParam
static int MMGS_writeLocalParam(MMG5_pMesh mesh)
Definition: mmgs.c:136
MMGS_Free_structures_var
int MMGS_Free_structures_var(va_list argptr)
Definition: variadic_s.c:334
MMG5_ARG_start
#define MMG5_ARG_start
Definition: libmmgtypes.h:76
MMGS_mmgs2
int MMGS_mmgs2(MMG5_pMesh, MMG5_pSol, MMG5_pSol)
Definition: mmgs2.c:610
MMG5_grad2metreq_ani
int(* MMG5_grad2metreq_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:33
MMGS_saveVtpMesh
int MMGS_saveVtpMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
MMG5_Info::imprim
int imprim
Definition: libmmgtypes.h:484
MG_STR
#define MG_STR
Definition: mmgcommon.h:57
MMG5_ctim
mytime MMG5_ctim[TIMEMAX]
Definition: mmgs.c:38
MMGS_moveTowardPoint
int MMGS_moveTowardPoint(MMG5_pMesh mesh, MMG5_pPoint p0, MMG5_pPoint p, double llold, double lam0, double lam1, double lam2, double nn1[3], double nn2[3], double to[3])
Definition: movpt_s.c:580
MMG5_grad2metSurf
int MMG5_grad2metSurf(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria pt, int np1, int np2)
Definition: anisosiz.c:910
MMGS_mmgslib
int MMGS_mmgslib(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs.c:530
bouletrid
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:260
MMGS_gradsiz_ani
int MMGS_gradsiz_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz_s.c:805
MMGS_doSol
int MMGS_doSol(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs_tools.c:689
movintpt_ani
int movintpt_ani(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: anisomovpt_s.c:48
MMG5_memSize
size_t MMG5_memSize(void)
Definition: tools.c:547
MMGS_Set_iparameter
int MMGS_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, int val)
Definition: API_functions_s.c:1300
swpedg
int swpedg(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist, int8_t typchk)
Definition: swapar_s.c:427
MMG5_indPt
int(* MMG5_indPt)(MMG5_pMesh mesh, int kp)
Definition: mmgexterns.c:31
MMGS_memOption
int MMGS_memOption(MMG5_pMesh mesh)
Definition: zaldy_s.c:183
MMGS_saveMesh
int MMGS_saveMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_s.c:818
MMG5_solTruncatureForOptim
void MMG5_solTruncatureForOptim(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmg.c:263
MMGS_mmgsls
int MMGS_mmgsls(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pSol umet)
Definition: libmmgs.c:295
MMG5_Mesh::np
int np
Definition: libmmgtypes.h:559
MMG5_FILESTR_LGTH
#define MMG5_FILESTR_LGTH
Definition: mmgcommon.h:132
MMGS_defsiz
int(* MMGS_defsiz)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgsexterns.c:5
mesh
MMG5_pMesh * mesh
Definition: API_functionsf_s.c:63
colver
int colver(MMG5_pMesh mesh, int *list, int ilist)
Definition: colver_s.c:265
ier
int ier
Definition: API_functionsf_s.c:714
MMG5_grad2met_ani
int(* MMG5_grad2met_ani)(MMG5_pMesh, MMG5_pSol, MMG5_pTria, int, int)
Definition: mmgexterns.c:32
MMGS_defaultOption
static int MMGS_defaultOption(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol)
Definition: mmgs.c:194
MMGS_analys
int MMGS_analys(MMG5_pMesh mesh)
Definition: analys_s.c:701
MMGS_Init_mesh_var
int MMGS_Init_mesh_var(va_list argptr)
Definition: variadic_s.c:148
MMG5_indElt
int(* MMG5_indElt)(MMG5_pMesh mesh, int kel)
Definition: mmgexterns.c:30
caleltsig_ani
double caleltsig_ani(MMG5_pMesh mesh, MMG5_pSol met, int iel)
Definition: quality_s.c:52
swapar
int swapar(MMG5_pMesh mesh, int k, int i)
Definition: swapar_s.c:296
MMG5_Mesh::mark
int mark
Definition: libmmgtypes.h:566
litswp
int litswp(MMG5_pMesh mesh, int k, int8_t i, double kal)
Definition: swapar_s.c:374
MMGS_defsiz_ani
int MMGS_defsiz_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz_s.c:708
MMG_FSCANF
#define MMG_FSCANF(stream, format,...)
Definition: mmgcommon.h:432
chrono
void chrono(int cmode, mytime *ptt)
Function to measure time.
Definition: chrono.c:49
MMGS_hashTria
int MMGS_hashTria(MMG5_pMesh)
Definition: hash_s.c:77
chkedg
int chkedg(MMG5_pMesh, int)
Definition: mmgs1.c:210
MMGS_loadMesh
int MMGS_loadMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_s.c:39
MMG5_FMT_VtkVtu
@ MMG5_FMT_VtkVtu
Definition: mmgcommon.h:538
MMGS_saveVtkMesh
int MMGS_saveVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
MMGS_split3
int MMGS_split3(MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
Definition: split_s.c:575
MMG5_split2_sim
int MMG5_split2_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
Definition: split_s.c:338
MMG5_Point
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:241
libmmgs.h
API headers for the mmgs library.
MMG5_Sol::nameout
char * nameout
Definition: libmmgtypes.h:621
MMGS_split2
int MMGS_split2(MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
Definition: split_s.c:414
MMGS_newElt
int MMGS_newElt(MMG5_pMesh mesh)
Definition: zaldy_s.c:71
MMGS_gradsiz
int(* MMGS_gradsiz)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgsexterns.c:7
MMG5_FMT_VtkVtp
@ MMG5_FMT_VtkVtp
Definition: mmgcommon.h:539
MMGS_setfunc
void MMGS_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs_tools.c:39
MMGS_delPt
void MMGS_delPt(MMG5_pMesh mesh, int ip)
Definition: zaldy_s.c:58
MMGS_Free_names_var
int MMGS_Free_names_var(va_list argptr)
Definition: variadic_s.c:436
mytime
Chrono object.
Definition: chrono.h:58
MMG5_Sol::m
double * m
Definition: libmmgtypes.h:618
MMG5_ARG_end
#define MMG5_ARG_end
Definition: libmmgtypes.h:162
libmmgcommon.h
API header for the common part of the MMG libraries.
MMG5_STRONGFAILURE
#define MMG5_STRONGFAILURE
Definition: libmmgtypes.h:59
MMGS_IPARAM_numberOfLocalParam
@ MMGS_IPARAM_numberOfLocalParam
Definition: libmmgs.h:72
MMGS_assignEdge
int MMGS_assignEdge(MMG5_pMesh mesh)
Definition: hash_s.c:113
MMG5_Compute_constantSize
int MMG5_Compute_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double *hsiz)
Definition: API_functions.c:555
MMG5_Get_filenameExt
char * MMG5_Get_filenameExt(char *filename)
Definition: mmg.c:375
MMGS_loadVtuMesh
int MMGS_loadVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
curvpo
int curvpo(MMG5_pMesh, MMG5_pSol)
MMG5_Tria
Definition: libmmgtypes.h:301
MMGS_RETURN_AND_FREE
#define MMGS_RETURN_AND_FREE(mesh, met, ls, val)
Definition: mmgs.h:55
MMG5_SUCCESS
#define MMG5_SUCCESS
Definition: libmmgtypes.h:43
MMG5_Bezier
Definition: mmgcommon.h:557
MMGS_zaldy
int MMGS_zaldy(MMG5_pMesh mesh)
Definition: zaldy_s.c:241
intregmet
int intregmet(MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t i, double s, double mr[6])
Definition: intmet_s.c:57
MMG5_defaultValues
void MMG5_defaultValues(MMG5_pMesh)
MMG5_iNode
Cell for linked list of integer value.
MMGS_split1_sim
int MMGS_split1_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int i, int *vx)
Definition: split_s.c:50
MMG5_LOWFAILURE
#define MMG5_LOWFAILURE
Definition: libmmgtypes.h:51
MMG5_unscaleMesh
int MMG5_unscaleMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol ls)
Definition: scalem.c:401
MMG5_grad2metSurfreq
int MMG5_grad2metSurfreq(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria pt, int npmaster, int npslave)
Definition: anisosiz.c:1448
MMG5_chkmsh
int(* MMG5_chkmsh)(MMG5_pMesh, int, int)
Definition: mmgexterns.c:27
MMG5_dNode_s::k
int k
Definition: mmgcommon.h:579
MMGS_newPt
int MMGS_newPt(MMG5_pMesh mesh, double c[3], double n[3])
Definition: zaldy_s.c:39
printim
void printim(double elps, char *stim)
Print real time.
Definition: chrono.c:149
MMGS_surfballRotation
int MMGS_surfballRotation(MMG5_pMesh, MMG5_pPoint, int *, int, double r[3][3], double *)
Definition: anisosiz_s.c:518
split1b
int split1b(MMG5_pMesh mesh, int k, int8_t i, int ip)
Definition: split_s.c:220
MMGS_split1
int MMGS_split1(MMG5_pMesh mesh, MMG5_pSol met, int k, int i, int *vx)
Definition: split_s.c:107
chkswp
int chkswp(MMG5_pMesh mesh, MMG5_pSol met, int k, int i, int8_t typchk)
Definition: swapar_s.c:39
MMG5_mmgs1
int MMG5_mmgs1(MMG5_pMesh, MMG5_pSol, int *)
Definition: mmgs1.c:1379
MMG5_ARG_ppMesh
#define MMG5_ARG_ppMesh
Definition: libmmgtypes.h:85
MMGS_simbulgept
int MMGS_simbulgept(MMG5_pMesh mesh, MMG5_pSol met, int k, int i, int ip)
Definition: split_s.c:158
MMG5_FMT_VtkVtk
@ MMG5_FMT_VtkVtk
Definition: mmgcommon.h:540
tminit
void tminit(mytime *t, int maxtim)
Initialize mytime object.
Definition: chrono.c:120
movridpt
int(* movridpt)(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: mmgsexterns.c:10
MMGS_Set_commonFunc
static void MMGS_Set_commonFunc(void)
Definition: mmgs.h:230
chkcol
int chkcol(MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t i, int *list, int8_t typchk)
Definition: colver_s.c:53
MMG5_Info::optim
uint8_t optim
Definition: libmmgtypes.h:500
MMGS_loadMshMesh
int MMGS_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_s.c:705
_LIBMMG5_RETURN
#define _LIBMMG5_RETURN(mesh, sol, met, val)
Definition: mmgcommon.h:182
MMG5_Mesh
MMG mesh structure.
Definition: libmmgtypes.h:552
MMG5_calelt
double(* MMG5_calelt)(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
Definition: mmgsexterns.c:6
MMGS_Free_all_var
int MMGS_Free_all_var(va_list argptr)
Definition: variadic_s.c:235
MMG5_Get_format
int MMG5_Get_format(char *ptr, int fmt)
Definition: mmg.c:508
intmet_iso
int intmet_iso(MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t i, int ip, double s)
Definition: intmet_s.c:77
MMG5_countLocalParamAtTri
int MMG5_countLocalParamAtTri(MMG5_pMesh mesh, MMG5_iNode **bdryRefs)
Definition: mmg.c:192
setref
int setref(MMG5_pMesh, int, int, int)
Definition: gentools_s.c:64
MMG5_mmgsChkmsh
int MMG5_mmgsChkmsh(MMG5_pMesh, int, int)
Definition: chkmsh_s.c:48
MMG5_writeLocalParamAtTri
int MMG5_writeLocalParamAtTri(MMG5_pMesh mesh, MMG5_iNode *bdryRefs, FILE *out)
Definition: mmg.c:236
MMGS_setMeshSize_alloc
int MMGS_setMeshSize_alloc(MMG5_pMesh mesh)
Definition: zaldy_s.c:201
MMGS_saveVtuMesh
int MMGS_saveVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
MMG5_Info::iso
int8_t iso
Definition: libmmgtypes.h:489
MMG5_ARG_ppMet
#define MMG5_ARG_ppMet
Definition: libmmgtypes.h:105
movridpt_iso
int movridpt_iso(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: movpt_s.c:620
colver3
int colver3(MMG5_pMesh mesh, int *list)
Definition: colver_s.c:355
movintpt_iso
int movintpt_iso(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: movpt_s.c:41
chkmet
int chkmet(MMG5_pMesh, MMG5_pSol)
MMG5_Mesh::namein
char * namein
Definition: libmmgtypes.h:600
typelt
int8_t typelt(MMG5_pPoint p[3], int8_t *ia)
Definition: quality_s.c:510
MMG5_Mesh::info
MMG5_Info info
Definition: libmmgtypes.h:599
MMGS_delElt
int MMGS_delElt(MMG5_pMesh mesh, int iel)
Definition: zaldy_s.c:93
MMG5_endcod
static void MMG5_endcod(void)
Definition: mmgs.c:44
boulechknm
int boulechknm(MMG5_pMesh mesh, int start, int ip, int *list)
Definition: boulep_s.c:111
intmet_ani
int intmet_ani(MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t i, int ip, double s)
Definition: intmet_s.c:104
MMG5_Mesh::nameout
char * nameout
Definition: libmmgtypes.h:601
MMG5_mmgsBezierCP
int MMG5_mmgsBezierCP(MMG5_pMesh, MMG5_Tria *, MMG5_pBezier, int8_t ori)
Definition: bezier_s.c:54
MMG5_ARG_ppLs
#define MMG5_ARG_ppLs
Definition: libmmgtypes.h:95
intmet
int(* intmet)(MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t i, int ip, double s)
Definition: mmgsexterns.c:9
MMG5_parsop
static int MMG5_parsop(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgs.c:63
MMGS_gradsizreq
int(* MMGS_gradsizreq)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgsexterns.c:8
MMG5_DEL_MEM
#define MMG5_DEL_MEM(mesh, ptr)
Definition: mmgcommon.h:281
main
int main(int argc, char *argv[])
Definition: mmgs.c:285
boulet
int boulet(MMG5_pMesh mesh, int start, int ip, int *list)
Definition: boulep_s.c:49
movintpt
int(* movintpt)(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: mmgsexterns.c:4
MMGS_indPt
int MMGS_indPt(MMG5_pMesh mesh, int kp)
Definition: gentools_s.c:138
chknor
int chknor(MMG5_pMesh)
Definition: chkmsh_s.c:240
paratmet
int paratmet(double c0[3], double n0[3], double m[6], double c1[3], double n1[3], double mt[6])
MMGS_intmet33_ani
int MMGS_intmet33_ani(MMG5_pMesh, MMG5_pSol, int, int8_t, int, double)
Definition: intmet_s.c:143
MMG5_FMT_GmshBinary
@ MMG5_FMT_GmshBinary
Definition: mmgcommon.h:535
MMGS_Set_localParameter
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:1503
MMGS_inqua
int MMGS_inqua(MMG5_pMesh, MMG5_pSol)
Definition: quality_s.c:386
MMGS_parsar
int MMGS_parsar(int argc, char *argv[], MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol)
Definition: libmmgs_tools.c:113
MMG5_Info::hsiz
double hsiz
Definition: libmmgtypes.h:476
TIMEMAX
#define TIMEMAX
Definition: chrono.h:49
MMGS_defsiz_iso
int MMGS_defsiz_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz_s.c:139
caleltsig_iso
double caleltsig_iso(MMG5_pMesh mesh, MMG5_pSol met, int iel)
Definition: quality_s.c:139
MMGS_bezierInt
int MMGS_bezierInt(MMG5_pBezier, double *, double *, double *, double *)
mmgs.h
MMGS_gradsizreq_ani
int MMGS_gradsizreq_ani(MMG5_pMesh mesh, MMG5_pSol met)
MMG5_scaleMesh
int MMG5_scaleMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol ls)
Definition: scalem.c:273
MMGS_split3_sim
int MMGS_split3_sim(MMG5_pMesh mesh, MMG5_pSol met, int k, int *vx)
Definition: split_s.c:487
MMGS_prilen
int MMGS_prilen(MMG5_pMesh mesh, MMG5_pSol met, int)
Definition: quality_s.c:281
delref
int delref(MMG5_pMesh)
Definition: gentools_s.c:39
MMGS_indElt
int MMGS_indElt(MMG5_pMesh mesh, int kel)
Definition: gentools_s.c:122
MMG5_Init_parameters
void MMG5_Init_parameters(MMG5_pMesh mesh)
Definition: API_functions.c:51
MMGS_outqua
int MMGS_outqua(MMG5_pMesh, MMG5_pSol)
Definition: quality_s.c:453
movridpt_ani
int movridpt_ani(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist)
Definition: anisomovpt_s.c:235
MMGS_Free_names
int MMGS_Free_names(const int starter,...)
Definition: API_functions_s.c:1605