Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
API_functionsf_3d.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
41#include "libmmg3d_private.h"
42#include "libmmg3d.h"
43
47FORTRAN_VARIADIC ( MMG3D_INIT_MESH, mmg3d_init_mesh,
48 (const int starter, ... ),
49 va_list argptr;
50 int ier;
51
53
55
57
58 if ( !ier ) exit(EXIT_FAILURE);
59
60 return;
61 )
62
68 return;
69}
70
74FORTRAN_NAME(MMG3D_SET_INPUTMESHNAME, mmg3d_set_inputmeshname,
75 (MMG5_pMesh *mesh, char* meshin, int *strlen0, int* retval),
77 char *tmp = NULL;
78
79 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
81 tmp[*strlen0] = '\0';
84
85 return;
86}
87
91FORTRAN_NAME(MMG3D_SET_INPUTSOLNAME, mmg3d_set_inputsolname,
92 (MMG5_pMesh *mesh,MMG5_pSol *sol, char* solin, int* strlen0, int* retval),
93 (mesh,sol,solin,strlen0,retval)) {
94
95 char *tmp = NULL;
96
97 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
98 strncpy(tmp,solin,*strlen0);
99 tmp[*strlen0] = '\0';
102
103 return;
104}
105
109FORTRAN_NAME(MMG3D_SET_OUTPUTMESHNAME,mmg3d_set_outputmeshname,
110 (MMG5_pMesh *mesh, char* meshout, int* strlen0,int* retval),
111 (mesh,meshout,strlen0,retval)){
112 char *tmp = NULL;
113
114 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
115 strncpy(tmp,meshout,*strlen0);
116 tmp[*strlen0] = '\0';
119
120 return;
121}
122
126FORTRAN_NAME(MMG3D_SET_OUTPUTSOLNAME,mmg3d_set_outputsolname,
127 (MMG5_pMesh *mesh,MMG5_pSol *sol, char* solout,int* strlen0, int* retval),
128 (mesh,sol,solout,strlen0,retval)){
129 char *tmp = NULL;
130
131 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
132 strncpy(tmp,solout,*strlen0);
133 tmp[*strlen0] = '\0';
136
137 return;
138}
139
143FORTRAN_NAME(MMG3D_SET_SOLSIZE,mmg3d_set_solsize,
144 (MMG5_pMesh *mesh, MMG5_pSol *sol, int* typEntity,
145 MMG5_int* np, int* typSol, int* retval),
146 (mesh, sol, typEntity, np, typSol, retval)) {
147 *retval = MMG3D_Set_solSize(*mesh,*sol,*typEntity,*np,*typSol);
148 return;
149}
150
154FORTRAN_NAME(MMG3D_SET_SOLSATVERTICESSIZE,mmg3d_set_solsatverticessize,
155 (MMG5_pMesh *mesh, MMG5_pSol *sol,int* nsols,
156 MMG5_int* nentities, int* typSol, int* retval),
157 (mesh, sol, nsols, nentities, typSol, retval)) {
158 *retval = MMG3D_Set_solsAtVerticesSize(*mesh,sol,*nsols,*nentities,typSol);
159 return;
160}
161
165FORTRAN_NAME(MMG3D_SET_MESHSIZE,mmg3d_set_meshsize,
166 (MMG5_pMesh *mesh, MMG5_int *np, MMG5_int *ne, MMG5_int *nprism,
167 MMG5_int *nt, MMG5_int *nquad, MMG5_int *na, int *retval),
168 (mesh,np,ne,nprism,nt,nquad,na,retval)) {
169 *retval = MMG3D_Set_meshSize(*mesh,*np,*ne,*nprism,*nt,*nquad,*na);
170 return;
171}
172
176FORTRAN_NAME(MMG3D_GET_SOLSIZE,mmg3d_get_solsize,
177 (MMG5_pMesh *mesh, MMG5_pSol *sol, int* typEntity, MMG5_int* np, int* typSol, int* retval),
178 (mesh,sol,typEntity,np,typSol,retval)) {
179
180 *retval = MMG3D_Get_solSize(*mesh,*sol,typEntity,np,typSol);
181 return;
182}
183
187FORTRAN_NAME(MMG3D_GET_SOLSATVERTICESSIZE,mmg3d_get_solsatverticessize,
188 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *nsols,
189 MMG5_int* nentities, int* typSol, int* retval),
190 (mesh,sol,nsols,nentities,typSol,retval)) {
191
192 *retval = MMG3D_Get_solsAtVerticesSize(*mesh,sol,nsols,nentities,typSol);
193 return;
194}
195
199FORTRAN_NAME(MMG3D_GET_MESHSIZE,mmg3d_get_meshsize,
200 (MMG5_pMesh *mesh, MMG5_int* np, MMG5_int* ne,MMG5_int *nprism,
201 MMG5_int* nt,MMG5_int *nquad, MMG5_int* na, int* retval),
202 (mesh,np,ne,nprism,nt,nquad,na,retval)) {
203
204 *retval = MMG3D_Get_meshSize(*mesh,np,ne,nprism,nt,nquad,na);
205 return;
206}
207
211FORTRAN_NAME(MMG3D_SET_VERTEX,mmg3d_set_vertex,
212 (MMG5_pMesh *mesh, double* c0, double* c1, double* c2, MMG5_int* ref,
213 MMG5_int* pos, int* retval),
214 (mesh,c0,c1,c2,ref,pos,retval)) {
215
216 *retval = MMG3D_Set_vertex(*mesh,*c0,*c1,*c2,*ref,*pos);
217 return;
218}
222FORTRAN_NAME(MMG3D_GET_VERTEX,mmg3d_get_vertex,
223 (MMG5_pMesh *mesh, double* c0, double* c1, double* c2, MMG5_int* ref,
224 int* isCorner, int* isRequired, int* retval),
225 (mesh,c0,c1,c2,ref,isCorner,isRequired, retval)) {
226 *retval = MMG3D_Get_vertex(*mesh,c0,c1,c2,ref,isCorner,isRequired);
227 return;
228}
232FORTRAN_NAME(MMG3D_GETBYIDX_VERTEX,mmg3d_getbyidx_vertex,
233 (MMG5_pMesh *mesh, double* c0, double* c1, double* c2, MMG5_int* ref,
234 int* isCorner, int* isRequired, MMG5_int* idx,int* retval),
235 (mesh,c0,c1,c2,ref,isCorner,isRequired,idx, retval)) {
236 *retval = MMG3D_GetByIdx_vertex(*mesh,c0,c1,c2,ref,isCorner,isRequired,*idx);
237 return;
238}
239
243FORTRAN_NAME(MMG3D_SET_VERTICES,mmg3d_set_vertices,
244 (MMG5_pMesh *mesh, double* vertices, MMG5_int* refs, int* retval),
245 (mesh,vertices,refs,retval)) {
246
247 *retval = MMG3D_Set_vertices(*mesh,vertices,refs);
248 return;
249}
250
251
255FORTRAN_NAME(MMG3D_GET_VERTICES,mmg3d_get_vertices,
256 (MMG5_pMesh *mesh, double* vertices, MMG5_int* refs,
257 int* areCorners, int* areRequired, int* retval),
258 (mesh,vertices,refs,areCorners,areRequired, retval)) {
259 *retval = MMG3D_Get_vertices(*mesh,vertices,refs,areCorners,areRequired);
260 return;
261}
262
266FORTRAN_NAME(MMG3D_SET_TETRAHEDRON,mmg3d_set_tetrahedron,
267 (MMG5_pMesh *mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *v3, MMG5_int *ref,
268 MMG5_int *pos, int* retval),
269 (mesh,v0,v1,v2,v3,ref,pos,retval)){
270 *retval = MMG3D_Set_tetrahedron(*mesh,*v0,*v1,*v2,*v3,*ref,*pos);
271 return;
272}
273
277FORTRAN_NAME(MMG3D_SET_TETRAHEDRA,mmg3d_set_tetrahedra,
278 (MMG5_pMesh *mesh, MMG5_int *tetra, MMG5_int *refs, int* retval),
279 (mesh,tetra,refs,retval)){
280 *retval = MMG3D_Set_tetrahedra(*mesh,tetra,refs);
281 return;
282}
283
287FORTRAN_NAME(MMG3D_GET_TETRAHEDRON,mmg3d_get_tetrahedron,
288 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int *v3,
289 MMG5_int* ref, int* isRequired, int* retval),
290 (mesh,v0,v1,v2,v3,ref,isRequired,retval)) {
291 *retval = MMG3D_Get_tetrahedron(*mesh,v0,v1,v2,v3,ref,isRequired);
292 return;
293}
297FORTRAN_NAME(MMG3D_GET_TETRAHEDRA,mmg3d_get_tetrahedra,
298 (MMG5_pMesh *mesh, MMG5_int* tetra, MMG5_int* refs, int* areRequired,
299 int* retval),
300 (mesh,tetra,refs,areRequired,retval)) {
301 *retval = MMG3D_Get_tetrahedra(*mesh,tetra,refs,areRequired);
302 return;
303}
304
308FORTRAN_NAME(MMG3D_SET_PRISM,mmg3d_set_prism,
309 (MMG5_pMesh *mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *v3,
310 MMG5_int *v4, MMG5_int *v5,MMG5_int *ref,MMG5_int *pos, int* retval),
311 (mesh,v0,v1,v2,v3,v4,v5,ref,pos,retval)){
312 *retval = MMG3D_Set_prism(*mesh,*v0,*v1,*v2,*v3,*v4,*v5,*ref,*pos);
313 return;
314}
315
319FORTRAN_NAME(MMG3D_SET_PRISMS,mmg3d_set_prisms,
320 (MMG5_pMesh *mesh, MMG5_int *prisms, MMG5_int *refs, int* retval),
321 (mesh,prisms,refs,retval)){
322 *retval = MMG3D_Set_prisms(*mesh,prisms,refs);
323 return;
324}
325
329FORTRAN_NAME(MMG3D_GET_PRISM,mmg3d_get_prism,
330 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int *v3,
331 MMG5_int *v4, MMG5_int* v5,MMG5_int* ref, int* isRequired, int* retval),
332 (mesh,v0,v1,v2,v3,v4,v5,ref,isRequired,retval)) {
333 *retval = MMG3D_Get_prism(*mesh,v0,v1,v2,v3,v4,v5,ref,isRequired);
334 return;
335}
339FORTRAN_NAME(MMG3D_GET_PRISMS,mmg3d_get_prisms,
340 (MMG5_pMesh *mesh, MMG5_int* prisms, MMG5_int* refs, int* areRequired,
341 int* retval),
342 (mesh,prisms,refs,areRequired,retval)) {
343 *retval = MMG3D_Get_prisms(*mesh,prisms,refs,areRequired);
344 return;
345}
346
350FORTRAN_NAME(MMG3D_SET_TRIANGLE,mmg3d_set_triangle,
351 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int* ref,MMG5_int* pos,
352 int* retval),
353 (mesh,v0,v1,v2,ref,pos,retval)) {
354 *retval = MMG3D_Set_triangle(*mesh, *v0, *v1, *v2, *ref, *pos);
355 return;
356}
357
361FORTRAN_NAME(MMG3D_GET_TRIANGLE,mmg3d_get_triangle,
362 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int* ref
363 ,int* isRequired, int* retval),
364 (mesh,v0,v1,v2,ref,isRequired,retval)) {
365 *retval = MMG3D_Get_triangle(*mesh,v0,v1,v2,ref,isRequired);
366 return;
367}
371FORTRAN_NAME(MMG3D_SET_TRIANGLES,mmg3d_set_triangles,
372 (MMG5_pMesh *mesh, MMG5_int* tria, MMG5_int* refs,
373 int* retval),
374 (mesh,tria,refs,retval)) {
375 *retval = MMG3D_Set_triangles(*mesh, tria, refs);
376 return;
377}
378
382FORTRAN_NAME(MMG3D_GET_TRIANGLES,mmg3d_get_triangles,
383 (MMG5_pMesh *mesh, MMG5_int* tria, MMG5_int* refs,int* areRequired,
384 int* retval),
385 (mesh,tria,refs,areRequired,retval)) {
386 *retval = MMG3D_Get_triangles(*mesh,tria,refs,areRequired);
387 return;
388}
392FORTRAN_NAME(MMG3D_SET_QUADRILATERAL,mmg3d_set_quadrilateral,
393 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2,MMG5_int *v3,
394 MMG5_int* ref,MMG5_int* pos,int* retval),
395 (mesh,v0,v1,v2,v3,ref,pos,retval)) {
396 *retval = MMG3D_Set_quadrilateral(*mesh, *v0, *v1, *v2, *v3,*ref, *pos);
397 return;
398}
399
403FORTRAN_NAME(MMG3D_GET_QUADRILATERAL,mmg3d_get_quadrilateral,
404 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2,MMG5_int *v3,
405 MMG5_int* ref,int* isRequired, int* retval),
406 (mesh,v0,v1,v2,v3,ref,isRequired,retval)) {
407 *retval = MMG3D_Get_quadrilateral(*mesh,v0,v1,v2,v3,ref,isRequired);
408 return;
409}
413FORTRAN_NAME(MMG3D_SET_QUADRILATERALS,mmg3d_set_quadrilaterals,
414 (MMG5_pMesh *mesh, MMG5_int* quads, MMG5_int* refs,
415 int* retval),
416 (mesh,quads,refs,retval)) {
417 *retval = MMG3D_Set_quadrilaterals(*mesh, quads, refs);
418 return;
419}
420
424FORTRAN_NAME(MMG3D_GET_QUADRILATERALS,mmg3d_get_quadrilaterals,
425 (MMG5_pMesh *mesh, MMG5_int* quads, MMG5_int* refs,int* areRequired,
426 int* retval),
427 (mesh,quads,refs,areRequired,retval)) {
428 *retval = MMG3D_Get_quadrilaterals(*mesh,quads,refs,areRequired);
429 return;
430}
431
435FORTRAN_NAME(MMG3D_SET_EDGE,mmg3d_set_edge,
436 (MMG5_pMesh *mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *ref, MMG5_int *pos, int* retval),
437 (mesh,v0,v1,ref,pos,retval)){
438 *retval = MMG3D_Set_edge(*mesh,*v0,*v1,*ref,*pos);
439 return;
440}
441
445FORTRAN_NAME(MMG3D_GET_EDGE,mmg3d_get_edge,(MMG5_pMesh *mesh, MMG5_int* e0, MMG5_int* e1, MMG5_int* ref
446 ,int* isRidge, int* isRequired, int* retval),
447 (mesh,e0,e1,ref,isRidge,isRequired,retval)) {
448 *retval = MMG3D_Get_edge(*mesh,e0,e1,ref,isRidge,isRequired);
449 return;
450}
454FORTRAN_NAME(MMG3D_SET_EDGES,mmg3d_set_edges,
455 (MMG5_pMesh *mesh, MMG5_int *edges, MMG5_int *refs, int* retval),
456 (mesh,edges,refs,retval)){
457 *retval = MMG3D_Set_edges(*mesh,edges,refs);
458 return;
459}
460
464FORTRAN_NAME(MMG3D_GET_EDGES,mmg3d_get_edges,(MMG5_pMesh *mesh, MMG5_int* edges,
465 MMG5_int* refs,int* areRidges,
466 int* areRequired, int* retval),
467 (mesh,edges,refs,areRidges,areRequired,retval)) {
468 *retval = MMG3D_Get_edges(*mesh,edges,refs,areRidges,areRequired);
469 return;
470}
471
475FORTRAN_NAME(MMG3D_SET_CORNER,mmg3d_set_corner,(MMG5_pMesh *mesh, MMG5_int *k, int* retval),
476 (mesh,k,retval)) {
478 return;
479}
480
484FORTRAN_NAME(MMG3D_UNSET_CORNER,mmg3d_unset_corner,(MMG5_pMesh *mesh, MMG5_int *k, int* retval),
485 (mesh,k,retval)) {
487 return;
488}
489
493FORTRAN_NAME(MMG3D_SET_REQUIREDVERTEX,mmg3d_set_requiredvertex,
494 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
495 (mesh,k,retval)) {
497 return;
498}
499
503FORTRAN_NAME(MMG3D_UNSET_REQUIREDVERTEX,mmg3d_unset_requiredvertex,
504 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
505 (mesh,k,retval)) {
507 return;
508}
509
513FORTRAN_NAME(MMG3D_SET_REQUIREDTETRAHEDRON,mmg3d_set_requiredtetrahedron,
514 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
515 (mesh,k,retval)) {
517 return;
518}
519
523FORTRAN_NAME(MMG3D_UNSET_REQUIREDTETRAHEDRON,mmg3d_unset_requiredtetrahedron,
524 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
525 (mesh,k,retval)) {
527 return;
528}
529
533FORTRAN_NAME(MMG3D_SET_REQUIREDTETRAHEDRA,mmg3d_set_requiredtetrahedra,
534 (MMG5_pMesh *mesh, MMG5_int *reqIdx, MMG5_int *nreq, int* retval),
535 (mesh,reqIdx,nreq,retval)) {
536 *retval = MMG3D_Set_requiredTetrahedra(*mesh,reqIdx, *nreq);
537 return;
538}
539
543FORTRAN_NAME(MMG3D_UNSET_REQUIREDTETRAHEDRA,mmg3d_unset_requiredtetrahedra,
544 (MMG5_pMesh *mesh, MMG5_int *reqIdx, MMG5_int *nreq, int* retval),
545 (mesh,reqIdx,nreq,retval)) {
546 *retval = MMG3D_Unset_requiredTetrahedra(*mesh,reqIdx, *nreq);
547 return;
548}
552FORTRAN_NAME(MMG3D_SET_REQUIREDTRIANGLE,mmg3d_set_requiredtriangle,
553 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
554 (mesh,k,retval)) {
556 return;
557}
561FORTRAN_NAME(MMG3D_UNSET_REQUIREDTRIANGLE,mmg3d_unset_requiredtriangle,
562 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
563 (mesh,k,retval)) {
565 return;
566}
567
571FORTRAN_NAME(MMG3D_SET_REQUIREDTRIANGLES,mmg3d_set_requiredtriangles,
572 (MMG5_pMesh *mesh, MMG5_int *reqIdx, MMG5_int *nreq, int* retval),
573 (mesh,reqIdx,nreq,retval)) {
574 *retval = MMG3D_Set_requiredTriangles(*mesh, reqIdx, *nreq);
575 return;
576}
577
581FORTRAN_NAME(MMG3D_UNSET_REQUIREDTRIANGLES,mmg3d_unset_requiredtriangles,
582 (MMG5_pMesh *mesh, MMG5_int *reqIdx, MMG5_int *nreq, int* retval),
583 (mesh,reqIdx,nreq,retval)) {
584 *retval = MMG3D_Unset_requiredTriangles(*mesh, reqIdx, *nreq);
585 return;
586}
587
591FORTRAN_NAME(MMG3D_SET_PARALLELTRIANGLE,mmg3d_set_paralleltriangle,
592 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
593 (mesh,k,retval)) {
595 return;
596}
597
601FORTRAN_NAME(MMG3D_UNSET_PARALLELTRIANGLE,mmg3d_unset_paralleltriangle,
602 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
603 (mesh,k,retval)) {
605 return;
606}
607
611FORTRAN_NAME(MMG3D_SET_PARALLELTRIANGLES,mmg3d_set_paralleltriangles,
612 (MMG5_pMesh *mesh, MMG5_int *parIdx, MMG5_int *npar, int* retval),
613 (mesh,parIdx,npar,retval)) {
614 *retval = MMG3D_Set_parallelTriangles(*mesh, parIdx, *npar);
615 return;
616}
617
621FORTRAN_NAME(MMG3D_UNSET_PARALLELTRIANGLES,mmg3d_unset_paralleltriangles,
622 (MMG5_pMesh *mesh, MMG5_int *parIdx, MMG5_int *npar, int* retval),
623 (mesh,parIdx,npar,retval)) {
624 *retval = MMG3D_Unset_parallelTriangles(*mesh, parIdx, *npar);
625 return;
626}
627
631FORTRAN_NAME(MMG3D_SET_RIDGE,mmg3d_set_ridge,
632 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
633 (mesh,k,retval)) {
635 return;
636}
637
641FORTRAN_NAME(MMG3D_UNSET_RIDGE,mmg3d_unset_ridge,
642 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
643 (mesh,k,retval)) {
645 return;
646}
647
651FORTRAN_NAME(MMG3D_SET_REQUIREDEDGE,mmg3d_set_requirededge,
652 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
653 (mesh,k,retval)) {
655 return;
656}
657
661FORTRAN_NAME(MMG3D_UNSET_REQUIREDEDGE,mmg3d_unset_requirededge,
662 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
663 (mesh,k,retval)) {
665 return;
666}
667
671FORTRAN_NAME(MMG3D_SET_NORMALATVERTEX,mmg3d_set_normalatvertex,
672 (MMG5_pMesh *mesh, MMG5_int *k, double* n0, double* n1, double* n2,int* retval),
673 (mesh,k,n0,n1,n2,retval)) {
674 *retval = MMG3D_Set_normalAtVertex(*mesh,*k, *n0, *n1, *n2);
675 return;
676}
680FORTRAN_NAME(MMG3D_GET_NORMALATVERTEX,mmg3d_get_normalatvertex,
681 (MMG5_pMesh *mesh, MMG5_int *k, double* n0, double* n1, double* n2,int* retval),
682 (mesh,k,n0,n1,n2,retval)) {
683 *retval = MMG3D_Get_normalAtVertex(*mesh,*k, n0, n1, n2);
684 return;
685}
689FORTRAN_NAME(MMG3D_GET_TETRAHEDRONQUALITY,mmg3d_get_tetrahedronquality,
690 (MMG5_pMesh *mesh, MMG5_pSol *met, MMG5_int* k, double* retval),
691 (mesh,met,k,retval)) {
693 return;
694}
698FORTRAN_NAME(MMG3D_SET_SCALARSOL,mmg3d_set_scalarsol,
699 (MMG5_pSol *met, double *s, MMG5_int *pos, int* retval),
700 (met,s,pos,retval)) {
701 *retval = MMG3D_Set_scalarSol(*met,*s,*pos);
702 return;
703}
704
708FORTRAN_NAME(MMG3D_GET_SCALARSOL,mmg3d_get_scalarsol,
709 (MMG5_pSol *met, double* s, int* retval),
710 (met,s,retval)) {
711 *retval = MMG3D_Get_scalarSol(*met,s);
712 return;
713}
717FORTRAN_NAME(MMG3D_SET_SCALARSOLS,mmg3d_set_scalarsols,
718 (MMG5_pSol *met, double *s, int* retval),
719 (met,s,retval)) {
720 *retval = MMG3D_Set_scalarSols(*met,s);
721 return;
722}
723
727FORTRAN_NAME(MMG3D_GET_SCALARSOLS,mmg3d_get_scalarsols,
728 (MMG5_pSol *met, double* s, int* retval),
729 (met,s,retval)) {
730 *retval = MMG3D_Get_scalarSols(*met,s);
731 return;
732}
733
737FORTRAN_NAME(MMG3D_SET_VECTORSOL,mmg3d_set_vectorsol,
738 (MMG5_pSol *met, double *vx, double *vy, double *vz,
739 MMG5_int *pos, int* retval),
740 (met,vx,vy,vz,pos,retval)) {
741 *retval = MMG3D_Set_vectorSol(*met,*vx,*vy,*vz,*pos);
742 return;
743}
744
748FORTRAN_NAME(MMG3D_GET_VECTORSOL,mmg3d_get_vectorsol,
749 (MMG5_pSol *met, double* vx,double *vy, double *vz, int* retval),
750 (met,vx,vy,vz,retval)) {
751 *retval = MMG3D_Get_vectorSol(*met,vx,vy,vz);
752 return;
753}
757FORTRAN_NAME(MMG3D_SET_VECTORSOLS,mmg3d_set_vectorsols,
758 (MMG5_pSol *met, double *sols, int* retval),
759 (met,sols,retval)) {
760 *retval = MMG3D_Set_vectorSols(*met,sols);
761 return;
762}
763
767FORTRAN_NAME(MMG3D_GET_VECTORSOLS,mmg3d_get_vectorsols,
768 (MMG5_pSol *met, double* sols, int* retval),
769 (met,sols,retval)) {
770 *retval = MMG3D_Get_vectorSols(*met,sols);
771 return;
772}
773
777FORTRAN_NAME(MMG3D_SET_TENSORSOL,mmg3d_set_tensorsol,
778 (MMG5_pSol *met, double* m11,double *m12, double *m13,
779 double* m22,double *m23, double *m33, MMG5_int *pos, int* retval),
780 (met,m11,m12,m13,m22,m23,m33,pos,retval)) {
781 *retval = MMG3D_Set_tensorSol(*met,*m11,*m12,*m13,*m22,*m23,*m33,*pos);
782 return;
783}
784
788FORTRAN_NAME(MMG3D_GET_TENSORSOL,mmg3d_get_tensorsol,
789 (MMG5_pSol *met, double* m11,double *m12, double *m13,
790 double* m22,double *m23, double *m33, int* retval),
791 (met,m11,m12,m13,m22,m23,m33,retval)) {
792 *retval = MMG3D_Get_tensorSol(*met,m11,m12,m13,m22,m23,m33);
793 return;
794}
798FORTRAN_NAME(MMG3D_SET_TENSORSOLS,mmg3d_set_tensorsols,
799 (MMG5_pSol *met, double* sols,int* retval),
800 (met,sols,retval)) {
801 *retval = MMG3D_Set_tensorSols(*met,sols);
802 return;
803}
804
808FORTRAN_NAME(MMG3D_GET_TENSORSOLS,mmg3d_get_tensorsols,
809 (MMG5_pSol *met, double* sols, int* retval),
810 (met,sols,retval)) {
811 *retval = MMG3D_Get_tensorSols(*met,sols);
812 return;
813}
817FORTRAN_NAME(MMG3D_SET_ITHSOL_INSOLSATVERTICES,mmg3d_set_ithsol_insolsatvertices,
818 (MMG5_pSol *sol, MMG5_int *i,double *s,MMG5_int *pos, int* retval),
819 (sol,i,s,pos,retval)) {
821 return;
822}
826FORTRAN_NAME(MMG3D_GET_ITHSOL_INSOLSATVERTICES,mmg3d_get_ithsol_insolsatvertices,
827 (MMG5_pSol *sol, MMG5_int* i,double *s,MMG5_int *pos, int* retval),
828 (sol,i,s,pos,retval)) {
830 return;
831}
835FORTRAN_NAME(MMG3D_SET_ITHSOLS_INSOLSATVERTICES,mmg3d_set_ithsols_insolsatvertices,
836 (MMG5_pSol *sol, MMG5_int *i,double *s, int* retval),
837 (sol,i,s,retval)) {
839 return;
840}
844FORTRAN_NAME(MMG3D_GET_ITHSOLS_INSOLSATVERTICES,mmg3d_get_ithsols_insolsatvertices,
845 (MMG5_pSol *sol, MMG5_int* i,double *s, int* retval),
846 (sol,i,s,retval)) {
848 return;
849}
850
854FORTRAN_NAME(MMG3D_SET_HANDGIVENMESH,mmg3d_set_handgivenmesh,
855 (MMG5_pMesh *mesh),
856 (mesh)) {
858 return;
859}
860
864FORTRAN_NAME(MMG3D_CHK_MESHDATA,mmg3d_chk_meshdata,
865 (MMG5_pMesh *mesh,MMG5_pSol *met, int* retval),
866 (mesh,met,retval)) {
868 return;
869}
870
874FORTRAN_NAME(MMG3D_ADD_TETRAHEDRON,mmg3d_add_tetrahedron,
875 (MMG5_pMesh *mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *v3, MMG5_int *ref,
876 int* retval),
877 (mesh,v0,v1,v2,v3,ref,retval)){
878 *retval = MMG3D_Add_tetrahedron(*mesh,*v0,*v1,*v2,*v3,*ref);
879 return;
880}
881
885FORTRAN_NAME(MMG3D_ADD_VERTEX,mmg3d_add_vertex,
886 (MMG5_pMesh *mesh, double *c0, double *c1, double *c2, MMG5_int *ref,
887 MMG5_int* retval),
888 (mesh,c0,c1,c2,ref,retval)){
889 *retval = MMG3D_Add_vertex(*mesh,*c0,*c1,*c2,*ref);
890 return;
891}
892
896FORTRAN_NAME(MMG3D_SET_IPARAMETER,mmg3d_set_iparameter,
897 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *iparam, MMG5_int *val, int* retval),
898 (mesh,sol,iparam,val,retval)){
899 *retval = MMG3D_Set_iparameter(*mesh,*sol,*iparam,*val);
900 return;
901}
902
906FORTRAN_NAME(MMG3D_GET_IPARAMETER,mmg3d_get_iparameter,
907 (MMG5_pMesh *mesh, int *iparam, MMG5_int* retval),
908 (mesh,iparam,retval)){
909 *retval = MMG3D_Get_iparameter(*mesh,*iparam);
910 return;
911}
912
916FORTRAN_NAME(MMG3D_SET_DPARAMETER,mmg3d_set_dparameter,
917 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *dparam, double *val, int* retval),
918 (mesh,sol,dparam,val,retval)){
919 *retval = MMG3D_Set_dparameter(*mesh,*sol,*dparam,*val);
920 return;
921}
922
926FORTRAN_NAME(MMG3D_SET_LOCALPARAMETER,mmg3d_set_localparameter,
927 (MMG5_pMesh *mesh,MMG5_pSol *sol, int *typ, MMG5_int *ref,
928 double *hmin, double *hmax, double *hausd, int* retval),
929 (mesh,sol,typ,ref,hmin, hmax, hausd,retval)){
930 *retval = MMG3D_Set_localParameter(*mesh,*sol,*typ,*ref,*hmin,*hmax,*hausd);
931 return;
932}
933
937FORTRAN_NAME(MMG3D_SET_MULTIMAT,mmg3d_set_multimat,
938 (MMG5_pMesh *mesh,MMG5_pSol *sol, MMG5_int *ref,int *split,
939 MMG5_int* rin,MMG5_int* rex, int* retval),
940 (mesh,sol,ref,split,rin,rex,retval)){
941 *retval = MMG3D_Set_multiMat(*mesh,*sol,*ref,*split,*rin,*rex);
942 return;
943}
944
948FORTRAN_NAME(MMG3D_SET_LSBASEREFERENCE,mmg3d_set_lsbasereference,
949 (MMG5_pMesh *mesh,MMG5_pSol *sol, int *br, int* retval),
950 (mesh,sol,br,retval)){
952 return;
953}
954
958FORTRAN_NAME(MMG3D_FREE_ALLSOLS,mmg3d_free_allsols,
960 (mesh,sol,retval)){
961
963
964 return;
965}
969FORTRAN_VARIADIC(MMG3D_FREE_ALL,mmg3d_free_all,
970 (const int starter,...),
971 va_list argptr;
972 int ier;
973
975
977
978 va_end(argptr);
979
980 if ( !ier ) exit(EXIT_FAILURE);
981 return;
982 )
983
988 (const int starter,...),
989 va_list argptr;
990 int ier;
991
993
995
997
998 if ( !ier ) exit(EXIT_FAILURE);
999
1000 return;
1001 )
1002
1006FORTRAN_VARIADIC(MMG3D_FREE_NAMES,mmg3d_free_names,
1007 (const int starter,...),
1008 va_list argptr;
1009 int ier;
1010
1012
1014
1015 va_end(argptr);
1016
1017 if ( !ier ) exit(EXIT_FAILURE);
1018 return;
1019 )
1020
1021
1028 char *tmp = NULL;
1029
1032 tmp[*strlen0] = '\0';
1033
1035
1037
1038 return;
1039}
1040
1044FORTRAN_NAME(MMG3D_LOADVTUMESH,mmg3d_loadvtumesh,
1045 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1047 char *tmp = NULL;
1048
1049 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1051 tmp[*strlen0] = '\0';
1052
1054
1056
1057 return;
1058}
1062FORTRAN_NAME(MMG3D_LOADVTUMESH_AND_ALLDATA,mmg3d_loadvtumesh_and_alldata,
1063 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1065 char *tmp = NULL;
1066
1067 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1069 tmp[*strlen0] = '\0';
1070
1072
1074
1075 return;
1076}
1077
1081FORTRAN_NAME(MMG3D_LOADVTKMESH,mmg3d_loadvtkmesh,
1082 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1084 char *tmp = NULL;
1085
1086 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1088 tmp[*strlen0] = '\0';
1089
1091
1093
1094 return;
1095}
1099FORTRAN_NAME(MMG3D_LOADVTKMESH_AND_ALLDATA,mmg3d_loadvtkmesh_and_alldata,
1100 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1102 char *tmp = NULL;
1103
1104 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1106 tmp[*strlen0] = '\0';
1107
1109
1111
1112 return;
1113}
1117FORTRAN_NAME(MMG3D_LOADMSHMESH,mmg3d_loadmshmesh,
1118 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1120 char *tmp = NULL;
1121
1122 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1124 tmp[*strlen0] = '\0';
1125
1127
1129
1130 return;
1131}
1132
1136FORTRAN_NAME(MMG3D_LOADGENERICMESH,mmg3d_loadgenericmesh,
1137 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1139 char *tmp = NULL;
1140
1141 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1143 tmp[*strlen0] = '\0';
1144
1146
1148
1149 return;
1150}
1151
1155FORTRAN_NAME(MMG3D_LOADMSHMESH_AND_ALLDATA,mmg3d_loadmshmesh_and_alldata,
1156 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1158 char *tmp = NULL;
1159
1160 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1162 tmp[*strlen0] = '\0';
1163
1165
1167
1168 return;
1169}
1170
1174FORTRAN_NAME(MMG3D_SAVEMESH,mmg3d_savemesh,
1175 (MMG5_pMesh *mesh,char* filename, int *strlen0,int* retval),
1177 char *tmp = NULL;
1178
1179 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1181 tmp[*strlen0] = '\0';
1182
1184
1186
1187 return;
1188}
1189
1193FORTRAN_NAME(MMG3D_SAVEVTKMESH,mmg3d_savevtkmesh,
1194 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1195 int* retval),
1197 char *tmp = NULL;
1198
1199 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1201 tmp[*strlen0] = '\0';
1202
1204
1206
1207 return;
1208}
1212FORTRAN_NAME(MMG3D_SAVEVTKMESH_AND_ALLDATA,mmg3d_savevtkmesh_and_alldata,
1213 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1214 int* retval),
1216 char *tmp = NULL;
1217
1218 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1220 tmp[*strlen0] = '\0';
1221
1223
1225
1226 return;
1227}
1228
1232FORTRAN_NAME(MMG3D_SAVEVTUMESH,mmg3d_savevtumesh,
1233 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1234 int* retval),
1236 char *tmp = NULL;
1237
1238 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1240 tmp[*strlen0] = '\0';
1241
1243
1245
1246 return;
1247}
1251FORTRAN_NAME(MMG3D_SAVEVTUMESH_AND_ALLDATA,mmg3d_savevtumesh_and_alldata,
1252 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1253 int* retval),
1255 char *tmp = NULL;
1256
1257 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1259 tmp[*strlen0] = '\0';
1260
1262
1264
1265 return;
1266}
1267
1271FORTRAN_NAME(MMG3D_SAVEMSHMESH,mmg3d_savemshmesh,
1272 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1273 int* retval),
1275 char *tmp = NULL;
1276
1277 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1279 tmp[*strlen0] = '\0';
1280
1282
1284
1285 return;
1286}
1287
1291FORTRAN_NAME(MMG3D_SAVEMSHMESH_AND_ALLDATA,mmg3d_savemshmesh_and_alldata,
1292 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1293 int* retval),
1295 char *tmp = NULL;
1296
1297 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1299 tmp[*strlen0] = '\0';
1300
1302
1304
1305 return;
1306}
1307
1311FORTRAN_NAME(MMG3D_SAVETETGENMESH,mmg3d_savetetgenmesh,(MMG5_pMesh *mesh,char *meshin,int *strlen0, int* retval),
1313 char *tmp = NULL;
1314
1315 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1317 tmp[*strlen0] = '\0';
1320
1321 return;
1322}
1323
1327FORTRAN_NAME(MMG3D_SAVEGENERICMESH,mmg3d_savegenericmesh,
1328 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1330 char *tmp = NULL;
1331
1332 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1334 tmp[*strlen0] = '\0';
1335
1337
1339
1340 return;
1341}
1342
1346FORTRAN_NAME(MMG3D_LOADSOL,mmg3d_loadsol,
1347 (MMG5_pMesh *mesh,MMG5_pSol *met,char* filename, int *strlen0,int* retval),
1348 (mesh,met,filename,strlen0,retval)){
1349 char *tmp = NULL;
1350
1351 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1353 tmp[*strlen0] = '\0';
1354
1355 *retval = MMG3D_loadSol(*mesh,*met,tmp);
1356
1358
1359 return;
1360}
1361
1365FORTRAN_NAME(MMG3D_LOADALLSOLS,mmg3d_loadallsols,
1366 (MMG5_pMesh *mesh,MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1368 char *tmp = NULL;
1369
1370 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1372 tmp[*strlen0] = '\0';
1373
1375
1377
1378 return;
1379}
1380
1384FORTRAN_NAME(MMG3D_SAVESOL,mmg3d_savesol,
1385 (MMG5_pMesh *mesh,MMG5_pSol *met,char* filename, int *strlen0,int* retval),
1386 (mesh,met,filename,strlen0,retval)){
1387 char *tmp = NULL;
1388
1389 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1391 tmp[*strlen0] = '\0';
1392
1393 *retval = MMG3D_saveSol(*mesh,*met,tmp);
1394
1396
1397 return;
1398}
1399
1403FORTRAN_NAME(MMG3D_SAVEALLSOLS,mmg3d_saveallsols,
1404 (MMG5_pMesh *mesh,MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1406 char *tmp = NULL;
1407
1408 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1410 tmp[*strlen0] = '\0';
1411
1413
1415
1416 return;
1417}
1418
1422FORTRAN_NAME(MMG3D_SWITCH_METRIC_STORAGE,mmg3d_swith_metricstorage,
1423 (MMG5_pMesh *mesh,MMG5_pSol *met,int* retval),
1424 (mesh,met,retval)){
1425
1427
1428 return;
1429}
1430
1434FORTRAN_NAME(MMG3D_CLEAN_ISOSURF,mmg3d_clean_isosurf,
1435 (MMG5_pMesh *mesh, int* retval), (mesh, retval)) {
1437 return;
1438}
int MMG3D_Set_vectorSol(MMG5_pSol met, double vx, double vy, double vz, MMG5_int pos)
int MMG3D_Unset_requiredEdge(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_GetByIdx_vertex(MMG5_pMesh mesh, double *c0, double *c1, double *c2, MMG5_int *ref, int *isCorner, int *isRequired, MMG5_int idx)
int MMG3D_Get_vectorSol(MMG5_pSol met, double *vx, double *vy, double *vz)
int MMG3D_Get_vertices(MMG5_pMesh mesh, double *vertices, MMG5_int *refs, int *areCorners, int *areRequired)
int MMG3D_Get_prism(MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *v3, MMG5_int *v4, MMG5_int *v5, MMG5_int *ref, int *isRequired)
int MMG3D_Set_multiMat(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int ref, int split, MMG5_int rin, MMG5_int rout)
int MMG3D_Get_normalAtVertex(MMG5_pMesh mesh, MMG5_int k, double *n0, double *n1, double *n2)
int MMG3D_Set_triangles(MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs)
int MMG3D_Unset_corner(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Set_quadrilateral(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int v3, MMG5_int ref, MMG5_int pos)
int MMG3D_Unset_ridge(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Set_corner(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Get_edge(MMG5_pMesh mesh, MMG5_int *e0, MMG5_int *e1, MMG5_int *ref, int *isRidge, int *isRequired)
int MMG3D_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
int MMG3D_Set_ithSols_inSolsAtVertices(MMG5_pSol sol, int i, double *s)
int MMG3D_Get_prisms(MMG5_pMesh mesh, MMG5_int *prisms, MMG5_int *refs, int *areRequired)
int MMG3D_Set_edges(MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs)
int MMG3D_Set_tensorSols(MMG5_pSol met, double *sols)
int MMG3D_Set_requiredTetrahedron(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Get_triangle(MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *ref, int *isRequired)
double MMG3D_Get_tetrahedronQuality(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k)
int MMG3D_Set_dparameter(MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val)
int MMG3D_Get_tensorSol(MMG5_pSol met, double *m11, double *m12, double *m13, double *m22, double *m23, double *m33)
int MMG3D_Set_localParameter(MMG5_pMesh mesh, MMG5_pSol sol, int typ, MMG5_int ref, double hmin, double hmax, double hausd)
int MMG3D_Set_tetrahedron(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int v3, MMG5_int ref, MMG5_int pos)
int MMG3D_Set_triangle(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int ref, MMG5_int pos)
int MMG3D_Get_tetrahedron(MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *v3, MMG5_int *ref, int *isRequired)
int MMG3D_Set_scalarSols(MMG5_pSol met, double *s)
int MMG3D_Get_quadrilaterals(MMG5_pMesh mesh, MMG5_int *quads, MMG5_int *refs, int *areRequired)
int MMG3D_Get_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int *typEntity, MMG5_int *np, int *typSol)
int MMG3D_Set_edge(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int ref, MMG5_int pos)
int MMG3D_Get_ithSol_inSolsAtVertices(MMG5_pSol sol, int i, double *s, MMG5_int pos)
int MMG3D_Set_scalarSol(MMG5_pSol met, double s, MMG5_int pos)
int MMG3D_Free_allSols(MMG5_pMesh mesh, MMG5_pSol *sol)
int MMG3D_Get_vectorSols(MMG5_pSol met, double *sols)
int MMG3D_Set_quadrilaterals(MMG5_pMesh mesh, MMG5_int *quads, MMG5_int *refs)
int MMG3D_Get_vertex(MMG5_pMesh mesh, double *c0, double *c1, double *c2, MMG5_int *ref, int *isCorner, int *isRequired)
int MMG3D_Set_ithSol_inSolsAtVertices(MMG5_pSol sol, int i, double *s, MMG5_int pos)
int MMG3D_Get_edges(MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs, int *areRidges, int *areRequired)
int MMG3D_Get_tensorSols(MMG5_pSol met, double *sols)
int MMG3D_Set_lsBaseReference(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int br)
int MMG3D_Set_parallelTriangles(MMG5_pMesh mesh, MMG5_int *parIdx, MMG5_int npar)
int MMG3D_Set_vectorSols(MMG5_pSol met, double *sols)
void MMG3D_Set_handGivenMesh(MMG5_pMesh mesh)
int MMG3D_Set_requiredVertex(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
int MMG3D_Unset_requiredTriangles(MMG5_pMesh mesh, MMG5_int *reqIdx, MMG5_int nreq)
int MMG3D_Unset_requiredTetrahedra(MMG5_pMesh mesh, MMG5_int *reqIdx, MMG5_int nreq)
int MMG3D_Set_requiredTriangle(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Set_vertices(MMG5_pMesh mesh, double *vertices, MMG5_int *refs)
int MMG3D_Add_tetrahedron(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int v3, MMG5_int ref)
int MMG3D_Set_ridge(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Set_solsAtVerticesSize(MMG5_pMesh mesh, MMG5_pSol *sol, int nsols, MMG5_int nentities, int *typSol)
int MMG3D_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
int MMG3D_Get_iparameter(MMG5_pMesh mesh, MMG5_int iparam)
int MMG3D_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
int MMG3D_Set_parallelTriangle(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Set_prism(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int v3, MMG5_int v4, MMG5_int v5, MMG5_int ref, MMG5_int pos)
int MMG3D_Get_ithSols_inSolsAtVertices(MMG5_pSol sol, int i, double *s)
int MMG3D_Chk_meshData(MMG5_pMesh mesh, MMG5_pSol met)
int MMG3D_Get_scalarSols(MMG5_pSol met, double *s)
MMG5_int MMG3D_Add_vertex(MMG5_pMesh mesh, double c0, double c1, double c2, MMG5_int ref)
int MMG3D_Get_solsAtVerticesSize(MMG5_pMesh mesh, MMG5_pSol *sol, int *nsols, MMG5_int *np, int *typSol)
int MMG3D_Get_triangles(MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs, int *areRequired)
int MMG3D_Unset_parallelTriangle(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Set_tensorSol(MMG5_pSol met, double m11, double m12, double m13, double m22, double m23, double m33, MMG5_int pos)
int MMG3D_Get_quadrilateral(MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *v3, MMG5_int *ref, int *isRequired)
int MMG3D_Get_tetrahedra(MMG5_pMesh mesh, MMG5_int *tetra, MMG5_int *refs, int *areRequired)
int MMG3D_Set_vertex(MMG5_pMesh mesh, double c0, double c1, double c2, MMG5_int ref, MMG5_int pos)
int MMG3D_Get_scalarSol(MMG5_pSol met, double *s)
int MMG3D_Get_meshSize(MMG5_pMesh mesh, MMG5_int *np, MMG5_int *ne, MMG5_int *nprism, MMG5_int *nt, MMG5_int *nquad, MMG5_int *na)
int MMG3D_Set_prisms(MMG5_pMesh mesh, MMG5_int *prisms, MMG5_int *refs)
void MMG3D_Init_parameters(MMG5_pMesh mesh)
int MMG3D_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, MMG5_int val)
int MMG3D_Unset_requiredTetrahedron(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Unset_requiredVertex(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Set_normalAtVertex(MMG5_pMesh mesh, MMG5_int k, double n0, double n1, double n2)
int MMG3D_Set_requiredEdge(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Set_meshSize(MMG5_pMesh mesh, MMG5_int np, MMG5_int ne, MMG5_int nprism, MMG5_int nt, MMG5_int nquad, MMG5_int na)
int MMG3D_Unset_requiredTriangle(MMG5_pMesh mesh, MMG5_int k)
int MMG3D_Unset_parallelTriangles(MMG5_pMesh mesh, MMG5_int *parIdx, MMG5_int npar)
int MMG3D_Set_requiredTriangles(MMG5_pMesh mesh, MMG5_int *reqIdx, MMG5_int nreq)
int MMG3D_Set_requiredTetrahedra(MMG5_pMesh mesh, MMG5_int *reqIdx, MMG5_int nreq)
int MMG3D_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, MMG5_int np, int typSol)
int MMG3D_Set_tetrahedra(MMG5_pMesh mesh, MMG5_int *tetra, MMG5_int *refs)
MMG5_pMesh MMG5_pSol * sol
MMG5_pMesh char * meshin
MMG5_pMesh char int int * retval
mmg3d_loadmesh
int ier
MMG5_pMesh char * filename
tmp[*strlen0]
const int starter
MMG5_pMesh char int * strlen0
va_start(argptr, starter)
strncpy(tmp, filename, *strlen0)
mmg3d_init_parameters
MMG5_pMesh * mesh
va_end(argptr)
const int va_list argptr
mmg3d_free_structures
int MMG3D_saveMshMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_3d.c:2124
int MMG3D_saveMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_3d.c:1259
int MMG3D_loadGenericMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_3d.c:1176
int MMG3D_saveGenericMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_3d.c:2048
int MMG3D_loadSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_3d.c:2129
int MMG3D_loadMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_3d.c:1044
int MMG3D_loadAllSols(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_3d.c:2202
int MMG3D_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_3d.c:1058
int MMG3D_saveTetgenMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_3d.c:2644
int MMG3D_loadMshMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_3d.c:1118
int MMG3D_saveSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_3d.c:2300
int MMG3D_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_3d.c:2119
int MMG3D_saveAllSols(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_3d.c:2338
int MMG3D_loadVtuMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
int MMG3D_loadVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
int MMG3D_saveVtuMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
int MMG3D_loadVtkMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
int MMG3D_loadVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inoutcpp_3d.cpp:73
int MMG3D_saveVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
int MMG3D_saveVtkMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
int MMG3D_saveVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
API headers for the mmg3d library.
LIBMMG3D_EXPORT int MMG3D_Clean_isoSurf(MMG5_pMesh mesh)
LIBMMG3D_EXPORT int MMG3D_switch_metricStorage(MMG5_pMesh mesh, MMG5_pSol met)
int MMG3D_Free_all_var(va_list argptr)
Definition: variadic_3d.c:261
int MMG3D_Free_structures_var(va_list argptr)
Definition: variadic_3d.c:449
int MMG3D_Free_names_var(va_list argptr)
Definition: variadic_3d.c:547
int MMG3D_Init_mesh_var(va_list argptr)
Definition: variadic_3d.c:177
#define FORTRAN_VARIADIC(nu, nl, pl, body)
Adds function definitions.
#define FORTRAN_NAME(nu, nl, pl, pc)
Adds function definitions.
#define MMG5_SAFE_MALLOC(ptr, size, type, law)
#define MMG5_SAFE_FREE(ptr)
MMG mesh structure.
Definition: libmmgtypes.h:605