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 "chrono.h"
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 #include "libmmgtypes.h"
47 
48 /*----------------------------- functions header -----------------------------*/
49 /* Initialization functions */
75 
76 /* init file names */
110 int MMG5_Set_outputMeshName(MMG5_pMesh mesh, const char* meshout);
128 int MMG5_Set_inputSolName(MMG5_pMesh mesh,MMG5_pSol sol, const char* solin);
146 int MMG5_Set_outputSolName(MMG5_pMesh mesh,MMG5_pSol sol, const char* solout);
147 
158 void MMG5_Set_constantSize(MMG5_pMesh mesh,MMG5_pSol met,double hsiz);
159 
160 /* deallocations */
162 
176 
189 extern int MMG5_Set_defaultTruncatureSizes(MMG5_pMesh mesh,char sethmin,char sethmax);
190 
202 int MMG5_Compute_constantSize(MMG5_pMesh mesh,MMG5_pSol met,double *hsize);
203 
204 /* Enum utilities */
213 const char* MMG5_Get_entitiesName(enum MMG5_entities ent);
214 
223 const char* MMG5_Get_typeName(enum MMG5_type typ);
224 
225 #ifdef __cplusplus
226 }
227 #endif
228 
229 #endif
MMG2D_hashTria
int MMG2D_hashTria(MMG5_pMesh mesh)
Definition: hash_2d.c:49
MMG2D_Get_triFromEdge
int MMG2D_Get_triFromEdge(MMG5_pMesh mesh, int ked, int *ktri, int *ied)
Definition: libmmg2d_tools.c:298
MMG5_Par::hmax
double hmax
Definition: libmmgtypes.h:203
MMG5_Set_outputMeshName
int MMG5_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
Definition: API_functions.c:225
MMG5_Info::nmat
int nmat
Definition: libmmgtypes.h:451
MMG5_Info::npar
int npar
Definition: libmmgtypes.h:447
MMG5_Mesh::nenil
int nenil
Definition: libmmgtypes.h:527
MMG2D_setfunc
void MMG2D_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:35
libmmgtypes.h
MMG5_Tria::v
int v[3]
Definition: libmmgtypes.h:272
MMG5_Sol
Definition: libmmgtypes.h:563
MMG5_gradsiz_iso
int MMG5_gradsiz_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz.c:268
MMG5_Triangle
@ MMG5_Triangle
Definition: libmmgtypes.h:188
MMG5_Mat::rex
int rex
Definition: libmmgtypes.h:435
MMG5_Mesh::xp
int xp
Definition: libmmgtypes.h:525
MMG5_Sol::size
int size
Definition: libmmgtypes.h:569
MMG2D_defsiz_ani
int MMG2D_defsiz_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz_2d.c:359
MMG5_Mat::rin
int rin
Definition: libmmgtypes.h:435
MMG5_Par::hmin
double hmin
Definition: libmmgtypes.h:202
MMG2D_LMAX
#define MMG2D_LMAX
Definition: libmmg2d.h:46
MMG5_Mesh::point
MMG5_pPoint point
Definition: libmmgtypes.h:542
MMG5_Init_fileNames
void MMG5_Init_fileNames(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: API_functions.c:121
MMG5_Get_typeName
const char * MMG5_Get_typeName(enum MMG5_type typ)
Definition: API_functions.c:563
MMG5_entities
MMG5_entities
Type of mesh entities.
Definition: libmmgtypes.h:184
mmg2d.h
MMG2D_Get_trisFromEdge
int MMG2D_Get_trisFromEdge(MMG5_pMesh mesh, int ked, int ktri[2], int ied[2])
Definition: libmmg2d_tools.c:317
sol
MMG5_pMesh MMG5_pSol * sol
Definition: API_functionsf_2d.c:63
MMG5_Mesh::np
int np
Definition: libmmgtypes.h:516
MMG5_Set_outputSolName
int MMG5_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
Definition: API_functions.c:302
MMG5_Set_defaultTruncatureSizes
int MMG5_Set_defaultTruncatureSizes(MMG5_pMesh mesh, char sethmin, char sethmax)
Definition: API_functions.c:458
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:423
MMG2D_intmet_iso
int MMG2D_intmet_iso(MMG5_pMesh mesh, MMG5_pSol met, int k, char i, int ip, double s)
Definition: intmet_2d.c:38
MMG5_Par::ref
int ref
Definition: libmmgtypes.h:205
MMG5_Mat
To store user-defined references in the mesh (useful in LS mode)
Definition: libmmgtypes.h:433
meshin
MMG5_pMesh char * meshin
Definition: API_functionsf_2d.c:629
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:529
MMG5_Mesh::nai
int nai
Definition: libmmgtypes.h:516
MMG5_iprv2
static const unsigned char MMG5_iprv2[3]
Definition: mmgcommon.h:471
MMG5_Mesh::tria
MMG5_pTria tria
Definition: libmmgtypes.h:548
MMG2D_setfunc
void MMG2D_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:35
MMG2D_Free_triangles
void MMG2D_Free_triangles(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:391
mesh
MMG5_pMesh * mesh
Definition: API_functionsf_2d.c:63
MMG5_Mat::dospl
char dospl
Definition: libmmgtypes.h:434
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:198
MMG2D_LPARMAX
#define MMG2D_LPARMAX
Definition: mmg2d.h:63
MMG2D_freeLocalPar
int MMG2D_freeLocalPar(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:190
MMG5_Get_entitiesName
const char * MMG5_Get_entitiesName(enum MMG5_entities ent)
Definition: API_functions.c:540
chrono.h
MMG2D_mmg2dmov
int MMG2D_mmg2dmov(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol disp)
Definition: libmmg2d.c:768
MMG2D_Free_triangles
void MMG2D_Free_triangles(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:391
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:212
MMG5_Set_inputMeshName
int MMG5_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
Definition: API_functions.c:141
MMG5_Set_constantSize
void MMG5_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double hsiz)
Definition: API_functions.c:349
MMG2D_lencurv
double(* MMG2D_lencurv)(MMG5_pMesh, MMG5_pSol, int, int)
Definition: mmg2dexterns.c:5
MMG5_Par::elt
char elt
Definition: libmmgtypes.h:206
MMG2D_Reset_verticestags
void MMG2D_Reset_verticestags(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:382
MMG5_Compute_constantSize
int MMG5_Compute_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double *hsiz)
Definition: API_functions.c:487
MMG2D_parsop
int MMG2D_parsop(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:67
MMG5_compute_meanMetricAtMarkedPoints_ani
int MMG5_compute_meanMetricAtMarkedPoints_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz.c:1690
MMG5_Mesh::na
int na
Definition: libmmgtypes.h:516
MMG5_Info::imprim
char imprim
Definition: libmmgtypes.h:453
MMG2D_defsiz
int(* MMG2D_defsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2dexterns.c:3
MMG2D_Get_trisFromEdge
int MMG2D_Get_trisFromEdge(MMG5_pMesh mesh, int ked, int ktri[2], int ied[2])
Definition: libmmg2d_tools.c:317
MMG5_Point::tag
int16_t tag
Definition: libmmgtypes.h:223
MMG5_Tria
Definition: libmmgtypes.h:270
MMG5_Mesh::nanil
int nanil
Definition: libmmgtypes.h:528
MMG2D_mmg2dmesh
int MMG2D_mmg2dmesh(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d.c:384
MMG5_Info::mat
MMG5_pMat mat
Definition: libmmgtypes.h:459
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:543
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:224
MMG2D_Get_triFromEdge
int MMG2D_Get_triFromEdge(MMG5_pMesh mesh, int ked, int *ktri, int *ied)
Definition: libmmg2d_tools.c:298
mmgcommon.h
MMG5_Set_constantSize
void MMG5_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double hsiz)
Definition: API_functions.c:349
MMG5_Mat::ref
int ref
Definition: libmmgtypes.h:435
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:198
MMG5_Edge::base
int base
Definition: libmmgtypes.h:246
MMG5_Mesh::nt
int nt
Definition: libmmgtypes.h:516
MMG2D_Set_constantSize
int MMG2D_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:357
MMG5_Set_inputSolName
int MMG5_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
Definition: API_functions.c:177
MMG5_Par::hausd
double hausd
Definition: libmmgtypes.h:204
MMG2D_intmet_ani
int MMG2D_intmet_ani(MMG5_pMesh mesh, MMG5_pSol met, int k, char i, int ip, double s)
Definition: intmet_2d.c:237
MMG5_Mesh
MMG mesh structure.
Definition: libmmgtypes.h:509
MMG5_Info::par
MMG5_pPar par
Definition: libmmgtypes.h:444
MMG5_Edg
@ MMG5_Edg
Definition: libmmgtypes.h:187
MMG2D_Set_constantSize
int MMG2D_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:357
MMG2D_Free_edges
void MMG2D_Free_edges(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:406
MMG5_Par
Definition: libmmgtypes.h:201
MMG5_Mesh::namein
char * namein
Definition: libmmgtypes.h:553
MMG2D_gradsizreq
int(* MMG2D_gradsizreq)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2dexterns.c:6
MMG2D_intmet
int(* MMG2D_intmet)(MMG5_pMesh, MMG5_pSol, int, char, int, double)
Definition: mmg2dexterns.c:4
MMG5_Mesh::info
MMG5_Info info
Definition: libmmgtypes.h:552
MMG5_Compute_constantSize
int MMG5_Compute_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double *hsize)
Definition: API_functions.c:487
MMG5_gradsizreq_ani
int MMG5_gradsizreq_ani(MMG5_pMesh mesh, MMG5_pSol met)
Definition: anisosiz.c:1797
MMG2D_doSol
int MMG2D_doSol(MMG5_pMesh mesh, MMG5_pSol met)
Definition: solmap_2d.c:46
MMG5_Free_structures
void MMG5_Free_structures(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: API_functions.c:401
retval
MMG5_pMesh char int int * retval
Definition: API_functionsf_2d.c:629
MMG2D_mmg2dls
int MMG2D_mmg2dls(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d.c:597
MMG2D_findTria
int MMG2D_findTria(MMG5_pMesh mesh, int ip)
Definition: locate_2d.c:215
MMG5_Mesh::nti
int nti
Definition: libmmgtypes.h:516
MMG2D_Reset_verticestags
void MMG2D_Reset_verticestags(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:382
libmmg2d.h
API headers for the mmg2d library.
MMG2D_gradsiz
int(* MMG2D_gradsiz)(MMG5_pMesh, MMG5_pSol)
Definition: mmg2dexterns.c:8
MMG2D_caltri
double(* MMG2D_caltri)(MMG5_pMesh, MMG5_pSol, MMG5_pTria)
Definition: mmg2dexterns.c:7
MMG5_inxt2
static const unsigned char MMG5_inxt2[6]
Definition: mmgcommon.h:470
MMG2D_Free_solutions
void MMG2D_Free_solutions(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d_tools.c:423
MMG5_SAFE_CALLOC
#define MMG5_SAFE_CALLOC(ptr, size, type, law)
Definition: mmgcommon.h:289
MMG5_gradsizreq_iso
int MMG5_gradsizreq_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz.c:359
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_DEL_MEM
#define MMG5_DEL_MEM(mesh, ptr)
Definition: mmgcommon.h:266
MMG5_Mesh::edge
MMG5_pEdge edge
Definition: libmmgtypes.h:550
ier
int ier
Definition: API_functionsf_2d.c:594
MMG5_mmgFree_names
void MMG5_mmgFree_names(MMG5_pMesh mesh, MMG5_pSol met)
Definition: API_functions.c:434
MMG2D_Free_edges
void MMG2D_Free_edges(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:406
MMG5_type
MMG5_type
Type of solutions.
Definition: libmmgtypes.h:173
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:445
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:212
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:186
MMG5_compute_meanMetricAtMarkedPoints
int(* MMG5_compute_meanMetricAtMarkedPoints)(MMG5_pMesh, MMG5_pSol)
Definition: mmgexterns.c:34
MMG2D_defsiz_iso
int MMG2D_defsiz_iso(MMG5_pMesh mesh, MMG5_pSol met)
Definition: isosiz_2d.c:129
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:224
MMG2D_mmg2dlib
int MMG2D_mmg2dlib(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d.c:141