Commit 2ca98313 authored by Simon Clifford's avatar Simon Clifford

Merge branch 'master' into feature/threading

Conflicts:
	library/LibUtilities/BasicUtils/SessionReader.cpp
	library/LibUtilities/BasicUtils/SessionReader.h
	library/LibUtilities/CMakeLists.txt
parents 51caa7c1 aca0fa2f

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

.*
!.gitignore
# Ignore builds and ThirdParty directories
build
builds
ThirdParty
# Ignore .DS_Store sometimes created by OS X.
.DS_Store
# for the userguide
*.pdf
# Kdevelop project files
*.kdev4
This diff is collapsed.
Nektar++
========
Nektar++ is an open-source software framework designed to support the
development of high-performance scalable solvers for partial differential
equations (PDEs) using the spectral/hp element method.
This package consists of a set of libraries (the framework) and a number of
pre-written PDE solvers for a selection of application domains.
The software and User Guide is available for download from
<http://www.nektar.info/>.
User Guide
----------
Detailed information on compiling, installing and using the software is
available in the User Guide. This document is available as a pre-compiled PDF
from the downloads section of the project website.
Pre-requisites
--------------
Nektar++ requires the following software to be installed on the users system:
- CMake
- BLAS/LAPACK
Additional software is also required. This can either be installed system-wide
or it can be downloaded and compiled automatically during the build process.
For more detailed information, please see the User Guide.
Compilation
-----------
On most UNIX-based systems a default compilation can be performed using the
following commands from the top-level of the source tree:
mkdir build
cd build
cmake ..
make
To alter the build configuration (for example, to enable parallel execution
support) we recommend using the `ccmake` command instead of `cmake`.
For more detailed operating-system specific instructions, please see the
User Guide.
Installation
------------
The default installation location is in a `dist` subdirectory of the `build`
directory. This can be changed by setting the `CMAKE_INSTALL_PREFIX` option
using `ccmake`. To install the compiled libraries, solvers and header files, on
UNIX-based systems run:
make install
# CorrectWindowsPaths - this module defines one macro
#
# CONVERT_CYGWIN_PATH( PATH )
# This uses the command cygpath (provided by cygwin) to convert
# unix-style paths into paths useable by cmake on windows
macro (CONVERT_CYGWIN_PATH _path)
if (WIN32)
EXECUTE_PROCESS(COMMAND cygpath.exe -m ${${_path}}
OUTPUT_VARIABLE ${_path})
string (STRIP ${${_path}} ${_path})
endif (WIN32)
endmacro (CONVERT_CYGWIN_PATH)
# Doxygen support
# adapted from http://www.bluequartz.net/projects/EIM_Segmentation/ SoftwareDocumentation/html/usewithcmakeproject.html
OPTION(NEKTAR_BUILD_DOC "Build source code documentation using doxygen" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_BUILD_DOC_QHP
"Use Doxygen to create documentation for Qt Creator" OFF
"NEKTAR_BUILD_DOC" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_BUILD_DOC_XCODE
"Use Doxygen to create documentation for Apple Xcode" OFF
"NEKTAR_BUILD_DOC" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_BUILD_DOC_ECLIPSE
"Use Doxygen to create documentation for Eclipse" OFF
"NEKTAR_BUILD_DOC" OFF)
IF (NEKTAR_BUILD_DOC)
FIND_PACKAGE(Doxygen)
IF(NOT DOXYGEN_FOUND)
MESSAGE(WARNING
"Doxygen not found. Building the documentation will fail.")
ENDIF()
IF(NEKTAR_BUILD_DOC_QHP)
SET(DOXYGEN_GENERATE_QHP "YES")
ENDIF()
IF(NEKTAR_BUILD_DOC_XCODE)
SET(DOXYGEN_GENERATE_DOCSET "YES")
ENDIF()
IF(NEKTAR_BUILD_DOC_ECLIPSE)
SET(DOXYGEN_GENERATE_ECLIPSEHELP "YES")
ENDIF()
INSTALL(DIRECTORY ${PROJECT_BINARY_DIR}/doxygen/
DESTINATION ${NEKTAR_DOC_DIR})
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile.in
${PROJECT_BINARY_DIR}/Doxyfile @ONLY IMMEDIATE)
ADD_CUSTOM_TARGET(doc ALL
COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile
SOURCES ${PROJECT_BINARY_DIR}/Doxyfile)
ENDIF (NEKTAR_BUILD_DOC)
......@@ -36,10 +36,6 @@ RESET_VAR_IF_CHANGED( ACML_SEARCH_PATHS ACML_USE_SHARED_LIBRARIES)
SET(ACML_BASE_SEARCH_PATHS "/opt/acml" "C:\\AMD\\acml" "C:\\Program Files\\AMD\\acml")
SET(ACML_SEARCH_PATHS "")
# The various supported versions. When new versions come out this will need
# to be updated to allow automatic detection.
SET(ACML_VERSIONS 4.2.0 4.1.0 4.0.0 3.5.0 3.6.0 3.6.1)
SET(MP_COMPILER_VERSIONS gfortran64_mp gfortran64_mp_int64 pgi32_mp ifort32_mp)
SET(COMPILER_VERSIONS gfortran64 gfortran64_int64 pgi32 ifort32)
......@@ -52,17 +48,19 @@ ELSE( ACML_USE_OPENMP_LIBRARIES )
ENDIF( ACML_USE_OPENMP_LIBRARIES )
FOREACH(path_iter ${ACML_BASE_SEARCH_PATHS})
FOREACH(version_iter ${ACML_VERSIONS})
FILE( GLOB install_path ${path_iter}*/ACML-EULA.txt )
IF (install_path)
LIST( GET install_path 0 install_path)
GET_FILENAME_COMPONENT( install_path ${install_path} PATH)
FOREACH(compiler_iter ${COMPILER_VERSION_TO_USE})
LIST(APPEND ACML_SEARCH_PATHS ${path_iter}${version_iter}/${compiler_iter}/include)
LIST(APPEND ACML_SEARCH_PATHS
${install_path}/${compiler_iter}/include)
ENDFOREACH(compiler_iter ${COMPILER_VERSION_TO_USE})
ENDFOREACH(version_iter ${ACML_VERSIONS})
ENDIF (install_path)
ENDFOREACH(path_iter ${ACML_BASE_SEARCH_PATHS})
#MESSAGE(${ACML_SEARCH_PATHS})
FIND_PATH(ACML_INCLUDE_PATH acml.h ${ACML_SEARCH_PATHS} )
SET(ACML_LIB_PATH ${ACML_INCLUDE_PATH}/../lib)
#MESSAGE(${ACML_LIB_PATH})
IF( ACML_USE_SHARED_LIBRARIES )
IF( ACML_USE_OPENMP_LIBRARIES )
......@@ -100,5 +98,6 @@ ELSE(ACML_FOUND)
ENDIF (ACML_FIND_REQUIRED)
ENDIF (ACML_FOUND)
MARK_AS_ADVANCED(ACML ACML_INCLUDE_PATH ACML_SEARCH_PATHS
ACML_USE_OPENMP_LIBRARIES ACML_USE_SHARED_LIBRARIES)
SET(ARPACK_SEARCH_PATHS ${CMAKE_SOURCE_DIR} /opt/local/lib/ ThirdParty/ARPACK
${CMAKE_SOURCE_DIR}/ThirdParty/build/dist/lib
${CMAKE_SOURCE_DIR}/../ThirdParty/build/dist/lib )
FIND_LIBRARY(ARPACK_LIB NAMES arpack.1 arpack PATHS ${ARPACK_SEARCH_PATHS})
SET(ARPACK_FOUND FALSE)
IF (ARPACK_LIB)
SET(ARPACK_FOUND TRUE)
MARK_AS_ADVANCED(ARPACK_LIB)
ENDIF (ARPACK_LIB)
IF (ARPACK_FOUND)
IF (NOT ARPACK_LIB_FIND_QUIETLY)