Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
API_functionsf_s.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
40#include "libmmgs.h"
41#include "libmmgs_private.h"
42
46FORTRAN_VARIADIC ( MMGS_INIT_MESH, mmgs_init_mesh,
47 (const int starter, ... ),
48 va_list argptr;
49 int ier;
50
52
54
56
57 if ( !ier ) exit(EXIT_FAILURE);
58 return;
59 )
60
66 return;
67}
71FORTRAN_NAME(MMGS_SET_INPUTMESHNAME, mmgs_set_inputmeshname,
72 (MMG5_pMesh *mesh, char* meshin, int *strlen0, int* retval),
74 char *tmp = NULL;
75
76 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
78 tmp[*strlen0] = '\0';
81
82 return;
83}
84
88FORTRAN_NAME(MMGS_SET_INPUTSOLNAME, mmgs_set_inputsolname,
89 (MMG5_pMesh *mesh,MMG5_pSol *sol, char* solin, int* strlen0, int* retval),
90 (mesh,sol,solin,strlen0,retval)) {
91
92 char *tmp = NULL;
93
94 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
95 strncpy(tmp,solin,*strlen0);
96 tmp[*strlen0] = '\0';
99
100 return;
101}
102
107FORTRAN_NAME(MMGS_SET_OUTPUTMESHNAME,mmgs_set_outputmeshname,
108 (MMG5_pMesh *mesh, char* meshout, int* strlen0,int* retval),
109 (mesh,meshout,strlen0,retval)){
110 char *tmp = NULL;
111
112 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
113 strncpy(tmp,meshout,*strlen0);
114 tmp[*strlen0] = '\0';
117
118 return;
119}
120
124FORTRAN_NAME(MMGS_SET_OUTPUTSOLNAME,mmgs_set_outputsolname,
125 (MMG5_pMesh *mesh,MMG5_pSol *sol, char* solout,int* strlen0, int* retval),
126 (mesh,sol,solout,strlen0,retval)){
127 char *tmp = NULL;
128
129 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
130 strncpy(tmp,solout,*strlen0);
131 tmp[*strlen0] = '\0';
134
135 return;
136}
137
141FORTRAN_NAME(MMGS_SET_INPUTPARAMNAME, mmgs_set_inputparamname,
142 (MMG5_pMesh *mesh,char* fparamin, int* strlen0, int* retval),
143 (mesh,fparamin,strlen0,retval)) {
144
145 char *tmp = NULL;
146
147 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
148 strncpy(tmp,fparamin,*strlen0);
149 tmp[*strlen0] = '\0';
152
153 return;
154}
155
159FORTRAN_NAME(MMGS_SET_SOLSIZE,mmgs_set_solsize,
160 (MMG5_pMesh *mesh, MMG5_pSol *sol, int* typEntity,
161 MMG5_int* np, int* typSol, int* retval),
162 (mesh, sol, typEntity, np, typSol, retval)) {
163 *retval = MMGS_Set_solSize(*mesh,*sol,*typEntity,*np,*typSol);
164 return;
165}
166
170FORTRAN_NAME(MMGS_SET_SOLSATVERTICESSIZE,mmgs_set_solsatverticessize,
171 (MMG5_pMesh *mesh, MMG5_pSol *sol,int* nsols,
172 MMG5_int* nentities, int* typSol, int* retval),
173 (mesh, sol, nsols, nentities, typSol, retval)) {
174 *retval = MMGS_Set_solsAtVerticesSize(*mesh,sol,*nsols,*nentities,typSol);
175 return;
176}
177
181FORTRAN_NAME(MMGS_SET_MESHSIZE,mmgs_set_meshsize,
182 (MMG5_pMesh *mesh, MMG5_int *np, MMG5_int *nt, MMG5_int *na, int *retval),
183 (mesh,np,nt,na,retval)) {
184 *retval = MMGS_Set_meshSize(*mesh,*np,*nt,*na);
185 return;
186}
187
191FORTRAN_NAME(MMGS_GET_SOLSIZE,mmgs_get_solsize,
192 (MMG5_pMesh *mesh, MMG5_pSol *sol, int* typEntity, MMG5_int* np, int* typSol, int* retval),
193 (mesh,sol,typEntity,np,typSol,retval)) {
194
195 *retval = MMGS_Get_solSize(*mesh,*sol,typEntity,np,typSol);
196 return;
197}
198
202FORTRAN_NAME(MMGS_GET_SOLSATVERTICESSIZE,mmgs_get_solsatverticessize,
203 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *nsols,
204 MMG5_int* nentities, int* typSol, int* retval),
205 (mesh,sol,nsols,nentities,typSol,retval)) {
206
207 *retval = MMGS_Get_solsAtVerticesSize(*mesh,sol,nsols,nentities,typSol);
208 return;
209}
210
214FORTRAN_NAME(MMGS_GET_MESHSIZE,mmgs_get_meshsize,
215 (MMG5_pMesh *mesh, MMG5_int* np, MMG5_int* nt, MMG5_int* na, int* retval),
216 (mesh,np,nt, na,retval)) {
217
218 *retval = MMGS_Get_meshSize(*mesh,np,nt,na);
219 return;
220}
221
225FORTRAN_NAME(MMGS_SET_VERTEX,mmgs_set_vertex,
226 (MMG5_pMesh *mesh, double* c0, double* c1, double* c2, MMG5_int* ref,
227 MMG5_int* pos, int* retval),
228 (mesh,c0,c1,c2,ref,pos,retval)) {
229
230 *retval = MMGS_Set_vertex(*mesh,*c0,*c1,*c2,*ref,*pos);
231 return;
232}
233
237FORTRAN_NAME(MMGS_GET_VERTEX,mmgs_get_vertex,
238 (MMG5_pMesh *mesh, double* c0, double* c1, double* c2, MMG5_int* ref,
239 int* isCorner, int* isRequired, int* retval),
240 (mesh,c0,c1,c2,ref,isCorner,isRequired, retval)) {
241 *retval = MMGS_Get_vertex(*mesh,c0,c1,c2,ref,isCorner,isRequired);
242 return;
243}
244
248FORTRAN_NAME(MMGS_GETBYIDX_VERTEX,mmgs_getbyidx_vertex,
249 (MMG5_pMesh *mesh, double* c0, double* c1, double* c2, MMG5_int* ref,
250 int* isCorner, int* isRequired, MMG5_int* idx,int* retval),
251 (mesh,c0,c1,c2,ref,isCorner,isRequired,idx, retval)) {
252 *retval = MMGS_GetByIdx_vertex(*mesh,c0,c1,c2,ref,isCorner,isRequired,*idx);
253 return;
254}
255
259FORTRAN_NAME(MMGS_SET_VERTICES,mmgs_set_vertices,
260 (MMG5_pMesh *mesh, double* vertices, MMG5_int* refs, int* retval),
261 (mesh,vertices,refs,retval)) {
262
263 *retval = MMGS_Set_vertices(*mesh,vertices,refs);
264 return;
265}
269FORTRAN_NAME(MMGS_GET_VERTICES,mmgs_get_vertices,
270 (MMG5_pMesh *mesh, double* vertices, MMG5_int* refs,
271 int* areCorners, int* areRequired, int* retval),
272 (mesh,vertices,refs,areCorners,areRequired, retval)) {
273 *retval = MMGS_Get_vertices(*mesh,vertices,refs,areCorners,areRequired);
274 return;
275}
276
280FORTRAN_NAME(MMGS_SET_TRIANGLE,mmgs_set_triangle,
281 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int* ref,MMG5_int* pos,
282 int* retval),
283 (mesh,v0,v1,v2,ref,pos,retval)) {
284 *retval = MMGS_Set_triangle(*mesh, *v0, *v1, *v2, *ref, *pos);
285 return;
286}
287
291FORTRAN_NAME(MMGS_GET_TRIANGLE,mmgs_get_triangle,
292 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int* ref
293 ,int* isRequired, int* retval),
294 (mesh,v0,v1,v2,ref,isRequired,retval)) {
295 *retval = MMGS_Get_triangle(*mesh,v0,v1,v2,ref,isRequired);
296 return;
297}
301FORTRAN_NAME(MMGS_SET_TRIANGLES,mmgs_set_triangles,
302 (MMG5_pMesh *mesh, MMG5_int* tria, MMG5_int* refs,
303 int* retval),
304 (mesh,tria,refs,retval)) {
305 *retval = MMGS_Set_triangles(*mesh, tria, refs);
306 return;
307}
308
312FORTRAN_NAME(MMGS_GET_TRIANGLES,mmgs_get_triangles,
313 (MMG5_pMesh *mesh, MMG5_int* tria, MMG5_int* refs,int* areRequired,
314 int* retval),
315 (mesh,tria,refs,areRequired,retval)) {
316 *retval = MMGS_Get_triangles(*mesh,tria,refs,areRequired);
317 return;
318}
319
323FORTRAN_NAME(MMGS_SET_EDGE,mmgs_set_edge,
324 (MMG5_pMesh *mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *ref, MMG5_int *pos, int* retval),
325 (mesh,v0,v1,ref,pos,retval)){
326 *retval = MMGS_Set_edge(*mesh,*v0,*v1,*ref,*pos);
327 return;
328}
329
333FORTRAN_NAME(MMGS_GET_EDGE,mmgs_get_edge,(MMG5_pMesh *mesh, MMG5_int* e0, MMG5_int* e1, MMG5_int* ref
334 ,int* isRidge, int* isRequired, int* retval),
335 (mesh,e0,e1,ref,isRidge,isRequired,retval)) {
336 *retval = MMGS_Get_edge(*mesh,e0,e1,ref,isRidge,isRequired);
337 return;
338}
342FORTRAN_NAME(MMGS_SET_EDGES,mmgs_set_edges,
343 (MMG5_pMesh *mesh, MMG5_int *edges, MMG5_int *refs, int* retval),
344 (mesh,edges,refs,retval)){
345 *retval = MMGS_Set_edges(*mesh,edges,refs);
346 return;
347}
348
352FORTRAN_NAME(MMGS_GET_EDGES,mmgs_get_edges,(MMG5_pMesh *mesh, MMG5_int* edges,
353 MMG5_int* refs,int* areRidges,
354 int* areRequired, int* retval),
355 (mesh,edges,refs,areRidges,areRequired,retval)) {
356 *retval = MMGS_Get_edges(*mesh,edges,refs,areRidges,areRequired);
357 return;
358}
359
363FORTRAN_NAME(MMGS_SET_CORNER,mmgs_set_corner,(MMG5_pMesh *mesh, MMG5_int *k, int* retval),
364 (mesh,k,retval)) {
366 return;
367}
368
372FORTRAN_NAME(MMGS_UNSET_CORNER,mmgs_unset_corner,(MMG5_pMesh *mesh, MMG5_int *k, int* retval),
373 (mesh,k,retval)) {
375 return;
376}
377
381FORTRAN_NAME(MMGS_SET_REQUIREDVERTEX,mmgs_set_requiredvertex,
382 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
383 (mesh,k,retval)) {
385 return;
386}
387
391FORTRAN_NAME(MMGS_UNSET_REQUIREDVERTEX,mmgs_unset_requiredvertex,
392 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
393 (mesh,k,retval)) {
395 return;
396}
397
401FORTRAN_NAME(MMGS_SET_REQUIREDTRIANGLE,mmgs_set_requiredtriangle,
402 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
403 (mesh,k,retval)) {
405 return;
406}
407
411FORTRAN_NAME(MMGS_UNSET_REQUIREDTRIANGLE,mmgs_unset_requiredtriangle,
412 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
413 (mesh,k,retval)) {
415 return;
416}
417
421FORTRAN_NAME(MMGS_SET_RIDGE,mmgs_set_ridge,
422 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
423 (mesh,k,retval)) {
424 *retval = MMGS_Set_ridge(*mesh,*k);
425 return;
426}
427
431FORTRAN_NAME(MMGS_UNSET_RIDGE,mmgs_unset_ridge,
432 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
433 (mesh,k,retval)) {
435 return;
436}
437
441FORTRAN_NAME(MMGS_SET_REQUIREDEDGE,mmgs_set_requirededge,
442 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
443 (mesh,k,retval)) {
445 return;
446}
447
451FORTRAN_NAME(MMGS_UNSET_REQUIREDEDGE,mmgs_unset_requirededge,
452 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
453 (mesh,k,retval)) {
455 return;
456}
460FORTRAN_NAME(MMGS_SET_NORMALATVERTEX,mmgs_set_normalatvertex,
461 (MMG5_pMesh *mesh, MMG5_int *k, double* n0, double* n1, double* n2,int* retval),
462 (mesh,k,n0,n1,n2,retval)) {
463 *retval = MMGS_Set_normalAtVertex(*mesh,*k, *n0, *n1, *n2);
464 return;
465}
469FORTRAN_NAME(MMGS_GET_NORMALATVERTEX,mmgs_get_normalatvertex,
470 (MMG5_pMesh *mesh, MMG5_int *k, double* n0, double* n1, double* n2,int* retval),
471 (mesh,k,n0,n1,n2,retval)) {
472 *retval = MMGS_Get_normalAtVertex(*mesh,*k, n0, n1, n2);
473 return;
474}
475
479FORTRAN_NAME(MMGS_GET_TRIANGLEQUALITY,mmgs_get_trianglequality,
480 (MMG5_pMesh *mesh, MMG5_pSol *met, MMG5_int* k, double* retval),
481 (mesh,met,k,retval)) {
483 return;
484}
485
486
490FORTRAN_NAME(MMGS_SET_SCALARSOL,mmgs_set_scalarsol,
491 (MMG5_pSol *met, double *s, MMG5_int *pos, int* retval),
492 (met,s,pos,retval)) {
493 *retval = MMGS_Set_scalarSol(*met,*s,*pos);
494 return;
495}
496
500FORTRAN_NAME(MMGS_GET_SCALARSOL,mmgs_get_scalarsol,
501 (MMG5_pSol *met, double* s, int* retval),
502 (met,s,retval)) {
503 *retval = MMGS_Get_scalarSol(*met,s);
504 return;
505}
509FORTRAN_NAME(MMGS_SET_SCALARSOLS,mmgs_set_scalarsols,
510 (MMG5_pSol *met, double *s, int* retval),
511 (met,s,retval)) {
512 *retval = MMGS_Set_scalarSols(*met,s);
513 return;
514}
515
519FORTRAN_NAME(MMGS_GET_SCALARSOLS,mmgs_get_scalarsols,
520 (MMG5_pSol *met, double* s, int* retval),
521 (met,s,retval)) {
522 *retval = MMGS_Get_scalarSols(*met,s);
523 return;
524}
525
529FORTRAN_NAME(MMGS_SET_VECTORSOL,mmgs_set_vectorsol,
530 (MMG5_pSol *met, double *vx, double *vy, double *vz,
531 MMG5_int *pos, int* retval),
532 (met,vx,vy,vz,pos,retval)) {
533 *retval = MMGS_Set_vectorSol(*met,*vx,*vy,*vz,*pos);
534 return;
535}
536
540FORTRAN_NAME(MMGS_GET_VECTORSOL,mmgs_get_vectorsol,
541 (MMG5_pSol *met, double* vx,double *vy, double *vz, int* retval),
542 (met,vx,vy,vz,retval)) {
543 *retval = MMGS_Get_vectorSol(*met,vx,vy,vz);
544 return;
545}
549FORTRAN_NAME(MMGS_SET_VECTORSOLS,mmgs_set_vectorsols,
550 (MMG5_pSol *met, double *sols, int* retval),
551 (met,sols,retval)) {
552 *retval = MMGS_Set_vectorSols(*met,sols);
553 return;
554}
555
559FORTRAN_NAME(MMGS_GET_VECTORSOLS,mmgs_get_vectorsols,
560 (MMG5_pSol *met, double* sols, int* retval),
561 (met,sols,retval)) {
562 *retval = MMGS_Get_vectorSols(*met,sols);
563 return;
564}
565
569FORTRAN_NAME(MMGS_SET_TENSORSOL,mmgs_set_tensorsol,
570 (MMG5_pSol *met, double* m11,double *m12, double *m13,
571 double* m22,double *m23, double *m33, MMG5_int *pos, int* retval),
572 (met,m11,m12,m13,m22,m23,m33,pos,retval)) {
573 *retval = MMGS_Set_tensorSol(*met,*m11,*m12,*m13,*m22,*m23,*m33,*pos);
574 return;
575}
576
580FORTRAN_NAME(MMGS_GET_TENSORSOL,mmgs_get_tensorsol,
581 (MMG5_pSol *met, double* m11,double *m12, double *m13,
582 double* m22,double *m23, double *m33, int* retval),
583 (met,m11,m12,m13,m22,m23,m33,retval)) {
584 *retval = MMGS_Get_tensorSol(*met,m11,m12,m13,m22,m23,m33);
585 return;
586}
590FORTRAN_NAME(MMGS_SET_TENSORSOLS,mmgs_set_tensorsols,
591 (MMG5_pSol *met, double* sols,int* retval),
592 (met,sols,retval)) {
593 *retval = MMGS_Set_tensorSols(*met,sols);
594 return;
595}
596
600FORTRAN_NAME(MMGS_GET_TENSORSOLS,mmgs_get_tensorsols,
601 (MMG5_pSol *met, double* sols, int* retval),
602 (met,sols,retval)) {
603 *retval = MMGS_Get_tensorSols(*met,sols);
604 return;
605}
609FORTRAN_NAME(MMGS_SET_ITHSOL_INSOLSATVERTICES,mmgs_set_ithsol_insolsatvertices,
610 (MMG5_pSol *sol, MMG5_int *i,double *s,MMG5_int *pos, int* retval),
611 (sol,i,s,pos,retval)) {
613 return;
614}
618FORTRAN_NAME(MMGS_GET_ITHSOL_INSOLSATVERTICES,mmgs_get_ithsol_insolsatvertices,
619 (MMG5_pSol *sol, MMG5_int* i,double *s,MMG5_int *pos, int* retval),
620 (sol,i,s,pos,retval)) {
622 return;
623}
624
628FORTRAN_NAME(MMGS_SET_ITHSOLS_INSOLSATVERTICES,mmgs_set_ithsols_insolsatvertices,
629 (MMG5_pSol *sol, MMG5_int *i,double *s, int* retval),
630 (sol,i,s,retval)) {
632 return;
633}
637FORTRAN_NAME(MMGS_GET_ITHSOLS_INSOLSATVERTICES,mmgs_get_ithsols_insolsatvertices,
638 (MMG5_pSol *sol, MMG5_int* i,double *s, int* retval),
639 (sol,i,s,retval)) {
641 return;
642}
646FORTRAN_NAME(MMGS_CHK_MESHDATA,mmgs_chk_meshdata,
647 (MMG5_pMesh *mesh,MMG5_pSol *met, int* retval),
648 (mesh,met,retval)) {
649 *retval = MMGS_Chk_meshData(*mesh,*met);
650 return;
651}
652
656FORTRAN_NAME(MMGS_SET_IPARAMETER,mmgs_set_iparameter,
657 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *iparam, MMG5_int *val, int* retval),
658 (mesh,sol,iparam,val,retval)){
659 *retval = MMGS_Set_iparameter(*mesh,*sol,*iparam,*val);
660 return;
661}
662
666FORTRAN_NAME(MMGS_GET_IPARAMETER,mmgs_get_iparameter,
667 (MMG5_pMesh *mesh, int *iparam, MMG5_int* retval),
668 (mesh,iparam,retval)){
669 *retval = MMGS_Get_iparameter(*mesh,*iparam);
670 return;
671}
672
676FORTRAN_NAME(MMGS_SET_DPARAMETER,mmgs_set_dparameter,
677 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *dparam, double *val, int* retval),
678 (mesh,sol,dparam,val,retval)){
679 *retval = MMGS_Set_dparameter(*mesh,*sol,*dparam,*val);
680 return;
681}
682
686FORTRAN_NAME(MMGS_SET_LOCALPARAMETER,mmgs_set_localparameter,
687 (MMG5_pMesh *mesh,MMG5_pSol *sol, int *typ, MMG5_int *ref,
688 double *hmin, double *hmax,double *hausd, int* retval),
689 (mesh,sol,typ,ref,hmin,hmax,hausd,retval)){
690 *retval = MMGS_Set_localParameter(*mesh,*sol,*typ,*ref,*hmin,*hmax,*hausd);
691 return;
692}
693
697FORTRAN_NAME(MMGS_SET_MULTIMAT,mmgs_set_multimat,
698 (MMG5_pMesh *mesh,MMG5_pSol *sol, MMG5_int *ref,int *split,
699 MMG5_int* rin,MMG5_int* rex, int* retval),
700 (mesh,sol,ref,split,rin,rex,retval)){
701 *retval = MMGS_Set_multiMat(*mesh,*sol,*ref,*split,*rin,*rex);
702 return;
703}
704
708FORTRAN_NAME(MMGS_SET_LSBASEREFERENCE,mmgs_set_lsbasereference,
709 (MMG5_pMesh *mesh,MMG5_pSol *sol, int *br, int* retval),
710 (mesh,sol,br,retval)){
712 return;
713}
714
718FORTRAN_NAME(MMGS_FREE_ALLSOLS,mmgs_free_allsols,
720 (mesh,sol,retval)){
721
723
724 return;
725}
726
727
731FORTRAN_VARIADIC(MMGS_FREE_ALL,mmgs_free_all,
732 (const int starter,...),
733 va_list argptr;
734
735 int ier;
736
738
740
741 va_end(argptr);
742
743 if ( !ier ) exit(EXIT_FAILURE);
744
745 return;
746 )
747
752 (const int starter,...),
753 va_list argptr;
754 int ier;
755
757
759
761
762 if ( !ier ) exit(EXIT_FAILURE);
763
764 return;
765 )
766
770FORTRAN_VARIADIC(MMGS_FREE_NAMES,mmgs_free_names,
771 (const int starter,...),
772 va_list argptr;
773 int ier;
774
776
778
779 va_end(argptr);
780
781 if ( !ier ) exit(EXIT_FAILURE);
782
783 return;
784 )
785
790 (MMG5_pMesh *mesh,char* meshin, int *strlen0,int* retval),
792
793 char *tmp = NULL;
794
795 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
797 tmp[*strlen0] = '\0';
798
800
802
803 return;
804}
805
809FORTRAN_NAME(MMGS_LOADVTKMESH,mmgs_loadvtkmesh,
810 (MMG5_pMesh *mesh, MMG5_pSol *met,MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
812 char *tmp = NULL;
813
814 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
816 tmp[*strlen0] = '\0';
817
819
821
822 return;
823}
827FORTRAN_NAME(MMGS_LOADVTKMESH_AND_ALLDATA,mmgs_loadvtkmesh_and_alldata,
828 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
830 char *tmp = NULL;
831
832 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
834 tmp[*strlen0] = '\0';
835
837
839
840 return;
841}
845FORTRAN_NAME(MMGS_LOADVTPMESH,mmgs_loadvtpmesh,
846 (MMG5_pMesh *mesh, MMG5_pSol *met,MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
848 char *tmp = NULL;
849
850 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
852 tmp[*strlen0] = '\0';
853
855
857
858 return;
859}
863FORTRAN_NAME(MMGS_LOADVTPMESH_AND_ALLDATA,mmgs_loadvtpmesh_and_alldata,
864 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
866 char *tmp = NULL;
867
868 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
870 tmp[*strlen0] = '\0';
871
873
875
876 return;
877}
881FORTRAN_NAME(MMGS_LOADVTUMESH,mmgs_loadvtumesh,
882 (MMG5_pMesh *mesh, MMG5_pSol *met,MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
884 char *tmp = NULL;
885
886 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
888 tmp[*strlen0] = '\0';
889
891
893
894 return;
895}
899FORTRAN_NAME(MMGS_LOADVTUMESH_AND_ALLDATA,mmgs_loadvtumesh_and_alldata,
900 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
902 char *tmp = NULL;
903
904 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
906 tmp[*strlen0] = '\0';
907
909
911
912 return;
913}
914
918FORTRAN_NAME(MMGS_LOADMSHMESH,mmgs_loadmshmesh,
919 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
921 char *tmp = NULL;
922
923 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
925 tmp[*strlen0] = '\0';
926
928
930
931 return;
932}
933
937FORTRAN_NAME(MMGS_LOADGENERICMESH,mmgs_loadgenericmesh,
938 (MMG5_pMesh *mesh, MMG5_pSol *met,MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
940 char *tmp = NULL;
941
942 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
944 tmp[*strlen0] = '\0';
945
947
949
950 return;
951}
952
956FORTRAN_NAME(MMGS_LOADMSHMESH_AND_ALLDATA,mmgs_loadmshmesh_and_alldata,
957 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
959 char *tmp = NULL;
960
961 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
963 tmp[*strlen0] = '\0';
964
966
968
969 return;
970}
971
975FORTRAN_NAME(MMGS_LOADSOL,mmgs_loadsol,
976 (MMG5_pMesh *mesh,MMG5_pSol *met,char* meshin, int *strlen0,int* retval),
977 (mesh,met,meshin,strlen0,retval)){
978
979 char *tmp = NULL;
980
981 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
983 tmp[*strlen0] = '\0';
984
985 *retval = MMGS_loadSol(*mesh,*met,tmp);
986
988
989 return;
990}
991
995FORTRAN_NAME(MMGS_LOADALLSOLS,mmgs_loadallsols,
996 (MMG5_pMesh *mesh,MMG5_pSol *sol,char* meshin, int *strlen0,int* retval),
998
999 char *tmp = NULL;
1000
1001 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1003 tmp[*strlen0] = '\0';
1004
1006
1008
1009 return;
1010}
1014FORTRAN_NAME(MMGS_SAVEMESH,mmgs_savemesh,
1015 (MMG5_pMesh *mesh,char *meshin, int *strlen0,int* retval),
1017 char *tmp = NULL;
1018
1019 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1021 tmp[*strlen0] = '\0';
1022
1024
1026
1027 return;
1028}
1032FORTRAN_NAME(MMGS_SAVEVTKMESH,mmgs_savevtkmesh,
1033 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1034 int* retval),
1036 char *tmp = NULL;
1037
1038 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1040 tmp[*strlen0] = '\0';
1041
1043
1045
1046 return;
1047}
1051FORTRAN_NAME(MMGS_SAVEVTKMESH_AND_ALLDATA,mmgs_savevtkmesh_and_alldata,
1052 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1053 int* retval),
1055 char *tmp = NULL;
1056
1057 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1059 tmp[*strlen0] = '\0';
1060
1062
1064
1065 return;
1066}
1067
1071FORTRAN_NAME(MMGS_SAVEVTUMESH,mmgs_savevtumesh,
1072 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1073 int* retval),
1075 char *tmp = NULL;
1076
1077 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1079 tmp[*strlen0] = '\0';
1080
1082
1084
1085 return;
1086}
1090FORTRAN_NAME(MMGS_SAVEVTUMESH_AND_ALLDATA,mmgs_savevtumesh_and_alldata,
1091 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1092 int* retval),
1094 char *tmp = NULL;
1095
1096 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1098 tmp[*strlen0] = '\0';
1099
1101
1103
1104 return;
1105}
1106
1110FORTRAN_NAME(MMGS_SAVEVTPMESH,mmgs_savevtpmesh,
1111 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1112 int* retval),
1114 char *tmp = NULL;
1115
1116 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1118 tmp[*strlen0] = '\0';
1119
1121
1123
1124 return;
1125}
1129FORTRAN_NAME(MMGS_SAVEVTPMESH_AND_ALLDATA,mmgs_savevtpmesh_and_alldata,
1130 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1131 int* retval),
1133 char *tmp = NULL;
1134
1135 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1137 tmp[*strlen0] = '\0';
1138
1140
1142
1143 return;
1144}
1145
1149FORTRAN_NAME(MMGS_SAVEMSHMESH,mmgs_savemshmesh,
1150 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1151 int* retval),
1153 char *tmp = NULL;
1154
1155 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1157 tmp[*strlen0] = '\0';
1158
1160
1162
1163 return;
1164}
1165
1169FORTRAN_NAME(MMGS_SAVEGENERICMESH,mmgs_savegenericmesh,
1170 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1172 char *tmp = NULL;
1173
1174 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1176 tmp[*strlen0] = '\0';
1177
1179
1181
1182 return;
1183}
1184
1185
1189FORTRAN_NAME(MMGS_SAVESOL,mmgs_savesol,
1190 (MMG5_pMesh *mesh,MMG5_pSol *met,char *meshin,int *strlen0,int* retval),
1191 (mesh,met,meshin,strlen0,retval)){
1192
1193 char *tmp = NULL;
1194
1195 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1197 tmp[*strlen0] = '\0';
1198
1199 *retval = MMGS_saveSol(*mesh,*met,tmp);
1200
1202
1203 return;
1204}
1205
1209FORTRAN_NAME(MMGS_SAVEALLSOLS,mmgs_saveallsols,
1210 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1211 int* retval),
1213 char *tmp = NULL;
1214
1215 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1217 tmp[*strlen0] = '\0';
1218
1220
1222
1223 return;
1224}
1225
1229FORTRAN_NAME(MMGS_CLEAN_ISOSURF,mmgs_clean_isosurf,
1230 (MMG5_pMesh *mesh, int* retval), (mesh, retval)) {
1232 return;
1233}
int MMGS_Get_vertices(MMG5_pMesh mesh, double *vertices, MMG5_int *refs, int *areCorners, int *areRequired)
Get the coordinates, references and attributes of all vertices in the mesh.
int MMGS_Set_triangles(MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs)
Set the vertices and references of all triangles in the mesh.
int MMGS_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, MMG5_int val)
set an integer parameter of the remesher
int MMGS_Get_edges(MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs, int *areRidges, int *areRequired)
Get vertices, references and attributes of all edges in the mesh.
int MMGS_Get_edge(MMG5_pMesh mesh, MMG5_int *e0, MMG5_int *e1, MMG5_int *ref, int *isRidge, int *isRequired)
Get the vertices, reference, and attributes of the next edge in the mesh.
int MMGS_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
Set the name of the input mesh.
int MMGS_Get_vectorSol(MMG5_pSol met, double *vx, double *vy, double *vz)
Get the next element of a vector solution structure.
int MMGS_Get_tensorSols(MMG5_pSol met, double *sols)
Get all elements of a tensor solution field.
int MMGS_Get_meshSize(MMG5_pMesh mesh, MMG5_int *np, MMG5_int *nt, MMG5_int *na)
Get the number of vertices, triangles, and edges of the mesh.
int MMGS_Set_vertices(MMG5_pMesh mesh, double *vertices, MMG5_int *refs)
Set the coordinates and references of all vertices in a mesh.
int MMGS_Get_vectorSols(MMG5_pSol met, double *sols)
Get all elements of a vector solution structure.
int MMGS_Set_requiredVertex(MMG5_pMesh mesh, MMG5_int k)
Assign the "required" attribute to a vertex.
int MMGS_Set_localParameter(MMG5_pMesh mesh, MMG5_pSol sol, int typ, MMG5_int ref, double hmin, double hmax, double hausd)
set a local parameter
int MMGS_Set_inputParamName(MMG5_pMesh mesh, const char *fparamin)
Set the name of the input parameter file.
int MMGS_Free_allSols(MMG5_pMesh mesh, MMG5_pSol *sol)
Deallocate an array of solution fields.
int MMGS_Unset_requiredEdge(MMG5_pMesh mesh, MMG5_int k)
Remove the "required" attribute from an edge.
int MMGS_Set_solsAtVerticesSize(MMG5_pMesh mesh, MMG5_pSol *sol, int nsols, MMG5_int nentities, int *typSol)
Initialize an array of solution fields defined at vertices: set dimension, types and number of fields...
int MMGS_Get_tensorSol(MMG5_pSol met, double *m11, double *m12, double *m13, double *m22, double *m23, double *m33)
Get the next element of a tensor solution structure.
int MMGS_Set_vertex(MMG5_pMesh mesh, double c0, double c1, double c2, MMG5_int ref, MMG5_int pos)
Set the coordinates of a single vertex.
int MMGS_Get_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int *typEntity, MMG5_int *np, int *typSol)
Get the number of elements, dimension, and type of a solution.
int MMGS_Set_requiredTriangle(MMG5_pMesh mesh, MMG5_int k)
Assign the "required" attribute to a triangle.
int MMGS_Set_scalarSols(MMG5_pSol met, double *s)
Set the values of all elements of a scalar solution structure.
int MMGS_Get_ithSols_inSolsAtVertices(MMG5_pSol sol, int i, double *s)
Get one out of several solutions at all vertices in the mesh.
int MMGS_Set_edges(MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs)
Set the vertices and references of all edges in a mesh.
int MMGS_Unset_requiredVertex(MMG5_pMesh mesh, MMG5_int k)
Remove the "required" attribute from a vertex.
int MMGS_Unset_requiredTriangle(MMG5_pMesh mesh, MMG5_int k)
Remove the "required" attribute from a vertex.
int MMGS_Set_ithSol_inSolsAtVertices(MMG5_pSol sol, int i, double *s, MMG5_int pos)
Set a single element of one out of multiple solution fields that are defined on vertices.
int MMGS_Set_tensorSol(MMG5_pSol met, double m11, double m12, double m13, double m22, double m23, double m33, MMG5_int pos)
Set a single element of a tensor solution structure.
void MMGS_Init_parameters(MMG5_pMesh mesh)
Initialize the input parameters.
int MMGS_Set_requiredEdge(MMG5_pMesh mesh, MMG5_int k)
Assign the "required" attribute to an edge.
int MMGS_Set_ridge(MMG5_pMesh mesh, MMG5_int k)
Assign the "ridge" attribute to an edge.
int MMGS_GetByIdx_vertex(MMG5_pMesh mesh, double *c0, double *c1, double *c2, MMG5_int *ref, int *isCorner, int *isRequired, MMG5_int idx)
Get the coordinates and reference of a specific vertex in the mesh.
int MMGS_Get_scalarSol(MMG5_pSol met, double *s)
Get the next element of a scalar solution structure.
int MMGS_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
Set the name of the input solution file.
int MMGS_Get_ithSol_inSolsAtVertices(MMG5_pSol sol, int i, double *s, MMG5_int pos)
Get one out of several solutions at a specific vertex.
int MMGS_Set_edge(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int ref, MMG5_int pos)
Set the vertices and reference of one edge in the mesh.
int MMGS_Get_iparameter(MMG5_pMesh mesh, MMG5_int iparam)
Get the value of an integer parameter of the remesher.
int MMGS_Set_lsBaseReference(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int br)
Set a new level-set base reference.
int MMGS_Set_corner(MMG5_pMesh mesh, MMG5_int k)
Assign the "corner" attribute to a vertex.
int MMGS_Set_scalarSol(MMG5_pSol met, double s, MMG5_int pos)
Set a single element of a scalar solution structure.
int MMGS_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, MMG5_int np, int typSol)
Initialize an array of solution fields: set dimension, types and number of fields.
int MMGS_Get_solsAtVerticesSize(MMG5_pMesh mesh, MMG5_pSol *sol, int *nsols, MMG5_int *np, int *typSol)
Get the number of elements, type, and dimensions of several solutions defined on vertices.
int MMGS_Get_scalarSols(MMG5_pSol met, double *s)
Get all elements of a scalar solution structure.
int MMGS_Unset_corner(MMG5_pMesh mesh, MMG5_int k)
Remove the "corner" attribute from a vertex.
int MMGS_Set_vectorSols(MMG5_pSol met, double *sols)
Set all elements of a vector solution structure.
int MMGS_Set_multiMat(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int ref, int split, MMG5_int rin, MMG5_int rout)
Set the reference mapping for the elements of reference ref in level-set discretization mode.
int MMGS_Get_triangle(MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *ref, int *isRequired)
Get the vertices, reference, and required attribute of the next triangle in the mesh.
int MMGS_Set_ithSols_inSolsAtVertices(MMG5_pSol sol, int i, double *s)
Set all elements of one out of multiple solution fields that are defined on vertices.
int MMGS_Set_meshSize(MMG5_pMesh mesh, MMG5_int np, MMG5_int nt, MMG5_int na)
Set the number of vertices, triangles and edges of the mesh and allocate the associated tables.
int MMGS_Set_vectorSol(MMG5_pSol met, double vx, double vy, double vz, MMG5_int pos)
Set a single element of a vector solution structure.
int MMGS_Set_triangle(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int ref, MMG5_int pos)
Set the coordinates and reference of a single triangle.
int MMGS_Get_normalAtVertex(MMG5_pMesh mesh, MMG5_int k, double *n0, double *n1, double *n2)
Get the normal orientation at an edge.
int MMGS_Get_vertex(MMG5_pMesh mesh, double *c0, double *c1, double *c2, MMG5_int *ref, int *isCorner, int *isRequired)
Get the coordinates c0, c1,c2 and reference ref of the next vertex of mesh.
double MMGS_Get_triangleQuality(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k)
Get the quality measure of a triangle.
int MMGS_Chk_meshData(MMG5_pMesh mesh, MMG5_pSol met)
Check if the numbers of given entities match with mesh and solution size and check mesh data.
int MMGS_Set_tensorSols(MMG5_pSol met, double *sols)
Set all elements of a tensor solution structure.
int MMGS_Unset_ridge(MMG5_pMesh mesh, MMG5_int k)
Remove the "ridge" attribute from an edge.
int MMGS_Set_normalAtVertex(MMG5_pMesh mesh, MMG5_int k, double n0, double n1, double n2)
Set the normal orientation at a single vertex.
int MMGS_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
Set the name of the output mesh file.
int MMGS_Get_triangles(MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs, int *areRequired)
Get the vertices, references, and required attributes of all triangles in the mesh.
int MMGS_Set_dparameter(MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val)
set a real-valued parameter of the remesher
int MMGS_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
Set the name of the output solution file.
MMG5_pMesh MMG5_pSol * sol
MMG5_pMesh char * filename
MMG5_pMesh char int int * retval
strncpy(tmp, meshin, *strlen0)
int ier
tmp[*strlen0]
const int starter
mmgs_loadmesh
MMG5_pMesh char int * strlen0
va_start(argptr, starter)
mmgs_free_structures
MMG5_pMesh char * meshin
MMG5_pMesh * mesh
va_end(argptr)
const int va_list argptr
mmgs_init_parameters
int MMGS_loadSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Load a metric field (or other solution) in medit's .sol format.
Definition: inout_s.c:1312
int MMGS_loadAllSols(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Load one or more solutions in a solution file in medit file format.
Definition: inout_s.c:1387
int MMGS_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Load a mesh and possibly a solution in .msh format from file.
Definition: inout_s.c:645
int MMGS_saveMesh(MMG5_pMesh mesh, const char *filename)
Save a mesh in .mesh or .meshb format.
Definition: inout_s.c:842
int MMGS_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Write mesh and optionally one data field in MSH file format (.msh extension).
Definition: inout_s.c:1302
int MMGS_saveGenericMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Save mesh data in a file whose format depends on the filename extension.
Definition: inout_s.c:1609
int MMGS_loadMshMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Load a mesh and all data from a file in MSH format.
Definition: inout_s.c:706
int MMGS_saveSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Write an isotropic or anisotropic metric in medit file format.
Definition: inout_s.c:1483
int MMGS_loadMesh(MMG5_pMesh mesh, const char *filename)
Load a mesh (in .mesh/.mesb format) from file.
Definition: inout_s.c:41
int MMGS_saveAllSols(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Save one or more solutions in a solution file in medit file format.
Definition: inout_s.c:1520
int MMGS_loadGenericMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, const char *filename)
Load a mesh and all data from a file. The format will be guessed from the filename extension.
Definition: inout_s.c:764
int MMGS_saveVtuMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Write a mesh and multiple data fields in vtu Vtk file format (.vtu extension).
Definition: inoutcpp_s.cpp:330
int MMGS_loadVtuMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, const char *filename)
Load a mesh and possibly data in VTU (VTK) format from file.
Definition: inoutcpp_s.cpp:235
int MMGS_saveVtkMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Save a mesh and multiple data fields in VTK format.
Definition: inoutcpp_s.cpp:365
int MMGS_saveVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Write mesh and optionally one data field vtu Vtk file format (.vtu extension).
Definition: inoutcpp_s.cpp:315
int MMGS_loadVtpMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, const char *filename)
Load a mesh and optionally a solution in VTP (VTK) format from file.
Definition: inoutcpp_s.cpp:75
int MMGS_saveVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Write mesh and optionally one data field in Vtk file format (.vtk extension).
Definition: inoutcpp_s.cpp:350
int MMGS_loadVtpMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Load a mesh and multiple solutions in VTP (VTK) format from file.
Definition: inoutcpp_s.cpp:119
int MMGS_loadVtuMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Load a mesh and multiple solutions in VTU (VTK) format from file.
Definition: inoutcpp_s.cpp:279
int MMGS_loadVtkMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Load a mesh and multiple solutions in VTK format from file.
Definition: inoutcpp_s.cpp:199
int MMGS_loadVtkMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, const char *filename)
Load a mesh and possibly data in VTK format from file.
Definition: inoutcpp_s.cpp:155
int MMGS_saveVtpMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Save a mesh and optionally one data field in VTP format.
Definition: inoutcpp_s.cpp:385
int MMGS_saveVtpMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Save a mesh and multiple data fields in VTP format.
Definition: inoutcpp_s.cpp:400
API headers and documentation for the mmgs library.
LIBMMGS_EXPORT int MMGS_Clean_isoSurf(MMG5_pMesh mesh)
Clean data (triangles and edges) linked to isosurface.
int MMGS_Init_mesh_var(va_list argptr)
Definition: variadic_s.c:149
int MMGS_Free_all_var(va_list argptr)
Definition: variadic_s.c:225
int MMGS_Free_names_var(va_list argptr)
Definition: variadic_s.c:426
int MMGS_Free_structures_var(va_list argptr)
Definition: variadic_s.c:324
#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:613