if (ENABLE_PARALLEL_DOMAIN) add_library(amdis_parallel INTERFACE) target_sources(amdis PRIVATE ${SOURCE_DIR}/parallel/DofComm.cc ${SOURCE_DIR}/parallel/CheckerPartitioner.cc ${SOURCE_DIR}/parallel/ElementObjectDatabase.cc ${SOURCE_DIR}/parallel/InteriorBoundary.cc ${SOURCE_DIR}/parallel/MeshDistributor.cc ${SOURCE_DIR}/parallel/MeshLevelData.cc ${SOURCE_DIR}/parallel/MeshManipulation.cc ${SOURCE_DIR}/parallel/MeshPartitioner.cc ${SOURCE_DIR}/parallel/MpiHelper.cc ${SOURCE_DIR}/parallel/ParallelDebug.cc ${SOURCE_DIR}/parallel/ParallelDofMapping.cc ${SOURCE_DIR}/parallel/ParallelProblemStat.cc ${SOURCE_DIR}/parallel/ParallelSolver.cc ${SOURCE_DIR}/parallel/PeriodicMap.cc ${SOURCE_DIR}/parallel/ParMetisPartitioner.cc ${SOURCE_DIR}/parallel/StdMpi.cc ) target_compile_definitions(amdis_parallel INTERFACE HAVE_PARALLEL_DOMAIN_AMDIS=1) target_enable_mpi(amdis_parallel INTERFACE) target_enable_petsc(amdis_parallel INTERFACE) # add support for the zoltan library if (ENABLE_ZOLTAN) target_enable_zoltan(amdis_parallel INTERFACE) target_sources(amdis PRIVATE ${SOURCE_DIR}/parallel/ZoltanPartitioner.cc) endif (ENABLE_ZOLTAN) if (ENABLE_BDDCML) target_compile_definitions(amdis_parallel INTERFACE HAVE_BDDCML=1) target_sources(amdis PRIVATE ${SOURCE_DIR}/parallel/BddcMlSolver.cc) endif (ENABLE_BDDCML) # add some more source-files that need petsc target_sources(amdis PRIVATE ${SOURCE_DIR}/parallel/MatrixNnzStructure.cc ${SOURCE_DIR}/parallel/ParallelCoarseSpaceSolver.cc ${SOURCE_DIR}/parallel/PetscHelper.cc ${SOURCE_DIR}/parallel/PetscSolver.cc ${SOURCE_DIR}/parallel/PetscSolverGlobalMatrix.cc ${SOURCE_DIR}/parallel/PetscSolverGlobalBlockMatrix.cc ${SOURCE_DIR}/solver/PetscTypes.cc ) if (ENABLE_PARALLEL_SOLVERS) target_sources(amdis PRIVATE ${SOURCE_DIR}/parallel/PetscSolverFeti.cc ${SOURCE_DIR}/parallel/PetscSolverFetiDebug.cc ${SOURCE_DIR}/parallel/PetscSolverFetiMonitor.cc ${SOURCE_DIR}/parallel/PetscSolverFetiOperators.cc ${SOURCE_DIR}/parallel/PetscSolverFetiTimings.cc ${SOURCE_DIR}/parallel/PetscSolverNavierStokes.cc ${SOURCE_DIR}/parallel/PetscSolverNSCH.cc ${SOURCE_DIR}/parallel/PetscSolverCahnHilliard2.cc ${SOURCE_DIR}/parallel/PetscSolverCahnHilliard.cc ${SOURCE_DIR}/parallel/PetscSolverSchur.cc ) target_compile_definitions(amdis_parallel INTERFACE HAVE_PARALLEL_SOLVERS=1) endif (ENABLE_PARALLEL_SOLVERS) target_link_libraries(amdis amdis_parallel) # specify how to install this target: # ----------------------------------- file(GLOB AMDIS_PARALLEL_HEADERS "${SOURCE_DIR}/parallel/*.h") install(FILES ${AMDIS_PARALLEL_HEADERS} DESTINATION include/amdis/parallel/) install(FILES ${BASE_DIR}/cmake3/ResolveCompilerPaths.cmake ${BASE_DIR}/cmake3/FindPackageMultipass.cmake ${BASE_DIR}/cmake3/CorrectWindowsPaths.cmake ${BASE_DIR}/cmake3/FindPETSc.cmake ${BASE_DIR}/cmake3/target_enable_petsc.cmake ${BASE_DIR}/cmake3/target_enable_zoltan.cmake DESTINATION share/amdis/) endif (ENABLE_PARALLEL_DOMAIN)