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_SOLSIZE,mmgs_set_solsize,
142 (MMG5_pMesh *mesh, MMG5_pSol *sol, int* typEntity,
143 MMG5_int* np, int* typSol, int* retval),
144 (mesh, sol, typEntity, np, typSol, retval)) {
145 *retval = MMGS_Set_solSize(*mesh,*sol,*typEntity,*np,*typSol);
146 return;
147}
148
152FORTRAN_NAME(MMGS_SET_SOLSATVERTICESSIZE,mmgs_set_solsatverticessize,
153 (MMG5_pMesh *mesh, MMG5_pSol *sol,int* nsols,
154 MMG5_int* nentities, int* typSol, int* retval),
155 (mesh, sol, nsols, nentities, typSol, retval)) {
156 *retval = MMGS_Set_solsAtVerticesSize(*mesh,sol,*nsols,*nentities,typSol);
157 return;
158}
159
163FORTRAN_NAME(MMGS_SET_MESHSIZE,mmgs_set_meshsize,
164 (MMG5_pMesh *mesh, MMG5_int *np, MMG5_int *nt, MMG5_int *na, int *retval),
165 (mesh,np,nt,na,retval)) {
166 *retval = MMGS_Set_meshSize(*mesh,*np,*nt,*na);
167 return;
168}
169
173FORTRAN_NAME(MMGS_GET_SOLSIZE,mmgs_get_solsize,
174 (MMG5_pMesh *mesh, MMG5_pSol *sol, int* typEntity, MMG5_int* np, int* typSol, int* retval),
175 (mesh,sol,typEntity,np,typSol,retval)) {
176
177 *retval = MMGS_Get_solSize(*mesh,*sol,typEntity,np,typSol);
178 return;
179}
180
184FORTRAN_NAME(MMGS_GET_SOLSATVERTICESSIZE,mmgs_get_solsatverticessize,
185 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *nsols,
186 MMG5_int* nentities, int* typSol, int* retval),
187 (mesh,sol,nsols,nentities,typSol,retval)) {
188
189 *retval = MMGS_Get_solsAtVerticesSize(*mesh,sol,nsols,nentities,typSol);
190 return;
191}
192
196FORTRAN_NAME(MMGS_GET_MESHSIZE,mmgs_get_meshsize,
197 (MMG5_pMesh *mesh, MMG5_int* np, MMG5_int* nt, MMG5_int* na, int* retval),
198 (mesh,np,nt, na,retval)) {
199
200 *retval = MMGS_Get_meshSize(*mesh,np,nt,na);
201 return;
202}
203
207FORTRAN_NAME(MMGS_SET_VERTEX,mmgs_set_vertex,
208 (MMG5_pMesh *mesh, double* c0, double* c1, double* c2, MMG5_int* ref,
209 MMG5_int* pos, int* retval),
210 (mesh,c0,c1,c2,ref,pos,retval)) {
211
212 *retval = MMGS_Set_vertex(*mesh,*c0,*c1,*c2,*ref,*pos);
213 return;
214}
215
219FORTRAN_NAME(MMGS_GET_VERTEX,mmgs_get_vertex,
220 (MMG5_pMesh *mesh, double* c0, double* c1, double* c2, MMG5_int* ref,
221 int* isCorner, int* isRequired, int* retval),
222 (mesh,c0,c1,c2,ref,isCorner,isRequired, retval)) {
223 *retval = MMGS_Get_vertex(*mesh,c0,c1,c2,ref,isCorner,isRequired);
224 return;
225}
226
230FORTRAN_NAME(MMGS_GETBYIDX_VERTEX,mmgs_getbyidx_vertex,
231 (MMG5_pMesh *mesh, double* c0, double* c1, double* c2, MMG5_int* ref,
232 int* isCorner, int* isRequired, MMG5_int* idx,int* retval),
233 (mesh,c0,c1,c2,ref,isCorner,isRequired,idx, retval)) {
234 *retval = MMGS_GetByIdx_vertex(*mesh,c0,c1,c2,ref,isCorner,isRequired,*idx);
235 return;
236}
237
241FORTRAN_NAME(MMGS_SET_VERTICES,mmgs_set_vertices,
242 (MMG5_pMesh *mesh, double* vertices, MMG5_int* refs, int* retval),
243 (mesh,vertices,refs,retval)) {
244
245 *retval = MMGS_Set_vertices(*mesh,vertices,refs);
246 return;
247}
251FORTRAN_NAME(MMGS_GET_VERTICES,mmgs_get_vertices,
252 (MMG5_pMesh *mesh, double* vertices, MMG5_int* refs,
253 int* areCorners, int* areRequired, int* retval),
254 (mesh,vertices,refs,areCorners,areRequired, retval)) {
255 *retval = MMGS_Get_vertices(*mesh,vertices,refs,areCorners,areRequired);
256 return;
257}
258
262FORTRAN_NAME(MMGS_SET_TRIANGLE,mmgs_set_triangle,
263 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int* ref,MMG5_int* pos,
264 int* retval),
265 (mesh,v0,v1,v2,ref,pos,retval)) {
266 *retval = MMGS_Set_triangle(*mesh, *v0, *v1, *v2, *ref, *pos);
267 return;
268}
269
273FORTRAN_NAME(MMGS_GET_TRIANGLE,mmgs_get_triangle,
274 (MMG5_pMesh *mesh, MMG5_int* v0, MMG5_int* v1, MMG5_int* v2, MMG5_int* ref
275 ,int* isRequired, int* retval),
276 (mesh,v0,v1,v2,ref,isRequired,retval)) {
277 *retval = MMGS_Get_triangle(*mesh,v0,v1,v2,ref,isRequired);
278 return;
279}
283FORTRAN_NAME(MMGS_SET_TRIANGLES,mmgs_set_triangles,
284 (MMG5_pMesh *mesh, MMG5_int* tria, MMG5_int* refs,
285 int* retval),
286 (mesh,tria,refs,retval)) {
287 *retval = MMGS_Set_triangles(*mesh, tria, refs);
288 return;
289}
290
294FORTRAN_NAME(MMGS_GET_TRIANGLES,mmgs_get_triangles,
295 (MMG5_pMesh *mesh, MMG5_int* tria, MMG5_int* refs,int* areRequired,
296 int* retval),
297 (mesh,tria,refs,areRequired,retval)) {
298 *retval = MMGS_Get_triangles(*mesh,tria,refs,areRequired);
299 return;
300}
301
305FORTRAN_NAME(MMGS_SET_EDGE,mmgs_set_edge,
306 (MMG5_pMesh *mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *ref, MMG5_int *pos, int* retval),
307 (mesh,v0,v1,ref,pos,retval)){
308 *retval = MMGS_Set_edge(*mesh,*v0,*v1,*ref,*pos);
309 return;
310}
311
315FORTRAN_NAME(MMGS_GET_EDGE,mmgs_get_edge,(MMG5_pMesh *mesh, MMG5_int* e0, MMG5_int* e1, MMG5_int* ref
316 ,int* isRidge, int* isRequired, int* retval),
317 (mesh,e0,e1,ref,isRidge,isRequired,retval)) {
318 *retval = MMGS_Get_edge(*mesh,e0,e1,ref,isRidge,isRequired);
319 return;
320}
324FORTRAN_NAME(MMGS_SET_EDGES,mmgs_set_edges,
325 (MMG5_pMesh *mesh, MMG5_int *edges, MMG5_int *refs, int* retval),
326 (mesh,edges,refs,retval)){
327 *retval = MMGS_Set_edges(*mesh,edges,refs);
328 return;
329}
330
334FORTRAN_NAME(MMGS_GET_EDGES,mmgs_get_edges,(MMG5_pMesh *mesh, MMG5_int* edges,
335 MMG5_int* refs,int* areRidges,
336 int* areRequired, int* retval),
337 (mesh,edges,refs,areRidges,areRequired,retval)) {
338 *retval = MMGS_Get_edges(*mesh,edges,refs,areRidges,areRequired);
339 return;
340}
341
345FORTRAN_NAME(MMGS_SET_CORNER,mmgs_set_corner,(MMG5_pMesh *mesh, MMG5_int *k, int* retval),
346 (mesh,k,retval)) {
348 return;
349}
350
354FORTRAN_NAME(MMGS_UNSET_CORNER,mmgs_unset_corner,(MMG5_pMesh *mesh, MMG5_int *k, int* retval),
355 (mesh,k,retval)) {
357 return;
358}
359
363FORTRAN_NAME(MMGS_SET_REQUIREDVERTEX,mmgs_set_requiredvertex,
364 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
365 (mesh,k,retval)) {
367 return;
368}
369
373FORTRAN_NAME(MMGS_UNSET_REQUIREDVERTEX,mmgs_unset_requiredvertex,
374 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
375 (mesh,k,retval)) {
377 return;
378}
379
383FORTRAN_NAME(MMGS_SET_REQUIREDTRIANGLE,mmgs_set_requiredtriangle,
384 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
385 (mesh,k,retval)) {
387 return;
388}
389
393FORTRAN_NAME(MMGS_UNSET_REQUIREDTRIANGLE,mmgs_unset_requiredtriangle,
394 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
395 (mesh,k,retval)) {
397 return;
398}
399
403FORTRAN_NAME(MMGS_SET_RIDGE,mmgs_set_ridge,
404 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
405 (mesh,k,retval)) {
406 *retval = MMGS_Set_ridge(*mesh,*k);
407 return;
408}
409
413FORTRAN_NAME(MMGS_UNSET_RIDGE,mmgs_unset_ridge,
414 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
415 (mesh,k,retval)) {
417 return;
418}
419
423FORTRAN_NAME(MMGS_SET_REQUIREDEDGE,mmgs_set_requirededge,
424 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
425 (mesh,k,retval)) {
427 return;
428}
429
433FORTRAN_NAME(MMGS_UNSET_REQUIREDEDGE,mmgs_unset_requirededge,
434 (MMG5_pMesh *mesh, MMG5_int *k, int* retval),
435 (mesh,k,retval)) {
437 return;
438}
442FORTRAN_NAME(MMGS_SET_NORMALATVERTEX,mmgs_set_normalatvertex,
443 (MMG5_pMesh *mesh, MMG5_int *k, double* n0, double* n1, double* n2,int* retval),
444 (mesh,k,n0,n1,n2,retval)) {
445 *retval = MMGS_Set_normalAtVertex(*mesh,*k, *n0, *n1, *n2);
446 return;
447}
451FORTRAN_NAME(MMGS_GET_NORMALATVERTEX,mmgs_get_normalatvertex,
452 (MMG5_pMesh *mesh, MMG5_int *k, double* n0, double* n1, double* n2,int* retval),
453 (mesh,k,n0,n1,n2,retval)) {
454 *retval = MMGS_Get_normalAtVertex(*mesh,*k, n0, n1, n2);
455 return;
456}
457
461FORTRAN_NAME(MMGS_GET_TRIANGLEQUALITY,mmgs_get_trianglequality,
462 (MMG5_pMesh *mesh, MMG5_pSol *met, MMG5_int* k, double* retval),
463 (mesh,met,k,retval)) {
465 return;
466}
467
468
472FORTRAN_NAME(MMGS_SET_SCALARSOL,mmgs_set_scalarsol,
473 (MMG5_pSol *met, double *s, MMG5_int *pos, int* retval),
474 (met,s,pos,retval)) {
475 *retval = MMGS_Set_scalarSol(*met,*s,*pos);
476 return;
477}
478
482FORTRAN_NAME(MMGS_GET_SCALARSOL,mmgs_get_scalarsol,
483 (MMG5_pSol *met, double* s, int* retval),
484 (met,s,retval)) {
485 *retval = MMGS_Get_scalarSol(*met,s);
486 return;
487}
491FORTRAN_NAME(MMGS_SET_SCALARSOLS,mmgs_set_scalarsols,
492 (MMG5_pSol *met, double *s, int* retval),
493 (met,s,retval)) {
494 *retval = MMGS_Set_scalarSols(*met,s);
495 return;
496}
497
501FORTRAN_NAME(MMGS_GET_SCALARSOLS,mmgs_get_scalarsols,
502 (MMG5_pSol *met, double* s, int* retval),
503 (met,s,retval)) {
504 *retval = MMGS_Get_scalarSols(*met,s);
505 return;
506}
507
511FORTRAN_NAME(MMGS_SET_VECTORSOL,mmgs_set_vectorsol,
512 (MMG5_pSol *met, double *vx, double *vy, double *vz,
513 MMG5_int *pos, int* retval),
514 (met,vx,vy,vz,pos,retval)) {
515 *retval = MMGS_Set_vectorSol(*met,*vx,*vy,*vz,*pos);
516 return;
517}
518
522FORTRAN_NAME(MMGS_GET_VECTORSOL,mmgs_get_vectorsol,
523 (MMG5_pSol *met, double* vx,double *vy, double *vz, int* retval),
524 (met,vx,vy,vz,retval)) {
525 *retval = MMGS_Get_vectorSol(*met,vx,vy,vz);
526 return;
527}
531FORTRAN_NAME(MMGS_SET_VECTORSOLS,mmgs_set_vectorsols,
532 (MMG5_pSol *met, double *sols, int* retval),
533 (met,sols,retval)) {
534 *retval = MMGS_Set_vectorSols(*met,sols);
535 return;
536}
537
541FORTRAN_NAME(MMGS_GET_VECTORSOLS,mmgs_get_vectorsols,
542 (MMG5_pSol *met, double* sols, int* retval),
543 (met,sols,retval)) {
544 *retval = MMGS_Get_vectorSols(*met,sols);
545 return;
546}
547
551FORTRAN_NAME(MMGS_SET_TENSORSOL,mmgs_set_tensorsol,
552 (MMG5_pSol *met, double* m11,double *m12, double *m13,
553 double* m22,double *m23, double *m33, MMG5_int *pos, int* retval),
554 (met,m11,m12,m13,m22,m23,m33,pos,retval)) {
555 *retval = MMGS_Set_tensorSol(*met,*m11,*m12,*m13,*m22,*m23,*m33,*pos);
556 return;
557}
558
562FORTRAN_NAME(MMGS_GET_TENSORSOL,mmgs_get_tensorsol,
563 (MMG5_pSol *met, double* m11,double *m12, double *m13,
564 double* m22,double *m23, double *m33, int* retval),
565 (met,m11,m12,m13,m22,m23,m33,retval)) {
566 *retval = MMGS_Get_tensorSol(*met,m11,m12,m13,m22,m23,m33);
567 return;
568}
572FORTRAN_NAME(MMGS_SET_TENSORSOLS,mmgs_set_tensorsols,
573 (MMG5_pSol *met, double* sols,int* retval),
574 (met,sols,retval)) {
575 *retval = MMGS_Set_tensorSols(*met,sols);
576 return;
577}
578
582FORTRAN_NAME(MMGS_GET_TENSORSOLS,mmgs_get_tensorsols,
583 (MMG5_pSol *met, double* sols, int* retval),
584 (met,sols,retval)) {
585 *retval = MMGS_Get_tensorSols(*met,sols);
586 return;
587}
591FORTRAN_NAME(MMGS_SET_ITHSOL_INSOLSATVERTICES,mmgs_set_ithsol_insolsatvertices,
592 (MMG5_pSol *sol, MMG5_int *i,double *s,MMG5_int *pos, int* retval),
593 (sol,i,s,pos,retval)) {
595 return;
596}
600FORTRAN_NAME(MMGS_GET_ITHSOL_INSOLSATVERTICES,mmgs_get_ithsol_insolsatvertices,
601 (MMG5_pSol *sol, MMG5_int* i,double *s,MMG5_int *pos, int* retval),
602 (sol,i,s,pos,retval)) {
604 return;
605}
606
610FORTRAN_NAME(MMGS_SET_ITHSOLS_INSOLSATVERTICES,mmgs_set_ithsols_insolsatvertices,
611 (MMG5_pSol *sol, MMG5_int *i,double *s, int* retval),
612 (sol,i,s,retval)) {
614 return;
615}
619FORTRAN_NAME(MMGS_GET_ITHSOLS_INSOLSATVERTICES,mmgs_get_ithsols_insolsatvertices,
620 (MMG5_pSol *sol, MMG5_int* i,double *s, int* retval),
621 (sol,i,s,retval)) {
623 return;
624}
628FORTRAN_NAME(MMGS_CHK_MESHDATA,mmgs_chk_meshdata,
629 (MMG5_pMesh *mesh,MMG5_pSol *met, int* retval),
630 (mesh,met,retval)) {
631 *retval = MMGS_Chk_meshData(*mesh,*met);
632 return;
633}
634
638FORTRAN_NAME(MMGS_SET_IPARAMETER,mmgs_set_iparameter,
639 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *iparam, MMG5_int *val, int* retval),
640 (mesh,sol,iparam,val,retval)){
641 *retval = MMGS_Set_iparameter(*mesh,*sol,*iparam,*val);
642 return;
643}
644
648FORTRAN_NAME(MMGS_GET_IPARAMETER,mmgs_get_iparameter,
649 (MMG5_pMesh *mesh, int *iparam, MMG5_int* retval),
650 (mesh,iparam,retval)){
651 *retval = MMGS_Get_iparameter(*mesh,*iparam);
652 return;
653}
654
658FORTRAN_NAME(MMGS_SET_DPARAMETER,mmgs_set_dparameter,
659 (MMG5_pMesh *mesh, MMG5_pSol *sol, int *dparam, double *val, int* retval),
660 (mesh,sol,dparam,val,retval)){
661 *retval = MMGS_Set_dparameter(*mesh,*sol,*dparam,*val);
662 return;
663}
664
668FORTRAN_NAME(MMGS_SET_LOCALPARAMETER,mmgs_set_localparameter,
669 (MMG5_pMesh *mesh,MMG5_pSol *sol, int *typ, MMG5_int *ref,
670 double *hmin, double *hmax,double *hausd, int* retval),
671 (mesh,sol,typ,ref,hmin,hmax,hausd,retval)){
672 *retval = MMGS_Set_localParameter(*mesh,*sol,*typ,*ref,*hmin,*hmax,*hausd);
673 return;
674}
675
679FORTRAN_NAME(MMGS_SET_MULTIMAT,mmgs_set_multimat,
680 (MMG5_pMesh *mesh,MMG5_pSol *sol, MMG5_int *ref,int *split,
681 MMG5_int* rin,MMG5_int* rex, int* retval),
682 (mesh,sol,ref,split,rin,rex,retval)){
683 *retval = MMGS_Set_multiMat(*mesh,*sol,*ref,*split,*rin,*rex);
684 return;
685}
686
690FORTRAN_NAME(MMGS_SET_LSBASEREFERENCE,mmgs_set_lsbasereference,
691 (MMG5_pMesh *mesh,MMG5_pSol *sol, int *br, int* retval),
692 (mesh,sol,br,retval)){
694 return;
695}
696
700FORTRAN_NAME(MMGS_FREE_ALLSOLS,mmgs_free_allsols,
702 (mesh,sol,retval)){
703
705
706 return;
707}
708
709
713FORTRAN_VARIADIC(MMGS_FREE_ALL,mmgs_free_all,
714 (const int starter,...),
715 va_list argptr;
716
717 int ier;
718
720
722
723 va_end(argptr);
724
725 if ( !ier ) exit(EXIT_FAILURE);
726
727 return;
728 )
729
734 (const int starter,...),
735 va_list argptr;
736 int ier;
737
739
741
743
744 if ( !ier ) exit(EXIT_FAILURE);
745
746 return;
747 )
748
752FORTRAN_VARIADIC(MMGS_FREE_NAMES,mmgs_free_names,
753 (const int starter,...),
754 va_list argptr;
755 int ier;
756
758
760
761 va_end(argptr);
762
763 if ( !ier ) exit(EXIT_FAILURE);
764
765 return;
766 )
767
772 (MMG5_pMesh *mesh,char* meshin, int *strlen0,int* retval),
774
775 char *tmp = NULL;
776
777 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
779 tmp[*strlen0] = '\0';
780
782
784
785 return;
786}
787
791FORTRAN_NAME(MMGS_LOADVTKMESH,mmgs_loadvtkmesh,
792 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
794 char *tmp = NULL;
795
796 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
798 tmp[*strlen0] = '\0';
799
801
803
804 return;
805}
809FORTRAN_NAME(MMGS_LOADVTKMESH_AND_ALLDATA,mmgs_loadvtkmesh_and_alldata,
810 (MMG5_pMesh *mesh, 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_LOADVTPMESH,mmgs_loadvtpmesh,
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_AND_ALLDATA,mmgs_loadvtpmesh_and_alldata,
846 (MMG5_pMesh *mesh, 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_LOADVTUMESH,mmgs_loadvtumesh,
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_AND_ALLDATA,mmgs_loadvtumesh_and_alldata,
882 (MMG5_pMesh *mesh, 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}
896
900FORTRAN_NAME(MMGS_LOADMSHMESH,mmgs_loadmshmesh,
901 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
903 char *tmp = NULL;
904
905 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
907 tmp[*strlen0] = '\0';
908
910
912
913 return;
914}
915
919FORTRAN_NAME(MMGS_LOADGENERICMESH,mmgs_loadgenericmesh,
920 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
922 char *tmp = NULL;
923
924 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
926 tmp[*strlen0] = '\0';
927
929
931
932 return;
933}
934
938FORTRAN_NAME(MMGS_LOADMSHMESH_AND_ALLDATA,mmgs_loadmshmesh_and_alldata,
939 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
941 char *tmp = NULL;
942
943 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
945 tmp[*strlen0] = '\0';
946
948
950
951 return;
952}
953
957FORTRAN_NAME(MMGS_LOADSOL,mmgs_loadsol,
958 (MMG5_pMesh *mesh,MMG5_pSol *met,char* meshin, int *strlen0,int* retval),
959 (mesh,met,meshin,strlen0,retval)){
960
961 char *tmp = NULL;
962
963 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
965 tmp[*strlen0] = '\0';
966
967 *retval = MMGS_loadSol(*mesh,*met,tmp);
968
970
971 return;
972}
973
977FORTRAN_NAME(MMGS_LOADALLSOLS,mmgs_loadallsols,
978 (MMG5_pMesh *mesh,MMG5_pSol *sol,char* meshin, int *strlen0,int* retval),
980
981 char *tmp = NULL;
982
983 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
985 tmp[*strlen0] = '\0';
986
988
990
991 return;
992}
996FORTRAN_NAME(MMGS_SAVEMESH,mmgs_savemesh,
997 (MMG5_pMesh *mesh,char *meshin, int *strlen0,int* retval),
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_SAVEVTKMESH,mmgs_savevtkmesh,
1015 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1016 int* retval),
1018 char *tmp = NULL;
1019
1020 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1022 tmp[*strlen0] = '\0';
1023
1025
1027
1028 return;
1029}
1033FORTRAN_NAME(MMGS_SAVEVTKMESH_AND_ALLDATA,mmgs_savevtkmesh_and_alldata,
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}
1049
1053FORTRAN_NAME(MMGS_SAVEVTUMESH,mmgs_savevtumesh,
1054 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1055 int* retval),
1057 char *tmp = NULL;
1058
1059 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1061 tmp[*strlen0] = '\0';
1062
1064
1066
1067 return;
1068}
1072FORTRAN_NAME(MMGS_SAVEVTUMESH_AND_ALLDATA,mmgs_savevtumesh_and_alldata,
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}
1088
1092FORTRAN_NAME(MMGS_SAVEVTPMESH,mmgs_savevtpmesh,
1093 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1094 int* retval),
1096 char *tmp = NULL;
1097
1098 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1100 tmp[*strlen0] = '\0';
1101
1103
1105
1106 return;
1107}
1111FORTRAN_NAME(MMGS_SAVEVTPMESH_AND_ALLDATA,mmgs_savevtpmesh_and_alldata,
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(MMGS_SAVEMSHMESH,mmgs_savemshmesh,
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(MMGS_SAVEGENERICMESH,mmgs_savegenericmesh,
1152 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,int* retval),
1154 char *tmp = NULL;
1155
1156 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1158 tmp[*strlen0] = '\0';
1159
1161
1163
1164 return;
1165}
1166
1167
1171FORTRAN_NAME(MMGS_SAVESOL,mmgs_savesol,
1172 (MMG5_pMesh *mesh,MMG5_pSol *met,char *meshin,int *strlen0,int* retval),
1173 (mesh,met,meshin,strlen0,retval)){
1174
1175 char *tmp = NULL;
1176
1177 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1179 tmp[*strlen0] = '\0';
1180
1181 *retval = MMGS_saveSol(*mesh,*met,tmp);
1182
1184
1185 return;
1186}
1187
1191FORTRAN_NAME(MMGS_SAVEALLSOLS,mmgs_saveallsols,
1192 (MMG5_pMesh *mesh, MMG5_pSol *sol,char* filename, int *strlen0,
1193 int* retval),
1195 char *tmp = NULL;
1196
1197 MMG5_SAFE_MALLOC(tmp,*strlen0+1,char,return);
1199 tmp[*strlen0] = '\0';
1200
1202
1204
1205 return;
1206}
1207
1211FORTRAN_NAME(MMGS_CLEAN_ISOSURF,mmgs_clean_isosurf,
1212 (MMG5_pMesh *mesh, int* retval), (mesh, retval)) {
1214 return;
1215}
int MMGS_Get_vertices(MMG5_pMesh mesh, double *vertices, MMG5_int *refs, int *areCorners, int *areRequired)
int MMGS_Set_triangles(MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs)
int MMGS_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, MMG5_int val)
int MMGS_Get_edges(MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs, int *areRidges, int *areRequired)
int MMGS_Get_edge(MMG5_pMesh mesh, MMG5_int *e0, MMG5_int *e1, MMG5_int *ref, int *isRidge, int *isRequired)
int MMGS_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
int MMGS_Get_vectorSol(MMG5_pSol met, double *vx, double *vy, double *vz)
int MMGS_Get_tensorSols(MMG5_pSol met, double *sols)
int MMGS_Get_meshSize(MMG5_pMesh mesh, MMG5_int *np, MMG5_int *nt, MMG5_int *na)
int MMGS_Set_vertices(MMG5_pMesh mesh, double *vertices, MMG5_int *refs)
int MMGS_Get_vectorSols(MMG5_pSol met, double *sols)
int MMGS_Set_requiredVertex(MMG5_pMesh mesh, MMG5_int k)
int MMGS_Set_localParameter(MMG5_pMesh mesh, MMG5_pSol sol, int typ, MMG5_int ref, double hmin, double hmax, double hausd)
int MMGS_Free_allSols(MMG5_pMesh mesh, MMG5_pSol *sol)
int MMGS_Unset_requiredEdge(MMG5_pMesh mesh, MMG5_int k)
int MMGS_Set_solsAtVerticesSize(MMG5_pMesh mesh, MMG5_pSol *sol, int nsols, MMG5_int nentities, int *typSol)
int MMGS_Get_tensorSol(MMG5_pSol met, double *m11, double *m12, double *m13, double *m22, double *m23, double *m33)
int MMGS_Set_vertex(MMG5_pMesh mesh, double c0, double c1, double c2, MMG5_int ref, MMG5_int pos)
int MMGS_Get_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int *typEntity, MMG5_int *np, int *typSol)
int MMGS_Set_requiredTriangle(MMG5_pMesh mesh, MMG5_int k)
int MMGS_Set_scalarSols(MMG5_pSol met, double *s)
int MMGS_Get_ithSols_inSolsAtVertices(MMG5_pSol sol, int i, double *s)
int MMGS_Set_edges(MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs)
int MMGS_Unset_requiredVertex(MMG5_pMesh mesh, MMG5_int k)
int MMGS_Unset_requiredTriangle(MMG5_pMesh mesh, MMG5_int k)
int MMGS_Set_ithSol_inSolsAtVertices(MMG5_pSol sol, int i, double *s, MMG5_int pos)
int MMGS_Set_tensorSol(MMG5_pSol met, double m11, double m12, double m13, double m22, double m23, double m33, MMG5_int pos)
void MMGS_Init_parameters(MMG5_pMesh mesh)
int MMGS_Set_requiredEdge(MMG5_pMesh mesh, MMG5_int k)
int MMGS_Set_ridge(MMG5_pMesh mesh, MMG5_int k)
int MMGS_GetByIdx_vertex(MMG5_pMesh mesh, double *c0, double *c1, double *c2, MMG5_int *ref, int *isCorner, int *isRequired, MMG5_int idx)
int MMGS_Get_scalarSol(MMG5_pSol met, double *s)
int MMGS_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
int MMGS_Get_ithSol_inSolsAtVertices(MMG5_pSol sol, int i, double *s, MMG5_int pos)
int MMGS_Set_edge(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int ref, MMG5_int pos)
int MMGS_Get_iparameter(MMG5_pMesh mesh, MMG5_int iparam)
int MMGS_Set_lsBaseReference(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int br)
int MMGS_Set_corner(MMG5_pMesh mesh, MMG5_int k)
int MMGS_Set_scalarSol(MMG5_pSol met, double s, MMG5_int pos)
int MMGS_Set_solSize(MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, MMG5_int np, int typSol)
int MMGS_Get_solsAtVerticesSize(MMG5_pMesh mesh, MMG5_pSol *sol, int *nsols, MMG5_int *np, int *typSol)
int MMGS_Get_scalarSols(MMG5_pSol met, double *s)
int MMGS_Unset_corner(MMG5_pMesh mesh, MMG5_int k)
int MMGS_Set_vectorSols(MMG5_pSol met, double *sols)
int MMGS_Set_multiMat(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int ref, int split, MMG5_int rin, MMG5_int rout)
int MMGS_Get_triangle(MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *ref, int *isRequired)
int MMGS_Set_ithSols_inSolsAtVertices(MMG5_pSol sol, int i, double *s)
int MMGS_Set_meshSize(MMG5_pMesh mesh, MMG5_int np, MMG5_int nt, MMG5_int na)
int MMGS_Set_vectorSol(MMG5_pSol met, double vx, double vy, double vz, MMG5_int pos)
int MMGS_Set_triangle(MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int ref, MMG5_int pos)
int MMGS_Get_normalAtVertex(MMG5_pMesh mesh, MMG5_int k, double *n0, double *n1, double *n2)
int MMGS_Get_vertex(MMG5_pMesh mesh, double *c0, double *c1, double *c2, MMG5_int *ref, int *isCorner, int *isRequired)
double MMGS_Get_triangleQuality(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k)
int MMGS_Chk_meshData(MMG5_pMesh mesh, MMG5_pSol met)
int MMGS_Set_tensorSols(MMG5_pSol met, double *sols)
int MMGS_Unset_ridge(MMG5_pMesh mesh, MMG5_int k)
int MMGS_Set_normalAtVertex(MMG5_pMesh mesh, MMG5_int k, double n0, double n1, double n2)
int MMGS_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
int MMGS_Get_triangles(MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs, int *areRequired)
int MMGS_Set_dparameter(MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val)
int MMGS_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
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_loadGenericMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_s.c:759
int MMGS_loadSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_s.c:1307
int MMGS_loadAllSols(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_s.c:1382
int MMGS_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_s.c:640
int MMGS_saveMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_s.c:837
int MMGS_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_s.c:1297
int MMGS_saveGenericMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inout_s.c:1604
int MMGS_loadMshMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_s.c:701
int MMGS_saveSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
Definition: inout_s.c:1478
int MMGS_loadMesh(MMG5_pMesh mesh, const char *filename)
Definition: inout_s.c:41
int MMGS_saveAllSols(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inout_s.c:1515
int MMGS_saveVtuMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inoutcpp_s.cpp:311
int MMGS_loadVtpMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inoutcpp_s.cpp:74
int MMGS_saveVtkMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inoutcpp_s.cpp:341
int MMGS_loadVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inoutcpp_s.cpp:222
int MMGS_saveVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inoutcpp_s.cpp:296
int MMGS_loadVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inoutcpp_s.cpp:148
int MMGS_saveVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inoutcpp_s.cpp:326
int MMGS_loadVtpMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inoutcpp_s.cpp:115
int MMGS_loadVtuMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inoutcpp_s.cpp:263
int MMGS_loadVtkMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inoutcpp_s.cpp:189
int MMGS_saveVtpMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
Definition: inoutcpp_s.cpp:356
int MMGS_saveVtpMesh_and_allData(MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename)
Definition: inoutcpp_s.cpp:371
API headers for the mmgs library.
LIBMMGS_EXPORT int MMGS_Clean_isoSurf(MMG5_pMesh mesh)
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:605