92 fprintf(stderr,
"\n ## Warning: %s: old solution deletion.\n",__func__);
95 fprintf(stderr,
"\n ## Error: %s: mmgs need a solution imposed on vertices.\n",
114 fprintf(stderr,
"\n ## Error: %s: type of solution not yet implemented.\n",
129 fprintf(stderr,
" Exit program.\n");
137 MMG5_int nentities,
int *typSol) {
144 fprintf(stderr,
"\n ## Warning: %s: old solutions array deletion.\n",
157 for ( j=0; j<nsols; ++j ) {
162 sprintf(data,
"sol_%d",j);
167 sprintf(data,
"sol_%d.o",j);
173 fprintf(stderr,
"\n ## Error: %s: unable to set the size of the"
174 " solution num %d.\n",__func__,j);
185 fprintf(stderr,
"\n ## Warning: %s: old mesh deletion.\n",__func__);
195 fprintf(stderr,
" ** MISSING DATA:\n");
196 fprintf(stderr,
" Your mesh must contains at least points and triangles.\n");
212 fprintf(stderr,
"\n ## Error: %s: not enough memory %d\n",
228 if ( typEntity != NULL )
231 if ( typSol != NULL ) {
232 if (
sol->size == 1 )
234 else if (
sol->size == 3 )
236 else if (
sol->size == 6 )
253 MMG5_int* np,
int* typSol) {
258 fprintf(stderr,
"\n ## Error: %s: your mesh structure must be allocated"
259 " and filled\n",__func__);
269 if ( typSol != NULL ) {
270 typSol[j] = psl->
type;
296 fprintf(stderr,
"\n ## Error: %s: you must set the number of points with the",
298 fprintf(stderr,
" MMGS_Set_meshSize function before setting vertices in mesh.\n");
303 fprintf(stderr,
"\n ## Error: %s: unable to allocate a new point.\n",__func__);
304 fprintf(stderr,
" max number of points: %" MMG5_PRId
"\n",
mesh->
npmax);
310 fprintf(stderr,
"\n ## Error: %s: attempt to set new vertex at position %" MMG5_PRId
".",
312 fprintf(stderr,
" Overflow of the given number of vertices: %" MMG5_PRId
"\n",
mesh->
np);
313 fprintf(stderr,
"\n ## Check the mesh size, its compactness or the position");
314 fprintf(stderr,
" of the vertex.\n");
340 ppt->
c[0] = vertices[j];
341 ppt->
c[1] = vertices[j+1];
342 ppt->
c[2] = vertices[j+2];
349 ppt->
ref = refs[i-1];
357 int* isCorner,
int* isRequired) {
362 fprintf(stderr,
"\n ## Warning: %s: reset the internal counter of points.\n",
364 fprintf(stderr,
" You must pass here exactly one time (the first time ");
365 fprintf(stderr,
"you call the MMGS_Get_vertex function).\n");
366 fprintf(stderr,
" If not, the number of call of this function");
367 fprintf(stderr,
" exceed the number of points: %" MMG5_PRId
"\n ",
mesh->
np);
374 fprintf(stderr,
"\n ## Error: %s: unable to get point.\n",__func__);
375 fprintf(stderr,
" The number of call of MMGS_Get_vertex function");
376 fprintf(stderr,
" can not exceed the number of points: %" MMG5_PRId
"\n ",
mesh->
np);
384 int* isCorner,
int* isRequired, MMG5_int idx) {
386 if ( idx < 1 || idx >
mesh->
np ) {
387 fprintf(stderr,
"\n ## Error: %s: unable to get point at position %" MMG5_PRId
".\n",
389 fprintf(stderr,
" Your vertices numbering goes from 1 to %" MMG5_PRId
"\n",
mesh->
np);
399 if ( isCorner != NULL ) {
406 if ( isRequired != NULL ) {
417 int* areCorners,
int* areRequired) {
426 vertices[j] = ppt->
c[0];
427 vertices[j+1] = ppt->
c[1];
428 vertices[j+2] = ppt->
c[2];
434 if ( areCorners !=NULL ) {
441 if ( areRequired != NULL ) {
455 fprintf(stderr,
"\n ## Error: %s: You must set the number of triangles"
456 " with the",__func__);
457 fprintf(stderr,
" MMGS_Set_meshSize function before setting triangles in mesh\n");
462 fprintf(stderr,
"\n ## Error: %s: unable to allocate a new triangle.\n",
464 fprintf(stderr,
" max number of triangle: %" MMG5_PRId
"\n",
mesh->
ntmax);
470 fprintf(stderr,
"\n ## Error: %s: attempt to set new triangle at position %" MMG5_PRId
".",
472 fprintf(stderr,
" Overflow of the given number of triangles: %" MMG5_PRId
"\n",
mesh->
nt);
473 fprintf(stderr,
"\n ## Check the mesh size, its compactness or the position");
474 fprintf(stderr,
" of the triangle.\n");
497 fprintf(stderr,
"\n ## Warning: %s: reset the internal counter of triangles.\n",
499 fprintf(stderr,
" You must pass here exactly one time (the first time ");
500 fprintf(stderr,
"you call the MMGS_Get_triangle function).\n");
501 fprintf(stderr,
" If not, the number of call of this function");
502 fprintf(stderr,
" exceed the number of triangles: %" MMG5_PRId
"\n ",
mesh->
nt);
509 fprintf(stderr,
"\n ## Error: %s: unable to get triangle.\n",__func__);
510 fprintf(stderr,
" The number of call of MMGS_Get_triangle function");
511 fprintf(stderr,
" can not exceed the number of triangles: %" MMG5_PRId
"\n ",
mesh->
nt);
522 if ( isRequired != NULL ) {
541 ptt->
v[0] = tria[j] ;
542 ptt->
v[1] = tria[j+2];
543 ptt->
v[2] = tria[j+1];
550 ptt->
ref = refs[i-1];
564 tria[j+1] = ptt->
v[1];
565 tria[j+2] = ptt->
v[2];
568 refs[i-1] = ptt->
ref ;
569 if ( areRequired != NULL ) {
572 areRequired[i-1] = 1;
574 areRequired[i-1] = 0;
584 fprintf(stderr,
"\n ## Error: %s: You must set the number of edges with the",
586 fprintf(stderr,
" MMGS_Set_meshSize function before setting edges in mesh\n");
590 fprintf(stderr,
"\n ## Error: %s: unable to allocate a new edge.\n",
592 fprintf(stderr,
" max number of edge: %" MMG5_PRId
"\n",
mesh->
namax);
597 fprintf(stderr,
"\n ## Error: %s: attempt to set new edge at position %" MMG5_PRId
".",
599 fprintf(stderr,
" Overflow of the given number of edges: %" MMG5_PRId
"\n",
mesh->
na);
600 fprintf(stderr,
"\n ## Check the mesh size, its compactness or the position");
601 fprintf(stderr,
" of the edge.\n");
614 ,
int* isRidge,
int* isRequired) {
619 fprintf(stderr,
"\n ## Warning: %s: reset the internal counter of edges.\n",
621 fprintf(stderr,
" You must pass here exactly one time (the first time ");
622 fprintf(stderr,
"you call the MMGS_Get_edge function).\n");
623 fprintf(stderr,
" If not, the number of call of this function");
624 fprintf(stderr,
" exceed the number of edges: %" MMG5_PRId
"\n ",
mesh->
na);
631 fprintf(stderr,
"\n ## Error: %s: unable to get edge.\n",__func__);
632 fprintf(stderr,
" The number of call of MMGS_Get_edge function");
633 fprintf(stderr,
" can not exceed the number of edges: %" MMG5_PRId
"\n ",
mesh->
na);
642 if ( isRidge != NULL ) {
649 if ( isRequired != NULL ) {
688 if ( areRidges != NULL ) {
695 if ( areRequired != NULL ) {
697 areRequired[i-1] = 1;
699 areRequired[i-1] = 0;
707 assert ( k <= mesh->np );
713 assert ( k <= mesh->np );
719 assert ( k <= mesh->np );
726 assert ( k <= mesh->np );
732 assert ( k <= mesh->nt );
740 assert ( k <= mesh->nt );
748 assert ( k <= mesh->na );
753 assert ( k <= mesh->na );
759 assert ( k <= mesh->na );
765 assert ( k <= mesh->na );
772 assert ( k <= mesh->np );
784 assert ( k <= mesh->np );
796 if ( k < 1 || k >
mesh->
nt ) {
797 fprintf(stderr,
"\n ## Error: %s: unable to access to triangle %" MMG5_PRId
".\n",
799 fprintf(stderr,
" Tria numbering goes from 1 to %" MMG5_PRId
"\n",
mesh->
nt);
805 if ( (!met) || (!met->
m) || met->
size==1 ) {
822 fprintf(stderr,
"\n ## Error: %s: You must set the number of solution"
823 " with the",__func__);
824 fprintf(stderr,
" MMGS_Set_solSize function before setting values");
825 fprintf(stderr,
" in solution structure \n");
829 fprintf(stderr,
"\n ## Error: %s: unable to set a new solution.\n",
831 fprintf(stderr,
" Minimal index of the solution position must be 1.\n");
834 if ( pos >= met->
npmax ) {
835 fprintf(stderr,
"\n ## Error: %s: unable to set a new solution.\n",
837 fprintf(stderr,
" max number of solutions: %" MMG5_PRId
"\n",met->
npmax);
841 if ( pos > met->
np ) {
842 fprintf(stderr,
"\n ## Error: %s: attempt to set new solution at"
843 " position %" MMG5_PRId
".",__func__,pos);
844 fprintf(stderr,
" Overflow of the given number of solutions: %" MMG5_PRId
"\n",met->
np);
845 fprintf(stderr,
"\n ## Check the solution size, its compactness or the position");
846 fprintf(stderr,
" of the solution.\n");
857 if ( met->
npi == met->
np ) {
860 fprintf(stderr,
"\n ## Warning: %s: reset the internal counter of points.\n",
862 fprintf(stderr,
" You must pass here exactly one time (the first time ");
863 fprintf(stderr,
"you call the MMGS_Get_scalarSol function).\n");
864 fprintf(stderr,
" If not, the number of call of this function");
865 fprintf(stderr,
" exceed the number of points: %" MMG5_PRId
"\n ",met->
np);
871 if ( met->
npi > met->
np ) {
872 fprintf(stderr,
"\n ## Error: %s: unable to get solution.\n",__func__);
873 fprintf(stderr,
" The number of call of MMGS_Get_scalarSol function");
874 fprintf(stderr,
" can not exceed the number of points: %" MMG5_PRId
"\n ",met->
np);
878 *s = met->
m[met->
npi];
887 fprintf(stderr,
"\n ## Error: %s: You must set the number of solution"
888 " with the",__func__);
889 fprintf(stderr,
" MMGS_Set_solSize function before setting values");
890 fprintf(stderr,
" in solution structure \n");
894 for ( k=0; k<met->
np; ++k )
903 for ( k=0; k<met->
np; ++k )
913 fprintf(stderr,
"\n ## Error: %s: You must set the number of"
914 " solution with the",__func__);
915 fprintf(stderr,
" MMGS_Set_solSize function before setting values");
916 fprintf(stderr,
" in solution structure \n");
920 fprintf(stderr,
"\n ## Error: %s: unable to set a new solution.\n",
922 fprintf(stderr,
" Minimal index of the solution position must be 1.\n");
925 if ( pos >= met->
npmax ) {
926 fprintf(stderr,
"\n ## Error: %s: unable to set a new solution.\n",
928 fprintf(stderr,
" max number of solutions: %" MMG5_PRId
"\n",met->
npmax);
932 if ( pos > met->
np ) {
933 fprintf(stderr,
"\n ## Error: %s: attempt to set new solution at position %" MMG5_PRId
".",
935 fprintf(stderr,
" Overflow of the given number of solutions: %" MMG5_PRId
"\n",met->
np);
936 fprintf(stderr,
"\n ## Check the solution size, its compactness or the position");
937 fprintf(stderr,
" of the solution.\n");
942 met->
m[3*pos+1] = vy;
943 met->
m[3*pos+2] = vz;
951 if ( met->
npi == met->
np ) {
954 fprintf(stderr,
"\n ## Warning: %s: reset the internal counter of points.\n",
956 fprintf(stderr,
" You must pass here exactly one time (the first time ");
957 fprintf(stderr,
"you call the MMGS_Get_vectorSol function).\n");
958 fprintf(stderr,
" If not, the number of call of this function");
959 fprintf(stderr,
" exceed the number of points: %" MMG5_PRId
"\n ",met->
np);
965 if ( met->
npi > met->
np ) {
966 fprintf(stderr,
"\n ## Error: %s: unable to get solution.\n",__func__);
967 fprintf(stderr,
" The number of call of MMGS_Get_vectorSol function");
968 fprintf(stderr,
" can not exceed the number of points: %" MMG5_PRId
"\n ",met->
np);
972 *vx = met->
m[3*met->
npi];
973 *vy = met->
m[3*met->
npi+1];
974 *vz = met->
m[3*met->
npi+2];
985 fprintf(stderr,
"\n ## Error: %s: You must set the number of"
986 " solution with the",__func__);
987 fprintf(stderr,
" MMGS_Set_solSize function before setting values");
988 fprintf(stderr,
" in solution structure \n");
992 for ( k=0; k<met->
np; ++k ) {
1007 for ( k=0; k<met->
np; ++k ) {
1019 double m22,
double m23,
double m33, MMG5_int pos) {
1022 fprintf(stderr,
"\n ## Error: %s: You must set the number of"
1023 " solution with the",__func__);
1024 fprintf(stderr,
" MMGS_Set_solSize function before setting values");
1025 fprintf(stderr,
" in solution structure \n");
1029 fprintf(stderr,
"\n ## Error: %s: unable to set a new solution.\n",
1031 fprintf(stderr,
" Minimal index of the solution position must be 1.\n");
1034 if ( pos >= met->
npmax ) {
1035 fprintf(stderr,
"\n ## Error: %s: unable to set a new solution.\n",
1037 fprintf(stderr,
" max number of solutions: %" MMG5_PRId
"\n",met->
npmax);
1041 if ( pos > met->
np ) {
1042 fprintf(stderr,
"\n ## Error: %s: attempt to set new solution"
1043 " at position %" MMG5_PRId
".",__func__,pos);
1044 fprintf(stderr,
" Overflow of the given number of solutions: %" MMG5_PRId
"\n",met->
np);
1045 fprintf(stderr,
"\n ## Check the solution size, its compactness or the position");
1046 fprintf(stderr,
" of the solution.\n");
1050 met->
m[6*pos] = m11;
1051 met->
m[6*pos+1] = m12;
1052 met->
m[6*pos+2] = m13;
1053 met->
m[6*pos+3] = m22;
1054 met->
m[6*pos+4] = m23;
1055 met->
m[6*pos+5] = m33;
1061 double *m22,
double *m23,
double *m33) {
1065 if ( met->
npi == met->
np ) {
1068 fprintf(stderr,
"\n ## Warning: %s: reset the internal counter of"
1069 " points.\n",__func__);
1070 fprintf(stderr,
" You must pass here exactly one time (the first time ");
1071 fprintf(stderr,
"you call the MMGS_Get_tensorSol function).\n");
1072 fprintf(stderr,
" If not, the number of call of this function");
1073 fprintf(stderr,
" exceed the number of points: %" MMG5_PRId
"\n ",met->
np);
1079 if ( met->
npi > met->
np ) {
1080 fprintf(stderr,
"\n ## Error: %s: unable to get solution.\n",__func__);
1081 fprintf(stderr,
" The number of call of MMGS_Get_tensorSol function");
1082 fprintf(stderr,
" can not exceed the number of points: %" MMG5_PRId
"\n ",met->
np);
1086 *m11 = met->
m[6*met->
npi];
1087 *m12 = met->
m[6*met->
npi+1];
1088 *m13 = met->
m[6*met->
npi+2];
1089 *m22 = met->
m[6*met->
npi+3];
1090 *m23 = met->
m[6*met->
npi+4];
1091 *m33 = met->
m[6*met->
npi+5];
1102 fprintf(stderr,
"\n ## Error: %s: You must set the number"
1103 " of solution with the",__func__);
1104 fprintf(stderr,
" MMGS_Set_solSize function before setting values");
1105 fprintf(stderr,
" in solution structure \n");
1109 for ( k=0; k<met->
np; ++k ) {
1127 for ( k=0; k<met->
np; ++k ) {
1148 switch ( psl->
type ) {
1162 fprintf(stderr,
"\n ## Error: %s: unexpected type of solution: %s.\n",
1177 switch ( psl->
type ) {
1191 fprintf(stderr,
"\n ## Error: %s: unexpected type of solution: %s\n",
1205 switch ( psl->
type ) {
1219 fprintf(stderr,
"\n ## Error: %s: unexpected type of solution: %s.\n",
1233 switch ( psl->
type ) {
1247 fprintf(stderr,
"\n ## Error: %s: unexpected type of solution: %s\n",
1259 fprintf(stderr,
"\n ## Error: %s: if you don't use the MMGS_loadMesh"
1260 " function,",__func__);
1261 fprintf(stderr,
" you must call the MMGS_Set_meshSize function to have a");
1262 fprintf(stderr,
" valid mesh.\n");
1263 fprintf(stderr,
" Missing datas.\n");
1267 if ( met->
npi != met->
np ) {
1268 fprintf(stderr,
"\n ## Error: %s: if you don't use the MMGS_loadSol"
1269 " function,",__func__);
1270 fprintf(stderr,
" you must call the MMGS_Set_solSize function to have a");
1271 fprintf(stderr,
" valid solution.\n");
1272 fprintf(stderr,
" Missing datas.\n");
1280 fprintf(stderr,
" ** MISSING DATA.\n");
1281 fprintf(stderr,
" Check that your mesh contains points and triangles.\n");
1282 fprintf(stderr,
" Exit program.\n");
1288 fprintf(stderr,
" ** 3 DIMENSIONAL MESH NEEDED. Exit program.\n");
1291 if ( met->
dim != 3 ) {
1292 fprintf(stderr,
" ** WRONG DIMENSION FOR METRIC. Exit program.\n");
1296 if ( !met ->ver ) met ->
ver = 2;
1311 fprintf(stderr,
"\n ## Warning: %s: maximal memory authorized must be"
1312 " strictly positive.\n",__func__);
1313 fprintf(stderr,
" Reset to default value.\n");
1329 fprintf(stderr,
"\n ## Warning: %s: angle detection parameter set"
1330 " to default value\n",__func__);
1346 fprintf(stderr,
"\n ## Warning: %s: multi material mode not compatible with"
1347 " references preservation. Refs preservation disabled.\n",__func__);
1381 fprintf(stderr,
"\n ## Warning: %s: new local parameter values\n",__func__);
1388 fprintf(stderr,
" Exit program.\n");
1404 fprintf(stderr,
"\n ## Warning: %s: new level-set based references values\n",__func__);
1409 printf(
" Exit program.\n");
1422 fprintf(stderr,
"\n ## Warning: %s: new multi materials values\n",__func__);
1425 fprintf(stderr,
"\n ## Warning: %s: multi material mode not compatible with"
1426 " references preservation. Refs preservation disabled.\n",__func__);
1433 printf(
" Exit program.\n");
1447 fprintf(stderr,
"\n ## Error: %s: unknown type of parameter\n",__func__);
1499 fprintf(stderr,
"\n ## Error: %s: unknown type of parameter\n",__func__);
1517 fprintf(stderr,
"\n ## Warning: hmin value must be strictly lower than hmax one"
1526 fprintf(stderr,
"\n ## Warning: hmin value must be strictly lower than hmax one"
1550 fprintf(stderr,
"\n ## Error: %s: hausdorff number must be strictly"
1551 " positive.\n",__func__);
1571 fprintf(stderr,
"\n ## Error: %s: unknown type of parameter\n",__func__);
1578 double hmin,
double hmax,
double hausd){
1583 fprintf(stderr,
"\n ## Error: %s: You must set the number of local"
1584 " parameters",__func__);
1585 fprintf(stderr,
" with the MMGS_Set_iparameters function before setting");
1586 fprintf(stderr,
" values in local parameters structure. \n");
1590 fprintf(stderr,
"\n ## Error: %s: unable to set a new local parameter.\n",
1592 fprintf(stderr,
" max number of local parameters: %d\n",
mesh->
info.
npar);
1596 fprintf(stderr,
"\n ## Warning: %s: you must apply your local parameters",
1598 fprintf(stderr,
" on triangles (MMG5_Triangle or %d).\n",
MMG5_Triangle);
1599 fprintf(stderr,
" ## Unknown type of entity: ignored.\n");
1603 fprintf(stderr,
"\n ## Error: %s: negative references are not allowed.\n",
1609 fprintf(stderr,
"\n ## Error: %s: negative hmin value is not allowed.\n",
1614 fprintf(stderr,
"\n ## Error: %s: negative hmax value is not allowed.\n",
1619 fprintf(stderr,
"\n ## Error: %s: negative hausd value is not allowed.\n",
1627 if ( par->
elt == typ && par->
ref == ref ) {
1632 fprintf(stderr,
"\n ## Warning: %s: new parameters (hausd, hmin and hmax)",
1634 fprintf(stderr,
" for entities of type %d and of ref %" MMG5_PRId
"\n",typ,ref);
1652 fprintf(stderr,
"\n ## Error: %s: unexpected entity type: %s.\n",
1663 int split,MMG5_int rin,MMG5_int rout){
const char * MMG5_Get_typeName(enum MMG5_type typ)
int MMG5_Set_outputMeshName(MMG5_pMesh mesh, const char *meshout)
int MMG5_Set_inputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solin)
int MMG5_Free_allSols(MMG5_pMesh mesh, MMG5_pSol *sol)
int MMG5_Set_inputMeshName(MMG5_pMesh mesh, const char *meshin)
void MMG5_Init_parameters(MMG5_pMesh mesh)
const char * MMG5_Get_entitiesName(enum MMG5_entities ent)
void MMG5_Init_fileNames(MMG5_pMesh mesh, MMG5_pSol sol)
int MMG5_Set_outputSolName(MMG5_pMesh mesh, MMG5_pSol sol, const char *solout)
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_Init_mesh(const int starter,...)
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_Free_structures(const int starter,...)
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_Free_all(const int starter,...)
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)
void MMGS_Init_fileNames(MMG5_pMesh mesh, MMG5_pSol sol)
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_Free_names(const int starter,...)
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
if(!ier) exit(EXIT_FAILURE)
va_start(argptr, starter)
LIBMMG_CORE_EXPORT int MMG5_Set_multiMat(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int ref, int split, MMG5_int rin, MMG5_int rex)
#define MMG5_VOLFRAC
API header for the common part of the MMG libraries.
LIBMMG_CORE_EXPORT int MMG5_Set_lsBaseReference(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int br)
API headers for the mmgs library.
@ MMGS_IPARAM_numberOfLocalParam
@ MMGS_IPARAM_numsubdomain
@ MMGS_DPARAM_angleDetection
@ MMGS_IPARAM_numberOfLSBaseReferences
@ MMGS_IPARAM_numberOfMat
int MMGS_Init_mesh_var(va_list argptr)
int MMGS_setMeshSize_alloc(MMG5_pMesh mesh)
int MMGS_Free_all_var(va_list argptr)
int MMGS_Free_names_var(va_list argptr)
int MMGS_memOption(MMG5_pMesh mesh)
int MMGS_Free_structures_var(va_list argptr)
#define MMG5_SAFE_CALLOC(ptr, size, type, law)
double MMG5_caltri_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
#define MMG5_INCREASE_MEM_MESSAGE()
#define MMG5_ADD_MEM(mesh, size, message, law)
double MMG5_caltri_iso(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria ptt)
double MMG5_caltri33_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria pt)
#define MMG5_DEL_MEM(mesh, ptr)
To store user-defined references in the mesh (useful in LS mode)
Structure to store points of a MMG mesh.