From b7fc30839a0490dcda3ff3c4687d8dd80618c0ca Mon Sep 17 00:00:00 2001 From: Algiane Date: Fri, 9 Oct 2015 16:28:01 +0200 Subject: [PATCH] Merge branch 'hotfix/5.0.2' into develop: - Change the location of header file installation ('include/mmg/mmg3d' instead of 'include' directory). - Thanks to P. Saramito: Now the library has a suitable 'soname'. - Add contacts information to the AUTHORS file. - Cleaner way to list header files. - Add man pages + add info on memory usage and scotch rembering for the -val option. --- AUTHORS | 2 +- CMakeLists.txt | 38 ++++++++---------- doc/man/mmg3d.1.gz | Bin 0 -> 1846 bytes doc/man/mmgs.1.gz | Bin 0 -> 1449 bytes libexamples/mmg3d/example0/example0_a/main.c | 4 ++ libexamples/mmg3d/example0/example0_b/main.c | 12 ++++-- .../example0_fortran/example0_a/main.F90 | 6 ++- .../example0_fortran/example0_b/main.F90 | 7 +++- libexamples/mmg3d/example1/main.c | 4 ++ libexamples/mmg3d/example2/main.c | 4 ++ libexamples/mmg3d/example3/mmg3d.c | 10 +++-- src/common/mmg.c | 12 ++++++ src/mmg3d/pampautils.c | 5 +++ 13 files changed, 72 insertions(+), 32 deletions(-) create mode 100644 doc/man/mmg3d.1.gz create mode 100644 doc/man/mmgs.1.gz diff --git a/AUTHORS b/AUTHORS index 46c310d8f..b6ff0f882 100644 --- a/AUTHORS +++ b/AUTHORS @@ -20,4 +20,4 @@ UPMC = Université Pierre et Marie Curie Contact: -------- - +contact@mmgtools.org diff --git a/CMakeLists.txt b/CMakeLists.txt index 5217aec05..f499a69c1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -301,17 +301,6 @@ IF ( BUILD_MMG3D OR BUILD_MMG ) SET_TARGET_PROPERTIES(${PROJECT_NAME}3d_a PROPERTIES OUTPUT_NAME ${PROJECT_NAME}3d) TARGET_LINK_LIBRARIES(${PROJECT_NAME}3d_a ${LIBRARIES}) - INSTALL(FILES ${MMG3D_SOURCE_DIR}/lib${PROJECT_NAME}3df.h DESTINATION - include) - INSTALL(FILES ${MMG3D_SOURCE_DIR}/lib${PROJECT_NAME}3d.h DESTINATION - include) - INSTALL(FILES ${COMMON_SOURCE_DIR}/libmmg.h DESTINATION - include) - INSTALL(FILES ${COMMON_SOURCE_DIR}/mmg.h DESTINATION - include) - INSTALL(FILES ${COMMON_SOURCE_DIR}/eigenv.h DESTINATION - include) - INSTALL(FILES ${COMMON_SOURCE_DIR}/chrono.h DESTINATION include) INSTALL(TARGETS ${PROJECT_NAME}3d_a ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) @@ -323,25 +312,30 @@ IF ( BUILD_MMG3D OR BUILD_MMG ) ADD_LIBRARY(${PROJECT_NAME}3d_so SHARED ${MMG3D_SOURCE_DIR}/lib${PROJECT_NAME}3df.h ${source_files} ${lib_file}) + SET_TARGET_PROPERTIES(${PROJECT_NAME}3d_so PROPERTIES + VERSION 5.0.0 SOVERSION 5) SET_TARGET_PROPERTIES(${PROJECT_NAME}3d_so PROPERTIES OUTPUT_NAME ${PROJECT_NAME}3d) TARGET_LINK_LIBRARIES(${PROJECT_NAME}3d_so ${LIBRARIES}) - INSTALL(FILES ${MMG3D_SOURCE_DIR}/lib${PROJECT_NAME}3df.h - DESTINATION include) - INSTALL(FILES ${MMG3D_SOURCE_DIR}/lib${PROJECT_NAME}3d.h - DESTINATION include) - INSTALL(FILES ${COMMON_SOURCE_DIR}/libmmg.h DESTINATION - include) - INSTALL(FILES ${COMMON_SOURCE_DIR}/mmg.h DESTINATION - include) - INSTALL(FILES ${COMMON_SOURCE_DIR}/eigenv.h DESTINATION - include) - INSTALL(FILES ${COMMON_SOURCE_DIR}/chrono.h DESTINATION include) INSTALL(TARGETS ${PROJECT_NAME}3d_so ARCHIVE DESTINATION LIBRARY DESTINATION lib) ENDIF() + IF ( LIBMMG3D_STATIC OR LIBMMG3D_SHARED ) + # mmg3d header files needed for library + SET( mmg3d_headers + ${MMG3D_SOURCE_DIR}/libmmg3d.h + ${MMG3D_SOURCE_DIR}/libmmg3df.h + ${COMMON_SOURCE_DIR}/mmg.h + ${COMMON_SOURCE_DIR}/eigenv.h + ${COMMON_SOURCE_DIR}/libmmg.h + ${COMMON_SOURCE_DIR}/chrono.h + ) + + INSTALL(FILES ${mmg3d_headers} DESTINATION include/mmg/mmg3d) + ENDIF() + ############################################################################ ##### ##### Compile program to test library diff --git a/doc/man/mmg3d.1.gz b/doc/man/mmg3d.1.gz new file mode 100644 index 0000000000000000000000000000000000000000..27c2b5744f1fbf2c9fba266d8123a1495ad991b1 GIT binary patch literal 1846 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 literal 0 HcmV?d00001 diff --git a/libexamples/mmg3d/example0/example0_a/main.c b/libexamples/mmg3d/example0/example0_a/main.c index 1da946266..0fff8f5a0 100644 --- a/libexamples/mmg3d/example0/example0_a/main.c +++ b/libexamples/mmg3d/example0/example0_a/main.c @@ -33,7 +33,11 @@ #include #include +/** Include the mmg3d library hader file */ +// if the header file is in the "include" directory #include "libmmg3d.h" +// if the header file is in "include/mmg/mmg3d" +// #include "mmg/mmg3d/libmmg3d.h" int main(int argc,char *argv[]) { MMG5_pMesh mmgMesh; diff --git a/libexamples/mmg3d/example0/example0_b/main.c b/libexamples/mmg3d/example0/example0_b/main.c index 394ebfbd5..71515633b 100644 --- a/libexamples/mmg3d/example0/example0_b/main.c +++ b/libexamples/mmg3d/example0/example0_b/main.c @@ -33,7 +33,11 @@ #include #include +/** Include the mmg3d library hader file */ +// if the header file is in the "include" directory #include "libmmg3d.h" +// if the header file is in "include/mmg/mmg3d" +// #include "mmg/mmg3d/libmmg3d.h" #define MAX0(a,b) (((a) > (b)) ? (a) : (b)) #define MAX(a,b,c,d) (((MAX0(a,b)) > (MAX0(c,d))) ? (MAX0(a,b)) : (MAX0(c,d))) @@ -191,7 +195,7 @@ int main(int argc,char *argv[]) { for(k=1; k<=np; k++) { /** b) Vertex recovering */ if ( !MMG5_Get_vertex(mmgMesh,&(Point[0]),&(Point[1]),&(Point[2]), - &ref,&(corner[k]),&(required[k])) ) exit(EXIT_FAILURE); + &ref,&(corner[k]),&(required[k])) ) exit(EXIT_FAILURE); fprintf(inm,"%.15lg %.15lg %.15lg %d \n",Point[0],Point[1],Point[2],ref); if ( corner[k] ) nc++; if ( required[k] ) nreq++; @@ -212,7 +216,7 @@ int main(int argc,char *argv[]) { for(k=1; k<=nt; k++) { /** d) Triangles recovering */ if ( !MMG5_Get_triangle(mmgMesh,&(Tria[0]),&(Tria[1]),&(Tria[2]), - &ref,&(required[k])) ) exit(EXIT_FAILURE); + &ref,&(required[k])) ) exit(EXIT_FAILURE); fprintf(inm,"%d %d %d %d \n",Tria[0],Tria[1],Tria[2],ref); if ( required[k] ) nreq++; } @@ -226,7 +230,7 @@ int main(int argc,char *argv[]) { for(k=1; k<=na; k++) { /** e) Edges recovering */ if ( !MMG5_Get_edge(mmgMesh,&(Edge[0]),&(Edge[1]),&ref, - &(ridge[k]),&(required[k])) ) exit(EXIT_FAILURE); + &(ridge[k]),&(required[k])) ) exit(EXIT_FAILURE); fprintf(inm,"%d %d %d \n",Edge[0],Edge[1],ref); if ( ridge[k] ) nr++; if ( required[k] ) nreq++; @@ -245,7 +249,7 @@ int main(int argc,char *argv[]) { for(k=1; k<=ne; k++) { /** c) Tetra recovering */ if ( !MMG5_Get_tetrahedron(mmgMesh,&(Tetra[0]),&(Tetra[1]),&(Tetra[2]),&(Tetra[3]), - &ref,&(required[k])) ) exit(EXIT_FAILURE); + &ref,&(required[k])) ) exit(EXIT_FAILURE); fprintf(inm,"%d %d %d %d %d \n",Tetra[0],Tetra[1],Tetra[2],Tetra[3],ref); if ( required[k] ) nreq++; } diff --git a/libexamples/mmg3d/example0_fortran/example0_a/main.F90 b/libexamples/mmg3d/example0_fortran/example0_a/main.F90 index fbea84fab..9c2f19d3e 100644 --- a/libexamples/mmg3d/example0_fortran/example0_a/main.F90 +++ b/libexamples/mmg3d/example0_fortran/example0_a/main.F90 @@ -3,7 +3,11 @@ !> @brief !> Example for using mmg3dlib (basic use) -#include "libmmg3df.h" +!> Include the mmg3d library hader file +! if the header file is in the "include" directory +#include "libmmg3d.h" +! if the header file is in "include/mmg/mmg3d" +! #include "mmg/mmg3d/libmmg3d.h" PROGRAM main diff --git a/libexamples/mmg3d/example0_fortran/example0_b/main.F90 b/libexamples/mmg3d/example0_fortran/example0_b/main.F90 index cfcb9f637..0e3b1e786 100644 --- a/libexamples/mmg3d/example0_fortran/example0_b/main.F90 +++ b/libexamples/mmg3d/example0_fortran/example0_b/main.F90 @@ -3,7 +3,12 @@ !> @brief !> Example for using mmg3dlib (basic use) -#include "libmmg3df.h" + +!> Include the mmg3d library hader file +! if the header file is in the "include" directory +#include "libmmg3d.h" +! if the header file is in "include/mmg/mmg3d" +! #include "mmg/mmg3d/libmmg3d.h" PROGRAM main MMG5_DATA_PTR_T :: mmgMesh diff --git a/libexamples/mmg3d/example1/main.c b/libexamples/mmg3d/example1/main.c index bb5f81c65..04d73044a 100644 --- a/libexamples/mmg3d/example1/main.c +++ b/libexamples/mmg3d/example1/main.c @@ -33,7 +33,11 @@ #include #include +/** Include the mmg3d library hader file */ +// if the header file is in the "include" directory #include "libmmg3d.h" +// if the header file is in "include/mmg/mmg3d" +// #include "mmg/mmg3d/libmmg3d.h" int main(int argc,char *argv[]) { MMG5_pMesh mmgMesh; diff --git a/libexamples/mmg3d/example2/main.c b/libexamples/mmg3d/example2/main.c index b37c63c28..b872fa6c7 100644 --- a/libexamples/mmg3d/example2/main.c +++ b/libexamples/mmg3d/example2/main.c @@ -33,7 +33,11 @@ #include #include +/** Include the mmg3d library hader file */ +// if the header file is in the "include" directory #include "libmmg3d.h" +// if the header file is in "include/mmg/mmg3d" +// #include "mmg/mmg3d/libmmg3d.h" int main(int argc,char *argv[]) { MMG5_pMesh mmgMesh; diff --git a/libexamples/mmg3d/example3/mmg3d.c b/libexamples/mmg3d/example3/mmg3d.c index 542e5ddfe..4f894a8e4 100644 --- a/libexamples/mmg3d/example3/mmg3d.c +++ b/libexamples/mmg3d/example3/mmg3d.c @@ -33,7 +33,11 @@ #include #include +/** Include the mmg3d library hader file */ +// if the header file is in the "include" directory #include "libmmg3d.h" +// if the header file is in "include/mmg/mmg3d" +// #include "mmg/mmg3d/libmmg3d.h" mytime ctim[TIMEMAX]; @@ -117,9 +121,9 @@ int main(int argc,char *argv[]) { else { MMG5_Get_solSize( mesh, met, &dummy, &dummy, &typSol); if ( typSol != MMG5_Scalar ) { - fprintf(stdout," ## ERROR: ANISOTROPIC METRIC NOT IMPLEMENTED.\n"); - MMG5_Free_all(mesh,met); - return(MMG5_STRONGFAILURE); + fprintf(stdout," ## ERROR: ANISOTROPIC METRIC NOT IMPLEMENTED.\n"); + MMG5_Free_all(mesh,met); + return(MMG5_STRONGFAILURE); } } if ( MMG5_Get_iparameter(mesh, MMG5_IPARAM_iso) && !ier ) { diff --git a/src/common/mmg.c b/src/common/mmg.c index 7dc0332c5..1dcfe255c 100644 --- a/src/common/mmg.c +++ b/src/common/mmg.c @@ -73,12 +73,24 @@ void _MMG5_mmgUsage(char *prog) { * */ void _MMG5_mmgDefaultValues(MMG5_pMesh mesh) { + long long memMax; fprintf(stdout,"\nDefault parameters values:\n"); fprintf(stdout,"\n** Generic options :\n"); fprintf(stdout,"verbosity (-v) : %d\n", mesh->info.imprim); + memMax = _MMG5_memSize(); + if ( memMax ) + /* maximal memory = 50% of total physical memory */ + memMax = memMax*50/104857600L; + else { + /* default value = 800 Mo */ + memMax = _MMG5_MEMMAX; + } + fprintf(stdout,"maximal memory size (-m) : %lld MBytes\n", + memMax); + fprintf(stdout,"\n** Parameters\n"); fprintf(stdout,"angle detection (-ar) : %lf\n", diff --git a/src/mmg3d/pampautils.c b/src/mmg3d/pampautils.c index f31ed2951..ea5fefd53 100644 --- a/src/mmg3d/pampautils.c +++ b/src/mmg3d/pampautils.c @@ -178,6 +178,11 @@ void _MMG5_defaultValues(MMG5_pMesh mesh) { fprintf(stdout,"Bucket size per dimension (-bucket) : %d\n", mesh->info.bucket); #endif +#ifdef USE_SCOTCH + fprintf(stdout,"SCOTCH renumbering : enabled\n"); +#else + fprintf(stdout,"SCOTCH renumbering : disabled\n"); +#endif exit(EXIT_FAILURE); }