Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
libmmgs_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 "libmmgs_private.h"
45#include "libmmgs.h"
46
50FORTRAN_NAME(MMGS_SETFUNC,mmgs_setfunc,
52 (mesh,met)) {
53 MMGS_setfunc(*mesh,*met);
54 return;
55}
56
60FORTRAN_NAME(MMGS_GET_NUMBEROFNONBDYEDGES,mmgs_get_numberofnonbdyedges,
61 (MMG5_pMesh *mesh,MMG5_int* nb_edges, int* retval),
62 (mesh,nb_edges,retval)) {
64 return;
65}
66
70FORTRAN_NAME(MMGS_GET_NONBDYEDGE,mmgs_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 = MMGS_Get_nonBdyEdge(*mesh,e0,e1,ref,*idx);
74 return;
75}
76
80FORTRAN_NAME(MMGS_USAGE,mmgs_usage,
81 (char *prog,int *strlen,int *retval),
82 (prog,strlen,retval)) {
83 char *tmp = NULL;
84
85 tmp = (char*)malloc((*strlen+1)*sizeof(char));
86 strncpy(tmp,prog,*strlen);
87 tmp[*strlen] = '\0';
90
91 return;
92}
93
97FORTRAN_NAME(MMGS_DEFAULTVALUES,mmgs_defaultvalues,
98 (MMG5_pMesh *mesh, int* retval),
99 (mesh,retval)) {
101 return;
102}
103
107FORTRAN_NAME(MMGS_STOCKOPTIONS,mmgs_stockoptions,
109 (mesh,info,retval)) {
111 return;
112}
113
117FORTRAN_NAME(MMGS_DESTOCKOPTIONS,mmgs_destockoptions,
119 (mesh,info)) {
121 return;
122}
123
127FORTRAN_NAME(MMGS_GET_ADJATRI,mmgs_get_adjatri,
128 (MMG5_pMesh *mesh,MMG5_int* kel, MMG5_int* listri, int* retval),
129 (mesh,kel,listri,retval)) {
130 *retval = MMGS_Get_adjaTri(*mesh,*kel,listri);
131 return;
132}
133
137FORTRAN_NAME(MMGS_GET_ADJAVERTICESFAST,mmgs_get_adjaverticesfast,
138 (MMG5_pMesh *mesh,MMG5_int* ip, MMG5_int *start, MMG5_int* lispoi, MMG5_int* retval),
139 (mesh,ip,start,lispoi,retval)) {
140 *retval = MMGS_Get_adjaVerticesFast(*mesh,*ip, *start,lispoi);
141 return;
142}
143
147FORTRAN_NAME(MMGS_FREE_SOLUTIONS,mmgs_free_solutions,
149
151
152 return;
153}
154
158FORTRAN_NAME(MMGS_DOSOL,mmgs_dosol,
159 (MMG5_pMesh *mesh,MMG5_pSol *met,int *retval),
160 (mesh,met,retval)) {
161 *retval = MMGS_doSol(*mesh,*met);
162 return;
163}
164
168FORTRAN_NAME(MMGS_SET_CONSTANTSIZE,mmgs_set_constantsize,
169 (MMG5_pMesh *mesh,MMG5_pSol *met,int *retval),
170 (mesh,met,retval)) {
172 return;
173}
174
178FORTRAN_NAME(MMGS_COMPUTE_EIGENV,mmgs_compute_eigenv,
179 (double m[6],double lambda[3],double vp[3][3],int *retval),
180 (m,lambda,vp,retval)) {
181
182 *retval = MMGS_Compute_eigenv(m,lambda,vp);
183 return;
184}
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 mmgs library.
LIBMMGS_EXPORT int MMGS_Get_adjaVerticesFast(MMG5_pMesh mesh, MMG5_int ip, MMG5_int start, MMG5_int lispoi[MMGS_LMAX])
Return adjacent elements of a triangle.
LIBMMGS_EXPORT int MMGS_Get_adjaTri(MMG5_pMesh mesh, MMG5_int kel, MMG5_int listri[3])
Return adjacent elements of a triangle.
LIBMMGS_EXPORT int MMGS_Get_nonBdyEdge(MMG5_pMesh mesh, MMG5_int *e0, MMG5_int *e1, MMG5_int *ref, MMG5_int idx)
LIBMMGS_EXPORT void MMGS_destockOptions(MMG5_pMesh mesh, MMG5_Info *info)
LIBMMGS_EXPORT int(* MMGS_doSol)(MMG5_pMesh mesh, MMG5_pSol met)
Definition: mmgsexterns.c:9
LIBMMGS_EXPORT void MMGS_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
Definition: libmmgs_tools.c:43
LIBMMGS_EXPORT int MMGS_stockOptions(MMG5_pMesh mesh, MMG5_Info *info)
LIBMMGS_EXPORT void MMGS_Free_solutions(MMG5_pMesh mesh, MMG5_pSol sol)
LIBMMGS_EXPORT int MMGS_defaultValues(MMG5_pMesh mesh)
LIBMMGS_EXPORT int MMGS_Get_numberOfNonBdyEdges(MMG5_pMesh mesh, MMG5_int *nb_edges)
LIBMMGS_EXPORT int MMGS_usage(char *prog)
Definition: libmmgs_tools.c:83
LIBMMGS_EXPORT int MMGS_Set_constantSize(MMG5_pMesh mesh, MMG5_pSol met)
LIBMMGS_EXPORT int MMGS_Compute_eigenv(double m[6], double lambda[3], double vp[3][3])
#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