From e64292b5f594836315c86a46c55e95c2bf58a433 Mon Sep 17 00:00:00 2001 From: maier Date: Tue, 25 Sep 2012 13:46:20 +0000 Subject: [PATCH] A bunch of bugfixes for mpi support git-svn-id: https://svn.dealii.org/branches/branch_cmake@26724 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/cmake/configure/configure_1_mpi.cmake | 15 +++++++++------ deal.II/cmake/configure/configure_petsc.cmake | 7 +++++-- deal.II/cmake/configure/configure_trilinos.cmake | 7 +++++-- deal.II/cmake/setup_finalize.cmake | 6 ++++++ deal.II/config/Config.cmake.in | 1 - deal.II/source/lac/constraint_matrix.inst.in | 2 +- 6 files changed, 26 insertions(+), 12 deletions(-) diff --git a/deal.II/cmake/configure/configure_1_mpi.cmake b/deal.II/cmake/configure/configure_1_mpi.cmake index 2b824ee9b7..07017f682e 100644 --- a/deal.II/cmake/configure/configure_1_mpi.cmake +++ b/deal.II/cmake/configure/configure_1_mpi.cmake @@ -28,13 +28,16 @@ MACRO(FEATURE_MPI_CONFIGURE_EXTERNAL var) # The user has to know the location of the mpi headers as well: LIST(APPEND DEAL_II_USER_INCLUDE_DIRS ${MPI_CXX_INCLUDE_PATH}) - # TODO: Set up the rest: - #MPI_CXX_COMPILER MPI Compiler wrapper for CXX - #MPIEXEC Executable for running MPI programs - #MPIEXEC_NUMPROC_FLAG Flag to pass to MPIEXEC before giving it the number of processors to run on - #MPIEXEC_PREFLAGS Flags to pass to MPIEXEC directly before the executable to run. - #MPIEXEC_POSTFLAGS Flags to pass to MPIEXEC after other flags + SET(DEAL_II_SET_MPI_COMPILER ON CACHE BOOL + "Set compiler to the detected mpi wrapper" + ) + MARK_AS_ADVANCED(DEAL_II_SET_MPI_COMPILER) + + IF(DEAL_II_SET_MPI_COMPILER) + SET(CMAKE_CXX_COMPILER ${MPI_CXX_COMPILER}) + SET(CMAKE_C_COMPILER ${MPI_C_COMPILER}) + ENDIF() SET(DEAL_II_COMPILER_SUPPORTS_MPI TRUE) diff --git a/deal.II/cmake/configure/configure_petsc.cmake b/deal.II/cmake/configure/configure_petsc.cmake index e5dfc46dc0..a8c452bcc6 100644 --- a/deal.II/cmake/configure/configure_petsc.cmake +++ b/deal.II/cmake/configure/configure_petsc.cmake @@ -79,9 +79,12 @@ MACRO(FEATURE_PETSC_CONFIGURE_EXTERNAL var) ENDIF() SET(DEAL_II_EXPAND_PETSC_VECTOR "PETScWrappers::Vector") - SET(DEAL_II_EXPAND_PETSC_MPI_VECTOR "PETScWrappers::MPI::Vector") SET(DEAL_II_EXPAND_PETSC_BLOCKVECTOR "PETScWrappers::BlockVector") - SET(DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR "PETScWrappers::MPI::BlockVector") + + IF(DEAL_II_WITH_MPI) + SET(DEAL_II_EXPAND_PETSC_MPI_VECTOR "PETScWrappers::MPI::Vector") + SET(DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR "PETScWrappers::MPI::BlockVector") + ENDIF() SET(${var} TRUE) ENDMACRO() diff --git a/deal.II/cmake/configure/configure_trilinos.cmake b/deal.II/cmake/configure/configure_trilinos.cmake index d2e6efeccc..33a2b4cf23 100644 --- a/deal.II/cmake/configure/configure_trilinos.cmake +++ b/deal.II/cmake/configure/configure_trilinos.cmake @@ -161,12 +161,15 @@ MACRO(FEATURE_TRILINOS_CONFIGURE_EXTERNAL var) SET(DEAL_II_USE_TRILINOS TRUE) SET(DEAL_II_EXPAND_TRILINOS_VECTOR "TrilinosWrappers::Vector") - SET(DEAL_II_EXPAND_TRILINOS_MPI_VECTOR "TrilinosWrappers::MPI::Vector") SET(DEAL_II_EXPAND_TRILINOS_BLOCKVECTOR "TrilinosWrappers::BlockVector") - SET(DEAL_II_EXPAND_TRILINOS_MPI_BLOCKVECTOR "TrilinosWrappers::MPI::BlockVector") SET(DEAL_II_EXPAND_TRILINOS_SPARSITY_PATTERN "TrilinosWrappers::SparsityPattern") SET(DEAL_II_EXPAND_TRILINOS_BLOCK_SPARSITY_PATTERN "TrilinosWrappers::BlockSparsityPattern") + IF(DEAL_II_WITH_MPI) + SET(DEAL_II_EXPAND_TRILINOS_MPI_BLOCKVECTOR "TrilinosWrappers::MPI::BlockVector") + SET(DEAL_II_EXPAND_TRILINOS_MPI_VECTOR "TrilinosWrappers::MPI::Vector") + ENDIF() + # # used with -W -Wall (which includes -Wunused). Regrettable diff --git a/deal.II/cmake/setup_finalize.cmake b/deal.II/cmake/setup_finalize.cmake index 899927523c..25b38952fd 100644 --- a/deal.II/cmake/setup_finalize.cmake +++ b/deal.II/cmake/setup_finalize.cmake @@ -17,6 +17,10 @@ MARK_AS_ADVANCED(file_cmd) # FOREACH(flags ${deal_ii_used_flags}) SET(${flags} "${${flags}} ${${flags}_SAVED}") + # + # Strip leading and trailing whitespace: + # + STRING(STRIP "${flags}" flags) ENDFOREACH() @@ -39,6 +43,7 @@ MESSAGE(" CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR} CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION} on platform ${CMAKE_SYSTEM_NAME} + ${CMAKE_CXX_COMPILER} Compiler flags used for this build: CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") @@ -61,6 +66,7 @@ IF(FEATURE_UMFPACK_CONTRIB_CONFIGURED) MESSAGE(" The contrib UMFPACK library will be compiled with the following C compiler: CMAKE_C_COMPILER: ${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION} + ${CMAKE_C_COMPILER} CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}") IF(CMAKE_BUILD_TYPE MATCHES "Release") MESSAGE(" DEAL_II_C_FLAGS_RELEASE: ${DEAL_II_C_FLAGS_RELEASE}") diff --git a/deal.II/config/Config.cmake.in b/deal.II/config/Config.cmake.in index 257e0c8e56..f96c2666fa 100644 --- a/deal.II/config/Config.cmake.in +++ b/deal.II/config/Config.cmake.in @@ -57,7 +57,6 @@ SET(DEAL_II_LINKER_FLAGS_RELEASE "${DEAL_II_SHARED_LINKER_FLAGS_RELEASE}") SET(DEAL_II_LINKER "${CMAKE_LINKER}") SET(DEAL_II_AR "${CMAKE_AR}") - # # Information on where to find the deal.II libraries and headers # diff --git a/deal.II/source/lac/constraint_matrix.inst.in b/deal.II/source/lac/constraint_matrix.inst.in index b457cfb8e4..400f44cd4f 100644 --- a/deal.II/source/lac/constraint_matrix.inst.in +++ b/deal.II/source/lac/constraint_matrix.inst.in @@ -34,7 +34,7 @@ for (V: EXTERNAL_SEQUENTIAL_VECTORS) } -for (V: EXTERNAL_DISTRIBUTED_VECTORS) +for (V: EXTERNAL_PARALLEL_VECTORS) { template void ConstraintMatrix::set_zero(V&) const; } -- 2.39.5