Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Aland, Sebastian
amdis
Commits
68db6597
Commit
68db6597
authored
Jan 13, 2014
by
Naumann, Andreas
Browse files
changed petsc finding for umfpack detection in parallel mode
parent
559ed207
Changes
2
Hide whitespace changes
Inline
Side-by-side
AMDiS/AMDISConfig.cmake.in
View file @
68db6597
...
...
@@ -114,6 +114,77 @@ if(CMAKE_BUILD_TYPE STREQUAL "")
set(CMAKE_BUILD_TYPE "Release")
endif()
#load mpi-compiler for use with parmetis and parallel_domain
if(AMDIS_HAS_PARALLEL_DOMAIN)
find_package(MPI REQUIRED)
if(MPI_FOUND)
list(APPEND AMDIS_LIBRARIES ${MPI_LIBRARIES})
list(APPEND AMDIS_COMPILEFLAGS ${MPI_COMPILE_FLAGS})
list(APPEND AMDIS_INCLUDE_DIRS ${MPI_INCLUDE_PATH})
endif(MPI_FOUND)
if(AMDIS_HAS_PARALLEL_DOMAIN STREQUAL "PETSC")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${AMDIS_DIR})
set(PETSC_EXECUTABLE_RUNS ON)
find_package(PETSc REQUIRED)
if(PETSC_FOUND)
list(APPEND AMDIS_LIBRARIES ${PETSC_LIBRARY_SYS} ${PETSC_LIBRARIES})
list(APPEND AMDIS_INCLUDE_DIRS ${PETSC_INCLUDES})
else()
message(FATAL_ERROR "Could not find PETSc!")
endif(PETSC_FOUND)
elseif(AMDIS_HAS_PARALLEL_DOMAIN STREQUAL "PMTL")
find_package(MTL REQUIRED)
list(APPEND AMDIS_LIBRARIES ${MTL_LIBRARIES})
find_library(PARMETIS_LIB parmetis)
if(PARMETIS_LIB)
list(APPEND AMDIS_LIBRARIES ${PARMETIS_LIB})
else(PARMETIS_LIB)
message(FATAL_ERROR "could not find the parmetis libraries needed by amdis")
endif(PARMETIS_LIB)
find_library(METIS_LIB metis)
if(METIS_LIB)
list(APPEND AMDIS_LIBRARIES ${METIS_LIB})
else(METIS_LIB)
message(FATAL_ERROR "could not find the metis libraries needed by amdis")
endif(METIS_LIB)
endif()
elseif(AMDIS_NEED_SEQ_PETSC)
find_package(MPI REQUIRED)
if(MPI_FOUND)
list(APPEND AMDIS_LIBRARIES ${MPI_LIBRARIES})
list(APPEND AMDIS_COMPILEFLAGS ${MPI_COMPILE_FLAGS})
list(APPEND AMDIS_INCLUDE_DIRS ${MPI_INCLUDE_PATH})
endif(MPI_FOUND)
set(CMAKE_MODULE_PATH ${AMDIS_DIR})
set(PETSC_EXECUTABLE_RUNS ON)
find_package(PETSc REQUIRED)
if(PETSC_FOUND)
list(APPEND AMDIS_LIBRARIES ${PETSC_LIBRARY_SYS} ${PETSC_LIBRARIES})
list(APPEND AMDIS_INCLUDE_DIRS ${PETSC_INCLUDES})
else()
message(FATAL_ERROR "Could not find PETSc!")
endif(PETSC_FOUND)
endif()
if(AMDIS_NEED_HYPRE)
find_package(HYPRE REQUIRED HINTS ${AMDIS_DIR})
if(HAVE_HYPRE)
if(NOT MPI_FOUND)
find_package(MPI REQUIRED)
if(MPI_FOUND)
list(APPEND AMDIS_LIBRARIES ${MPI_LIBRARIES})
list(APPEND AMDIS_COMPILEFLAGS ${MPI_COMPILE_FLAGS})
list(APPEND AMDIS_INCLUDE_DIRS ${MPI_INCLUDE_PATH})
endif()
endif()
list(APPEND AMDIS_INCLUDE_DIRS ${HYPRE_INCLUDE_DIRECTORIES})
list(APPEND AMDIS_COMPILEFLAGS "-DMTL_HAS_HYPRE")
list(APPEND AMDIS_LIBRARIES ${HYPRE_LIBRARIES} )
endif()
endif(AMDIS_NEED_HYPRE)
if(AMDIS_OPENMP)
if(CMAKE_CXX_COMPILER MATCHES ".*icpc")
list(APPEND AMDIS_COMPILEFLAGS "-openmp")
...
...
@@ -308,7 +379,7 @@ return (0) ;
if(SUITESPARSECONFIG_LIB)
list(APPEND AMDIS_LIBRARIES ${SUITESPARSECONFIG_LIB})
else()
message(
FATAL_ERROR
"your umfpack seems to need suitesparseconfig, but cmake could not find it")
message(
STATUS
"your umfpack seems to need suitesparseconfig, but cmake could not find it")
endif()
endif()
...
...
AMDiS/AMDISUse.cmake
View file @
68db6597
#load mpi-compiler for use with parmetis and parallel_domain
if
(
AMDIS_HAS_PARALLEL_DOMAIN
)
find_package
(
MPI REQUIRED
)
if
(
MPI_FOUND
)
list
(
APPEND AMDIS_LIBRARIES
${
MPI_LIBRARIES
}
)
list
(
APPEND AMDIS_COMPILEFLAGS
${
MPI_COMPILE_FLAGS
}
)
list
(
APPEND AMDIS_INCLUDE_DIRS
${
MPI_INCLUDE_PATH
}
)
endif
(
MPI_FOUND
)
if
(
AMDIS_HAS_PARALLEL_DOMAIN STREQUAL
"PETSC"
)
set
(
CMAKE_MODULE_PATH
${
CMAKE_MODULE_PATH
}
${
AMDIS_DIR
}
)
set
(
PETSC_EXECUTABLE_RUNS ON
)
find_package
(
PETSc REQUIRED
)
if
(
PETSC_FOUND
)
list
(
APPEND AMDIS_LIBRARIES
${
PETSC_LIBRARY_SYS
}
${
PETSC_LIBRARIES
}
)
list
(
APPEND AMDIS_INCLUDE_DIRS
${
PETSC_INCLUDES
}
)
else
()
message
(
FATAL_ERROR
"Could not find PETSc!"
)
endif
(
PETSC_FOUND
)
elseif
(
AMDIS_HAS_PARALLEL_DOMAIN STREQUAL
"PMTL"
)
find_package
(
MTL REQUIRED
)
list
(
APPEND AMDIS_LIBRARIES
${
MTL_LIBRARIES
}
)
find_library
(
PARMETIS_LIB parmetis
)
if
(
PARMETIS_LIB
)
list
(
APPEND AMDIS_LIBRARIES
${
PARMETIS_LIB
}
)
else
(
PARMETIS_LIB
)
message
(
FATAL_ERROR
"could not find the parmetis libraries needed by amdis"
)
endif
(
PARMETIS_LIB
)
find_library
(
METIS_LIB metis
)
if
(
METIS_LIB
)
list
(
APPEND AMDIS_LIBRARIES
${
METIS_LIB
}
)
else
(
METIS_LIB
)
message
(
FATAL_ERROR
"could not find the metis libraries needed by amdis"
)
endif
(
METIS_LIB
)
endif
()
elseif
(
AMDIS_NEED_SEQ_PETSC
)
find_package
(
MPI REQUIRED
)
if
(
MPI_FOUND
)
list
(
APPEND AMDIS_LIBRARIES
${
MPI_LIBRARIES
}
)
list
(
APPEND AMDIS_COMPILEFLAGS
${
MPI_COMPILE_FLAGS
}
)
list
(
APPEND AMDIS_INCLUDE_DIRS
${
MPI_INCLUDE_PATH
}
)
endif
(
MPI_FOUND
)
set
(
CMAKE_MODULE_PATH
${
AMDIS_DIR
}
)
set
(
PETSC_EXECUTABLE_RUNS ON
)
find_package
(
PETSc REQUIRED
)
if
(
PETSC_FOUND
)
list
(
APPEND AMDIS_LIBRARIES
${
PETSC_LIBRARY_SYS
}
${
PETSC_LIBRARIES
}
)
list
(
APPEND AMDIS_INCLUDE_DIRS
${
PETSC_INCLUDES
}
)
else
()
message
(
FATAL_ERROR
"Could not find PETSc!"
)
endif
(
PETSC_FOUND
)
endif
()
if
(
AMDIS_NEED_HYPRE
)
find_package
(
HYPRE REQUIRED HINTS
${
AMDIS_DIR
}
)
if
(
HAVE_HYPRE
)
list
(
APPEND AMDIS_INCLUDE_DIRS
${
HYPRE_INCLUDE_DIRECTORIES
}
)
list
(
APPEND AMDIS_COMPILEFLAGS
"-DMTL_HAS_HYPRE"
)
list
(
APPEND AMDIS_LIBRARIES
${
HYPRE_LIBRARIES
}
)
if
(
NOT MPI_FOUND
)
find_package
(
MPI REQUIRED
)
if
(
MPI_FOUND
)
list
(
APPEND AMDIS_LIBRARIES
${
MPI_LIBRARIES
}
)
list
(
APPEND AMDIS_COMPILEFLAGS
${
MPI_COMPILE_FLAGS
}
)
list
(
APPEND AMDIS_INCLUDE_DIRS
${
MPI_INCLUDE_PATH
}
)
endif
()
endif
()
endif
()
endif
(
AMDIS_NEED_HYPRE
)
#thats bad because it affects each target
add_definitions
(
${
AMDIS_COMPILEFLAGS
}
)
include_directories
(
${
AMDIS_INCLUDE_DIRS
}
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment