Commit 6981aa82 authored by Kilian Lackhove's avatar Kilian Lackhove

Merge branch 'master' into feature/CsvIO

# Conflicts:
#	CHANGELOG.md
#	library/FieldUtils/InputModules/InputPts.cpp
#	library/FieldUtils/OutputModules/OutputPts.cpp
#	utilities/FieldConvert/Tests/chan3D_pts.tst
parents f92c0866 e7332e13
...@@ -11,6 +11,6 @@ AllowShortCaseLabelsOnASingleLine: false ...@@ -11,6 +11,6 @@ AllowShortCaseLabelsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false AllowShortLoopsOnASingleLine: false
IndentCaseLabels: true IndentCaseLabels: true
Standard: Cpp03 Standard: Cpp11
AccessModifierOffset: -4 AccessModifierOffset: -4
BinPackParameters: true BinPackParameters: true
Changelog Changelog
========= =========
v4.5.0 v5.0.0
------ ------
**NekMesh**: **Library**
- Added in sum factorisation version for pyramid expansions and orthogonal
expansion in pyramids (!750)
- Significant overhaul of CMake infrastructure (!770, !804)
- Fix ThridpartyCCM options (!802)
- Fix Windows CRLF tokens in GEO reader and improve comment handling (!805)
- Use chrono in Timer (!807)
- Fix caching of FUNCTION tags that read from file and provide the same
functionality in FUNCTIONs defined for forcings (!759)
- Added native support for csv files in addititon to pts (!760)
**NekMesh**:
- Add feature to read basic 2D geo files as CAD (!731)
- Add periodic boundary condition meshing in 2D (!733) - Add periodic boundary condition meshing in 2D (!733)
- Adjust boundary layer thickness in corners in 2D (!739) - Adjust boundary layer thickness in corners in 2D (!739)
- Add non-O BL meshing in 2D (!757)
- Add ability to compile CCIO library but tar file is not yet openly
available whist we seek permission from Simens (!799)
- Fix issue with reading CCM files due to definition of default arrays
rather than a vector (!797)
- Fix inverted triangles and small memory issue in surface meshing (!798)
**FieldConvert**:
- Add input module for Semtex field files (!777)
**Documentation**: **Documentation**:
- Added the developer-guide repository as a submodule (!751) - Added the developer-guide repository as a submodule (!751)
v4.4.2
------
**NekMesh**:
- Fix uninitialised memory bug in Nek5000 input module (!801)
**Library**
- Fix ability to set default implementation in Collections and added an option
to set eNoCollections in FieldConvert as default (!789)
v4.4.1
------
**Library**
- Remove m_offset_elmt_id and GetOffsetElmtId which fixed problems in 2D when
quad elements are listed before tri elements (!758)
- Remove the duplicate output of errorutil (!756)
- Fix BLAS CMake dependencies (!763)
- Fix interpolation issue with Lagrange basis functions (!768)
- Fix issue with average fields not working with different polynomial order
fields (!776)
- Fix rounding of integer parameters (!774)
- Fix Hdf5 output in FilterFieldConvert (!781)
- Fixed extreme memory consumption of Interpolator when interpolating from pts
to fld or between different meshes (!783)
- Fix deadlock with HDF5 input (!786)
- Fix missing entriess in LibUtilities::kPointsTypeStr (!792)
- Fix compiler warnings with CommDataType (!793)
**FieldConvert:**
- Fix issue with field ordering in the interppointdatatofld module (!754)
- Fix issue with FieldConvert when range flag used (!761)
- Fix issue when using output-points combined with noequispaced (!775)
- Fix equispacedoutput for 3DH1D with triangles (!787)
**NekMesh**:
- Fix memory consumption issue with Gmsh output (!747, !762)
- Rework meshing control so that if possible viewable meshes will be dumped
when some part of the system fails (!756)
- Add manifold meshing option (!756)
- Fix issue with older rea input files (!765)
- Fix memory leak in variational optimiser, add small optimisations (!785)
- Check the dimensionality of the CAD system before running the 2D generator (!780)
**IncNavierStokesSolver**
- Fix an initialisation issue when using an additional advective field (!779)
**Packaging**
- Added missing package for FieldUtils library (!755)
v4.4.0 v4.4.0
------ ------
**Library**: **Library**:
...@@ -52,7 +120,7 @@ v4.4.0 ...@@ -52,7 +120,7 @@ v4.4.0
- Fix bug in FieldUtils when using half mode expansions (!734) - Fix bug in FieldUtils when using half mode expansions (!734)
- Do not read the same fld/pts files again for every variable (!670) - Do not read the same fld/pts files again for every variable (!670)
- Fix bug in CMake PETSc detection for Ubuntu 16.04/Debian 9 (!735) - Fix bug in CMake PETSc detection for Ubuntu 16.04/Debian 9 (!735)
- Added native support for csv files in addititon to pts (!760) - Fix warnings with Intel compiler (!742)
**ADRSolver:** **ADRSolver:**
- Add a projection equation system for C^0 projections (!675) - Add a projection equation system for C^0 projections (!675)
...@@ -106,6 +174,7 @@ v4.4.0 ...@@ -106,6 +174,7 @@ v4.4.0
(!712) (!712)
- 2D to 3D mesh extrusion module (!715) - 2D to 3D mesh extrusion module (!715)
- Add new two-dimensional mesher from NACA code or step file (!720) - Add new two-dimensional mesher from NACA code or step file (!720)
- Add basic gmsh cad (.geo) reader to the meshing system (!731)
- Fix inverted boundary layer in 2D (!736) - Fix inverted boundary layer in 2D (!736)
- More sensible element sizing with boundary layers in 2D (!736) - More sensible element sizing with boundary layers in 2D (!736)
- Change variable names in mcf file to make more sense (!736) - Change variable names in mcf file to make more sense (!736)
......
...@@ -5,14 +5,34 @@ RelWithDebInfo MinSizeRel.") ...@@ -5,14 +5,34 @@ RelWithDebInfo MinSizeRel.")
PROJECT(Nektar++ C CXX) PROJECT(Nektar++ C CXX)
# Nektar++ requires C++11. Try to infer this for older CMake versions (less than
# 3.1.0)
IF ("${CMAKE_VERSION}" VERSION_LESS "3.1")
IF (NOT MSVC)
INCLUDE(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
IF (COMPILER_SUPPORTS_CXX11)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
ELSE()
MESSAGE(FATAL_ERROR "Nektar++ requires a compiler with C++11 support.")
ENDIF()
ELSEIF(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0)
MESSAGE(FATAL_ERROR "Nektar++ requires full C++11 support: please upgrade to Visual Studio 2013 or later")
ENDIF()
ELSE()
SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
SET(CMAKE_CXX_EXTENSIONS OFF)
ENDIF()
INCLUDE(CheckLanguage) INCLUDE(CheckLanguage)
CHECK_LANGUAGE(Fortran) CHECK_LANGUAGE(Fortran)
IF(CMAKE_Fortran_COMPILER) IF(CMAKE_Fortran_COMPILER)
ENABLE_LANGUAGE(Fortran) ENABLE_LANGUAGE(Fortran)
ELSE() ELSE()
MESSAGE(STATUS "No Fortran support") MESSAGE(STATUS "No Fortran support")
ENDIF() ENDIF()
# Helps organize projects in IDEs. # Helps organize projects in IDEs.
...@@ -29,6 +49,7 @@ SET(NEKTAR_VERSION ${NEKTAR_VERSION_MAJOR}.${NEKTAR_VERSION_MINOR}.${NEKTAR_VERS ...@@ -29,6 +49,7 @@ SET(NEKTAR_VERSION ${NEKTAR_VERSION_MAJOR}.${NEKTAR_VERSION_MINOR}.${NEKTAR_VERS
# Add support for CMAKE_DEPENDENT_OPTION # Add support for CMAKE_DEPENDENT_OPTION
INCLUDE(CMakeDependentOption) INCLUDE(CMakeDependentOption)
INCLUDE(CMakeParseArguments)
# Enable CTest. # Enable CTest.
ENABLE_TESTING() ENABLE_TESTING()
...@@ -161,28 +182,24 @@ OPTION(NEKTAR_USE_EXPRESSION_TEMPLATES ...@@ -161,28 +182,24 @@ OPTION(NEKTAR_USE_EXPRESSION_TEMPLATES
MARK_AS_ADVANCED(NEKTAR_USE_EXPRESSION_TEMPLATES) MARK_AS_ADVANCED(NEKTAR_USE_EXPRESSION_TEMPLATES)
# BLAS Support # BLAS Support
OPTION(NEKTAR_USE_BLAS_LAPACK "Use Blas and lapack routines." ON) CMAKE_DEPENDENT_OPTION(NEKTAR_USE_SYSTEM_BLAS_LAPACK
"Use the system provided blas and lapack libraries" ON
"UNIX; NOT APPLE; NOT NEKTAR_USE_OPENBLAS; NOT NEKTAR_USE_MKL; NOT NEKTAR_USE_ACML; NOT NEKTAR_USE_ACCELERATE_FRAMEWORK" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_USE_OPENBLAS CMAKE_DEPENDENT_OPTION(NEKTAR_USE_OPENBLAS
"Use OpenBLAS library as a substitute to native BLAS." OFF "Use OpenBLAS library as a substitute to native BLAS." OFF
"NEKTAR_USE_BLAS_LAPACK" OFF) "NOT NEKTAR_USE_SYSTEM_BLAS_LAPACK" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_USE_SMV
"Use LibSMV library for faster small matrix-vector multiplies." OFF
"NEKTAR_USE_BLAS_LAPACK" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_USE_ACML CMAKE_DEPENDENT_OPTION(NEKTAR_USE_ACML
"Use the AMD Core Math Library (ACML) for BLAS and Lapack support." OFF "Use the AMD Core Math Library (ACML) for BLAS and Lapack support." OFF
"NEKTAR_USE_BLAS_LAPACK" OFF) "NOT NEKTAR_USE_SYSTEM_BLAS_LAPACK" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_USE_MKL CMAKE_DEPENDENT_OPTION(NEKTAR_USE_MKL
"Use the Intel Math Kernel Library (MKL) for BLAS and Lapack support." OFF "Use the Intel Math Kernel Library (MKL) for BLAS and Lapack support." OFF
"NEKTAR_USE_BLAS_LAPACK" OFF) "NOT NEKTAR_USE_SYSTEM_BLAS_LAPACK" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_USE_SYSTEM_BLAS_LAPACK
"Use the system provided blas and lapack libraries" ON
"NEKTAR_USE_BLAS_LAPACK; UNIX; NOT APPLE; NOT NEKTAR_USE_OPENBLAS; NOT NEKTAR_USE_MKL; NOT NEKTAR_USE_ACML; NOT NEKTAR_USE_ACCELERATE_FRAMEWORK" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_USE_ACCELERATE_FRAMEWORK CMAKE_DEPENDENT_OPTION(NEKTAR_USE_ACCELERATE_FRAMEWORK
"Use the Mac Accelerate Framework for BLAS and Lapack support." ON "Use the Mac Accelerate Framework for BLAS and Lapack support." ON
"NEKTAR_USE_BLAS_LAPACK; APPLE" OFF) "NOT NEKTAR_USE_SYSTEM_BLAS_LAPACK; APPLE" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_USE_WIN32_LAPACK CMAKE_DEPENDENT_OPTION(NEKTAR_USE_WIN32_LAPACK
"Use Win32 Lapack provided with the Third Party Distribution." "Use Win32 Lapack provided with the Third Party Distribution."
ON "NEKTAR_USE_BLAS_LAPACK; WIN32" OFF) ON "NOT NEKTAR_USE_SYSTEM_BLAS_LAPACK; WIN32" OFF)
# Memory pools # Memory pools
OPTION(NEKTAR_USE_MEMORY_POOLS OPTION(NEKTAR_USE_MEMORY_POOLS
...@@ -222,7 +239,6 @@ ENDIF () ...@@ -222,7 +239,6 @@ ENDIF ()
# Find ThirdParty libraries and headers. # Find ThirdParty libraries and headers.
INCLUDE (ThirdPartyTinyxml) INCLUDE (ThirdPartyTinyxml)
INCLUDE (ThirdPartyLoki)
INCLUDE (ThirdPartyMetis) INCLUDE (ThirdPartyMetis)
INCLUDE (ThirdPartyHDF5) INCLUDE (ThirdPartyHDF5)
INCLUDE (ThirdPartyScotch) INCLUDE (ThirdPartyScotch)
...@@ -232,7 +248,6 @@ INCLUDE (ThirdPartyFFTW) ...@@ -232,7 +248,6 @@ INCLUDE (ThirdPartyFFTW)
INCLUDE (ThirdPartyArpack) INCLUDE (ThirdPartyArpack)
INCLUDE (ThirdPartyMPI) INCLUDE (ThirdPartyMPI)
INCLUDE (ThirdPartyVTK) INCLUDE (ThirdPartyVTK)
INCLUDE (ThirdPartySMV)
INCLUDE (ThirdPartyOCE) INCLUDE (ThirdPartyOCE)
INCLUDE (ThirdPartyTetGen) INCLUDE (ThirdPartyTetGen)
INCLUDE (ThirdPartyCCM) INCLUDE (ThirdPartyCCM)
...@@ -241,32 +256,18 @@ INCLUDE (Doxygen) ...@@ -241,32 +256,18 @@ INCLUDE (Doxygen)
IF( NEKTAR_USE_MKL ) IF( NEKTAR_USE_MKL )
INCLUDE (FindMKL) INCLUDE (FindMKL)
SET(NEKTAR_USING_BLAS TRUE)
SET(NEKTAR_USING_LAPACK TRUE)
SET(NEKTAR_USING_MKL TRUE)
ENDIF( NEKTAR_USE_MKL ) ENDIF( NEKTAR_USE_MKL )
IF( NEKTAR_USE_OPENBLAS ) IF( NEKTAR_USE_OPENBLAS )
INCLUDE (FindOpenBlas) INCLUDE (FindOpenBlas)
SET(NEKTAR_USING_OPENBLAS TRUE)
ENDIF( NEKTAR_USE_OPENBLAS ) ENDIF( NEKTAR_USE_OPENBLAS )
IF( NEKTAR_USE_SMV )
INCLUDE (FindSMV)
SET(NEKTAR_USING_SMV TRUE)
ADD_DEFINITIONS(-DNEKTAR_USING_SMV)
ENDIF( NEKTAR_USE_SMV )
IF( NEKTAR_USE_ACCELERATE_FRAMEWORK ) IF( NEKTAR_USE_ACCELERATE_FRAMEWORK )
INCLUDE (FindAccelerateFramework) INCLUDE (FindAccelerateFramework)
ENDIF( NEKTAR_USE_ACCELERATE_FRAMEWORK ) ENDIF( NEKTAR_USE_ACCELERATE_FRAMEWORK )
IF( NEKTAR_USE_ACML ) IF( NEKTAR_USE_ACML )
INCLUDE (FindACML) INCLUDE (FindACML)
SET(NEKTAR_USING_BLAS TRUE)
SET(NEKTAR_USING_LAPACK TRUE)
SET(NEKTAR_USING_ACML TRUE)
ADD_DEFINITIONS(-DUSE_ACML)
ENDIF( NEKTAR_USE_ACML ) ENDIF( NEKTAR_USE_ACML )
IF( NEKTAR_USE_WIN32_LAPACK ) IF( NEKTAR_USE_WIN32_LAPACK )
...@@ -275,24 +276,12 @@ ENDIF( NEKTAR_USE_WIN32_LAPACK ) ...@@ -275,24 +276,12 @@ ENDIF( NEKTAR_USE_WIN32_LAPACK )
IF( NEKTAR_USE_SYSTEM_BLAS_LAPACK ) IF( NEKTAR_USE_SYSTEM_BLAS_LAPACK )
INCLUDE(ThirdPartyBlasLapack) INCLUDE(ThirdPartyBlasLapack)
SET(NEKTAR_USING_BLAS TRUE)
SET(NEKTAR_USING_LAPACK TRUE)
ENDIF( NEKTAR_USE_SYSTEM_BLAS_LAPACK ) ENDIF( NEKTAR_USE_SYSTEM_BLAS_LAPACK )
IF( NEKTAR_USE_BLAS_LAPACK )
SET(NEKTAR_USING_BLAS TRUE)
SET(NEKTAR_USING_LAPACK TRUE)
ADD_DEFINITIONS( -DNEKTAR_USING_LAPACK -DNEKTAR_USING_BLAS )
ENDIF( NEKTAR_USE_BLAS_LAPACK )
IF( NEKTAR_USE_TINYXML_STL ) IF( NEKTAR_USE_TINYXML_STL )
ADD_DEFINITIONS( -DTIXML_USE_STL) ADD_DEFINITIONS( -DTIXML_USE_STL)
ENDIF( NEKTAR_USE_TINYXML_STL ) ENDIF( NEKTAR_USE_TINYXML_STL )
IF( NEKTAR_USE_DIRECT_BLAS_CALLS )
ADD_DEFINITIONS(-DNEKTAR_USING_DIRECT_BLAS_CALLS)
ENDIF( NEKTAR_USE_DIRECT_BLAS_CALLS )
IF( NEKTAR_USE_EXPRESSION_TEMPLATES ) IF( NEKTAR_USE_EXPRESSION_TEMPLATES )
ADD_DEFINITIONS(-DNEKTAR_USE_EXPRESSION_TEMPLATES -DNEKTAR_USING_CMAKE) ADD_DEFINITIONS(-DNEKTAR_USE_EXPRESSION_TEMPLATES -DNEKTAR_USING_CMAKE)
ENDIF( NEKTAR_USE_EXPRESSION_TEMPLATES )