Commit 91988552 authored by Dave Moxey's avatar Dave Moxey

Merge branch 'master' into feature/cmake-blas

parents 9fcaf6ae 982d929a
......@@ -6,5 +6,5 @@
[submodule "docs/developer-guide"]
branch = master
path = docs/developer-guide
url = git@gitlab.nektar.info:nektar/developer-guide
url = git@gitlab.nektar.info:nektar/developer-guide
ignore = all
......@@ -14,7 +14,7 @@ v5.0.0
functionality in FUNCTIONs defined for forcings (!759)
- Add patch to tinyxml to fix size_t vs int bug (!820)
- Add ARPACK thirdparty build capabilities (!828)
- Added native support for csv files in addititon to pts (!760 !835)
- Added native support for csv files in addititon to pts (!760, !835, !906)
- Utilize LAPACK_DIR env variable to find the native blas/lapack install (!827)
- Remove StdExpansion use from MultiRegion (use Expansions instead). (!831)
- Move steady state check and CFL output from solvers to SolverUtils (!832)
......@@ -22,18 +22,33 @@ v5.0.0
- Simplify RawType typedefs (!840)
- Remove unused files from BasicUtils (!841)
- Remove checks for old boost versions which are no longer supported (!841)
- Refactor ParseUtils to be more consistent (!843)
- Refactor ParseUtils to be more consistent (!843, !896, !908)
- Added support for using the distance to a specific region (e.g. outlet) in the
function definitions for the Absorption Forcing (!769)
- Improve performance of DisContField2D::v_ExtractTracePhys (!824)
- Fix small bug in Jacobian Energy (!857)
- fix variable name overriding in file functions (!870)
- Adds CFI CAD engine back-end (!864)
- Adds CFI Mesh IO support (!864)
- Cleanup of CAD system data structures (!864)
- Fix mac OSX on buildbots (!876)
- Fix error from (!826) (!876)
- Fix minor bug in ARPACK thirdparty build cmake (!874)
- Added in sum factorisation version for pyramid expnasions and orthogonal
expansion in pyramids (!750)
- Switch MeshGraph to use factory pattern and add HDF5 geometry support (!900,
!904)
- Restructure the low energy preconditioner to handle pyramidic and variable
p expansions (!920)
- Remove requirement for modmetis, switch to SCOTCH by default (!899)
- Switch MeshGraph to use factory pattern and add HDF5 geometry support
(!900, !904)
- Fix bug in MeshPartition.cpp which caused incorrect array access when
WeightPartitions was used in parallel (!923)
- Removed instance count from beginning of Array storage to improve memory
alignment (!921)
- Fix naming issue of duplicate Unit tests (!924)
**NekMesh**:
- Add feature to read basic 2D geo files as CAD (!731)
- Add periodic boundary condition meshing in 2D (!733)
......@@ -48,26 +63,54 @@ v5.0.0
- Additional curve types in GEO reader: BSpline, Circle, Ellipse (!800)
- Fix default command line argument value (!823)
- Add projection meshing module which can curve linear meshes with CAD (!826)
- XML meshes now write with provenance information, including information about
their source, for debugging purposes (!872)
- Force 3-node loops to avoid degenerate 1-triangle faces (!875)
- Smooth BL normals in 2D when normals intersect or cause invalid macro BL
elements (!877)
- Revert triangle code to ThirdParty library (!883)
- Fix coinciding nodes issue with very fine meshes (!883)
- Skip CFI groups of bodies and non-numbered nodes (!891)
- Add ability to space out 2D BL nodes to better fit local target Delta (!890)
- Fix automatic peralign call in 2D periodic meshing (!888)
- Fix BL splitting call from MCF (!910)
- Support CFI combined lines (!917)
- Order nodes in Gmsh output (!912)
- Fix manifold face curvature nodes (!913)
**FieldConvert**:
- Add input module for Semtex field files (!777)
- Fixed interppoints module (!760)
- Fix OutputTecplot in 2DH1D (!818)
- Move StreamFunction utility to a FieldConvert module (!809)
- Allow using expansion from session file with new `--useSessionExpansion`
command line option (!842)
- Extend wss module to compressible flows (!810)
- Allow explicitly setting bool options of FieldConvert modules as false (!811)
- Enable output to multiple files (!844)
- Allow using xml file without expansion tag in FieldConvert (!849)
- Add Lambda 2 vortex detection criteria (!882)
- Add module for modifying/adding fields from expressions (!889, !903)
- Add module for evaluating the mean of variables on the domain (!894)
**IncNavierStokesSolver**
- Replace steady-state check based on difference of norms by check based on
norm of the difference, to be consistent with the compressible solver (!832)
- Updated SVV to allow for the DGKernel extension (!851)
- Pre-calculate Time invariant portion of Womersley Solution (!814)
**CompressibleFlowSolver**
- Add 3D regression tests (!567)
- Introduce forcing for quasi-1D Euler simulations (!771)
- Allow performing axi-symmetric Euler simulations (!771)
- Allow performing axi-symmetric Euler and NS simulations (!771, !866)
- Add ability to use an exponential filtering for stabilization with
seg, quad and hex elements (!771, !862)
- Fix compressible solver with NUMMODES=1 (!868)
- Introduce equations of state to account for real gas effects (!880)
**APESolver:**
- Added two new boundary conditions to the APE system: RiemannInvariantBC
and WhiteNoise (!782)
**Documentation**:
- Added the developer-guide repository as a submodule (!751)
......@@ -78,15 +121,30 @@ v4.4.2
- Fix evaluation of points (e.g. HistoryPoints, Interpolation to pts) close to
the interface of two elements (!836)
- Fix deadlock in Hdf5 with homogeneous expansions (!858)
- Fix a few memory leaks in polylib (!863)
- Fix a crash when Interpolator is called on an empty field (!869)
- Fix petsc compile without MPI (!873)
- Fix calculation of BLPoints (!892)
- Fix deadlock in DiffusionLDG (!885)
- Fix uninitialised coefficients in DirectFull solver (!898)
- Updated PETSc to 3.7.7 (!916)
- Fix typcase to an integer which set Lz < 1 to zero when postprocess hdf5 output (!9922)
**NekMesh**
- Fix missing periodic boundary meshing and boundary layer mesh adjustment
configurations in 2D (!859)
- Fix 2D BL splitting where out-of-plane nodes would be created (!887)
**Documentation**:
- Fix sign of the viscous term in the velocity correction scheme equations in
the user guide (!856)
- Fixed anonymous clone URL (!909)
**FieldConvert**
- Allow passing input name with trailing separator (!879)
**Utilities**
- Fix VtkToPng to account for deprecated VTK API for VTK version > 8.1 (!925)
v4.4.1
------
......@@ -119,6 +177,7 @@ v4.4.1
IMEXGear, CNAB, 2nd order IMEX-DIRK, 3rd order IMEX-DIRK (!854)
- Fix bug due to subtractive cancellation in polylib routines (!778)
**FieldConvert:**
- Fix issue with field ordering in the interppointdatatofld module (!754)
- Fix issue with FieldConvert when range flag used (!761)
......
......@@ -210,6 +210,7 @@ INCLUDE (ThirdPartyArpack)
INCLUDE (ThirdPartyMPI)
INCLUDE (ThirdPartyVTK)
INCLUDE (ThirdPartyOCE)
INCLUDE (ThirdPartyTriangle)
INCLUDE (ThirdPartyTetGen)
INCLUDE (ThirdPartyCCM)
INCLUDE (ThirdPartyBlasLapack)
......@@ -297,17 +298,21 @@ INSTALL(FILES ${CMAKE_BINARY_DIR}/Nektar++Config.cmake
COMPONENT dev)
# Install ThirdParty headers to subdirectory of ${NEKTAR_INCLUDE_DIR}
INSTALL(DIRECTORY ${TPDIST}/include/
DESTINATION ${NEKTAR_INCLUDE_DIR}/ThirdParty
COMPONENT dev
)
IF (EXISTS ${TPDIST}/include)
INSTALL(DIRECTORY ${TPDIST}/include/
DESTINATION ${NEKTAR_INCLUDE_DIR}/ThirdParty
COMPONENT dev
)
ENDIF()
# Install ThirdParty libraries into ${NEKTAR_LIB_DIR}. These are shipped with
# the LibUtilities library.
INSTALL(DIRECTORY ${TPDIST}/lib/
DESTINATION ${NEKTAR_LIB_DIR}
COMPONENT libutilities
)
IF (EXISTS ${TPDIST}/lib)
INSTALL(DIRECTORY ${TPDIST}/lib/
DESTINATION ${NEKTAR_LIB_DIR}
COMPONENT libutilities
)
ENDIF()
ADD_SUBDIRECTORY(docs)
......
......@@ -77,6 +77,13 @@ IF( NEKTAR_USE_SCOTCH )
${NEKTAR++_TP_INCLUDE_DIRS} ${SCOTCH_INCLUDE_DIRS})
ENDIF( NEKTAR_USE_SCOTCH )
SET(NEKTAR_USE_METIS "@NEKTAR_USE_METIS@")
IF( NEKTAR_USE_METIS )
SET(METIS_INCLUDE_DIRS "@METIS_CONFIG_INCLUDE_DIR@")
SET(NEKTAR++_TP_INCLUDE_DIRS
${NEKTAR++_TP_INCLUDE_DIRS} ${METIS_INCLUDE_DIRS})
ENDIF( NEKTAR_USE_METIS )
SET(NEKTAR_USE_FFTW "@NEKTAR_USE_FFTW@")
IF( NEKTAR_USE_FFTW )
SET(FFTW_INCLUDE_DIR "@FFTW_INCLUDE_DIR@")
......
......@@ -48,31 +48,34 @@ IF( NEKTAR_USE_MPI )
ADD_DEFINITIONS(-DNEKTAR_USE_MPI)
EXTERNALPROJECT_ADD(
gsmpi-1.2.1
URL ${TPURL}/gsmpi-1.2.1_1.tar.bz2
URL_MD5 c247ed68134a65b8033c639277e46825
STAMP_DIR ${TPBUILD}/stamp
DOWNLOAD_DIR ${TPSRC}
SOURCE_DIR ${TPSRC}/gsmpi-1.2.1
BINARY_DIR ${TPBUILD}/gsmpi-1.2.1
TMP_DIR ${TPBUILD}/gsmpi-1.2.1-tmp
INSTALL_DIR ${TPDIST}
CONFIGURE_COMMAND
${CMAKE_COMMAND}
-G ${CMAKE_GENERATOR}
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_BUILD_TYPE:STRING=Debug
-DCMAKE_INSTALL_PREFIX:PATH=${TPDIST}
${TPSRC}/gsmpi-1.2.1
)
THIRDPARTY_LIBRARY(GSMPI_LIBRARY STATIC gsmpi DESCRIPTION "GSMPI path")
MARK_AS_ADVANCED(GSMPI_LIBRARY)
THIRDPARTY_LIBRARY(XXT_LIBRARY STATIC xxt DESCRIPTION "XXT path")
MARK_AS_ADVANCED(XXT_LIBRARY)
MESSAGE(STATUS "Build GSMPI: ${TPDIST}/lib/lib${GSMPI_LIBRARY}.a")
MESSAGE(STATUS "Build XXT: ${TPDIST}/lib/lib${XXT_LIBRARY}.a")
IF (THIRDPARTY_BUILD_GSMPI)
EXTERNALPROJECT_ADD(
gsmpi-1.2.1
URL ${TPURL}/gsmpi-1.2.1_1.tar.bz2
URL_MD5 c247ed68134a65b8033c639277e46825
STAMP_DIR ${TPBUILD}/stamp
DOWNLOAD_DIR ${TPSRC}
SOURCE_DIR ${TPSRC}/gsmpi-1.2.1
BINARY_DIR ${TPBUILD}/gsmpi-1.2.1
TMP_DIR ${TPBUILD}/gsmpi-1.2.1-tmp
INSTALL_DIR ${TPDIST}
CONFIGURE_COMMAND
${CMAKE_COMMAND}
-G ${CMAKE_GENERATOR}
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_BUILD_TYPE:STRING=Debug
-DCMAKE_INSTALL_PREFIX:PATH=${TPDIST}
${TPSRC}/gsmpi-1.2.1
)
THIRDPARTY_LIBRARY(GSMPI_LIBRARY STATIC gsmpi DESCRIPTION "GSMPI Library")
THIRDPARTY_LIBRARY(XXT_LIBRARY STATIC xxt DESCRIPTION "XXT Library")
MARK_AS_ADVANCED(GSMPI_LIBRARY)
MARK_AS_ADVANCED(XXT_LIBRARY)
MESSAGE(STATUS "Build GSMPI: ${GSMPI_LIBRARY}")
MESSAGE(STATUS "Build XXT: ${XXT_LIBRARY}")
ELSE (THIRDPARTY_BUILD_GSMPI)
MESSAGE(FATAL_ERROR "Must build GSMPI and XXT")
ENDIF (THIRDPARTY_BUILD_GSMPI)
ENDIF( NEKTAR_USE_MPI )
......@@ -8,40 +8,65 @@
INCLUDE(ExternalProject)
EXTERNALPROJECT_ADD(
modmetis-5.1.0
PREFIX ${TPSRC}
URL ${TPURL}/modmetis-5.1.0_2.tar.bz2
URL_MD5 "8a1f1afd39b46a4477c1ea15464cdf89"
STAMP_DIR ${TPBUILD}/stamp
DOWNLOAD_DIR ${TPSRC}
SOURCE_DIR ${TPSRC}/modmetis-5.1.0
BINARY_DIR ${TPBUILD}/modmetis-5.1.0
TMP_DIR ${TPBUILD}/modmetis-5.1.0-tmp
INSTALL_DIR ${TPDIST}
CONFIGURE_COMMAND ${CMAKE_COMMAND}
-G ${CMAKE_GENERATOR}
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_INSTALL_PREFIX:PATH=${TPDIST}
-DCMAKE_C_FLAGS:STRING=-fPIC\ -w
-DGKLIB_PATH:PATH=${TPSRC}/modmetis-5.1.0/GKlib
${TPSRC}/modmetis-5.1.0
)
IF (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# Clang 7.3 has a lovely bug that needs to be patched in order for it to
# compile.
IF (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "7.3")
EXTERNALPROJECT_ADD_STEP(modmetis-5.1.0 patch-install-path
COMMAND sed -i ".bak" "s|#define MAX_JBUFS 128|#define MAX_JBUFS 24|" ${TPSRC}/modmetis-5.1.0/GKlib/error.c
DEPENDERS build
DEPENDEES download)
ENDIF()
ENDIF()
OPTION(NEKTAR_USE_METIS
"Use Metis library for performing mesh partitioning." OFF)
IF (NEKTAR_USE_METIS)
FIND_LIBRARY(METIS_LIBRARY NAMES metis PATHS ${MACPORTS_PREFIX}/lib)
FIND_PATH (METIS_INCLUDE_DIR metis.h PATHS ${MACPORTS_PREFIX}/include)
IF (METIS_LIBRARY AND METIS_INCLUDE_DIR)
SET(BUILD_METIS OFF)
ELSE()
SET(BUILD_METIS ON)
ENDIF ()
CMAKE_DEPENDENT_OPTION(THIRDPARTY_BUILD_METIS
"Build Metis library from ThirdParty" ${BUILD_METIS}
"NEKTAR_USE_METIS" OFF)
THIRDPARTY_LIBRARY(METIS_LIB STATIC metis DESCRIPTION "Metis library")
MARK_AS_ADVANCED(METIS_LIB)
MESSAGE(STATUS "Build Metis: ${METIS_LIB}")
IF (THIRDPARTY_BUILD_METIS)
EXTERNALPROJECT_ADD(
metis-5.1.0
PREFIX ${TPSRC}
URL ${TPURL}/metis-5.1.0.tar.gz
URL_MD5 "5465e67079419a69e0116de24fce58fe"
STAMP_DIR ${TPBUILD}/stamp
DOWNLOAD_DIR ${TPSRC}
SOURCE_DIR ${TPSRC}/metis-5.1.0
BINARY_DIR ${TPBUILD}/metis-5.1.0
TMP_DIR ${TPBUILD}/metis-5.1.0-tmp
INSTALL_DIR ${TPDIST}
CONFIGURE_COMMAND ${CMAKE_COMMAND}
-G ${CMAKE_GENERATOR}
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_INSTALL_PREFIX:PATH=${TPDIST}
-DCMAKE_C_FLAGS:STRING=-fPIC\ -w
-DGKLIB_PATH:PATH=${TPSRC}/metis-5.1.0/GKlib
${TPSRC}/metis-5.1.0
)
INCLUDE_DIRECTORIES(${TPDIST}/include)
\ No newline at end of file
IF (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# Clang 7.3 has a lovely bug that needs to be patched in order for it to
# compile.
IF (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "7.3")
EXTERNALPROJECT_ADD_STEP(metis-5.1.0 patch-install-path
COMMAND sed -i ".bak" "s|#define MAX_JBUFS 128|#define MAX_JBUFS 24|" ${TPSRC}/metis-5.1.0/GKlib/error.c
DEPENDERS build
DEPENDEES download)
ENDIF()
ENDIF()
THIRDPARTY_LIBRARY(METIS_LIB STATIC metis DESCRIPTION "Metis library")
MARK_AS_ADVANCED(METIS_LIB)
MESSAGE(STATUS "Build Metis: ${METIS_LIB}")
SET(METIS_CONFIG_INCLUDE_DIR ${TPINC})
INCLUDE_DIRECTORIES(${TPDIST}/include)
ELSE ()
ADD_CUSTOM_TARGET(metis-5.1.0 ALL)
MESSAGE(STATUS "Found Metis: ${METIS_LIBRARY}")
SET(METIS_CONFIG_INCLUDE_DIR ${METIS_INCLUDE_DIR})
ENDIF()
ENDIF()
......@@ -74,23 +74,22 @@ IF (NEKTAR_USE_PETSC)
ENDIF()
EXTERNALPROJECT_ADD(
petsc-3.7.2
petsc-3.7.7
DEPENDS ${PETSC_DEPS}
PREFIX ${TPSRC}
STAMP_DIR ${TPBUILD}/stamp
DOWNLOAD_DIR ${TPSRC}
SOURCE_DIR ${TPBUILD}/petsc-3.7.2
TMP_DIR ${TPBUILD}/petsc-3.7.2-tmp
SOURCE_DIR ${TPBUILD}/petsc-3.7.7
TMP_DIR ${TPBUILD}/petsc-3.7.7-tmp
INSTALL_DIR ${TPDIST}
BINARY_DIR ${TPBUILD}/petsc-3.7.2
URL http://www.nektar.info/thirdparty/petsc-lite-3.7.2.tar.gz
URL_MD5 "26c2ff8eaaa9e49aea063f839f5daa7e"
BINARY_DIR ${TPBUILD}/petsc-3.7.7
URL ${TPURL}/petsc-lite-3.7.7.tar.gz
URL_MD5 "7b476e38cfab4cddb26f73e5ef23538e"
CONFIGURE_COMMAND
OMPI_FC=${CMAKE_Fortran_COMPILER}
OMPI_CC=${CMAKE_C_COMPILER}
OMPI_CXX=${CMAKE_CXX_COMPILER}
${PYTHON_EXECUTABLE} ./configure
./configure
--with-fc=${PETSC_Fortran_COMPILER}
--with-cc=${PETSC_C_COMPILER}
--with-cxx=${PETSC_CXX_COMPILER}
......@@ -119,7 +118,7 @@ IF (NEKTAR_USE_PETSC)
ENDIF (NOT PETSC_FOUND)
SET(PETSC_CONFIG_INCLUDE_DIR ${PETSC_INCLUDES})
INCLUDE_DIRECTORIES(${PETSC_INCLUDES})
ADD_CUSTOM_TARGET(petsc-3.7.2 ALL)
ADD_CUSTOM_TARGET(petsc-3.7.7 ALL)
ENDIF (THIRDPARTY_BUILD_PETSC)
ADD_DEFINITIONS(-DNEKTAR_USING_PETSC)
......
......@@ -8,14 +8,14 @@
IF (NOT WIN32)
OPTION(NEKTAR_USE_SCOTCH
"Use Scotch library for performing mesh partitioning." OFF)
"Use Scotch library for performing mesh partitioning." ON)
ENDIF(NOT WIN32)
IF (NEKTAR_USE_SCOTCH)
# First search for system TinyXML installs. Hint /opt/local for MacPorts.
FIND_LIBRARY(SCOTCH_LIBRARY NAMES scotch PATHS /opt/local/lib)
FIND_LIBRARY(SCOTCHERR_LIBRARY NAMES scotcherr PATHS /opt/local/lib)
FIND_PATH (SCOTCH_INCLUDE_DIR scotch.h PATHS /opt/local/include)
FIND_LIBRARY(SCOTCH_LIBRARY NAMES scotch PATHS ${MACPORTS_PREFIX}/lib)
FIND_LIBRARY(SCOTCHERR_LIBRARY NAMES scotcherr PATHS ${MACPORTS_PREFIX}/lib)
FIND_PATH (SCOTCH_INCLUDE_DIR scotch.h PATHS ${MACPORTS_PREFIX}/include)
IF (SCOTCH_LIBRARY AND SCOTCHERR_LIBRARY AND SCOTCH_INCLUDE_DIR)
SET(BUILD_SCOTCH OFF)
......@@ -27,6 +27,8 @@ IF (NEKTAR_USE_SCOTCH)
"Build Scotch library from ThirdParty" ${BUILD_SCOTCH}
"NEKTAR_USE_SCOTCH" OFF)
ADD_DEFINITIONS(-DNEKTAR_USE_SCOTCH)
IF (THIRDPARTY_BUILD_SCOTCH)
UNSET(FLEX CACHE)
FIND_PROGRAM(FLEX flex)
......@@ -38,7 +40,7 @@ IF (NEKTAR_USE_SCOTCH)
# Note that scotch is compiled in the source-tree, so we unpack the
# source code in the ThirdParty builds directory.
SET(SCOTCH_SRC ${TPBUILD}/scotch-6.0.0/src)
SET(SCOTCH_SRC ${TPBUILD}/scotch-6.0.4/src)
IF (APPLE)
SET(SCOTCH_MAKE Makefile.inc.i686_mac_darwin8)
......@@ -57,15 +59,15 @@ IF (NEKTAR_USE_SCOTCH)