-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into red_blood_cells/merge - a difficult merge!
Notable things: - Adopted CMake from main branch - Adopted main's dependency handling, including addubg for VTK and HDF - Made use of the RBC controlled by a top-level CMake var (HEMELB_BUILD_RBC default OFF) - Isolated all RBC code and libraries within that library as far as possible - Added basic error handling for VTK code - Got most unit tests passing and all executing without crash (some are failing) - Removed HEMELB_LATTICE type aliases from Distribution output/input to deal with new LB Traits class
- Loading branch information
Showing
992 changed files
with
21,403 additions
and
17,521 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
This file lists the contributors to HemeLB. If their contributions are | ||
owned by their institution(s), this is listed in parentheses after | ||
their name. The details of authorship can be viewed in the git log. | ||
|
||
UCL = University College London, UK | ||
UoE = The University of Edinburgh, UK | ||
BUL = Brunel University London, UK | ||
|
||
James Hetherington (UCL) | ||
Hywel Carver (UCL) | ||
Rupert Nash (UCL, UoE) | ||
Miguel O. Bernabeu (UCL, UoE) | ||
Marco Mazzeo (UCL) | ||
Steven Manos (UCL) | ||
Derek Groen (UCL, BUL) | ||
David Scott (UoE) | ||
Nick Westlake (UCL) | ||
Daniel Holmes (UoE) | ||
Stefan Zasada (UCL) | ||
Jens H. Nielsen (UCL) | ||
Mayeul d'Avezac (UCL) | ||
Wojciech Kozlowski (UCL) | ||
Robert Haines (University of Manchester) | ||
Jiri Jaros (UCL) | ||
Gary Doctors (UCL) | ||
Robin Richardson (UCL) | ||
Mohamed Itani (UCL) | ||
Sebastian Schmieschek (UCL) | ||
David Abou Chacra |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,113 +1,39 @@ | ||
cmake_minimum_required (VERSION 3.1) | ||
# This file is part of HemeLB and is Copyright (C) | ||
# the HemeLB team and/or their institutions, as detailed in the | ||
# file AUTHORS. This software is provided under the terms of the | ||
# license in the file LICENSE. | ||
|
||
cmake_minimum_required (VERSION 3.10) | ||
|
||
Project(HemeLBMaster) | ||
include(ExternalProject) | ||
|
||
#------- Conditional compile options ---------- | ||
include(ExternalProject) | ||
|
||
OPTION(TIXML_USE_STL "Use STL with TIXML" ON) | ||
if(TIXML_USE_STL) | ||
add_definitions(-DTIXML_USE_STL) | ||
endif(TIXML_USE_STL) | ||
set(HEMELB_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}) | ||
|
||
option(HEMELB_USE_DEBUGGER "Use built in hemelb debugger" OFF) | ||
option(HEMELB_VALIDATE_GEOMETRY "Validate geometry" OFF) | ||
set(HEMELB_READING_GROUP_SIZE 5 | ||
CACHE INTEGER "Number of cores to use to read geometry file.") | ||
set(HEMELB_LOG_LEVEL Info | ||
CACHE STRING "Log level, choose 'Critical', 'Error', 'Warning', 'Info', 'Debug' or 'Trace'" ) | ||
set_property(CACHE HEMELB_LOG_LEVEL PROPERTY STRINGS Critical Error Warning Info Debug Trace) | ||
set(HEMELB_STEERING_LIB basic | ||
CACHE STRING "Steering library, choose 'basic' or 'none'" ) | ||
set_property(CACHE HEMELB_STEERING_LIB PROPERTY STRINGS basic none) | ||
option(HEMELB_USE_MULTIMACHINE "Use multi-level parallelism support" OFF) | ||
option(HEMELB_BUILD_UNITTESTS "Build the unit-tests" ON) | ||
option(HEMELB_USE_STREAKLINES "Calculate streakline images" OFF) | ||
option(HEMELB_USE_ALL_WARNINGS_GNU "Show all compiler warnings on development builds (gnu-style-compilers)" ON) | ||
option(HEMELB_STATIC_ASSERT "Use simple compile-time assertions" ON) | ||
set(HEMELB_OPTIMISATION "-O4" CACHE STRING "Optimisation level (can be blank or -O1 to -O4)") | ||
option(HEMELB_BUILD_MULTISCALE "Build HemeLB Multiscale functionality" OFF) | ||
set(HEMELB_LATTICE "D3Q15" | ||
CACHE STRING "Select the lattice type to use (D3Q15,D3Q19,D3Q27)") | ||
set(HEMELB_KERNEL "LBGK" | ||
CACHE STRING | ||
"Select the kernel to use | ||
(LBGK,EntropicAnsumali,EntropicChik,MRT,NNCY,NNCYMOUSE,NNC,NNTPL,GuoForcingLBGK)") | ||
set_property(CACHE HEMELB_KERNEL PROPERTY STRINGS | ||
LBGK EntropicAnsumali EntropicChik MRT NNCY NNCYMOUSE NNC NNTPL GuoForcingLBGK) | ||
set(HEMELB_WALL_BOUNDARY "SIMPLEBOUNCEBACK" | ||
CACHE STRING "Select the boundary conditions to be used at the walls (BFL,GZS,SIMPLEBOUNCEBACK,JUNKYANG)") | ||
set(HEMELB_INLET_BOUNDARY "NASHZEROTHORDERPRESSUREIOLET" | ||
CACHE STRING "Select the boundary conditions to be used at the inlet (NASHZEROTHORDERPRESSUREIOLET,LADDIOLET)") | ||
set(HEMELB_OUTLET_BOUNDARY "NASHZEROTHORDERPRESSUREIOLET" | ||
CACHE STRING "Select the boundary conditions to be used at the outlets (NASHZEROTHORDERPRESSUREIOLET,LADDIOLET)") | ||
set(HEMELB_WALL_INLET_BOUNDARY "NASHZEROTHORDERPRESSURESBB" | ||
CACHE STRING "Select the boundary conditions to be used at corners between walls and inlets (NASHZEROTHORDERPRESSURESBB,NASHZEROTHORDERPRESSUREBFL,LADDIOLETSBB,LADDIOLETBFL)") | ||
set(HEMELB_WALL_OUTLET_BOUNDARY "NASHZEROTHORDERPRESSURESBB" | ||
CACHE STRING "Select the boundary conditions to be used at corners between walls and outlets (NASHZEROTHORDERPRESSURESBB,NASHZEROTHORDERPRESSUREBFL,LADDIOLETSBB,LADDIOLETBFL)") | ||
set(HEMELB_STEERING_HOST "CCS" CACHE STRING "Use a default host suffix for steering? (CCS, NGS2Leeds, NGS2Manchester, LONI, NCSA or blank)") | ||
option(HEMELB_DEPENDENCIES_SET_RPATH "Set runtime RPATH" ON) | ||
set(HEMELB_SUBPROJECT_MAKE_JOBS 1 CACHE INTEGER "Number of jobs to use for subproject build steps") | ||
option(HEMELB_WAIT_ON_CONNECT "Wait for steering client" OFF) | ||
option(HEMELB_IMAGES_TO_NULL "Write images to null" OFF) | ||
option(HEMELB_USE_SSE3 "Use SSE3 intrinsics" OFF) | ||
set(HEMELB_COMPUTE_ARCHITECTURE "AMDBULLDOZER" | ||
CACHE STRING "Select the architecture of the machine being used (INTELSANDYBRIDGE,AMDBULLDOZER,NEUTRAL,ISBFILEVELOCITYINLET)") | ||
option(HEMELB_USE_VELOCITY_WEIGHTS_FILE "Use Velocity weights file" OFF) | ||
# Include the options for the main code | ||
include("Code/cmake/options.cmake") | ||
# and create a list of them to pass to the main configure step | ||
hemelb_pass_cmake_defines(HEMELB_CODE_CMAKE_DEFINES) | ||
|
||
#------- Dependencies ----------- | ||
|
||
add_subdirectory(dependencies) | ||
|
||
# ------ HemeLB ------------------ | ||
message("${PROJECT_SOURCE_DIR}/Code") | ||
|
||
ExternalProject_Add( | ||
hemelb | ||
DOWNLOAD_COMMAND "" | ||
SOURCE_DIR "${PROJECT_SOURCE_DIR}/Code" | ||
CMAKE_ARGS | ||
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} | ||
-DHEMELB_DEPENDENCIES_PATH=${CMAKE_CURRENT_SOURCE_DIR}/dependencies | ||
-DHEMELB_DEPENDENCIES_INSTALL_PATH=${HEMELB_DEPENDENCIES_INSTALL_PATH} | ||
-DTIXML_USE_STL=${TIXML_USE_STL} | ||
-DHEMELB_USE_DEBUGGER=${HEMELB_USE_DEBUGGER} | ||
-DHEMELB_VALIDATE_GEOMETRY=${HEMELB_VALIDATE_GEOMETRY} | ||
-DHEMELB_LOG_LEVEL=${HEMELB_LOG_LEVEL} | ||
-DHEMELB_STEERING_LIB=${HEMELB_STEERING_LIB} | ||
-DHEMELB_USE_MULTIMACHINE=${HEMELB_USE_MULTIMACHINE} | ||
-DHEMELB_BUILD_UNITTESTS=${HEMELB_BUILD_UNITTESTS} | ||
-DHEMELB_USE_STREAKLINES=${HEMELB_USE_STREAKLINES} | ||
-DHEMELB_OPTIMISATION=${HEMELB_OPTIMISATION} | ||
-DHEMELB_READING_GROUP_SIZE=${HEMELB_READING_GROUP_SIZE} | ||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} | ||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} | ||
-DMPI_C_COMPILER=${MPI_C_COMPILER} | ||
-DMPI_CXX_COMPILER=${MPI_CXX_COMPILER} | ||
-DMPI_C_NO_INTERROGATE=${MPI_C_NO_INTERROGATE} | ||
-DMPI_CXX_NO_INTERROGATE=${MPI_CXX_NO_INTERROGATE} | ||
-DHEMELB_USE_ALL_WARNINGS_GNU=${HEMELB_USE_ALL_WARNINGS_GNU} | ||
-DHEMELB_STEERING_HOST=${HEMELB_STEERING_HOST} | ||
-DCTEMPLATE_USE_STATIC=${CTEMPLATE_USE_STATIC} | ||
-DCPPUNIT_USE_STATIC=${CPPUNIT_USE_STATIC} | ||
-DHEMELB_DEPENDENCIES_SET_RPATH=${HEMELB_DEPENDENCIES_SET_RPATH} | ||
-DHEMELB_STATIC_ASSERT=${HEMELB_STATIC_ASSERT} | ||
-DHEMELB_LATTICE=${HEMELB_LATTICE} | ||
-DHEMELB_KERNEL=${HEMELB_KERNEL} | ||
-DHEMELB_WALL_BOUNDARY=${HEMELB_WALL_BOUNDARY} | ||
-DHEMELB_INLET_BOUNDARY=${HEMELB_INLET_BOUNDARY} | ||
-DHEMELB_OUTLET_BOUNDARY=${HEMELB_OUTLET_BOUNDARY} | ||
-DHEMELB_WALL_INLET_BOUNDARY=${HEMELB_WALL_INLET_BOUNDARY} | ||
-DHEMELB_WALL_OUTLET_BOUNDARY=${HEMELB_WALL_OUTLET_BOUNDARY} | ||
-DHEMELB_WAIT_ON_CONNECT=${HEMELB_WAIT_ON_CONNECT} | ||
-DHEMELB_BUILD_MULTISCALE=${HEMELB_BUILD_MULTISCALE} | ||
-DHEMELB_IMAGES_TO_NULL=${HEMELB_IMAGES_TO_NULL} | ||
-DHEMELB_USE_SSE3=${HEMELB_USE_SSE3} | ||
-DHEMELB_COMPUTE_ARCHITECTURE=${HEMELB_COMPUTE_ARCHITECTURE} | ||
-DHEMELB_USE_VELOCITY_WEIGHTS_FILE=${HEMELB_USE_VELOCITY_WEIGHTS_FILE} | ||
BUILD_COMMAND make -j${HEMELB_SUBPROJECT_MAKE_JOBS} | ||
) | ||
hemelb | ||
SOURCE_DIR ${PROJECT_SOURCE_DIR}/Code | ||
CONFIGURE_COMMAND "${CMAKE_COMMAND};${PROJECT_SOURCE_DIR}/Code;${HEMELB_CODE_CMAKE_DEFINES}" | ||
BUILD_COMMAND make -j${HEMELB_SUBPROJECT_MAKE_JOBS} | ||
) | ||
|
||
# These are handled in dependencies/CMakeLists.txt and needed here | ||
# to ensure they are build in correct order. | ||
|
||
foreach(dep cppunit parmetis tinyxml boost ctemplate zlib mpwide cookoff hdf5 vtk) | ||
if(TARGET ${dep}) | ||
add_dependencies(hemelb ${dep}) | ||
endif() | ||
endforeach() | ||
add_dependencies(hemelb parmetis tinyxml boost catch2 ctemplate zlib) | ||
if(HEMELB_BUILD_MULTISCALE) | ||
add_dependencies(hemelb MPWide) | ||
endif() |
Oops, something went wrong.