Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
libmmg2d_toolsf.c
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
44#include "libmmg2d_private.h"
45#include "libmmg2d.h"
46
50FORTRAN_NAME(MMG2D_SETFUNC,mmg2d_setfunc,
52 (mesh,met)) {
53 MMG2D_setfunc(*mesh,*met);
54 return;
55}
56
60FORTRAN_NAME(MMG2D_GET_NUMBEROFNONBDYEDGES,mmg2d_get_numberofnonbdyedges,
61 (MMG5_pMesh *mesh,MMG5_int* nb_edges, int* retval),
62 (mesh,nb_edges,retval)) {
64 return;
65}
66
70FORTRAN_NAME(MMG2D_GET_NONBDYEDGE,mmg2d_get_nonbdyedge,
71 (MMG5_pMesh *mesh,MMG5_int* e0, MMG5_int* e1,MMG5_int *ref,MMG5_int* idx,int* retval),
72 (mesh,e0,e1,ref,idx,retval)) {
73 *retval = MMG2D_Get_nonBdyEdge(*mesh,e0,e1,ref,*idx);
74 return;
75}
76
80FORTRAN_NAME(MMG2D_GET_ADJATRI,mmg2d_get_adjatri,
81 (MMG5_pMesh *mesh,MMG5_int* kel, MMG5_int* listri, int* retval),
82 (mesh,kel,listri,retval)) {
83 *retval = MMG2D_Get_adjaTri(*mesh,*kel,listri);
84 return;
85}
86
90FORTRAN_NAME(MMG2D_GET_ADJAVERTICES,mmg2d_get_adjavertices,
91 (MMG5_pMesh *mesh,MMG5_int* ip, MMG5_int* lispoi, MMG5_int* retval),
92 (mesh,ip,lispoi,retval)) {
93 *retval = MMG2D_Get_adjaVertices(*mesh, *ip,lispoi);
94 return;
95}
96
100FORTRAN_NAME(MMG2D_GET_ADJAVERTICESFAST,mmg2d_get_adjaverticesfast,
101 (MMG5_pMesh *mesh,MMG5_int* ip, MMG5_int *start, MMG5_int* lispoi, MMG5_int* retval),
102 (mesh,ip,start,lispoi,retval)) {
103 *retval = MMG2D_Get_adjaVerticesFast(*mesh,*ip, *start,lispoi);
104 return;
105}
106
110FORTRAN_NAME(MMG2D_GET_TRIFROMEDGE,mmg2d_get_trifromedge,
111 (MMG5_pMesh *mesh,MMG5_int *ked, MMG5_int *ktri, int *ied,int *retval),
112 (mesh,ked,ktri,ied,retval)) {
113
114 *retval = MMG2D_Get_triFromEdge(*mesh,*ked,ktri,ied);
115 return;
116}
117
121FORTRAN_NAME(MMG2D_GET_TRISFROMEDGE,mmg2d_get_trisfromedge,
122 (MMG5_pMesh *mesh,MMG5_int *ked, MMG5_int ktri[2], int ied[2],int *retval),
123 (mesh,ked,ktri,ied,retval)) {
124
125 *retval = MMG2D_Get_trisFromEdge(*mesh,*ked,ktri,ied);
126 return;
127}
128
132FORTRAN_NAME(MMG2D_COMPUTE_EIGENV,mmg2d_compute_eigenv,
133 (double m[3],double lambda[2],double vp[2][2],int *retval),
134 (m,lambda,vp,retval)) {
135
136 *retval = MMG2D_Compute_eigenv(m,lambda,vp);
137 return;
138}
139
140
144FORTRAN_NAME(MMG2D_RESET_VERTICESTAGS,mmg2d_reset_verticestags,
145 (MMG5_pMesh *mesh),(mesh)) {
146
148
149 return;
150}
151
155FORTRAN_NAME(MMG2D_FREE_TRIANGLES,mmg2d_free_triangles,
156 (MMG5_pMesh *mesh),(mesh)) {
157
159
160 return;
161}
162
166FORTRAN_NAME(MMG2D_FREE_EDGES,mmg2d_free_edges,
167 (MMG5_pMesh *mesh),(mesh)) {
168
170
171 return;
172}
173
177FORTRAN_NAME(MMG2D_FREE_SOLUTIONS,mmg2d_free_solutions,
179
181
182 return;
183}
184
188FORTRAN_NAME(MMG2D_DOSOL,mmg2d_dosol,
189 (MMG5_pMesh *mesh,MMG5_pSol *met,int *retval),
190 (mesh,met,retval)) {
191 *retval = MMG2D_doSol(*mesh,*met);
192 return;
193}
194
198FORTRAN_NAME(MMG2D_SET_CONSTANTSIZE,mmg2d_set_constantsize,
199 (MMG5_pMesh *mesh,MMG5_pSol *met,int *retval),
200 (mesh,met,retval)) {
202 return;
203}
204
208FORTRAN_NAME(MMG2D_USAGE,mmg2d_usage,
209 (char *prog, int *strlen),
210 (prog,strlen)) {
211 char *tmp = NULL;
212
213 tmp = (char*)malloc((*strlen+1)*sizeof(char));
214 strncpy(tmp,prog,*strlen);
215 tmp[*strlen] = '\0';
218
219 return;
220}
221
225FORTRAN_NAME(MMG2D_PARSOP,mmg2d_parsop,
226 (MMG5_pMesh *mesh,MMG5_pSol *met,int* retval),
227 (mesh,met,retval)) {
228
229 *retval = MMG2D_parsop(*mesh, *met);
230
231 return;
232}
MMG5_pMesh char int int * retval
strncpy(tmp, meshin, *strlen0)
tmp[*strlen0]
MMG5_pMesh MMG5_pSol * sol
MMG5_pMesh * mesh
API headers for the mmg2d library.
LIBMMG2D_EXPORT void MMG2D_Free_triangles(MMG5_pMesh mesh)
LIBMMG2D_EXPORT int MMG2D_Get_trisFromEdge(MMG5_pMesh mesh, MMG5_int ked, MMG5_int ktri[2], int ied[2])
LIBMMG2D_EXPORT MMG5_int MMG2D_Get_adjaVertices(MMG5_pMesh mesh, MMG5_int ip, MMG5_int lispoi[MMG2D_LMAX])
Return adjacent elements of a triangle.
LIBMMG2D_EXPORT int MMG2D_Get_adjaTri(MMG5_pMesh mesh, MMG5_int kel, MMG5_int listri[3])
Return adjacent elements of a triangle.
LIBMMG2D_EXPORT int MMG2D_parsop(MMG5_pMesh mesh, MMG5_pSol met)
LIBMMG2D_EXPORT int MMG2D_Compute_eigenv(double m[3], double lambda[2], double vp[2][2])
LIBMMG2D_EXPORT int MMG2D_usage(char *prog)
LIBMMG2D_EXPORT void MMG2D_Free_solutions(MMG5_pMesh mesh, MMG5_pSol sol)
LIBMMG2D_EXPORT int MMG2D_Get_numberOfNonBdyEdges(MMG5_pMesh mesh, MMG5_int *nb_edges)
LIBMMG2D_EXPORT void MMG2D_Reset_verticestags(MMG5_pMesh mesh)
LIBMMG2D_EXPORT int MMG2D_Get_nonBdyEdge(MMG5_pMesh mesh, MMG5_int *e0, MMG5_int *e1, MMG5_int *ref, MMG5_int idx)
LIBMMG2D_EXPORT int(* MMG2D_doSol)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmg2dexterns.c:9
LIBMMG2D_EXPORT int MMG2D_Get_triFromEdge(MMG5_pMesh mesh, MMG5_int ked, MMG5_int *ktri, int *ied)
LIBMMG2D_EXPORT int MMG2D_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met)
LIBMMG2D_EXPORT MMG5_int MMG2D_Get_adjaVerticesFast(MMG5_pMesh mesh, MMG5_int ip, MMG5_int start, MMG5_int lispoi[MMG2D_LMAX])
Return adjacent elements of a triangle.
LIBMMG2D_EXPORT void MMG2D_Free_edges(MMG5_pMesh mesh)
LIBMMG2D_EXPORT void MMG2D_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
#define FORTRAN_NAME(nu, nl, pl, pc)
Adds function definitions.
#define MMG5_SAFE_FREE(ptr)
MMG mesh structure.
Definition: libmmgtypes.h:605