Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
API_functionsf_2d.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 "libmmg2d.h"
42#include "libmmg2d_private.h"
43
47FORTRAN_VARIADIC ( MMG2D_INIT_MESH, mmg2d_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
67 (mesh,sol)) {
69 return;
70}
74FORTRAN_NAME(MMG2D_INIT_PARAMETERS, mmg2d_init_parameters,(MMG5_pMesh *mesh),
75 (mesh)) {
77 return;
78}
82FORTRAN_NAME(MMG2D_SET_INPUTMESHNAME, mmg2d_set_inputmeshname,
83 (MMG5_pMesh *mesh, char* meshin, int *strlen0, int* retval),
85 char *tmp = NULL;
86
87 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
89 tmp[*strlen0] = '\0';
92
93 return;
94}
95
99FORTRAN_NAME(MMG2D_SET_INPUTSOLNAME, mmg2d_set_inputsolname,
100 (MMG5_pMesh *mesh,MMG5_pSol *sol, char* solin, int* strlen0, int* retval),
101 (mesh,sol,solin,strlen0,retval)) {
102
103 char *tmp = NULL;
104
105 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
106 strncpy(tmp,solin,*strlen0);
107 tmp[*strlen0] = '\0';
110
111 return;
112}
113
117FORTRAN_NAME(MMG2D_SET_INPUTPARAMNAME, mmg2d_set_inputparamname,
118 (MMG5_pMesh *mesh,char* fparamin, int* strlen0, int* retval),
119 (mesh,fparamin,strlen0,retval)) {
120
121 char *tmp = NULL;
122
123 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
124 strncpy(tmp,fparamin,*strlen0);
125 tmp[*strlen0] = '\0';
128
129 return;
130}
131
136FORTRAN_NAME(MMG2D_SET_OUTPUTMESHNAME,mmg2d_set_outputmeshname,
137 (MMG5_pMesh *mesh, char* meshout, int* strlen0,int* retval),
138 (mesh,meshout,strlen0,retval)){
139 char *tmp = NULL;
140
141 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
142 strncpy(tmp,meshout,*strlen0);
143 tmp[*strlen0] = '\0';
146
147 return;
148}
149
153FORTRAN_NAME(MMG2D_SET_OUTPUTSOLNAME,mmg2d_set_outputsolname,
154 (MMG5_pMesh *mesh,MMG5_pSol *sol, char* solout,int* strlen0, int* retval),
155 (mesh,sol,solout,strlen0,retval)){
156 char *tmp = NULL;
157
158 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
159 strncpy(tmp,solout,*strlen0);
160 tmp[*strlen0] = '\0';
163
164 return;
165}
166
170FORTRAN_NAME(MMG2D_SET_IPARAMETER,mmg2d_set_iparameter,
171 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *iparam, MMG5_int *val, int* retval),
172 (mesh,sol,iparam,val,retval)){
173 *retval = MMG2D_Set_iparameter(*mesh,*sol,*iparam,*val);
174 return;
175}
179FORTRAN_NAME(MMG2D_SET_DPARAMETER,mmg2d_set_dparameter,
180 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *dparam, double *val, int* retval),
181 (mesh,sol,dparam,val,retval)){
182 *retval = MMG2D_Set_dparameter(*mesh,*sol,*dparam,*val);
183 return;
184}
185
189FORTRAN_NAME(MMG2D_SET_LOCALPARAMETER,mmg2d_set_localparameter,
190 (MMG5_pMesh *mesh,MMG5_pSol *sol, int *typ, MMG5_int *ref,
191 double *hmin, double *hmax, double *hausd, int* retval),
192 (mesh,sol,typ,ref,hmin, hmax, hausd,retval)){
193 *retval = MMG2D_Set_localParameter(*mesh,*sol,*typ,*ref,*hmin,*hmax,*hausd);
194 return;
195}
196
197
201FORTRAN_NAME(MMG2D_SET_MULTIMAT,mmg2d_set_multimat,
202 (MMG5_pMesh *mesh,MMG5_pSol *sol, MMG5_int *ref,int *split,
203 MMG5_int* rin,MMG5_int* rex, int* retval),
204 (mesh,sol,ref,split,rin,rex,retval)){
205 *retval = MMG2D_Set_multiMat(*mesh,*sol,*ref,*split,*rin,*rex);
206 return;
207}
208
212FORTRAN_NAME(MMG2D_SET_LSBASEREFERENCE,mmg2d_set_lsbasereference,
213 (MMG5_pMesh *mesh,MMG5_pSol *sol, int *br, int* retval),
214 (mesh,sol,br,retval)){
216 return;
217}
218
222FORTRAN_NAME(MMG2D_SET_MESHSIZE,mmg2d_set_meshsize,
223 (MMG5_pMesh *mesh, MMG5_int *np, MMG5_int *nt, MMG5_int *nquad, MMG5_int *na, int *retval),
224 (mesh,np,nt,nquad,na,retval)) {
225 *retval = MMG2D_Set_meshSize(*mesh,*np,*nt,*nquad,*na);
226 return;
227}
231FORTRAN_NAME(MMG2D_SET_SOLSIZE,mmg2d_set_solsize,
232 (MMG5_pMesh *mesh, MMG5_pSol *sol, int* typEntity,
233 MMG5_int* np, int* typSol, int* retval),
234 (mesh, sol, typEntity, np, typSol, retval)) {
235 *retval = MMG2D_Set_solSize(*mesh,*sol,*typEntity,*np,*typSol);
236 return;
237}
241FORTRAN_NAME(MMG2D_SET_SOLSATVERTICESSIZE,mmg2d_set_solsatverticessize,
242 (MMG5_pMesh *mesh, MMG5_pSol *sol,int* nsols,
243 MMG5_int* nentities, int* typSol, int* retval),
244 (mesh, sol, nsols, nentities, typSol, retval)) {
245 *retval = MMG2D_Set_solsAtVerticesSize(*mesh,sol,*nsols,*nentities,typSol);
246 return;
247}
248
252FORTRAN_NAME(MMG2D_GET_SOLSIZE,mmg2d_get_solsize,
253 (MMG5_pMesh *mesh, MMG5_pSol *sol, int* typEntity, MMG5_int* np, int* typSol, int* retval),
254 (mesh,sol,typEntity,np,typSol,retval)) {
255
256 *retval = MMG2D_Get_solSize(*mesh,*sol,typEntity,np,typSol);
257 return;
258}
259
263FORTRAN_NAME(MMG2D_GET_SOLSATVERTICESSIZE,mmg2d_get_solsatverticessize,
264 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *nsols,
265 MMG5_int* nentities, int* typSol, int* retval),
266 (mesh,sol,nsols,nentities,typSol,retval)) {
267
268 *retval = MMG2D_Get_solsAtVerticesSize(*mesh,sol,nsols,nentities,typSol);
269 return;
270}
271
275FORTRAN_NAME(MMG2D_SET_VERTEX,mmg2d_set_vertex,
276 (MMG5_pMesh *mesh, double* c0, double* c1, MMG5_int* ref,
277 MMG5_int* pos, int* retval),
278 (mesh,c0,c1,ref,pos,retval)) {
279
280 *retval = MMG2D_Set_vertex(*mesh,*c0,*c1,*ref,*pos);
281 return;
282}
286FORTRAN_NAME(MMG2D_SET_CORNER,mmg2d_set_corner,(MMG5_pMesh *mesh, MMG5_int *k, int* retval),
287 (mesh,k,retval)) {
289 return;
290}
294FORTRAN_NAME(MMG2D_UNSET_CORNER,mmg2d_unset_corner,(MMG5_pMesh *mesh, MMG5_int *k, int* retval),
295 (mesh,k,retval)) {
297 return;
298}
299
303FORTRAN_NAME(MMG2D_SET_REQUIREDVERTEX,mmg2d_set_requiredvertex,
304 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
305 (mesh,k,retval)) {
307 return;
308}
309
313FORTRAN_NAME(MMG2D_UNSET_REQUIREDVERTEX,mmg2d_unset_requiredvertex,
314 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
315 (mesh,k,retval)) {
317 return;
318}
319
323FORTRAN_NAME(MMG2D_GET_VERTEX,mmg2d_get_vertex,
324 (MMG5_pMesh *mesh,double* c0, double* c1, MMG5_int* ref,
325 int* isCorner, int* isRequired, int* retval),
326 (mesh,c0,c1,ref,isCorner,isRequired, retval)) {
327 *retval = MMG2D_Get_vertex(*mesh,c0,c1,ref,isCorner,isRequired);
328 return;
329}
333FORTRAN_NAME(MMG2D_GETBYIDX_VERTEX,mmg2d_getbyidx_vertex,
334 (MMG5_pMesh *mesh, double* c0, double* c1, MMG5_int* ref,
335 int* isCorner, int* isRequired, MMG5_int* idx,int* retval),
336 (mesh,c0,c1,ref,isCorner,isRequired,idx, retval)) {
337 *retval = MMG2D_GetByIdx_vertex(*mesh,c0,c1,ref,isCorner,isRequired,*idx);
338 return;
339}
340
344FORTRAN_NAME(MMG2D_SET_VERTICES,mmg2d_set_vertices,
345 (MMG5_pMesh *mesh, double* vertices, MMG5_int* refs, int* retval),
346 (mesh,vertices,refs,retval)) {
347
348 *retval = MMG2D_Set_vertices(*mesh,vertices,refs);
349 return;
350}
351
352
356FORTRAN_NAME(MMG2D_GET_VERTICES,mmg2d_get_vertices,
357 (MMG5_pMesh *mesh, double* vertices, MMG5_int* refs,
358 int* areCorners, int* areRequired, int* retval),
359 (mesh,vertices,refs,areCorners,areRequired, retval)) {
360 *retval = MMG2D_Get_vertices(*mesh,vertices,refs,areCorners,areRequired);
361 return;
362}
363
364
368FORTRAN_NAME(MMG2D_SET_TRIANGLE,mmg2d_set_triangle,
369 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int* ref,MMG5_int* pos,
370 int* retval),
371 (mesh,v0,v1,v2,ref,pos,retval)) {
372 *retval = MMG2D_Set_triangle(*mesh, *v0, *v1, *v2, *ref, *pos);
373 return;
374}
378FORTRAN_NAME(MMG2D_SET_REQUIREDTRIANGLE,mmg2d_set_requiredtriangle,
379 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
380 (mesh,k,retval)) {
382 return;
383}
387FORTRAN_NAME(MMG2D_UNSET_REQUIREDTRIANGLE,mmg2d_unset_requiredtriangle,
388 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
389 (mesh,k,retval)) {
391 return;
392}
393
397FORTRAN_NAME(MMG2D_GET_TRIANGLE,mmg2d_get_triangle,
398 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int* ref
399 ,int* isRequired, int* retval),
400 (mesh,v0,v1,v2,ref,isRequired,retval)) {
401 *retval = MMG2D_Get_triangle(*mesh,v0,v1,v2,ref,isRequired);
402 return;
403}
407FORTRAN_NAME(MMG2D_SET_TRIANGLES,mmg2d_set_triangles,
408 (MMG5_pMesh *mesh, MMG5_int* tria, MMG5_int* refs,
409 int* retval),
410 (mesh,tria,refs,retval)) {
411 *retval = MMG2D_Set_triangles(*mesh, tria, refs);
412 return;
413}
414
418FORTRAN_NAME(MMG2D_GET_TRIANGLES,mmg2d_get_triangles,
419 (MMG5_pMesh *mesh, MMG5_int* tria, MMG5_int* refs,int* areRequired,
420 int* retval),
421 (mesh,tria,refs,areRequired,retval)) {
422 *retval = MMG2D_Get_triangles(*mesh,tria,refs,areRequired);
423 return;
424}
425
429FORTRAN_NAME(MMG2D_SET_QUADRILATERAL,mmg2d_set_quadrilateral,
430 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int *v3,MMG5_int* ref,MMG5_int* pos,
431 int* retval),
432 (mesh,v0,v1,v2,v3,ref,pos,retval)) {
433 *retval = MMG2D_Set_quadrilateral(*mesh, *v0, *v1, *v2, *v3, *ref, *pos);
434 return;
435}
439FORTRAN_NAME(MMG2D_GET_QUADRILATERAL,mmg2d_get_quadrilateral,
440 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int *v3, MMG5_int* ref
441 ,int* isRequired, int* retval),
442 (mesh,v0,v1,v2,v3,ref,isRequired,retval)) {
443 *retval = MMG2D_Get_quadrilateral(*mesh,v0,v1,v2,v3,ref,isRequired);
444 return;
445}
449FORTRAN_NAME(MMG2D_SET_QUADRILATERALS,mmg2d_set_quadrilaterals,
450 (MMG5_pMesh *mesh, MMG5_int* quadra, MMG5_int* refs,
451 int* retval),
452 (mesh,quadra,refs,retval)) {
453 *retval = MMG2D_Set_quadrilaterals(*mesh, quadra, refs);
454 return;
455}
456
460FORTRAN_NAME(MMG2D_GET_QUADRILATERALS,mmg2d_get_quadrilaterals,
461 (MMG5_pMesh *mesh, MMG5_int* quadra, MMG5_int* refs,int* areRequired,
462 int* retval),
463 (mesh,quadra,refs,areRequired,retval)) {
464 *retval = MMG2D_Get_quadrilaterals(*mesh,quadra,refs,areRequired);
465 return;
466}
467
471FORTRAN_NAME(MMG2D_SET_EDGE,mmg2d_set_edge,
472 (MMG5_pMesh *mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *ref, MMG5_int *pos, int* retval),
473 (mesh,v0,v1,ref,pos,retval)){
474 *retval = MMG2D_Set_edge(*mesh,*v0,*v1,*ref,*pos);
475 return;
476}
480FORTRAN_NAME(MMG2D_SET_REQUIREDEDGE,mmg2d_set_requirededge,
481 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
482 (mesh,k,retval)) {
484 return;
485}
489FORTRAN_NAME(MMG2D_UNSET_REQUIREDEDGE,mmg2d_unset_requirededge,
490 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
491 (mesh,k,retval)) {
493 return;
494}
498FORTRAN_NAME(MMG2D_SET_PARALLELEDGE,mmg2d_set_paralleledge,
499 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
500 (mesh,k,retval)) {
502 return;
503}
504
508FORTRAN_NAME(MMG2D_GET_EDGE,mmg2d_get_edge,(MMG5_pMesh *mesh, MMG5_int* e0, MMG5_int* e1, MMG5_int* ref
509 ,int* isRidge, int* isRequired, int* retval),
510 (mesh,e0,e1,ref,isRidge,isRequired,retval)) {
511 *retval = MMG2D_Get_edge(*mesh,e0,e1,ref,isRidge,isRequired);
512 return;
513}
517FORTRAN_NAME(MMG2D_SET_EDGES,mmg2d_set_edges,
518 (MMG5_pMesh *mesh, MMG5_int *edges, MMG5_int *refs, int* retval),
519 (mesh,edges,refs,retval)){
520 *retval = MMG2D_Set_edges(*mesh,edges,refs);
521 return;
522}
523
527FORTRAN_NAME(MMG2D_GET_EDGES,mmg2d_get_edges,(MMG5_pMesh *mesh, MMG5_int* edges,
528 MMG5_int* refs,int* areRidges,
529 int* areRequired, int* retval),
530 (mesh,edges,refs,areRidges,areRequired,retval)) {
531 *retval = MMG2D_Get_edges(*mesh,edges,refs,areRidges,areRequired);
532 return;
533}
534
538FORTRAN_NAME(MMG2D_GET_TRIANGLEQUALITY,mmg2d_get_trianglequality,
539 (MMG5_pMesh *mesh, MMG5_pSol *met, MMG5_int* k, double* retval),
540 (mesh,met,k,retval)) {
542 return;
543}
544
548FORTRAN_NAME(MMG2D_GET_MESHSIZE,mmg2d_get_meshsize,
549 (MMG5_pMesh *mesh, MMG5_int* np, MMG5_int* nt, MMG5_int *nquad, MMG5_int* na, int* retval),
550 (mesh,np,nt, nquad,na,retval)) {
551
552 *retval = MMG2D_Get_meshSize(*mesh,np,nt,nquad,na);
553 return;
554}
558FORTRAN_NAME(MMG2D_SET_SCALARSOL,mmg2d_set_scalarsol,
559 (MMG5_pSol *met, double *s, MMG5_int *pos, int* retval),
560 (met,s,pos,retval)) {
561 *retval = MMG2D_Set_scalarSol(*met,*s,*pos);
562 return;
563}
567FORTRAN_NAME(MMG2D_GET_SCALARSOL,mmg2d_get_scalarsol,
568 (MMG5_pSol *met, double* s, int* retval),
569 (met,s,retval)) {
570 *retval = MMG2D_Get_scalarSol(*met,s);
571 return;
572}
576FORTRAN_NAME(MMG2D_SET_SCALARSOLS,mmg2d_set_scalarsols,
577 (MMG5_pSol *met, double *s, int* retval),
578 (met,s,retval)) {
579 *retval = MMG2D_Set_scalarSols(*met,s);
580 return;
581}
582
586FORTRAN_NAME(MMG2D_GET_SCALARSOLS,mmg2d_get_scalarsols,
587 (MMG5_pSol *met, double* s, int* retval),
588 (met,s,retval)) {
589 *retval = MMG2D_Get_scalarSols(*met,s);
590 return;
591}
592
596FORTRAN_NAME(MMG2D_SET_VECTORSOL,mmg2d_set_vectorsol,
597 (MMG5_pSol *met, double *vx, double *vy,
598 MMG5_int *pos, int* retval),
599 (met,vx,vy,pos,retval)) {
600 *retval = MMG2D_Set_vectorSol(*met,*vx,*vy,*pos);
601 return;
602}
603
607FORTRAN_NAME(MMG2D_GET_VECTORSOL,mmg2d_get_vectorsol,
608 (MMG5_pSol *met, double* vx,double *vy, int* retval),
609 (met,vx,vy,retval)) {
610 *retval = MMG2D_Get_vectorSol(*met,vx,vy);
611 return;
612}
616FORTRAN_NAME(MMG2D_SET_VECTORSOLS,mmg2d_set_vectorsols,
617 (MMG5_pSol *met, double *sols, int* retval),
618 (met,sols,retval)) {
619 *retval = MMG2D_Set_vectorSols(*met,sols);
620 return;
621}
622
626FORTRAN_NAME(MMG2D_GET_VECTORSOLS,mmg2d_get_vectorsols,
627 (MMG5_pSol *met, double* sols, int* retval),
628 (met,sols,retval)) {
629 *retval = MMG2D_Get_vectorSols(*met,sols);
630 return;
631}
632
636FORTRAN_NAME(MMG2D_SET_TENSORSOL,mmg2d_set_tensorsol,
637 (MMG5_pSol *met, double *m11, double *m12, double *m22,
638 MMG5_int *pos, int* retval),
639 (met,m11,m12,m22,pos,retval)) {
640 *retval = MMG2D_Set_tensorSol(*met,*m11,*m12,*m22,*pos);
641 return;
642}
646FORTRAN_NAME(MMG2D_GET_TENSORSOL,mmg2d_get_tensorsol,
647 (MMG5_pSol *met, double* m11,double *m12, double *m22,
648 int* retval),
649 (met,m11,m12,m22,retval)) {
650 *retval = MMG2D_Get_tensorSol(*met,m11,m12,m22);
651 return;
652}
656FORTRAN_NAME(MMG2D_SET_TENSORSOLS,mmg2d_set_tensorsols,
657 (MMG5_pSol *met, double* sols,int* retval),
658 (met,sols,retval)) {
659 *retval = MMG2D_Set_tensorSols(*met,sols);
660 return;
661}
662
666FORTRAN_NAME(MMG2D_GET_TENSORSOLS,mmg2d_get_tensorsols,
667 (MMG5_pSol *met, double* sols, int* retval),
668 (met,sols,retval)) {
669 *retval = MMG2D_Get_tensorSols(*met,sols);
670 return;
671}
675FORTRAN_NAME(MMG2D_SET_ITHSOL_INSOLSATVERTICES,mmg2d_set_ithsol_insolsatvertices,
676 (MMG5_pSol *sol, MMG5_int *i,double *s,MMG5_int *pos, int* retval),
677 (sol,i,s,pos,retval)) {
679 return;
680}
681
685FORTRAN_NAME(MMG2D_GET_ITHSOL_INSOLSATVERTICES,mmg2d_get_ithsol_insolsatvertices,
686 (MMG5_pSol *sol, MMG5_int* i,double *s,MMG5_int *pos, int* retval),
687 (sol,i,s,pos,retval)) {
689 return;
690}
691
692
696FORTRAN_NAME(MMG2D_SET_ITHSOLS_INSOLSATVERTICES,mmg2d_set_ithsols_insolsatvertices,
697 (MMG5_pSol *sol, MMG5_int *i,double *s, int* retval),
698 (sol,i,s,retval)) {
700 return;
701}
702
706FORTRAN_NAME(MMG2D_GET_ITHSOLS_INSOLSATVERTICES,mmg2d_get_ithsols_insolsatvertices,
707 (MMG5_pSol *sol, MMG5_int* i,double *s, int* retval),
708 (sol,i,s,retval)) {
710 return;
711}
712
716FORTRAN_NAME(MMG2D_CHK_MESHDATA,mmg2d_chk_meshdata,
717 (MMG5_pMesh *mesh,MMG5_pSol *met, int* retval),
718 (mesh,met,retval)) {
720 return;
721}
722
726FORTRAN_NAME(MMG2D_FREE_ALLSOLS,mmg2d_free_allsols,
728 (mesh,sol,retval)){
729
731
732 return;
733}
734
735
739FORTRAN_VARIADIC(MMG2D_FREE_ALL,mmg2d_free_all,
740 (const int starter,...),
741 va_list argptr;
742 int ier;
743
745
747
748 va_end(argptr);
749
750 if ( !ier ) exit(EXIT_FAILURE);
751
752 return;
753 )
754
759 (const int starter,...),
760 va_list argptr;
761 int ier;
762
764
766
768
769 if ( !ier ) exit(EXIT_FAILURE);
770
771 return;
772 )
773
777FORTRAN_VARIADIC(MMG2D_FREE_NAMES,mmg2d_free_names,
778 (const int starter,...),
779 va_list argptr;
780 int ier;
781
783
785
786 va_end(argptr);
787
788 if ( !ier ) exit(EXIT_FAILURE);
789
790 return;
791 )
792
797
798 char *tmp = NULL;
799
800 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
802 tmp[*strlen0] = '\0';
803
806
807 return;
808}
809
813FORTRAN_NAME(MMG2D_LOADVTKMESH,mmg2d_loadvtkmesh,
814 (MMG5_pMesh *mesh, MMG5_pSol *met, MMG5_pSol *sol, char* filename, int *strlen0,int* retval),
816 char *tmp = NULL;
817
818 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
820 tmp[*strlen0] = '\0';
821
823
825
826 return;
827}
831FORTRAN_NAME(MMG2D_LOADVTKMESH_AND_ALLDATA,mmg2d_loadvtkmesh_and_alldata,
832 (MMG5_pMesh *mesh, MMG5_pSol *sol, char* filename, int *strlen0,int* retval),
834 char *tmp = NULL;
835
836 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
838 tmp[*strlen0] = '\0';
839
841
843
844 return;
845}
849FORTRAN_NAME(MMG2D_LOADVTPMESH,mmg2d_loadvtpmesh,
850 (MMG5_pMesh *mesh, MMG5_pSol *met, MMG5_pSol *sol, char* filename, int *strlen0,int* retval),
852 char *tmp = NULL;
853
854 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
856 tmp[*strlen0] = '\0';
857
859
861
862 return;
863}
867FORTRAN_NAME(MMG2D_LOADVTPMESH_AND_ALLDATA,mmg2d_loadvtpmesh_and_alldata,
868 (MMG5_pMesh *mesh, MMG5_pSol *sol, char* filename, int *strlen0,int* retval),
870 char *tmp = NULL;
871
872 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
874 tmp[*strlen0] = '\0';
875
877
879
880 return;
881}
885FORTRAN_NAME(MMG2D_LOADVTUMESH,mmg2d_loadvtumesh,
886 (MMG5_pMesh *mesh, MMG5_pSol *met, MMG5_pSol *sol, char* filename, int *strlen0,int* retval),
888 char *tmp = NULL;
889
890 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
892 tmp[*strlen0] = '\0';
893
895
897
898 return;
899}
903FORTRAN_NAME(MMG2D_LOADVTUMESH_AND_ALLDATA,mmg2d_loadvtumesh_and_alldata,
904 (MMG5_pMesh *mesh, MMG5_pSol *sol, char* filename, int *strlen0,int* retval),
906 char *tmp = NULL;
907
908 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
910 tmp[*strlen0] = '\0';
911
913
915
916 return;
917}
918
922FORTRAN_NAME(MMG2D_LOADMSHMESH,mmg2d_loadmshmesh,
923 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
925 char *tmp = NULL;
926
927 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
929 tmp[*strlen0] = '\0';
930
932
934
935 return;
936}
937
941FORTRAN_NAME(MMG2D_LOADGENERICMESH,mmg2d_loadgenericmesh,
942 (MMG5_pMesh *mesh, MMG5_pSol *met, MMG5_pSol *sol, char* filename, int *strlen0,int* retval),
944 char *tmp = NULL;
945
946 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
948 tmp[*strlen0] = '\0';
949
951
953
954 return;
955}
956
960FORTRAN_NAME(MMG2D_LOADMSHMESH_AND_ALLDATA,mmg2d_loadmshmesh_and_alldata,
961 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
963 char *tmp = NULL;
964
965 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
967 tmp[*strlen0] = '\0';
968
970
972
973 return;
974}
975
979FORTRAN_NAME(MMG2D_SAVEMESH,mmg2d_savemesh,(MMG5_pMesh *mesh,char *meshin,int *strlen0, int* retval),
981 char *tmp = NULL;
982
983 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
985 tmp[*strlen0] = '\0';
988
989 return;
990}
994FORTRAN_NAME(MMG2D_SAVEVTKMESH,mmg2d_savevtkmesh,
996 int* retval),
998 char *tmp = NULL;
999
1000 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1002 tmp[*strlen0] = '\0';
1003
1005
1007
1008 return;
1009}
1013FORTRAN_NAME(MMG2D_SAVEVTKMESH_AND_ALLDATA,mmg2d_savevtkmesh_and_alldata,
1014 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1015 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}
1029
1033FORTRAN_NAME(MMG2D_SAVEVTUMESH,mmg2d_savevtumesh,
1034 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1035 int* retval),
1037 char *tmp = NULL;
1038
1039 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1041 tmp[*strlen0] = '\0';
1042
1044
1046
1047 return;
1048}
1052FORTRAN_NAME(MMG2D_SAVEVTUMESH_AND_ALLDATA,mmg2d_savevtumesh_and_alldata,
1053 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1054 int* retval),
1056 char *tmp = NULL;
1057
1058 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1060 tmp[*strlen0] = '\0';
1061
1063
1065
1066 return;
1067}
1068
1072FORTRAN_NAME(MMG2D_SAVEVTPMESH,mmg2d_savevtpmesh,
1073 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1074 int* retval),
1076 char *tmp = NULL;
1077
1078 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1080 tmp[*strlen0] = '\0';
1081
1083
1085
1086 return;
1087}
1091FORTRAN_NAME(MMG2D_SAVEVTPMESH_AND_ALLDATA,mmg2d_savevtpmesh_and_alldata,
1092 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1093 int* retval),
1095 char *tmp = NULL;
1096
1097 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1099 tmp[*strlen0] = '\0';
1100
1102
1104
1105 return;
1106}
1107
1111FORTRAN_NAME(MMG2D_SAVEMSHMESH,mmg2d_savemshmesh,
1112 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1113 int* retval),
1115 char *tmp = NULL;
1116
1117 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1119 tmp[*strlen0] = '\0';
1120
1122
1124
1125 return;
1126}
1127
1131FORTRAN_NAME(MMG2D_SAVEMSHMESH_AND_ALLDATA,mmg2d_savemshmesh_and_alldata,
1132 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1133 int* retval),
1135 char *tmp = NULL;
1136
1137 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1139 tmp[*strlen0] = '\0';
1140
1142
1144
1145 return;
1146}
1147
1151FORTRAN_NAME(MMG2D_SAVETETGENMESH,mmg2d_savetetgenmesh,(MMG5_pMesh *mesh,char *meshin,int *strlen0, int* retval),
1153 char *tmp = NULL;
1154
1155 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1157 tmp[*strlen0] = '\0';
1160
1161 return;
1162}
1163
1167FORTRAN_NAME(MMG2D_SAVEGENERICMESH,mmg2d_savegenericmesh,
1168 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1170 char *tmp = NULL;
1171
1172 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1174 tmp[*strlen0] = '\0';
1175
1177
1179
1180 return;
1181}
1182
1186FORTRAN_NAME(MMG2D_LOADSOL,mmg2d_loadsol,
1187 (MMG5_pMesh *mesh,MMG5_pSol *met,char *meshin,int* strlen0,int* retval),
1188 (mesh,met,meshin,strlen0,retval)){
1189 char *tmp = NULL;
1190
1191 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1193 tmp[*strlen0] = '\0';
1194
1195 *retval = MMG2D_loadSol(*mesh,*met,tmp);
1197
1198 return;
1199}
1200
1204FORTRAN_NAME(MMG2D_LOADALLSOLS,mmg2d_loadallsols,
1205 (MMG5_pMesh *mesh,MMG5_pSol *sol,char *meshin,int* strlen0,int* retval),
1207 char *tmp = NULL;
1208
1209 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1211 tmp[*strlen0] = '\0';
1212
1215
1216 return;
1217}
1218
1219
1223FORTRAN_NAME(MMG2D_SAVESOL,mmg2d_savesol,(MMG5_pMesh *mesh,MMG5_pSol *met,
1224 char *meshin,int *strlen0,int* retval),
1225 (mesh,met,meshin,strlen0,retval)){
1226 char *tmp = NULL;
1227
1228 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1230 tmp[*strlen0] = '\0';
1231
1232 *retval = MMG2D_saveSol(*mesh,*met,tmp);
1234
1235 return;
1236}
1237
1241FORTRAN_NAME(MMG2D_SAVEALLSOLS,mmg2d_saveallsols,(MMG5_pMesh *mesh,MMG5_pSol *sol,
1242 char *meshin,int *strlen0,int* retval),
1244 char *tmp = NULL;
1245
1246 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1248 tmp[*strlen0] = '\0';
1249
1252
1253 return;
1254}
int MMG2D_Set_lsBaseReference(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int br)
Set level-set base reference.
int MMG2D_Set_scalarSol(MMG5_pSol met, double s, MMG5_int pos)
Set a single value of a sol structure.
int MMG2D_Get_ithSols_inSolsAtVertices(MMG5_pSol sol, int i, double *s)
Get one out of several scalar solutions at all vertices in the mesh.
void MMG2D_Init_parameters(MMG5_pMesh mesh)
Initialize the input parameters (stored in the Info structure).
void MMG2D_Init_fileNames(MMG5_pMesh mesh, MMG5_pSol sol)
Initialize file names to their default values.
int MMG2D_Set_quadrilateral(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int v3, MMG5_int ref, MMG5_int pos)
Set the vertices and reference of a single quadrangle in a mesh.
int MMG2D_Unset_requiredEdge(MMG5_pMesh mesh, MMG5_int k)
Remove the "required" attribute from edge k.
int MMG2D_Set_vertex(MMG5_pMesh mesh, double c0, double c1, MMG5_int ref, MMG5_int pos)
Set the coordinates and reference of a single vertex.
int MMG2D_Set_scalarSols(MMG5_pSol met, double *s)
Set all values of a scalar sol structure.
int MMG2D_Get_vectorSols(MMG5_pSol met, double *sols)
Get all elements of a vector sol structure.
int MMG2D_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, MMG5_int val)
Set integer parameter iparam to value val.
int MMG2D_Set_meshSize(MMG5_pMesh mesh, MMG5_int np, MMG5_int nt, MMG5_int nquad, MMG5_int na)
Set the numbers of entities in the mesh.
int MMG2D_Set_requiredEdge(MMG5_pMesh mesh, MMG5_int k)
Give edge k the "required" attribute.
int MMG2D_Get_quadrilateral(MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *v3, MMG5_int *ref, int *isRequired)
Get the vertices and reference of the next quadrangle of the mesh.
int MMG2D_Set_tensorSol(MMG5_pSol met, double m11, double m12, double m22, MMG5_int pos)
Set a single element of a tensor sol structure.
int MMG2D_Get_vectorSol(MMG5_pSol met, double *vx, double *vy)
Get the next element of a vector sol structure.
int MMG2D_Set_edge(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int ref, MMG5_int pos)
Define a single edge.
int MMG2D_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 MMG2D_Unset_requiredTriangle(MMG5_pMesh mesh, MMG5_int k)
Remove the "required" attribute from triangle k.
int MMG2D_Set_triangles(MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs)
Set the vertices and references of all triangles in a mesh.
int MMG2D_GetByIdx_vertex(MMG5_pMesh mesh, double *c0, double *c1, MMG5_int *ref, int *isCorner, int *isRequired, MMG5_int idx)
Get the coordinates and reference of a specific vertex in the mesh.
int MMG2D_Free_allSols(MMG5_pMesh mesh, MMG5_pSol *sol)
Deallocate an array of solution fields.
int MMG2D_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 MMG2D_Get_scalarSol(MMG5_pSol met, double *s)
Get the scalar solution value s of next element of a solution.
int MMG2D_Get_vertices(MMG5_pMesh mesh, double *vertices, MMG5_int *refs, int *areCorners, int *areRequired)
Get the coordinates and references of all vertices in the mesh.
int MMG2D_Unset_corner(MMG5_pMesh mesh, MMG5_int k)
Remove the "corner" attribute from a vertex.
int MMG2D_Get_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int *typEntity, MMG5_int *np, int *typSol)
Get the number of solutions, their dimension and their type.
int MMG2D_Get_tensorSol(MMG5_pSol met, double *m11, double *m12, double *m22)
Get the next element of a tensor sol structure.
int MMG2D_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, MMG5_int np, int typSol)
Set the size and type of a solution field.
int MMG2D_Chk_meshData(MMG5_pMesh mesh, MMG5_pSol met)
Check if the number of given entities match with mesh and sol size.
int MMG2D_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
Set the name of the input solution file.
int MMG2D_Set_tensorSols(MMG5_pSol met, double *sols)
Set all elements of a tensor sol structure.
int MMG2D_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
Set the name of the input mesh.
int MMG2D_Get_vertex(MMG5_pMesh mesh, double *c0, double *c1, MMG5_int *ref, int *isCorner, int *isRequired)
Get the coordinates and reference ref of the next vertex of a mesh.
int MMG2D_Get_scalarSols(MMG5_pSol met, double *s)
Get all elements of a scalar sol structure.
int MMG2D_Set_vectorSol(MMG5_pSol met, double vx, double vy, MMG5_int pos)
Set a single vector value in a sol structure.
int MMG2D_Get_edge(MMG5_pMesh mesh, MMG5_int *e0, MMG5_int *e1, MMG5_int *ref, int *isRidge, int *isRequired)
Get the vertices and reference of the next edge in the mesh.
double MMG2D_Get_triangleQuality(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k)
Get the quality measure of a single triangle in the mesh.
int MMG2D_Set_triangle(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int ref, MMG5_int pos)
Set the vertices and reference of a single triangle in a mesh.
int MMG2D_Set_solsAtVerticesSize(MMG5_pMesh mesh, MMG5_pSol *sol, int nsols, MMG5_int np, int *typSol)
Initialize an array of solutions field defined at vertices.
int MMG2D_Get_tensorSols(MMG5_pSol met, double *sols)
Get all elements of a tensor sol structure.
int MMG2D_Get_meshSize(MMG5_pMesh mesh, MMG5_int *np, MMG5_int *nt, MMG5_int *nquad, MMG5_int *na)
Get the number of vertices, triangles and edges of the mesh.
int MMG2D_Get_edges(MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs, int *areRidges, int *areRequired)
Get the vertices and references of all edges in a mesh.
int MMG2D_Get_quadrilaterals(MMG5_pMesh mesh, MMG5_int *quadra, MMG5_int *refs, int *areRequired)
Get the vertices and references of all quadrangles of the mesh.
int MMG2D_Set_localParameter(MMG5_pMesh mesh, MMG5_pSol sol, int typ, MMG5_int ref, double hmin, double hmax, double hausd)
Set local parameters.
int MMG2D_Set_vertices(MMG5_pMesh mesh, double *vertices, MMG5_int *refs)
Set the coordinates and references of all vertices in the mesh.
int MMG2D_Get_triangle(MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *ref, int *isRequired)
Get the vertices and reference of the next triangle in the mesh.
int MMG2D_Set_vectorSols(MMG5_pSol met, double *sols)
Set all values in a vector sol structure.
int MMG2D_Set_corner(MMG5_pMesh mesh, MMG5_int k)
Assign the "corner" attribute to a vertex.
int MMG2D_Set_edges(MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs)
Set the vertices and references of all edges in a mesh.
int MMG2D_Set_requiredVertex(MMG5_pMesh mesh, MMG5_int k)
Assign the "required" attribute to a vertex.
int MMG2D_Get_ithSol_inSolsAtVertices(MMG5_pSol sol, int i, double *s, MMG5_int pos)
Get one out of several scalar solutions at a specific vertex.
int MMG2D_Set_parallelEdge(MMG5_pMesh mesh, MMG5_int k)
Give edge k the "parallel" attribute.
int MMG2D_Set_dparameter(MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val)
Set double parameter dparam to value val.
int MMG2D_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 ref ref in LS discretization mode.
int MMG2D_Get_solsAtVerticesSize(MMG5_pMesh mesh, MMG5_pSol *sol, int *nsols, MMG5_int *np, int *typSol)
Get the number of elements and dimension of a solution defined on vertices.
int MMG2D_Get_triangles(MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs, int *areRequired)
Get the vertices and references of all triangles in the mesh.
int MMG2D_Set_inputParamName(MMG5_pMesh mesh, const char *fparamin)
Set the name of the input parameter file.
int MMG2D_Set_quadrilaterals(MMG5_pMesh mesh, MMG5_int *quadra, MMG5_int *refs)
Set the vertices and references of all quadrangles in a mesh.
int MMG2D_Unset_requiredVertex(MMG5_pMesh mesh, MMG5_int k)
Remove the "required" attribute from a vertex.
int MMG2D_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
Set the name of the output mesh file.
int MMG2D_Set_requiredTriangle(MMG5_pMesh mesh, MMG5_int k)
Give triangle k the "required" attribute.
int MMG2D_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
Set the name of the output solution file.
MMG5_pMesh char int int * retval
strncpy(tmp, meshin, *strlen0)
int ier
mmg2d_free_structures
tmp[*strlen0]
const int starter
MMG5_pMesh MMG5_pSol * sol
mmg2d_loadmesh
MMG5_pMesh char int * strlen0
va_start(argptr, starter)
MMG5_pMesh char * meshin
MMG5_pMesh * mesh
va_end(argptr)
mmg2d_init_filenames
const int va_list argptr
MMG5_pMesh char * filename
int MMG2D_loadGenericMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, const char *filename)
Read mesh data in a format determined by the filename extension.
Definition: inout_2d.c:597
int MMG2D_saveTetgenMesh(MMG5_pMesh mesh, const char *filename)
Save data in Tetgen's Triangle format.
Definition: inout_2d.c:2214
int MMG2D_saveMesh(MMG5_pMesh mesh, const char *filename)
Save a mesh in .mesh/.meshb format.
Definition: inout_2d.c:1101
int MMG2D_saveMshMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Save a mesh and multiple data fields in MSH format, ascii or binary depending on the filename extensi...
Definition: inout_2d.c:1540
int MMG2D_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_2d.c:772
int MMG2D_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Save a mesh and optionally one data field in MSH format, ascii or binary depending on the filename ex...
Definition: inout_2d.c:1536
int MMG2D_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_2d.c:2235
int MMG2D_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_2d.c:1678
int MMG2D_saveSol(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Save metric field in medit solution file format.
Definition: inout_2d.c:1617
int MMG2D_loadMesh(MMG5_pMesh mesh, const char *filename)
Load a mesh (in .mesh/.mesb format) from file.
Definition: inout_2d.c:28
int MMG2D_loadSol(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Load a metric field (or other solution) in medit's .sol format.
Definition: inout_2d.c:905
int MMG2D_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Load a mesh and possibly a solution in .msh format from file.
Definition: inout_2d.c:706
int MMG2D_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_2d.c:996
int MMG2D_loadVtpMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, const char *filename)
Load a mesh and possibly a solution in VTP (VTK) format from file.
Definition: inoutcpp_2d.cpp:84
int MMG2D_loadVtkMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Load a mesh and multiple solutions in VTK format from file.
int MMG2D_loadVtkMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, const char *filename)
Load a mesh and possibly data in VTK format from file.
int MMG2D_loadVtpMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Load a mesh and multiple solutions in VTP (VTK) format from file.
int MMG2D_saveVtpMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Save a mesh and multiple data fields in VTP format.
int MMG2D_saveVtkMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Save a mesh and multiple data fields in VTK format.
int MMG2D_saveVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Save a mesh and optionally one solution in VTK format.
int MMG2D_saveVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Save a mesh and optionally one data field in VTU format.
int MMG2D_saveVtpMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Save a mesh and optionally one data field in VTP format.
int MMG2D_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.
int MMG2D_saveVtuMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Save a mesh and multiple data fields in VTU format.
int MMG2D_loadVtuMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Load a mesh and multiple solutions in VTU (VTK) format from file.
API headers and documentation for the mmg2d library.
int MMG2D_Free_all_var(va_list argptr)
Definition: variadic_2d.c:259
int MMG2D_Free_structures_var(va_list argptr)
Definition: variadic_2d.c:368
int MMG2D_Free_names_var(va_list argptr)
Definition: variadic_2d.c:483
int MMG2D_Init_mesh_var(va_list argptr)
Definition: variadic_2d.c:176
#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