mmgs
libmmgs.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/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 
36 #ifndef _MMGSLIB_H
37 #define _MMGSLIB_H
38 
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 #include "mmg/mmgs/libmmgtypes.h"
45 
49 #define MMGS_LMAX 1024
50 
60 enum MMGS_Param {
81 };
82 
83 /*----------------------------- functions header -----------------------------*/
84 /* Initialization functions */
85 /* init structures */
110 int MMGS_Init_mesh(const int starter,...);
111 
137 
138 /* init file names */
155 int MMGS_Set_inputMeshName(MMG5_pMesh mesh, const char* meshin);
172 int MMGS_Set_outputMeshName(MMG5_pMesh mesh, const char* meshout);
190 int MMGS_Set_inputSolName(MMG5_pMesh mesh,MMG5_pSol sol, const char* solin);
208 int MMGS_Set_outputSolName(MMG5_pMesh mesh,MMG5_pSol sol, const char* solout);
209 
210 /* init structure sizes */
229 int MMGS_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, int np, int typSol);
249 int MMGS_Set_meshSize(MMG5_pMesh mesh, int np, int nt, int na);
250 
251 /* init structure datas */
273 int MMGS_Set_vertex(MMG5_pMesh mesh, double c0, double c1,
274  double c2, int ref,int pos);
296  int MMGS_Set_vertices(MMG5_pMesh mesh, double *vertices,int *refs);
317 int MMGS_Set_triangle(MMG5_pMesh mesh, int v0, int v1,
318  int v2, int ref,int pos);
338  int MMGS_Set_triangles(MMG5_pMesh mesh, int *tria, int *refs);
358 int MMGS_Set_edge(MMG5_pMesh mesh, int v0, int v1, int ref,int pos);
374 int MMGS_Set_corner(MMG5_pMesh mesh, int k);
422 int MMGS_Set_ridge(MMG5_pMesh mesh, int k);
439 
460 int MMGS_Set_normalAtVertex(MMG5_pMesh mesh, int k, double n0, double n1, double n2) ;
461 
479 int MMGS_Set_scalarSol(MMG5_pSol met, double s,int pos);
496 int MMGS_Set_scalarSols(MMG5_pSol met, double *s);
517 int MMGS_Set_vectorSol(MMG5_pSol met, double vx,double vy, double vz, int pos);
534 int MMGS_Set_vectorSols(MMG5_pSol met, double *sols);
558 int MMGS_Set_tensorSol(MMG5_pSol met, double m11,double m12, double m13,
559  double m22,double m23, double m33, int pos);
560 
578 int MMGS_Set_tensorSols(MMG5_pSol met, double *sols);
579 
580 /* check init */
597 
616 int MMGS_Set_iparameter(MMG5_pMesh mesh,MMG5_pSol sol, int iparam, int val);
635 int MMGS_Set_dparameter(MMG5_pMesh mesh,MMG5_pSol sol, int dparam, double val);
659 int MMGS_Set_localParameter(MMG5_pMesh mesh, MMG5_pSol sol, int typ, int ref,
660  double hmin, double hmax, double hausd);
661 
680 int MMGS_Get_meshSize(MMG5_pMesh mesh, int* np, int* nt, int* na);
699 int MMGS_Get_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int* typEntity, int* np,
700  int* typSol);
723 int MMGS_Get_vertex(MMG5_pMesh mesh, double* c0, double* c1, double* c2, int* ref,
724  int* isCorner, int* isRequired);
752 int MMGS_Get_vertices(MMG5_pMesh mesh, double* vertices, int* refs,
753  int* areCorners, int* areRequired);
775 int MMGS_Get_triangle(MMG5_pMesh mesh, int* v0, int* v1, int* v2, int* ref,
776  int* isRequired);
800 int MMGS_Get_triangles(MMG5_pMesh mesh, int* tria, int* refs,
801  int* areRequired);
822 int MMGS_Get_edge(MMG5_pMesh mesh, int* e0, int* e1, int* ref,
823  int* isRidge, int* isRequired);
824 
845 int MMGS_Get_normalAtVertex(MMG5_pMesh mesh, int k, double *n0, double *n1, double *n2) ;
846 
862 int MMGS_Get_scalarSol(MMG5_pSol met, double* s);
879 int MMGS_Get_scalarSols(MMG5_pSol met, double* s);
897 int MMGS_Get_vectorSol(MMG5_pSol met, double* vx, double* vy, double* vz);
914 int MMGS_Get_vectorSols(MMG5_pSol met, double* sols);
935 int MMGS_Get_tensorSol(MMG5_pSol met, double *m11,double *m12, double *m13,
936  double *m22,double *m23, double *m33);
953 int MMGS_Get_tensorSols(MMG5_pSol met, double *sols);
969 int MMGS_Get_iparameter(MMG5_pMesh mesh, int iparam);
970 
971 /* input/output functions */
988 int MMGS_loadMesh(MMG5_pMesh mesh, const char* filename);
1007 int MMGS_loadMshMesh(MMG5_pMesh mesh,MMG5_pSol sol,const char *filename);
1026 int MMGS_loadMshMesh_and_allData(MMG5_pMesh mesh,MMG5_pSol *sol,const char *filename);
1043 int MMGS_saveMesh(MMG5_pMesh mesh, const char *filename);
1062  int MMGS_saveMshMesh(MMG5_pMesh mesh,MMG5_pSol sol,const char *filename);
1083 int MMGS_saveMshMesh_and_allData(MMG5_pMesh mesh,MMG5_pSol *sol,const char *filename);
1102 int MMGS_loadSol(MMG5_pMesh mesh,MMG5_pSol met, const char* filename);
1120 int MMGS_loadAllSols(MMG5_pMesh mesh,MMG5_pSol *sol, const char* filename);
1138 int MMGS_saveSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename);
1156 int MMGS_saveAllSols(MMG5_pMesh mesh,MMG5_pSol *sol ,const char *filename);
1157 
1158 /* deallocations */
1186 int MMGS_Free_all(const int starter,...);
1187 
1218 int MMGS_Free_structures(const int starter,...);
1219 
1247 int MMGS_Free_names(const int starter,...);
1248 
1249 /* library */
1267 
1285 
1300 
1301 /* Tools for the library */
1317 
1331 int MMGS_usage(char *prog);
1344 int MMGS_parsar(int argc,char *argv[],MMG5_pMesh mesh,MMG5_pSol met);
1387 
1409 int MMGS_Get_adjaTri(MMG5_pMesh mesh, int kel, int listri[3]);
1410 
1432 extern
1433 int MMGS_Get_adjaVerticesFast(MMG5_pMesh mesh, int ip,int start, int lispoi[MMGS_LMAX]);
1434 
1435 #ifdef __cplusplus
1436 }
1437 #endif
1438 
1439 #endif
void MMGS_Init_fileNames(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: API_functions_s.c:55
int MMGS_loadMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_s.c:100
int MMGS_loadMshMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_s.c:732
int MMGS_Set_requiredVertex(MMG5_pMesh mesh, int k)
Definition: API_functions_s.c:607
int MMGS_Get_normalAtVertex(MMG5_pMesh mesh, int k, double *n0, double *n1, double *n2)
Definition: API_functions_s.c:645
#define MMGS_LMAX
Definition: libmmgs.h:49
int MMGS_Free_all(const int starter,...)
Definition: API_functions_s.c:1274
int MMGS_Chk_meshData(MMG5_pMesh mesh, MMG5_pSol met)
Definition: API_functions_s.c:979
void MMGS_Init_parameters(MMG5_pMesh mesh)
Definition: API_functions_s.c:79
int MMGS_loadAllSols(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_s.c:1316
! MMG5_pTria tria
Definition: libmmgtypesf.h:561
int MMGS_loadSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_s.c:1240
int MMGS_Get_adjaTri(MMG5_pMesh mesh, int kel, int listri[3])
Return adjacent elements of a triangle.
Definition: libmmgs_tools.c:380
Definition: libmmgs.h:62
int MMGS_Set_requiredEdge(MMG5_pMesh mesh, int k)
Definition: API_functions_s.c:627
! int nt
Definition: libmmgtypesf.h:530
Definition: libmmgs.h:78
int MMGS_Get_vectorSols(MMG5_pSol met, double *sols)
Definition: API_functions_s.c:839
int MMGS_Get_tensorSols(MMG5_pSol met, double *sols)
Definition: API_functions_s.c:959
int MMGS_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
Definition: API_functions_s.c:71
Definition: libmmgtypes.h:526
Definition: libmmgs.h:64
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:1206
int MMGS_Set_scalarSols(MMG5_pSol met, double *s)
Definition: API_functions_s.c:719
Definition: libmmgs.h:70
int MMGS_Set_vertices(MMG5_pMesh mesh, double *vertices, int *refs)
Definition: API_functions_s.c:284
int MMGS_mmgsls(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs.c:248
Definition: libmmgs.h:74
Definition: libmmgs.h:65
void MMGS_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs_tools.c:39
Definition: libmmgs.h:68
int MMGS_Set_scalarSol(MMG5_pSol met, double s, int pos)
Definition: API_functions_s.c:655
int MMGS_saveAllSols(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_s.c:1463
int MMGS_usage(char *prog)
Definition: libmmgs_tools.c:66
int MMGS_Set_dparameter(MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val)
Definition: API_functions_s.c:1162
Store input parameters of the run.
Definition: libmmgtypes.h:434
int MMGS_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, int val)
Definition: API_functions_s.c:1024
int MMGS_Set_edge(MMG5_pMesh mesh, int v0, int v1, int ref, int pos)
Definition: API_functions_s.c:523
int MMGS_Set_meshSize(MMG5_pMesh mesh, int np, int nt, int na)
Definition: API_functions_s.c:132
int MMGS_Get_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int *typEntity, int *np, int *typSol)
Definition: API_functions_s.c:210
int MMGS_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
Definition: API_functions_s.c:67
int MMGS_Get_iparameter(MMG5_pMesh mesh, int iparam)
Definition: API_functions_s.c:1115
int MMGS_Get_tensorSol(MMG5_pSol met, double *m11, double *m12, double *m13, double *m22, double *m23, double *m33)
Definition: API_functions_s.c:896
int MMGS_Set_vectorSols(MMG5_pSol met, double *sols)
Definition: API_functions_s.c:816
int MMGS_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, int np, int typSol)
Definition: API_functions_s.c:88
int MMGS_Set_corner(MMG5_pMesh mesh, int k)
Definition: API_functions_s.c:601
Definition: libmmgs.h:72
! double hausd
Definition: libmmgtypesf.h:232
int MMGS_Get_triangles(MMG5_pMesh mesh, int *tria, int *refs, int *areRequired)
Definition: API_functions_s.c:497
MMG5_Info info
Definition: libmmgtypesf.h:565
MMGS_Param
Input parameters for mmg library.
Definition: libmmgs.h:60
Definition: libmmgs.h:77
int MMGS_Get_scalarSols(MMG5_pSol met, double *s)
Definition: API_functions_s.c:736
void MMGS_destockOptions(MMG5_pMesh mesh, MMG5_Info *info)
Definition: libmmgs_tools.c:374
! double hmin
Definition: libmmgtypesf.h:230
int MMGS_Set_tensorSols(MMG5_pSol met, double *sols)
Definition: API_functions_s.c:933
int MMGS_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs_tools.c:469
int MMGS_saveMshMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_s.c:1226
int MMGS_saveMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_s.c:794
int MMGS_saveSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_s.c:1421
Definition: libmmgs.h:63
int MMGS_Set_ridge(MMG5_pMesh mesh, int k)
Definition: API_functions_s.c:621
int MMGS_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_s.c:1221
Definition: libmmgs.h:75
Definition: libmmgs.h:66
Definition: libmmgs.h:76
int MMGS_Get_vectorSol(MMG5_pSol met, double *vx, double *vy, double *vz)
Definition: API_functions_s.c:784
int MMGS_Set_triangles(MMG5_pMesh mesh, int *tria, int *refs)
Definition: API_functions_s.c:475
! int ref
Definition: libmmgtypesf.h:233
const int starter
Definition: API_functionsf_s.c:546
int MMGS_Get_meshSize(MMG5_pMesh mesh, int *np, int *nt, int *na)
Definition: API_functions_s.c:236
MMG mesh structure.
Definition: libmmgtypes.h:473
! double n2[3]
Definition: libmmgtypesf.h:264
int MMGS_Get_edge(MMG5_pMesh mesh, int *e0, int *e1, int *ref, int *isRidge, int *isRequired)
Definition: API_functions_s.c:555
Definition: libmmgs.h:79
int MMGS_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
Definition: API_functions_s.c:76
int MMGS_Get_triangle(MMG5_pMesh mesh, int *v0, int *v1, int *v2, int *ref, int *isRequired)
Definition: API_functions_s.c:432
! double hmax
Definition: libmmgtypesf.h:231
! int np
Definition: libmmgtypesf.h:530
int MMGS_Get_vertices(MMG5_pMesh mesh, double *vertices, int *refs, int *areCorners, int *areRequired)
Definition: API_functions_s.c:358
Definition: libmmgs.h:67
Definition: libmmgs.h:71
int MMGS_stockOptions(MMG5_pMesh mesh, MMG5_Info *info)
Definition: libmmgs_tools.c:361
int MMGS_Get_vertex(MMG5_pMesh mesh, double *c0, double *c1, double *c2, int *ref, int *isCorner, int *isRequired)
Definition: API_functions_s.c:311
Definition: libmmgs.h:69
int MMGS_Set_triangle(MMG5_pMesh mesh, int v0, int v1, int v2, int ref, int pos)
Definition: API_functions_s.c:394
int MMGS_Set_vertex(MMG5_pMesh mesh, double c0, double c1, double c2, int ref, int pos)
Definition: API_functions_s.c:248
int MMGS_Set_tensorSol(MMG5_pSol met, double m11, double m12, double m13, double m22, double m23, double m33, int pos)
Definition: API_functions_s.c:854
! double n1[3]
Definition: libmmgtypesf.h:264
MMG5_pMesh char * meshin
Definition: API_functionsf_s.c:584
int MMGS_Set_vectorSol(MMG5_pSol met, double vx, double vy, double vz, int pos)
Definition: API_functions_s.c:746
! int na
Definition: libmmgtypesf.h:530
MMG5_pMesh * mesh
Definition: API_functionsf_s.c:63
int MMGS_parsar(int argc, char *argv[], MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs_tools.c:93
int MMGS_Free_structures(const int starter,...)
Definition: API_functions_s.c:1288
Definition: libmmgs.h:73
int MMGS_defaultValues(MMG5_pMesh mesh)
Definition: libmmgs_tools.c:80
int MMGS_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_s.c:673
! int s
Definition: libmmgtypesf.h:251
Definition: libmmgs.h:80
int MMGS_mmgslib(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs.c:400
Definition: libmmgs.h:61
int MMGS_Init_mesh(const int starter,...)
Definition: API_functions_s.c:42
int MMGS_Get_adjaVerticesFast(MMG5_pMesh mesh, int ip, int start, int lispoi[MMGS_LMAX])
Return adjacent elements of a triangle.
Definition: libmmgs_tools.c:395
int MMGS_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
Definition: API_functions_s.c:62
int MMGS_Get_scalarSol(MMG5_pSol met, double *s)
Definition: API_functions_s.c:690
int MMGS_Free_names(const int starter,...)
Definition: API_functions_s.c:1302
int MMGS_Set_normalAtVertex(MMG5_pMesh mesh, int k, double n0, double n1, double n2)
Definition: API_functions_s.c:633
int MMGS_Set_requiredTriangle(MMG5_pMesh mesh, int k)
Definition: API_functions_s.c:613