mmg2d
libmmg2d.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 */
34 #ifndef _MMG2DLIB_H
35 #define _MMG2DLIB_H
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 #include "mmg/mmg2d/libmmgtypes.h"
42 
46 #define MMG2D_LMAX 1024
47 
78 };
79 
80 /*----------------------------- functions header -----------------------------*/
81 /* Initialization functions */
82 /* init structures */
83 
108 int MMG2D_Init_mesh(const int starter,...);
109 
135 
136 /* init file names */
170 int MMG2D_Set_outputMeshName(MMG5_pMesh mesh, const char* meshout);
188 int MMG2D_Set_inputSolName(MMG5_pMesh mesh,MMG5_pSol sol, const char* solin);
206 int MMG2D_Set_outputSolName(MMG5_pMesh mesh,MMG5_pSol sol, const char* solout);
224 int MMG2D_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, int val);
225 
244 int MMG2D_Set_dparameter(MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val);
245 
246 /* init structure datas */
266 int MMG2D_Set_meshSize(MMG5_pMesh mesh, int np, int nt, int na);
285 int MMG2D_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity,
286  int np, int typSol);
287 
308 int MMG2D_Set_vertex(MMG5_pMesh mesh, double c0, double c1,
309  int ref,int pos);
332  int MMG2D_Set_vertices(MMG5_pMesh mesh, double *vertices,int *refs);
349 int MMG2D_Set_corner(MMG5_pMesh mesh, int k);
366 
387 int MMG2D_Set_triangle(MMG5_pMesh mesh, int v0, int v1,
388  int v2, int ref, int pos);
408  int MMG2D_Set_triangles(MMG5_pMesh mesh, int *tria, int *refs);
418 
438 int MMG2D_Set_edge(MMG5_pMesh mesh, int v0, int v1, int ref, int pos);
488 int MMG2D_Set_scalarSol(MMG5_pSol met, double s, int pos);
505 int MMG2D_Set_scalarSols(MMG5_pSol met, double *s);
525 int MMG2D_Set_vectorSol(MMG5_pSol met, double vx,double vy,
526  int pos);
543 int MMG2D_Set_vectorSols(MMG5_pSol met, double *sols);
563 int MMG2D_Set_tensorSol(MMG5_pSol met, double m11, double m12, double m22,
564  int pos);
582 int MMG2D_Set_tensorSols(MMG5_pSol met, double *sols);
601 int MMG2D_Get_meshSize(MMG5_pMesh mesh, int* np, int* nt, int* na);
620 int MMG2D_Get_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int* typEntity, int* np,
621  int* typSol);
643 int MMG2D_Get_vertex(MMG5_pMesh mesh, double* c0, double* c1, int* ref,
644  int* isCorner, int* isRequired);
672 int MMG2D_Get_vertices(MMG5_pMesh mesh, double* vertices, int* refs,
673  int* areCorners, int* areRequired);
695 int MMG2D_Get_triangle(MMG5_pMesh mesh, int* v0, int* v1, int* v2, int* ref
696  ,int* isRequired);
720 int MMG2D_Get_triangles(MMG5_pMesh mesh, int* tria, int* refs,
721  int* areRequired);
744 int MMG2D_Get_edge(MMG5_pMesh mesh, int* e0, int* e1, int* ref
745  ,int* isRidge, int* isRequired);
761 int MMG2D_Get_scalarSol(MMG5_pSol met, double* s);
778 int MMG2D_Get_scalarSols(MMG5_pSol met, double* s);
795 int MMG2D_Get_vectorSol(MMG5_pSol met, double* vx, double* vy);
812 int MMG2D_Get_vectorSols(MMG5_pSol met, double* sols);
830 int MMG2D_Get_tensorSol(MMG5_pSol met, double *m11,double *m12,double *m22);
847 int MMG2D_Get_tensorSols(MMG5_pSol met, double *sols);
864 
865 /* deallocations */
897 int MMG2D_Free_all(const int starter,...);
898 
932 int MMG2D_Free_structures(const int starter,...);
933 
967 int MMG2D_Free_names(const int starter,...);
968 
985 int MMG2D_loadMesh(MMG5_pMesh mesh,const char * filename);
1004 int MMG2D_loadMshMesh(MMG5_pMesh mesh,MMG5_pSol sol,const char *filename);
1023 int MMG2D_loadMshMesh_and_allData(MMG5_pMesh mesh,MMG5_pSol *sol,const char *filename);
1024 
1043 int MMG2D_loadSol(MMG5_pMesh mesh,MMG5_pSol sol,const char * filename);
1061 int MMG2D_loadAllSols(MMG5_pMesh mesh,MMG5_pSol *sol, const char* filename);
1062 
1063 int MMG2D_loadVect(MMG5_pMesh ,char *);
1064 
1081 int MMG2D_saveMesh(MMG5_pMesh ,const char *);
1100 int MMG2D_saveMshMesh(MMG5_pMesh mesh,MMG5_pSol sol,const char *filename);
1119 int MMG2D_saveMshMesh_and_allData(MMG5_pMesh mesh,MMG5_pSol *sol,const char *filename);
1137 int MMG2D_saveSol(MMG5_pMesh mesh,MMG5_pSol sol ,const char *filename);
1155 int MMG2D_saveAllSols(MMG5_pMesh mesh,MMG5_pSol *sol ,const char *filename);
1156 
1157 
1158 int MMG2D_saveVect(MMG5_pMesh mesh,MMG5_pSol sol,const char *filename,double lambda);
1159 
1177 
1195 
1232 
1233 /* Tools for the library */
1234 // void (*MMG2D_callbackinsert) (int ,int ,int ,int, int);
1235 
1252 
1268 
1282 
1304 int MMG2D_Get_adjaTri(MMG5_pMesh mesh, int kel, int listri[3]);
1305 
1326 extern
1327 int MMG2D_Get_adjaVertices(MMG5_pMesh mesh, int ip, int lispoi[MMG2D_LMAX]);
1328 
1350 int MMG2D_Get_adjaVerticesFast(MMG5_pMesh mesh, int ip,int start,
1351  int lispoi[MMG2D_LMAX]);
1372 int MMG2D_Get_triFromEdge(MMG5_pMesh mesh, int ked, int *ktri, int *ied);
1397 
1410 
1424 
1425 
1426 #ifdef __cplusplus
1427 }
1428 #endif
1429 
1430 #endif
int MMG2D_Set_dparameter(MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val)
Definition: API_functions_2d.c:180
int MMG2D_Set_tensorSol(MMG5_pSol met, double m11, double m12, double m22, int pos)
Definition: API_functions_2d.c:1098
int MMG2D_saveVect(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename, double lambda)
int MMG2D_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:1404
int MMG2D_loadMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_2d.c:78
const int starter
Definition: API_functionsf_2d.c:507
Definition: libmmg2d.h:75
void MMG2D_Reset_verticestags(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:292
! MMG5_pTria tria
Definition: libmmgtypesf.h:561
Definition: libmmg2d.h:59
! int nt
Definition: libmmgtypesf.h:530
int MMG2D_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:250
int MMG2D_Set_triangle(MMG5_pMesh mesh, int v0, int v1, int v2, int ref, int pos)
Definition: API_functions_2d.c:552
int MMG2D_Get_meshSize(MMG5_pMesh mesh, int *np, int *nt, int *na)
Definition: API_functions_2d.c:370
Definition: libmmgtypes.h:526
int MMG2D_Set_vectorSols(MMG5_pSol met, double *sols)
Definition: API_functions_2d.c:1060
MMG2D_Param
Input parameters for mmg library.
Definition: libmmg2d.h:57
int MMG2D_Get_triFromEdge(MMG5_pMesh mesh, int ked, int *ktri, int *ied)
Definition: libmmg2d_tools.c:233
int MMG2D_mmg2dlib(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d.c:141
int MMG2D_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
Definition: API_functions_2d.c:72
int MMG2D_Set_triangles(MMG5_pMesh mesh, int *tria, int *refs)
Definition: API_functions_2d.c:689
int MMG2D_loadSol(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:793
int MMG2D_Get_vectorSols(MMG5_pSol met, double *sols)
Definition: API_functions_2d.c:1082
int MMG2D_Get_adjaTri(MMG5_pMesh mesh, int kel, int listri[3])
Return adjacent elements of a triangle.
Definition: libmmg2d_tools.c:131
Definition: libmmg2d.h:74
int MMG2D_saveMshMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_2d.c:1408
int MMG2D_Chk_meshData(MMG5_pMesh mesh, MMG5_pSol met)
Definition: API_functions_2d.c:1205
int MMG2D_Free_names(const int starter,...)
Definition: API_functions_2d.c:1279
Definition: libmmg2d.h:77
int MMG2D_saveSol(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:1447
void MMG2D_Free_edges(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:316
int MMG2D_Get_vectorSol(MMG5_pSol met, double *vx, double *vy)
Definition: API_functions_2d.c:1029
Definition: libmmg2d.h:64
#define MMG2D_LMAX
Definition: libmmg2d.h:46
Definition: libmmg2d.h:67
int MMG2D_Get_scalarSols(MMG5_pSol met, double *s)
Definition: API_functions_2d.c:979
Definition: libmmg2d.h:61
int MMG2D_mmg2dls(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d.c:580
int MMG2D_Get_triangle(MMG5_pMesh mesh, int *v0, int *v1, int *v2, int *ref, int *isRequired)
Definition: API_functions_2d.c:644
int MMG2D_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
Definition: API_functions_2d.c:77
MMG5_pMesh MMG5_pSol * sol
Definition: API_functionsf_2d.c:63
void MMG2D_Init_fileNames(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: API_functions_2d.c:56
int MMG2D_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_2d.c:608
int MMG2D_Get_scalarSol(MMG5_pSol met, double *s)
Definition: API_functions_2d.c:931
MMG5_pMesh * mesh
Definition: API_functionsf_2d.c:63
Definition: libmmg2d.h:72
int MMG2D_Get_vertices(MMG5_pMesh mesh, double *vertices, int *refs, int *areCorners, int *areRequired)
Definition: API_functions_2d.c:517
int MMG2D_Get_tensorSol(MMG5_pSol met, double *m11, double *m12, double *m22)
Definition: API_functions_2d.c:1132
MMG5_pMesh char * meshin
Definition: API_functionsf_2d.c:545
int MMG2D_Init_mesh(const int starter,...)
Definition: API_functions_2d.c:43
int MMG2D_Get_adjaVertices(MMG5_pMesh mesh, int ip, int lispoi[MMG2D_LMAX])
Return adjacent elements of a triangle.
Definition: libmmg2d_tools.c:146
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:159
int MMG2D_Set_meshSize(MMG5_pMesh mesh, int np, int nt, int na)
Definition: API_functions_2d.c:223
int MMG2D_Set_parallelEdge(MMG5_pMesh mesh, int k)
Definition: API_functions_2d.c:826
void MMG2D_Free_triangles(MMG5_pMesh mesh)
Definition: libmmg2d_tools.c:301
void MMG2D_Init_parameters(MMG5_pMesh mesh)
Definition: API_functions_2d.c:80
int MMG2D_Set_vertex(MMG5_pMesh mesh, double c0, double c1, int ref, int pos)
Definition: API_functions_2d.c:391
int MMG2D_Set_scalarSol(MMG5_pSol met, double s, int pos)
Definition: API_functions_2d.c:901
int MMG2D_Set_corner(MMG5_pMesh mesh, int k)
Definition: API_functions_2d.c:431
int MMG2D_Set_scalarSols(MMG5_pSol met, double *s)
Definition: API_functions_2d.c:962
int MMG2D_Get_tensorSols(MMG5_pSol met, double *sols)
Definition: API_functions_2d.c:1189
int MMG2D_Set_vectorSol(MMG5_pSol met, double vx, double vy, int pos)
Definition: API_functions_2d.c:988
Definition: libmmg2d.h:69
int MMG2D_loadVect(MMG5_pMesh, char *)
! int ref
Definition: libmmgtypesf.h:233
Definition: libmmg2d.h:58
Definition: libmmg2d.h:73
MMG mesh structure.
Definition: libmmgtypes.h:473
int MMG2D_Set_requiredEdge(MMG5_pMesh mesh, int k)
Definition: API_functions_2d.c:808
Definition: libmmg2d.h:70
int MMG2D_saveAllSols(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_2d.c:1492
void MMG2D_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmg2d_tools.c:35
Definition: libmmg2d.h:66
int MMG2D_Set_requiredVertex(MMG5_pMesh mesh, int k)
Definition: API_functions_2d.c:437
int MMG2D_Get_vertex(MMG5_pMesh mesh, double *c0, double *c1, int *ref, int *isCorner, int *isRequired)
Definition: API_functions_2d.c:443
int MMG2D_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, int val)
Definition: API_functions_2d.c:105
Definition: libmmg2d.h:65
int MMG2D_mmg2dmov(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol disp)
Definition: libmmg2d.c:746
int MMG2D_loadAllSols(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_2d.c:869
int MMG2D_Set_tensorSols(MMG5_pSol met, double *sols)
Definition: API_functions_2d.c:1166
int MMG2D_Get_triangles(MMG5_pMesh mesh, int *tria, int *refs, int *areRequired)
Definition: API_functions_2d.c:744
! int np
Definition: libmmgtypesf.h:530
int MMG2D_saveMesh(MMG5_pMesh, const char *)
Definition: inout_2d.c:966
Definition: libmmg2d.h:68
Definition: libmmg2d.h:62
int MMG2D_mmg2dmesh(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d.c:374
int MMG2D_Set_edge(MMG5_pMesh mesh, int v0, int v1, int ref, int pos)
Definition: API_functions_2d.c:770
void MMG2D_Free_solutions(MMG5_pMesh mesh, MMG5_pSol sol)
Definition: libmmg2d_tools.c:333
! int na
Definition: libmmgtypesf.h:530
int MMG2D_loadMshMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_2d.c:671
int MMG2D_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, int np, int typSol)
Definition: API_functions_2d.c:301
Definition: libmmg2d.h:76
int MMG2D_Get_edge(MMG5_pMesh mesh, int *e0, int *e1, int *ref, int *isRidge, int *isRequired)
Definition: API_functions_2d.c:844
int MMG2D_Free_structures(const int starter,...)
Definition: API_functions_2d.c:1264
int MMG2D_Get_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int *typEntity, int *np, int *typSol)
Definition: API_functions_2d.c:345
Definition: libmmg2d.h:71
! int s
Definition: libmmgtypesf.h:251
int MMG2D_doSol(MMG5_pMesh mesh, MMG5_pSol met)
Definition: solmap_2d.c:46
int MMG2D_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
Definition: API_functions_2d.c:68
Definition: libmmg2d.h:60
int MMG2D_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
Definition: API_functions_2d.c:63
int MMG2D_Free_all(const int starter,...)
Definition: API_functions_2d.c:1250
int MMG2D_Set_requiredTriangle(MMG5_pMesh mesh, int k)
Definition: API_functions_2d.c:627
Definition: libmmg2d.h:63
int MMG2D_Set_vertices(MMG5_pMesh mesh, double *vertices, int *refs)
Definition: API_functions_2d.c:489