Skip to content
Snippets Groups Projects
Commit 28ad4fe4 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

new ENABLE_SYSTEM_CONTRIB to enable/disable looking for system versions of contrib/ libraries

motivated by crash in system Metis 5
parent ac1c3a2f
Branches
Tags
No related merge requests found
......@@ -85,6 +85,7 @@ opt(PRIVATE_API "Enable private API" OFF)
opt(REVOROPT "Enable Revoropt (used for CVT remeshing)" OFF)
opt(SLEPC "Enable SLEPc eigensolvers (required for conformal compounds)" ${DEFAULT})
opt(SOLVER "Enable built-in finite element solvers (required for compounds)" ${DEFAULT})
opt(SYSTEM_CONTRIB "Use system versions of contrib libraries, when possible" ${DEFAULT})
opt(TCMALLOC "Enable libtcmalloc, a fast malloc implementation but that does not release memory" OFF)
opt(VISUDEV "Enable additional visualization capabilities for development purpose" OFF)
opt(VOROPP "Enable voro++ (for hex meshing, experimental)" ${DEFAULT})
......@@ -657,14 +658,14 @@ if(HAVE_MESH OR HAVE_PLUGINS)
if(ENABLE_ANN)
find_library(ANN_LIB ann PATH_SUFFIXES lib)
find_path(ANN_INC "ANN.h" PATH_SUFFIXES src include ANN)
if(ANN_LIB AND ANN_INC)
if(ENABLE_SYSTEM_CONTRIB AND ANN_LIB AND ANN_INC)
message(STATUS "Using system version of ANN")
list(APPEND EXTERNAL_LIBRARIES ${ANN_LIB})
list(APPEND EXTERNAL_INCLUDES ${ANN_INC})
else(ANN_LIB AND ANN_INC)
message(STATUS "System ANN not found: using contrib/ANN instead")
else(ENABLE_SYSTEM_CONTRIB AND ANN_LIB AND ANN_INC)
add_subdirectory(contrib/ANN)
include_directories(contrib/ANN/include)
endif(ANN_LIB AND ANN_INC)
endif(ENABLE_SYSTEM_CONTRIB AND ANN_LIB AND ANN_INC)
set_config_option(HAVE_ANN "Ann")
endif(ENABLE_ANN)
endif(HAVE_MESH OR HAVE_PLUGINS)
......@@ -753,16 +754,16 @@ if(HAVE_MESH OR HAVE_SOLVER)
if(ENABLE_METIS)
find_library(METIS_LIB metis PATH_SUFFIXES lib)
find_path(METIS_INC "metis.h" PATH_SUFFIXES include)
if(METIS_LIB AND METIS_INC)
if(ENABLE_SYSTEM_CONTRIB AND METIS_LIB AND METIS_INC)
message(STATUS "Using system version of METIS")
list(APPEND EXTERNAL_LIBRARIES ${METIS_LIB})
list(APPEND EXTERNAL_INCLUDES ${METIS_INC})
else(METIS_LIB AND METIS_INC)
message(STATUS "System METIS not found: using contrib/metis instead")
else(ENABLE_SYSTEM_CONTRIB AND METIS_LIB AND METIS_INC)
add_definitions(-DUSE_GKREGEX)
add_subdirectory(contrib/metis)
include_directories(contrib/metis/include contrib/metis/libmetis
contrib/metis/GKlib)
endif(METIS_LIB AND METIS_INC)
endif(ENABLE_SYSTEM_CONTRIB AND METIS_LIB AND METIS_INC)
set_config_option(HAVE_METIS "Metis")
endif(ENABLE_METIS)
endif(HAVE_MESH OR HAVE_SOLVER)
......@@ -775,14 +776,14 @@ if(HAVE_MESH)
if(ENABLE_VOROPP)
find_library(VOROPP_LIB voro++ PATH_SUFFIXES lib)
find_path(VOROPP_INC "voro++.hh" PATH_SUFFIXES include)
if(VOROPP_LIB AND VOROPP_INC)
if(ENABLE_SYSTEM_CONTRIB AND VOROPP_LIB AND VOROPP_INC)
message(STATUS "Using system version of voro++")
list(APPEND EXTERNAL_LIBRARIES ${VOROPP_LIB})
list(APPEND EXTERNAL_INCLUDES ${VOROPP_INC})
else(VOROPP_LIB AND VOROPP_INC)
message(STATUS "System voro++ not found: using contrib/voro++ instead")
else(ENABLE_SYSTEM_CONTRIB AND VOROPP_LIB AND VOROPP_INC)
add_subdirectory(contrib/voro++)
include_directories(contrib/voro++/src)
endif(VOROPP_LIB AND VOROPP_INC)
endif(ENABLE_SYSTEM_CONTRIB AND VOROPP_LIB AND VOROPP_INC)
set_config_option(HAVE_VOROPP "Voro++")
endif(ENABLE_VOROPP)
......@@ -810,14 +811,14 @@ if(HAVE_MESH)
if(ENABLE_MMG3D)
find_library(MMG3D_LIB mmg3dlib4.0 PATH_SUFFIXES lib)
find_path(MMG3D_INC "libmmg3d.h" PATH_SUFFIXES src include)
if(MMG3D_LIB AND MMG3D_INC)
if(ENABLE_SYSTEM_CONTRIB AND MMG3D_LIB AND MMG3D_INC)
message(STATUS "Using system version of MMG3D")
list(APPEND EXTERNAL_LIBRARIES ${MMG3D_LIB})
list(APPEND EXTERNAL_INCLUDES ${MMG3D_INC})
else(MMG3D_LIB AND MMG3D_INC)
message(STATUS "System MMG3D not found: using contrib/mmg3d instead")
else(ENABLE_SYSTEM_CONTRIB AND MMG3D_LIB AND MMG3D_INC)
add_subdirectory(contrib/mmg3d)
include_directories(contrib/mmg3d/build/sources)
endif(MMG3D_LIB AND MMG3D_INC)
endif(ENABLE_SYSTEM_CONTRIB AND MMG3D_LIB AND MMG3D_INC)
set_config_option(HAVE_MMG3D "Mmg3d")
endif(ENABLE_MMG3D)
endif(HAVE_MESH)
......@@ -874,12 +875,12 @@ endif(ENABLE_MED OR ENABLE_CGNS)
if(HAVE_SOLVER)
if(ENABLE_GMM)
find_path(GMM_INC "gmm.h" PATH_SUFFIXES src include include/gmm)
if(GMM_INC)
if(ENABLE_SYSTEM_CONTRIB AND GMM_INC)
message(STATUS "Using system version of GMM")
list(APPEND EXTERNAL_INCLUDES ${GMM_INC})
else(GMM_INC)
message(STATUS "System GMM not found: using contrib/gmm instead")
else(ENABLE_SYSTEM_CONTRIB AND GMM_INC)
include_directories(contrib/gmm)
endif(GMM_INC)
endif(ENABLE_SYSTEM_CONTRIB AND GMM_INC)
set_config_option(HAVE_GMM "Gmm")
endif(ENABLE_GMM)
......
......@@ -25,13 +25,15 @@ Enable Android NDK library target (experimental) (default: OFF)
@item ENABLE_BUILD_IOS
Enable iOS library target (experimental) (default: OFF)
@item ENABLE_CGNS
Enable CGNS mesh export (experimental) (default: OFF)
Enable CGNS mesh import (default: ON)
@item ENABLE_CAIRO
Enable Cairo to render fonts (experimental) (default: ON)
@item ENABLE_CXX11
Enable C++11 (default: ON)
@item ENABLE_C99
Enable C99 (default: ON)
@item ENABLE_PROFILE
Enable profiling compiler flags (default: OFF)
@item ENABLE_DINTEGRATION
Enable discrete integration (needed for levelsets) (default: ON)
@item ENABLE_FLTK
......@@ -110,6 +112,8 @@ Enable Revoropt (used for CVT remeshing) (default: OFF)
Enable SLEPc eigensolvers (required for conformal compounds) (default: ON)
@item ENABLE_SOLVER
Enable built-in finite element solvers (required for compounds) (default: ON)
@item ENABLE_SYSTEM_CONTRIB
Use system versions of contrib libraries, when possible (default: ON)
@item ENABLE_TCMALLOC
Enable libtcmalloc, a fast malloc implementation but that does not release memory (default: OFF)
@item ENABLE_VISUDEV
......
......@@ -158,7 +158,7 @@ Saved in: @code{General.SessionFileName}
@item General.Version
Gmsh version (read-only)@*
Default value: @code{"3.0.7"}@*
Default value: @code{"3.0.7-git-4294b937e"}@*
Saved in: @code{-}
@item General.WatchFilePattern
......
......@@ -16,6 +16,11 @@ Threshold angle below which normals are not smoothed@*
Default value: @code{30}@*
Saved in: @code{General.OptionsFileName}
@item Mesh.AngleToleranceFacetOverlap
Consider connected facets as overlapping when the dihedral angle between the facets is smaller than the user's defined tolerance@*
Default value: @code{0.1}@*
Saved in: @code{General.OptionsFileName}
@item Mesh.AnisoMax
Maximum anisotropy of the mesh@*
Default value: @code{1e+33}@*
......@@ -302,8 +307,8 @@ Default value: @code{1}@*
Saved in: @code{General.OptionsFileName}
@item Mesh.PartitionCreatePhysicals
Create physical groups for partitions@*
Default value: @code{0}@*
Create physical groups for partitions, based on existing physical groups@*
Default value: @code{1}@*
Saved in: @code{General.OptionsFileName}
@item Mesh.PartitionCreateGhostCells
......
......@@ -11,35 +11,35 @@ The ICN measure is related to the condition number of the stiffness matrix.@*
@*
Parameters:@*
@*
- Jacobian determinant = @{0, 1@}@*
- JacobianDeterminant = @{0, 1@}@*
@*
- IGE measure = @{0, 1@}@*
- IGEMeasure = @{0, 1@}@*
@*
- ICN measure = @{0, 1@}@*
- ICNMeasure = @{0, 1@}@*
@*
- Hiding threshold = [0, 1]: Hides all element for which min(mu) is strictly greater than the threshold, where mu is the ICN if ICN measure == 1, otherwise mu is the IGE it IGE measure == 1, otherwise mu is the Jacobian determinant.@*
- HidingThreshold = [0, 1]: Hides all element for which min(mu) is strictly greater than the threshold, where mu is the ICN if ICN measure == 1, otherwise mu is the IGE it IGE measure == 1, otherwise mu is the Jacobian determinant.@*
If threshold == 0, hides all elements except invalid.@*
@*
- DrawPView = @{0, 1@}: Creates a PView of min(J)/max(J), min(IGE) and/or min(ICN) according to what is asked. If 'Recompute' = 1, new PViews are created.@*
@*
- Recompute = @{0,1@}: Should be 1 if the mesh has changed.@*
@*
- Dimension = @{-1, 1, 2, 3, 4@}: If == -1, analyse element of the greater dimension. If == 4, analyse 2D and 3D elements.
- DimensionOfElements = @{-1, 1, 2, 3, 4@}: If == -1, analyse element of the greater dimension. If == 4, analyse 2D and 3D elements.
Numeric options:
@table @code
@item Jacobian determinant
Default value: @code{1}
@item IGE measure
Default value: @code{1}
@item ICN measure
Default value: @code{1}
@item Hiding threshold
@item JacobianDeterminant
Default value: @code{0}
@item IGEMeasure
Default value: @code{0}
@item ICNMeasure
Default value: @code{0}
@item HidingThreshold
Default value: @code{9}
@item DrawPView
Default value: @code{0}
@item Recompute
Default value: @code{0}
@item Dimension of elements
@item DimensionOfElements
Default value: @code{-1}
@end table
......
......@@ -166,7 +166,7 @@ Save SICN (signed inverse condition number) quality measure in mesh statistics e
Default value: @code{0}@*
Saved in: @code{General.OptionsFileName}
@item Print.PostSICN
@item Print.PostSIGE
Save SIGE (signed inverse gradient error) quality measure in mesh statistics exported as post-processing views@*
Default value: @code{0}@*
Saved in: @code{General.OptionsFileName}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment