mmg2d
libmmgcommon.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 
35 #ifndef MMGLIBCOMMON_H
36 #define MMGLIBCOMMON_H
37 
38 #include <stdarg.h>
39 
40 #include "libmmgtypes.h"
41 
42 #include "chrono.h"
43 
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47 
48 
49 /*----------------------------- functions header -----------------------------*/
50 /* Initialization functions */
76 
77 /* init file names */
111 int MMG5_Set_outputMeshName(MMG5_pMesh mesh, const char* meshout);
129 int MMG5_Set_inputSolName(MMG5_pMesh mesh,MMG5_pSol sol, const char* solin);
147 int MMG5_Set_outputSolName(MMG5_pMesh mesh,MMG5_pSol sol, const char* solout);
148 
159 void MMG5_Set_constantSize(MMG5_pMesh mesh,MMG5_pSol met,double hsiz);
160 
173  int MMG5_Set_multiMat(MMG5_pMesh mesh, MMG5_pSol sol,int ref,int split,
174  int rin, int rex);
175 
176 
177 /* deallocations */
179 
193 
206 extern int MMG5_Set_defaultTruncatureSizes(MMG5_pMesh mesh,int8_t sethmin,int8_t sethmax);
207 
219 int MMG5_Compute_constantSize(MMG5_pMesh mesh,MMG5_pSol met,double *hsize);
220 
221 /* Enum utilities */
230 const char* MMG5_Get_entitiesName(enum MMG5_entities ent);
231 
240 const char* MMG5_Get_typeName(enum MMG5_type typ);
241 
251 
260 int MMG5_saveNode(MMG5_pMesh mesh,const char *filename);
261 
270 int MMG5_saveEdge(MMG5_pMesh mesh,const char *filename);
271 
272 #ifdef __cplusplus
273 }
274 #endif
275 
276 #endif
MMG2D_hashTria
int MMG2D_hashTria(MMG5_pMesh mesh)
Definition: hash_2d.c:35
MMG5_Edge
Structure to store edges of a MMG mesh.
Definition: libmmgtypes.h:274
MMG2D_Get_triFromEdge
int MMG2D_Get_triFromEdge(MMG5_pMesh mesh, int ked, int *ktri, int *ied)
Definition: libmmg2d_tools.c:428
MMG5_Set_outputMeshName
int MMG5_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
Definition: API_functions.c:231
MMG5_Info::nmat
int nmat
Definition: libmmgtypes.h:483
MMG5_Info::npar
int npar
Definition: libmmgtypes.h:478
MMG5_Mesh::nenil
int nenil
Definition: libmmgtypes.h:570
MMG2D_setfunc
void MMG2D_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:36
MMG5_Mesh::namax
int namax
Definition: libmmgtypes.h:559
libmmgtypes.h
MMG5_Tria::v
int v[3]
Definition: libmmgtypes.h:303
MMG5_Sol
Definition: libmmgtypes.h:610
MG_SIN
#define MG_SIN(tag)
Definition: mmgcommon.h:164
MMG2D_intmet
int(* MMG2D_intmet)(MMG5_pMesh, MMG5_pSol, int, int8_t, int, double)
Definition: mmg2dexterns.c:5
MMG5_gradsiz_iso
int MMG5_gradsiz_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz.c:277
MMG5_Free_allSols
int MMG5_Free_allSols(MMG5_pMesh mesh, MMG5_pSol *sol)
Definition: API_functions.c:438
MMG5_Edge::ref
int ref
Definition: libmmgtypes.h:276
MMG5_Triangle
@ MMG5_Triangle
Definition: libmmgtypes.h:215
MMG5_saveEdge
int MMG5_saveEdge(MMG5_pMesh mesh, const char *filename)
Definition: inout.c:2577
MG_EOK
#define MG_EOK(pt)
Definition: mmgcommon.h:161
MMG2D_Compute_eigenv
int MMG2D_Compute_eigenv(double m[3], double lambda[2], double vp[2][2])
Definition: libmmg2d_tools.c:510
MMG5_Mat::rex
int rex
Definition: libmmgtypes.h:466
MMG5_Mesh::xp
int xp
Definition: libmmgtypes.h:568
MMG5_Sol::size
int size
Definition: libmmgtypes.h:616
MMG2D_defsiz_ani
int MMG2D_defsiz_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz_2d.c:360
MMG5_Mat::rin
int rin
Definition: libmmgtypes.h:466
MMG5_Info::imprim
int imprim
Definition: libmmgtypes.h:484
MMG2D_IPARAM_numberOfLocalParam
@ MMG2D_IPARAM_numberOfLocalParam
Definition: libmmg2d.h:73
MMG5_iprv2
static const uint8_t MMG5_iprv2[3]
Definition: mmgcommon.h:548
MMG2D_LMAX
#define MMG2D_LMAX
Definition: libmmg2d.h:46
MMG5_Mesh::point
MMG5_pPoint point
Definition: libmmgtypes.h:589
MMG5_Init_fileNames
void MMG5_Init_fileNames(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: API_functions.c:126
MMG5_Tria::edg
int edg[3]
Definition: libmmgtypes.h:308
MMG5_Get_typeName
const char * MMG5_Get_typeName(enum MMG5_type typ)
Definition: API_functions.c:631
MMG5_Tria::tag
int16_t tag[3]
Definition: libmmgtypes.h:311
MMG5_Info::opnbdy
int opnbdy
Definition: libmmgtypes.h:480
MMG5_entities
MMG5_entities
Type of mesh entities.
Definition: libmmgtypes.h:211
mmg2d.h
MMG2D_Get_trisFromEdge
int MMG2D_Get_trisFromEdge(MMG5_pMesh mesh, int ked, int ktri[2], int ied[2])
Definition: libmmg2d_tools.c:447
sol
MMG5_pMesh MMG5_pSol * sol
Definition: API_functionsf_2d.c:63
MMG5_inxt2
static const uint8_t MMG5_inxt2[6]
Definition: mmgcommon.h:547
MMG5_Mesh::np
int np
Definition: libmmgtypes.h:559
MMG5_Set_outputSolName
int MMG5_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
Definition: API_functions.c:346
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_Free_solutions
void MMG2D_Free_solutions(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d_tools.c:558
MMG5_Mat
To store user-defined references in the mesh (useful in LS mode)
Definition: libmmgtypes.h:464
meshin
MMG5_pMesh char * meshin
Definition: API_functionsf_2d.c:765
MMG2D_lencurv_iso
double MMG2D_lencurv_iso(MMG5_pMesh mesh, MMG5_pSol met, int ip1, int ip2)
Definition: length_2d.c:62
MMG5_Mesh::adja
int * adja
Definition: libmmgtypes.h:572
MMG5_Mesh::nai
int nai
Definition: libmmgtypes.h:559
MMG5_Mesh::tria
MMG5_pTria tria
Definition: libmmgtypes.h:595
MMG2D_setfunc
void MMG2D_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:36
MMG2D_Free_triangles
void MMG2D_Free_triangles(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:526
MMG2D_mmg2dlib
int MMG2D_mmg2dlib(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d.c:164
mesh
MMG5_pMesh * mesh
Definition: API_functionsf_2d.c:63
MMG5_ADD_MEM
#define MMG5_ADD_MEM(mesh, size, message, law)
Definition: mmgcommon.h:290
MMG2D_Get_adjaTri
int MMG2D_Get_adjaTri(MMG5_pMesh mesh, int kel, int listri[3])
Return adjacent elements of a triangle.
Definition: libmmg2d_tools.c:328
MMG_FSCANF
#define MMG_FSCANF(stream, format,...)
Definition: mmgcommon.h:432
MMG2D_LPARMAX
#define MMG2D_LPARMAX
Definition: mmg2d.h:63
MMG5_SAFE_RECALLOC
#define MMG5_SAFE_RECALLOC(ptr, prevSize, newSize, type, message, law)
Definition: mmgcommon.h:341
MMG2D_freeLocalPar
int MMG2D_freeLocalPar(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:185
MMG5_Get_entitiesName
const char * MMG5_Get_entitiesName(enum MMG5_entities ent)
Definition: API_functions.c:608
MMG5_Tria::ref
int ref
Definition: libmmgtypes.h:304
chrono.h
MMG2D_mmg2dmov
int MMG2D_mmg2dmov(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol disp)
Definition: libmmg2d.c:927
MMG2D_Free_triangles
void MMG2D_Free_triangles(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:526
MMG2D_Get_adjaVertices
int MMG2D_Get_adjaVertices(MMG5_pMesh mesh, int ip, int lispoi[MMG2D_LMAX])
Return adjacent elements of a triangle.
Definition: libmmg2d_tools.c:342
MMG5_Edge::b
int b
Definition: libmmgtypes.h:275
MMG5_Set_inputMeshName
int MMG5_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
Definition: API_functions.c:147
MMG5_Set_constantSize
void MMG5_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double hsiz)
Definition: API_functions.c:393
MMG2D_lencurv
double(* MMG2D_lencurv)(MMG5_pMesh, MMG5_pSol, int, int)
Definition: mmg2dexterns.c:6
MMG2D_Reset_verticestags
void MMG2D_Reset_verticestags(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:517
MMG2D_mmg2dls
int MMG2D_mmg2dls(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pSol umet)
Definition: libmmg2d.c:636
MMG5_Compute_constantSize
int MMG5_Compute_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double *hsiz)
Definition: API_functions.c:555
MMG2D_parsop
int MMG2D_parsop(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:68
MMG5_compute_meanMetricAtMarkedPoints_ani
int MMG5_compute_meanMetricAtMarkedPoints_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz.c:1685
MMG5_Mesh::na
int na
Definition: libmmgtypes.h:559
MMG2D_defsiz
int(* MMG2D_defsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2dexterns.c:4
MMG2D_Get_trisFromEdge
int MMG2D_Get_trisFromEdge(MMG5_pMesh mesh, int ked, int ktri[2], int ied[2])
Definition: libmmg2d_tools.c:447
MMG5_Point::tag
int16_t tag
Definition: libmmgtypes.h:253
MMG5_Tria
Definition: libmmgtypes.h:301
MMG5_Mesh::nanil
int nanil
Definition: libmmgtypes.h:571
MMG5_eigensym
int MMG5_eigensym(double m[3], double lambda[2], double vp[2][2])
Definition: eigenv.c:797
MMG5_Mat::dospl
int8_t dospl
Definition: libmmgtypes.h:465
MMG5_Info::mat
MMG5_pMat mat
Definition: libmmgtypes.h:502
FORTRAN_NAME
FORTRAN_NAME(MMG2D_SETFUNC, mmg2d_setfunc,(MMG5_pMesh *mesh, MMG5_pSol *met),(mesh, met))
Definition: libmmg2d_toolsf.c:49
MMG5_Init_parameters
void() MMG5_Init_parameters(MMG5_pMesh mesh)
Definition: API_functions.c:51
MMG2D_caltri_ani
double MMG2D_caltri_ani(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pTria)
Definition: quality_2d.c:95
MMG5_Mesh::xpoint
MMG5_pxPoint xpoint
Definition: libmmgtypes.h:590
MMG2D_Get_adjaVerticesFast
int MMG2D_Get_adjaVerticesFast(MMG5_pMesh mesh, int ip, int start, int lispoi[MMG2D_LMAX])
Return adjacent elements of a triangle.
Definition: libmmg2d_tools.c:354
MMG2D_Get_triFromEdge
int MMG2D_Get_triFromEdge(MMG5_pMesh mesh, int ked, int *ktri, int *ied)
Definition: libmmg2d_tools.c:428
mmgcommon.h
MMG5_Set_constantSize
void MMG5_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double hsiz)
Definition: API_functions.c:393
MMG5_Mat::ref
int ref
Definition: libmmgtypes.h:466
MMG2D_Get_adjaTri
int MMG2D_Get_adjaTri(MMG5_pMesh mesh, int kel, int listri[3])
Return adjacent elements of a triangle.
Definition: libmmg2d_tools.c:328
MMG5_Edge::base
int base
Definition: libmmgtypes.h:277
MMG2D_Get_numberOfNonBdyEdges
int MMG2D_Get_numberOfNonBdyEdges(MMG5_pMesh mesh, int *nb_edges)
Definition: libmmg2d_tools.c:193
MMG2D_Compute_eigenv
int MMG2D_Compute_eigenv(double m[3], double lambda[2], double vp[2][2])
Definition: libmmg2d_tools.c:510
MMG5_Mesh::nt
int nt
Definition: libmmgtypes.h:559
MMG2D_Set_constantSize
int MMG2D_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:487
MMG5_Set_inputSolName
int MMG5_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
Definition: API_functions.c:183
MMG5_Mesh
MMG mesh structure.
Definition: libmmgtypes.h:552
MMG2D_Get_nonBdyEdge
int MMG2D_Get_nonBdyEdge(MMG5_pMesh mesh, int *e0, int *e1, int *ref, int idx)
Definition: libmmg2d_tools.c:286
MMG2D_mmg2dmesh
int MMG2D_mmg2dmesh(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d.c:413
MMG5_Info::par
MMG5_pPar par
Definition: libmmgtypes.h:475
MMG5_Edg
@ MMG5_Edg
Definition: libmmgtypes.h:214
MMG5_Mesh::ver
int ver
Definition: libmmgtypes.h:556
MMG2D_Set_constantSize
int MMG2D_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:487
MMG5_saveNode
int MMG5_saveNode(MMG5_pMesh mesh, const char *filename)
Definition: inout.c:2503
MMG2D_Free_edges
void MMG2D_Free_edges(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:541
MMG5_Mesh::type
int type
Definition: libmmgtypes.h:558
MMG5_Mesh::namein
char * namein
Definition: libmmgtypes.h:600
MMG2D_gradsizreq
int(* MMG2D_gradsizreq)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2dexterns.c:7
MMG5_Mesh::info
MMG5_Info info
Definition: libmmgtypes.h:599
MMG5_Compute_constantSize
int MMG5_Compute_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double *hsize)
Definition: API_functions.c:555
MMG5_gradsizreq_ani
int MMG5_gradsizreq_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz.c:1801
MMG2D_doSol
int MMG2D_doSol(MMG5_pMesh mesh, MMG5_pSol met)
Definition: solmap_2d.c:46
MMG5_Edge::a
int a
Definition: libmmgtypes.h:275
MMG5_Free_structures
void MMG5_Free_structures(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: API_functions.c:460
retval
MMG5_pMesh char int int * retval
Definition: API_functionsf_2d.c:765
MMG2D_findTria
int MMG2D_findTria(MMG5_pMesh mesh, int ip)
Definition: locate_2d.c:215
MMG5_Mesh::nti
int nti
Definition: libmmgtypes.h:559
MMG2D_Reset_verticestags
void MMG2D_Reset_verticestags(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:517
libmmg2d.h
API headers for the mmg2d library.
MMG5_Mesh::nameout
char * nameout
Definition: libmmgtypes.h:601
MMG2D_gradsiz
int(* MMG2D_gradsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2dexterns.c:9
MMG2D_Set_localParameter
int MMG2D_Set_localParameter(MMG5_pMesh mesh, MMG5_pSol sol, int typ, int ref, double hmin, double hmax, double hausd)
Definition: API_functions_2d.c:310
MMG2D_caltri
double(* MMG2D_caltri)(MMG5_pMesh, MMG5_pSol, MMG5_pTria)
Definition: mmg2dexterns.c:8
MMG2D_Free_solutions
void MMG2D_Free_solutions(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d_tools.c:558
MMG5_SAFE_CALLOC
#define MMG5_SAFE_CALLOC(ptr, size, type, law)
Definition: mmgcommon.h:304
MMG5_gradsizreq_iso
int MMG5_gradsizreq_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz.c:368
MMG2D_Set_solSize
int MMG2D_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, int np, int typSol)
Definition: API_functions_2d.c:431
MMG5_DEL_MEM
#define MMG5_DEL_MEM(mesh, ptr)
Definition: mmgcommon.h:281
MMG5_Mesh::edge
MMG5_pEdge edge
Definition: libmmgtypes.h:597
ier
int ier
Definition: API_functionsf_2d.c:730
MMG5_mmgFree_names
void MMG5_mmgFree_names(MMG5_pMesh mesh, MMG5_pSol met)
Definition: API_functions.c:502
MMG2D_Free_edges
void MMG2D_Free_edges(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:541
MMG2D_intmet_iso
int MMG2D_intmet_iso(MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t i, int ip, double s)
Definition: intmet_2d.c:38
MMG2D_Set_iparameter
int MMG2D_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, int val)
Definition: API_functions_2d.c:102
MMG5_Set_multiMat
int MMG5_Set_multiMat(MMG5_pMesh mesh, MMG5_pSol sol, int ref, int split, int rin, int rex)
Definition: API_functions.c:652
MMG5_type
MMG5_type
Type of solutions.
Definition: libmmgtypes.h:200
MMG5_compute_meanMetricAtMarkedPoints_iso
int MMG5_compute_meanMetricAtMarkedPoints_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz.c:167
MMG5_Info::hsiz
double hsiz
Definition: libmmgtypes.h:476
MMG2D_Get_adjaVertices
int MMG2D_Get_adjaVertices(MMG5_pMesh mesh, int ip, int lispoi[MMG2D_LMAX])
Return adjacent elements of a triangle.
Definition: libmmg2d_tools.c:342
if
if(!ier) exit(EXIT_FAILURE)
MMG2D_intmet_ani
int MMG2D_intmet_ani(MMG5_pMesh mesh, MMG5_pSol met, int k, int8_t i, int ip, double s)
Definition: intmet_2d.c:209
MMG2D_Get_numberOfNonBdyEdges
int MMG2D_Get_numberOfNonBdyEdges(MMG5_pMesh mesh, int *nb_edges)
Definition: libmmg2d_tools.c:193
MMG5_Mesh::dim
int dim
Definition: libmmgtypes.h:557
MMG2D_lencurv_ani
double MMG2D_lencurv_ani(MMG5_pMesh mesh, MMG5_pSol met, int ip1, int ip2)
Definition: length_2d.c:81
MMG5_Vertex
@ MMG5_Vertex
Definition: libmmgtypes.h:213
MMG5_compute_meanMetricAtMarkedPoints
int(* MMG5_compute_meanMetricAtMarkedPoints)(MMG5_pMesh, MMG5_pSol)
Definition: mmgexterns.c:34
MMG2D_Get_nonBdyEdge
int MMG2D_Get_nonBdyEdge(MMG5_pMesh mesh, int *e0, int *e1, int *ref, int idx)
Definition: libmmg2d_tools.c:286
MMG2D_defsiz_iso
int MMG2D_defsiz_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz_2d.c:130
MMG5_Set_defaultTruncatureSizes
int MMG5_Set_defaultTruncatureSizes(MMG5_pMesh mesh, int8_t sethmin, int8_t sethmax)
Definition: API_functions.c:526
FORTRAN_NAME
FORTRAN_NAME(MMG2D_MMG2DLIB, mmg2d_mmg2dlib,(MMG5_pMesh *mesh, MMG5_pSol *met, int *retval),(mesh, met, retval))
Definition: libmmg2df.c:50
MMG2D_Get_adjaVerticesFast
int MMG2D_Get_adjaVerticesFast(MMG5_pMesh mesh, int ip, int start, int lispoi[MMG2D_LMAX])
Return adjacent elements of a triangle.
Definition: libmmg2d_tools.c:354