Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
libmmg3d_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 "libmmg3d_private.h"
45#include "libmmg3d.h"
46
50FORTRAN_NAME(MMG3D_SETFUNC,mmg3d_setfunc,
52 (mesh,met)) {
53 MMG3D_setfunc(*mesh,*met);
54 return;
55}
56
60FORTRAN_NAME(MMG3D_GET_NUMBEROFNONBDYTRIANGLES,mmg3d_get_numberofnonbdytriangles,
61 (MMG5_pMesh *mesh,MMG5_int* nb_tria, int* retval),
62 (mesh,nb_tria,retval)) {
64 return;
65}
66
70FORTRAN_NAME(MMG3D_GET_NONBDYTRIANGLE,mmg3d_get_nonbdytriangle,
71 (MMG5_pMesh *mesh,MMG5_int* v0, MMG5_int* v1,MMG5_int* v2,MMG5_int *ref,
72 MMG5_int* idx,int* retval),
73 (mesh,v0,v1,v2,ref,idx,retval)) {
74 *retval = MMG3D_Get_nonBdyTriangle(*mesh,v0,v1,v2,ref,*idx);
75 return;
76}
77
78
82FORTRAN_NAME(MMG3D_USAGE,mmg3d_usage,
83 (char *prog, int *strlen),
84 (prog,strlen)) {
85 char *tmp = NULL;
86
87 tmp = (char*)malloc((*strlen+1)*sizeof(char));
88 strncpy(tmp,prog,*strlen);
89 tmp[*strlen] = '\0';
92
93 return;
94}
95
99FORTRAN_NAME(MMG3D_PARSOP,mmg3d_parsop,
100 (MMG5_pMesh *mesh,MMG5_pSol *met,int* retval),
101 (mesh,met,retval)) {
102
103 *retval = MMG3D_parsop(*mesh, *met);
104
105 return;
106}
107
111FORTRAN_NAME(MMG3D_DEFAULTVALUES,mmg3d_defaultvalues,
112 (MMG5_pMesh *mesh),
113 (mesh)) {
115 return;
116}
117
121FORTRAN_NAME(MMG3D_STOCKOPTIONS,mmg3d_stockoptions,
123 (mesh,info,retval)) {
125 return;
126}
127
131FORTRAN_NAME(MMG3D_DESTOCKOPTIONS,mmg3d_destockoptions,
133 (mesh,info)) {
135 return;
136}
137
141FORTRAN_NAME(MMG3D_MMG3DCHECK,mmg3d_mmg3dcheck,
142 (MMG5_pMesh *mesh,MMG5_pSol *met,MMG5_pSol *sol,double *critmin, double *lmin,
143 double *lmax, MMG5_int *eltab,int *metRidTyp,int *retval),
144 (mesh,met,sol,critmin,lmin,lmax,eltab,metRidTyp,retval)) {
145 int8_t tmp = (int8_t)(*metRidTyp);
146
147 *retval = MMG3D_mmg3dcheck(*mesh,*met,*sol,*critmin,*lmin,*lmax,eltab,tmp);
148
149 return;
150}
151
152
156FORTRAN_NAME(MMG3D_SEARCHQUA,mmg3d_searchqua,
157 (MMG5_pMesh *mesh,MMG5_pSol *met,double *critmin,
158 MMG5_int *eltab,int8_t *metRidTyp),
159 (mesh,met,critmin,eltab,metRidTyp)) {
160 MMG3D_searchqua(*mesh,*met,*critmin,eltab,*metRidTyp);
161 return;
162}
163
167FORTRAN_NAME(MMG3D_SEARCHLEN,mmg3d_searchlen,
168 (MMG5_pMesh *mesh,MMG5_pSol *met, double *lmin,
169 double *lmax, MMG5_int *eltab,int8_t *metRidTyp,int *retval),
170 (mesh,met,lmin,lmax,eltab,metRidTyp,retval)) {
171 *retval = MMG3D_searchlen(*mesh,*met,*lmin,*lmax,eltab,*metRidTyp);
172 return;
173}
174
178FORTRAN_NAME(MMG3D_GET_TETFROMTRIA,mmg3d_get_tetfromtria,
179 (MMG5_pMesh *mesh,MMG5_int *ktri, MMG5_int *ktet, int *iface,int *retval),
180 (mesh,ktri,ktet,iface,retval)) {
181
182 *retval = MMG3D_Get_tetFromTria(*mesh,*ktri,ktet,iface);
183 return;
184}
185
189FORTRAN_NAME(MMG3D_GET_TETSFROMTRIA,mmg3d_get_tetsfromtria,
190 (MMG5_pMesh *mesh,MMG5_int *ktri, MMG5_int ktet[2], int iface[2],int *retval),
191 (mesh,ktri,ktet,iface,retval)) {
192
193 *retval = MMG3D_Get_tetsFromTria(*mesh,*ktri,ktet,iface);
194 return;
195}
196
200FORTRAN_NAME(MMG3D_GET_ADJATET,mmg3d_get_adjatet,
201 (MMG5_pMesh *mesh,MMG5_int* kel, MMG5_int listet[4], int* retval),
202 (mesh,kel,listet,retval)) {
203 *retval = MMG3D_Get_adjaTet(*mesh,*kel,listet);
204 return;
205}
206
210FORTRAN_NAME(MMG3D_FREE_SOLUTIONS,mmg3d_free_solutions,
212
214
215 return;
216}
217
221FORTRAN_NAME(MMG3D_DOSOL,mmg3d_dosol,
222 (MMG5_pMesh *mesh,MMG5_pSol *met,int *retval),
223 (mesh,met,retval)) {
224 *retval = MMG3D_doSol(*mesh,*met);
225 return;
226}
227
231FORTRAN_NAME(MMG3D_SET_CONSTANTSIZE,mmg3d_set_constantsize,
232 (MMG5_pMesh *mesh,MMG5_pSol *met,int *retval),
233 (mesh,met,retval)) {
235 return;
236}
237
241FORTRAN_NAME(MMG3D_COMPUTE_EIGENV,mmg3d_compute_eigenv,
242 (double m[6],double lambda[3],double vp[3][3],int *retval),
243 (m,lambda,vp,retval)) {
244
245 *retval = MMG3D_Compute_eigenv(m,lambda,vp);
246 return;
247}
MMG5_pMesh char int int * retval
strncpy(tmp, meshin, *strlen0)
tmp[*strlen0]
MMG5_pMesh MMG5_pSol * sol
MMG5_pMesh * mesh
MMG5_Info info
API headers for the mmg3d library.
LIBMMG3D_EXPORT int MMG3D_parsop(MMG5_pMesh mesh, MMG5_pSol met)
LIBMMG3D_EXPORT int MMG3D_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met)
LIBMMG3D_EXPORT int MMG3D_searchlen(MMG5_pMesh mesh, MMG5_pSol met, double lmin, double lmax, MMG5_int *eltab, int8_t metRidTyp)
LIBMMG3D_EXPORT int MMG3D_Compute_eigenv(double m[6], double lambda[3], double vp[3][3])
LIBMMG3D_EXPORT void MMG3D_destockOptions(MMG5_pMesh mesh, MMG5_Info *info)
LIBMMG3D_EXPORT int(* MMG3D_doSol)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmg3dexterns.c:11
LIBMMG3D_EXPORT void MMG3D_searchqua(MMG5_pMesh mesh, MMG5_pSol met, double critmin, MMG5_int *eltab, int8_t metRidTyp)
LIBMMG3D_EXPORT int MMG3D_Get_numberOfNonBdyTriangles(MMG5_pMesh mesh, MMG5_int *nb_tria)
LIBMMG3D_EXPORT void MMG3D_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
LIBMMG3D_EXPORT void MMG3D_Free_solutions(MMG5_pMesh mesh, MMG5_pSol sol)
LIBMMG3D_EXPORT int MMG3D_Get_tetsFromTria(MMG5_pMesh mesh, MMG5_int ktri, MMG5_int ktet[2], int iface[2])
LIBMMG3D_EXPORT int MMG3D_mmg3dcheck(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, double critmin, double lmin, double lmax, MMG5_int *eltab, int8_t metRidTyp)
LIBMMG3D_EXPORT int MMG3D_Get_adjaTet(MMG5_pMesh mesh, MMG5_int kel, MMG5_int listet[4])
Return adjacent elements of a tetrahedron.
LIBMMG3D_EXPORT int MMG3D_Get_tetFromTria(MMG5_pMesh mesh, MMG5_int ktri, MMG5_int *ktet, int *iface)
LIBMMG3D_EXPORT int MMG3D_stockOptions(MMG5_pMesh mesh, MMG5_Info *info)
LIBMMG3D_EXPORT int MMG3D_defaultValues(MMG5_pMesh mesh)
LIBMMG3D_EXPORT int MMG3D_Get_nonBdyTriangle(MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *ref, MMG5_int idx)
LIBMMG3D_EXPORT int MMG3D_usage(char *prog)
#define FORTRAN_NAME(nu, nl, pl, pc)
Adds function definitions.
#define MMG5_SAFE_FREE(ptr)
Store input parameters of the run.
Definition: libmmgtypes.h:516
MMG mesh structure.
Definition: libmmgtypes.h:605