Commit a03f2778 authored by Chris Cantwell's avatar Chris Cantwell
Browse files

Merge branch 'feature/exampleSolver' of /opt/gitlab/repositories/nektar

parents 82c7afd1 9ca8f922
......@@ -296,7 +296,6 @@ INSTALL(FILES ${CMAKE_BINARY_DIR}/Nektar++Config.cmake
${CMAKE_SOURCE_DIR}/cmake/FindMetis.cmake
${CMAKE_SOURCE_DIR}/cmake/FindFFTW.cmake
${CMAKE_SOURCE_DIR}/cmake/FindWin32Lapack.cmake
${CMAKE_SOURCE_DIR}/cmake/NektarCommon.cmake
${CMAKE_SOURCE_DIR}/cmake/FindTinyXml.cmake
${CMAKE_SOURCE_DIR}/cmake/FindGSMPI.cmake
${CMAKE_SOURCE_DIR}/cmake/FindXXT.cmake
......
# - Nektar++ Config File
#
# Use this module by invoking find_package with the form:
# FIND_PACKAGE(Nektar++
# [version] [EXACT] # Minimum or EXACT version e.g. 1.36.0
# [REQUIRED] # Fail with error if Nektar++ is not found
# ) #
#
# This sets the following variables:
# Nektar++_FOUND - True if headers and requested libraries were found
# Nektar++_VERSION - Nektar++_VERSION
# Nektar++_INCLUDE_DIRS - Nektar++ include directories
# Nektar++_LIBRARY_DIRS - Link directories for Nektar++ libraries
# Nektar++_DEFINITIONS - Nektar++ build flags
# Nektar++_LIBRARIES - Nektar++ component libraries to be linked
#
# Nektar++_TP_INCLUDE_DIRS - Nektar++ ThirdParty include directories
# Nektar++_TP_LIBRARY_DIRS - Link directories for Nektar++ ThirdParty libraries
# Nektar++_TP_LIBRARIES - Nektar++ ThirdParty libraries to be linked
#
# Example Use:
# FIND_PACKAGE(Nektar++ REQUIRED)
# ADD_DEFINITIONS(${NEKTAR++_DEFINITIONS})
# INCLUDE_DIRECTORIES(${NEKTAR++_INCLUDE_DIRS} ${NEKTAR++_TP_INCLUDE_DIRS})
# LINK_DIRECTORIES(${NEKTAR++_LIBRARY_DIRS} ${NEKTAR++_TP_LIBRARY_DIRS})
# TARGET_LINK_LIBRARIES(${ProjectName} ${NEKTAR++_LIBRARIES} ${NEKTAR++_TP_LIBRARIES})
#
# set basic variables
SET(NEKTAR++_FOUND "ON")
SET(NEKTAR++_VERSION "@NEKTAR_VERSION@")
SET(NEKTAR++_ROOT_DIR "@CMAKE_INSTALL_PREFIX@")
SET(NEKTAR++_INCLUDE_DIRS "${NEKTAR++_ROOT_DIR}/@NEKTAR_INCLUDE_DIR@")
SET(NEKTAR++_LIBRARY_DIRS "${NEKTAR++_ROOT_DIR}/@NEKTAR_LIB_DIR@")
SET(NEKTAR++_BIN_DIR "${NEKTAR++_ROOT_DIR}/@NEKTAR_BIN_DIR@")
SET(NEKTAR++_SHARE_DIR "${NEKTAR++_ROOT_DIR}/@NEKTAR_SHARE_DIR@")
SET(NEKTAR++_DEFINITIONS "")
SET(NEKTAR++_LIBRARIES SolverUtils MultiRegions LocalRegions SpatialDomains StdRegions LibUtilities)
SET(NEKTAR++_TP_INCLUDE_DIRS "")
SET(NEKTAR++_TP_LIBRARIES "")
SET(NEKTAR++_TP_LIBRARY_DIRS "@CMAKE_SOURCE_DIR@/ThirdParty/dist/lib/")
# add Nektar++_ROOT_DIR to the cmake search path, so Nektars custom FindXXX modules can be used
SET(CMAKE_MODULE_PATH ${NEKTAR++_ROOT_DIR} ${CMAKE_MODULE_PATH})
# set nektars config variables
SET(NEKTAR_USE_MEMORY_POOLS "@NEKTAR_USE_MEMORY_POOLS@")
MARK_AS_ADVANCED(NEKTAR_USE_MEMORY_POOLS)
IF( NEKTAR_USE_MEMORY_POOLS )
SET(NEKTAR++_DEFINITIONS "${NEKTAR++_DEFINITIONS} -DNEKTAR_MEMORY_POOL_ENABLED")
ENDIF( NEKTAR_USE_MEMORY_POOLS )
SET(NEKTAR_USE_SMV "@NEKTAR_USE_SMV@")
IF( NEKTAR_USE_SMV )
SET(NEKTAR++_DEFINITIONS "${NEKTAR++_DEFINITIONS} -DNEKTAR_USING_SMV")
ENDIF( NEKTAR_USE_SMV )
SET(NEKTAR_USE_ACML "@NEKTAR_USE_ACML@")
SET(NEKTAR_USE_ACML "@NEKTAR_USE_EXPRESSION_TEMPLATES@")
IF( NEKTAR_USE_EXPRESSION_TEMPLATES )
SET(NEKTAR++_DEFINITIONS "${NEKTAR++_DEFINITIONS} -DNEKTAR_USE_EXPRESSION_TEMPLATES")
ENDIF( NEKTAR_USE_EXPRESSION_TEMPLATES )
SET(NEKTAR_USE_WIN32_LAPACK "@NEKTAR_USE_WIN32_LAPACK@")
IF( NEKTAR_USE_WIN32_LAPACK )
GET_FILENAME_COMPONENT(WIN32_BLAS_PATH "@WIN32_BLAS@" PATH)
GET_FILENAME_COMPONENT(WIN32_LAPACK_PATH "@WIN32_LAPACK@" PATH)
ENDIF( NEKTAR_USE_WIN32_LAPACK )
SET(NEKTAR_USE_BLAS_LAPACK "@NEKTAR_USE_BLAS_LAPACK@")
IF( NEKTAR_USE_BLAS_LAPACK )
SET(NEKTAR++_DEFINITIONS "${NEKTAR++_DEFINITIONS} -DNEKTAR_USING_LAPACK -DNEKTAR_USING_BLAS")
ENDIF( NEKTAR_USE_BLAS_LAPACK )
SET(NEKTAR_USE_EXPRESSION_TEMPLATES "@NEKTAR_USE_EXPRESSION_TEMPLATES@")
MARK_AS_ADVANCED(NEKTAR_USE_EXPRESSION_TEMPLATES)
SET(NEKTAR_FULL_DEBUG "@NEKTAR_FULL_DEBUG@")
IF ( NEKTAR_FULL_DEBUG )
SET(NEKTAR++_DEFINITIONS "${NEKTAR++_DEFINITIONS} -DNEKTAR_FULLDEBUG")
ENDIF( NEKTAR_FULL_DEBUG)
SET(Boost_USE_STATIC_LIBS "@Boost_USE_STATIC_LIBS@")
SET(Boost_USE_MULTITHREADED "@Boost_USE_MULTITHREADED@")
SET(BOOST_INCLUDEDIR "@BOOST_INCLUDEDIR@")
SET(BOOST_LIBRARYDIR "@BOOST_LIBRARYDIR@")
SET(Boost_FOUND "@Boost_FOUND@")
SET(Boost_INCLUDE_DIRS "@Boost_INCLUDE_DIRS@")
SET(Boost_INCLUDE_DIR "@Boost_INCLUDE_DIR@")
SET(Boost_LIBRARIES "@Boost_LIBRARIES@")
SET(Boost_LIBRARY_DIRS "@Boost_LIBRARY_DIRS@")
SET(Boost_VERSION "@Boost_VERSION@")
SET(Boost_THREAD_LIBRARY "@Boost_THREAD_LIBRARY@")
SET(Boost_ZLIB_LIBRARY "@Boost_ZLIB_LIBRARY@")
SET(Boost_IOSTREAMS_LIBRARY "@Boost_IOSTREAMS_LIBRARY@")
SET(Boost_DATE_TIME_LIBRARY "@Boost_DATE_TIME_LIBRARY@")
SET(Boost_FILESYSTEM_LIBRARY "@Boost_FILESYSTEM_LIBRARY@")
SET(Boost_SYSTEM_LIBRARY "@Boost_SYSTEM_LIBRARY@")
SET(Boost_PROGRAM_OPTIONS_LIBRARY "@Boost_PROGRAM_OPTIONS_LIBRARY@")
SET(NEKTAR_USE_DIRECT_BLAS_CALLS "@NEKTAR_USE_DIRECT_BLAS_CALLS@")
MARK_AS_ADVANCED(NEKTAR_USE_DIRECT_BLAS_CALLS)
SET(NEKTAR_USE_SMV "@NEKTAR_USE_SMV@")
MARK_AS_ADVANCED(NEKTAR_USE_SMV)
SET(NEKTAR++_TP_INCLUDE_DIRS ${NEKTAR++_TP_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
SET(NEKTAR++_TP_LIBRARIES ${NEKTAR++_TP_LIBRARIES} ${Boost_LIBRARIES})
SET(NEKTAR_USE_MPI "@NEKTAR_USE_MPI@")
SET(MPI_LIBRARY "@MPI_LIBRARY@")
SET(MPI_EXTRA_LIBRARY "@MPI_EXTRA_LIBRARY@")
SET(MPI_INCLUDE_PATH "@MPI_INCLUDE_PATH@")
SET(NEKTAR_FULL_DEBUG "@NEKTAR_FULL_DEBUG@")
SET(CMAKE_MODULE_PATH ${NEKTAR++_ROOT_DIR} ${CMAKE_MODULE_PATH})
SET(NEKTAR++_TP_INCLUDE_DIRS ${NEKTAR++_TP_INCLUDE_DIRS} ${MPI_INCLUDE_PATH})
SET(NEKTAR++_TP_LIBRARIES ${NEKTAR++_TP_LIBRARIES} ${MPI_LIBRARY} ${MPI_EXTRA_LIBRARY})
IF( NEKTAR_USE_MPI )
SET(NEKTAR++_DEFINITIONS "${NEKTAR++_DEFINITIONS} -DNEKTAR_USE_MPI")
ENDIF( NEKTAR_USE_MPI )
SET(LOKI_ADDITIONAL_INCLUDE_DIRS "@LOKI_INCLUDE_DIR@")
INCLUDE(${NEKTAR++_ROOT_DIR}/FindLoki.cmake)
SET(NEKTAR++_TP_INCLUDE_DIRS ${NEKTAR++_TP_INCLUDE_DIRS} ${LOKI_ADDITIONAL_INCLUDE_DIRS})
SET(TINYXML_ADDITIONAL_INCLUDE_DIRS "@TINYXML_BASE@")
INCLUDE(${NEKTAR++_ROOT_DIR}/FindTinyXml.cmake)
SET(NEKTAR_USE_ACML "@NEKTAR_USE_ACML@")
SET(ACML_USE_SHARED_LIBRARIES "@ACML_USE_SHARED_LIBRARIES@")
SET(ACML_USE_OPENMP_LIBRARIES "@ACML_USE_OPENMP_LIBRARIES@")
SET(NEKTAR++_TP_INCLUDE_DIRS ${NEKTAR++_TP_INCLUDE_DIRS} ${TINYXML_ADDITIONAL_INCLUDE_DIRS})
SET(NEKTAR_USE_WIN32_LAPACK "@NEKTAR_USE_WIN32_LAPACK@")
SET(WIN32_LAPACK "@WIN32_LAPACK@")
SET(WIN32_BLAS "@WIN32_BLAS@")
SET(WIN32_LAPACK_FOUND "@WIN32_LAPACK_FOUND@")
SET(LAPACK_DIR "@LAPACK_DIR@")
SET(NEKTAR_USE_ATLAS "@NEKTAR_USE_ATLAS@")
SET(NEKTAR_USE_MKL "@NEKTAR_USE_MKL@")
SET(NEKTAR_USE_BLAS_LAPACK "@NEKTAR_USE_BLAS_LAPACK@")
SET(NEKTAR_USE_SYSTEM_BLAS_LAPACK "@NEKTAR_USE_SYSTEM_BLAS_LAPACK@")
MARK_AS_ADVANCED(NEKTAR_USE_BLAS_LAPACK)
SET(NEKTAR_BUILD_SHARED "@NEKTAR_BUILD_SHARED@")
SET(METIS_FOUND "@METIS_FOUND@")
SET(NEKTAR_USE_METIS "@NEKTAR_USE_METIS@")
SET(METIS_LIB "@METIS_LIB@" CACHE FILEPATH "Metis Library" FORCE)
MARK_AS_ADVANCED(METIS_FOUND)
MARK_AS_ADVANCED(METIS_LIB)
MARK_AS_ADVANCED(NEKTAR_USE_METIS)
SET(FFTW_FOUND "@FFTW_FOUND@")
SET(NEKTAR_USE_FFTW "@NEKTAR_USE_FFTW@")
SET(FFTW_LIB "@FFTW_LIB@" CACHE FILEPATH "FFTW Library" FORCE)
SET(FFTW_INCLUDE_DIR "@FFTW_INCLUDE_DIR@")
MARK_AS_ADVANCED(FFTW_FOUND)
MARK_AS_ADVANCED(FFTW_LIB)
MARK_AS_ADVANCED(FFTW_INCLUDE_DIR)
MARK_AS_ADVANCED(NEKTAR_USE_FFTW)
SET(ARPACK_FOUND "@ARPACK_FOUND@")
SET(NEKTAR_USE_ARPACK "@NEKTAR_USE_ARPACK@")
SET(ARPACK_LIB "@ARPACK_LIB@" CACHE FILEPATH "ARPACK library" FORCE)
SET(ARPACK_INCLUDE_DIR "@ARPACK_INCLUDE_DIR@")
MARK_AS_ADVANCED(ARPACK_FOUND)
MARK_AS_ADVANCED(ARPACK_LIB)
MARK_AS_ADVANCED(ARPACK_INCLUDE_DIR)
MARK_AS_ADVANCED(NEKTAR_USE_ARPACK)
SET(VTK_FOUND "@VTK_FOUND@")
SET(NEKTAR_USE_VTK "@NEKTAR_USE_VTK@")
SET(VTK_USE_FILE "@VTK_USE_FILE@" CACHE FILEPATH "VTK library config." FORCE)
SET(VTK_INCLUDE_DIRS "@VTK_INCLUDE_DIRS@")
MARK_AS_ADVANCED(VTK_FOUND)
MARK_AS_ADVANCED(NEKTAR_USE_VTK)
MARK_AS_ADVANCED(VTK_USE_FILE)
MARK_AS_ADVANCED(VTK_INCLUDE_DIRS)
IF (${CMAKE_COMPILER_IS_GNUCXX})
SET(NEKTAR_ENABLE_PROFILE "@ NEKTAR_ENABLE_PROFILE@")
ENDIF (${CMAKE_COMPILER_IS_GNUCXX})
SET(NEKTAR_USE_TINYXML_STL "@NEKTAR_USE_TINYXML_STL@")
IF( APPLE )
SET(NEKTAR_USE_ACCELERATE_FRAMEWORK "@NEKTAR_USE_ACCELERATE_FRAMEWORK@")
SET(NEKTAR_USE_CHUD_FRAMEWORK "@NEKTAR_USE_CHUD_FRAMEWORK@")
MARK_AS_ADVANCED(NEKTAR_USE_CHUD_FRAMEWORK)
ENDIF(APPLE)
SET(NEKTAR++_TP_INCLUDE_DIRS ${NEKTAR++_TP_INCLUDE_DIRS} ${FFTW_INCLUDE_DIR})
IF( NEKTAR_USE_WIN32_LAPACK )
GET_FILENAME_COMPONENT(WIN32_BLAS_PATH "@WIN32_BLAS@" PATH)
GET_FILENAME_COMPONENT(WIN32_LAPACK_PATH "@WIN32_LAPACK@" PATH)
SET(ARPACK_INCLUDE_DIR "@ARPACK_INCLUDE_DIR@")
SET(NEKTAR++_TP_INCLUDE_DIRS ${NEKTAR++_TP_INCLUDE_DIRS} ${ARPACK_INCLUDE_DIR})
SET(WIN32_LAPACK_ADDITIONAL_DIRS ${WIN32_BLAS_PATH} ${WIN32_LAPACK_PATH})
ENDIF( NEKTAR_USE_WIN32_LAPACK )
SET(VTK_INCLUDE_DIRS "@VTK_INCLUDE_DIRS@")
SET(NEKTAR++_TP_INCLUDE_DIRS ${NEKTAR++_TP_INCLUDE_DIRS} ${VTK_INCLUDE_DIRS})
INCLUDE(${NEKTAR++_ROOT_DIR}/NektarCommon.cmake)
# find and add Nektar++ libraries
INCLUDE(${NEKTAR++_LIBRARY_DIRS}/Nektar++Libraries.cmake)
FIND_FILE(NEKTAR_DEBUG_LIBRARIES Nektar++Libraries-debug.cmake ${NEKTAR++_LIBRARY_DIRS})
IF( NEKTAR_DEBUG_LIBRARIES )
INCLUDE(${NEKTAR_DEBUG_LIBRARIES})
ENDIF( NEKTAR_DEBUG_LIBRARIES )
FIND_FILE(NEKTAR_RELEASE_LIBRARIES Nektar++Libraries-release.cmake ${NEKTAR++_LIBRARY_DIRS})
IF(NEKTAR_RELEASE_LIBRARIES)
INCLUDE(${NEKTAR_RELEASE_LIBRARIES})
ENDIF(NEKTAR_RELEASE_LIBRARIES)
FIND_FILE(NEKTAR_RELEASE_WITH_DEBUG_INFO_LIBRARIES Nektar++Libraries-relwithdebinfo.cmake ${NEKTAR++_LIBRARY_DIRS})
IF(NEKTAR_RELEASE_WITH_DEBUG_INFO_LIBRARIES)
INCLUDE(${NEKTAR_RELEASE_WITH_DEBUG_INFO_LIBRARIES})
ENDIF(NEKTAR_RELEASE_WITH_DEBUG_INFO_LIBRARIES)
SET(NEKTAR++_LIBRARIES SolverUtils MultiRegions LocalRegions SpatialDomains StdRegions LibUtilities)
MARK_AS_ADVANCED(NEKTAR_RELEASE_LIBRARIES)
MARK_AS_ADVANCED(NEKTAR_DEBUG_LIBRARIES)
MARK_AS_ADVANCED(NEKTAR_RELEASE_WITH_DEBUG_INFO_LIBRARIES)
IF(NEKTAR_USE_FFTW)
INCLUDE_DIRECTORIES(${FFTW_INCLUDE_DIR})
ENDIF(NEKTAR_USE_FFTW)
IF(NEKTAR_USE_ARPACK)
INCLUDE_DIRECTORIES(${ARPACK_INCLUDE_DIR})
ENDIF(NEKTAR_USE_ARPACK)
INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${LOKI_INCLUDE_DIR} ${TINYXML_BASE} )
# platform dependent options
if(${CMAKE_SYSTEM} MATCHES "Linux.*")
set(NEKTAR++_TP_LIBRARIES ${NEKTAR++_TP_LIBRARIES} rt)
SET(NEKTAR++_DEFINITIONS "${NEKTAR++_DEFINITIONS} -pthread")
endif(${CMAKE_SYSTEM} MATCHES "Linux.*")
SET(NEKTAR_PACKAGE_GENERATOR "@NEKTAR_PACKAGE_GENERATOR@")
SET(NEKTAR_USING_BLAS "@NEKTAR_USING_BLAS@")
SET(NEKTAR_USING_LAPACK "@NEKTAR_USING_LAPACK@")
SET(NEKTAR_USING_MKL "@NEKTAR_USING_MKL@")
SET(NEKTAR_USING_ACML "@NEKTAR_USING_ACML@")
SET(NEKTAR_USING_OPENBLAS "@NEKTAR_USING_OPENBLAS@")
SET(NEKTAR_USING_SMV "@NEKTAR_USING_SMV@")
if(${CMAKE_SYSTEM} MATCHES "Darwin-*")
SET(NEKTAR++_DEFINITIONS "${NEKTAR++_DEFINITIONS} -Wl,-undefined,dynamic_lookup -Wl,-rpath,${CMAKE_INSTALL_PREFIX}/${LIB_DIR} -Wl,-rpath,${Boost_LIBRARY_DIRS}")
endif(${CMAKE_SYSTEM} MATCHES "Darwin-*")
......@@ -348,19 +348,10 @@ TARGET_LINK_LIBRARIES(LibUtilities
${ZLIB_LIBRARY}
${TINYXML_LIB}
)
IF( UNIX AND NOT APPLE )
TARGET_LINK_LIBRARIES(LibUtilities rt)
ENDIF( UNIX AND NOT APPLE )
SET_LAPACK_LINK_LIBRARIES(LibUtilities)
# This doesn't preserve the BasicUtils, Memory, etc. Find a way to fix this.
INSTALL(FILES ${BasicConstHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities/BasicConst COMPONENT dev)
INSTALL(FILES ${LinearAlgebraHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities/LinearAlgebra COMPONENT dev)
INSTALL(FILES ${FoundationHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities/Foundations COMPONENT dev)
INSTALL(FILES ${InterpreterHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities/Interpreter COMPONENT dev)
INSTALL(FILES ${PolyLibHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities/Polylib COMPONENT dev)
INSTALL(FILES ${CommunicationHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities/Communication COMPONENT dev)
INSTALL(FILES ${ExpressionTemplates} DESTINATION ${NEKTAR_INCLUDE_DIR}/ExpressionTemplates COMPONENT dev)
INSTALL(FILES ${BasicUtilsHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities/BasicUtils COMPONENT dev)
INSTALL(FILES ${MemoryHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities/Memory COMPONENT dev)
INSTALL(FILES ${KernelHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities/Kernel COMPONENT dev)
INSTALL(FILES ${TimeIntegrationHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities/TimeIntegration COMPONENT dev)
INSTALL(FILES ${BaseHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities COMPONENT dev)
INSTALL(FILES ${FFTHeaders} DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities/FFT COMPONENT dev)
INSTALL(DIRECTORY ./ DESTINATION ${NEKTAR_INCLUDE_DIR}/LibUtilities COMPONENT dev FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")
......@@ -58,4 +58,4 @@ TARGET_LINK_LIBRARIES(LocalRegions
)
SET_LAPACK_LINK_LIBRARIES(LocalRegions)
INSTALL(FILES ${LOCAL_REGIONS_HEADERS} DESTINATION ${NEKTAR_INCLUDE_DIR}/LocalRegions COMPONENT dev)
INSTALL(DIRECTORY ./ DESTINATION ${NEKTAR_INCLUDE_DIR}/LocalRegions COMPONENT dev FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")
......@@ -100,19 +100,19 @@ IF(NEKTAR_USE_MPI)
GlobalLinSysXxt.h
GlobalLinSysXxtFull.h
GlobalLinSysXxtStaticCond.h
PreconditionerLinear.cpp
PreconditionerLinearWithLowEnergy.cpp
PreconditionerLinearWithDiag.cpp
PreconditionerLinearWithBlock.cpp
PreconditionerLinear.h
PreconditionerLinearWithLowEnergy.h
PreconditionerLinearWithDiag.h
PreconditionerLinearWithBlock.h
)
SET(MULTI_REGIONS_SOURCES ${MULTI_REGIONS_SOURCES}
GlobalLinSysXxt.cpp
GlobalLinSysXxtFull.cpp
GlobalLinSysXxtStaticCond.cpp
PreconditionerLinear.h
PreconditionerLinearWithLowEnergy.h
PreconditionerLinearWithDiag.h
PreconditionerLinearWithBlock.h
PreconditionerLinear.cpp
PreconditionerLinearWithLowEnergy.cpp
PreconditionerLinearWithDiag.cpp
PreconditionerLinearWithBlock.cpp
)
ENDIF(NEKTAR_USE_MPI)
......@@ -134,10 +134,7 @@ TARGET_LINK_LIBRARIES(MultiRegions
)
SET_LAPACK_LINK_LIBRARIES(MultiRegions)
INSTALL(FILES ${MULTI_REGIONS_HEADERS} DESTINATION ${NEKTAR_INCLUDE_DIR}/MultiRegions COMPONENT dev)
INSTALL(FILES ${ASSEMBLY_MAP_HEADERS} DESTINATION ${NEKTAR_INCLUDE_DIR}/MultiRegions/AssemblyMap COMPONENT dev)
INSTALL(DIRECTORY ./ DESTINATION ${NEKTAR_INCLUDE_DIR}/MultiRegions COMPONENT dev FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")
......@@ -92,4 +92,4 @@ TARGET_LINK_LIBRARIES(SolverUtils
)
SET_LAPACK_LINK_LIBRARIES(SolverUtils)
INSTALL(FILES ${SOLVER_UTILS_HEADERS} DESTINATION ${NEKTAR_INCLUDE_DIR}/SolverUtils COMPONENT dev)
INSTALL(DIRECTORY ./ DESTINATION ${NEKTAR_INCLUDE_DIR}/SolverUtils COMPONENT dev FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")
......@@ -79,8 +79,7 @@ TARGET_LINK_LIBRARIES(SpatialDomains
SET_LAPACK_LINK_LIBRARIES(SpatialDomains)
INSTALL(FILES ${SPATIAL_DOMAINS_HEADERS} DESTINATION ${NEKTAR_INCLUDE_DIR}/SpatialDomains COMPONENT dev)
INSTALL(DIRECTORY ./ DESTINATION ${NEKTAR_INCLUDE_DIR}/SpatialDomains COMPONENT dev FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")
ADD_NEKTAR_LIBRARY(tinyxml lib STATIC ${TINYXML_SOURCES} ${TINYXML_HEADERS})
......@@ -61,5 +61,5 @@ TARGET_LINK_LIBRARIES(StdRegions
SET_LAPACK_LINK_LIBRARIES(StdRegions)
INSTALL(FILES ${STD_REGIONS_HEADERS} DESTINATION ${NEKTAR_INCLUDE_DIR}/StdRegions COMPONENT dev)
INSTALL(DIRECTORY ./ DESTINATION ${NEKTAR_INCLUDE_DIR}/StdRegions COMPONENT dev FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp")
######################################################
# This CMakeLists.txt is used to generate an executable
# that uses Nektar++. Customization points for your
# projects are marked below.
######################################################
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# TODO - Put the name of your project here.
SET(ProjectName Sample)
PROJECT(${ProjectName})
# Setup where CMake will look for modules. You probably
# won't need to modify this.
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR} ${CMAKE_MODULE_PATH})
# Finds Nektar++. This may introduce other dependencies, such
# as Boost and Loki.
FIND_PACKAGE(Nektar++ REQUIRED)
# TODO - Add an entry here for every source file in your project.
SET(SourceFileNames
main.cpp
)
# TODO - Add an entry here for every header file in your project.
SET(HeaderFileNames
)
IF( NEKTAR++_FOUND )
INCLUDE_DIRECTORIES(${NEKTAR++_INCLUDE_DIRS})
LINK_DIRECTORIES(${NEKTAR++_LIBRARY_DIRS})
ADD_DEFINITIONS(${NEKTAR++_DEFINITIONS})
ADD_NEKTAR_EXECUTABLE(${ProjectName} SourceFileNames HeaderFileNames)
# TODO - If your executable needs to link to any other libraries,
# add them here.
TARGET_LINK_LIBRARIES(${ProjectName}
${NEKTAR++_LIBRARIES}
${Boost_THREAD_LIBRARY}
)
SET_LAPACK_LINK_LIBRARIES(${ProjectName})
ENDIF( NEKTAR++_FOUND )
######################################################
# This CMakeLists.txt is used to generate an executable
# that uses Nektar++. Customization points for your
# projects are marked below.
######################################################
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# TODO - Put the name of your project here.
SET(ProjectName ExampleSolver)
PROJECT(${ProjectName})
# Setup where CMake will look for modules. You probably
# won't need to modify this.
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR} ${CMAKE_MODULE_PATH})
# Finds Nektar++. This may introduce other dependencies, such
# as Boost and Loki.
FIND_PACKAGE(Nektar++ REQUIRED)
ADD_DEFINITIONS(${NEKTAR++_DEFINITIONS})
INCLUDE_DIRECTORIES(${NEKTAR++_INCLUDE_DIRS} ${NEKTAR++_TP_INCLUDE_DIRS})
LINK_DIRECTORIES(${NEKTAR++_LIBRARY_DIRS} ${NEKTAR++_TP_LIBRARY_DIRS})
# TODO - Add an entry here for every source file in your project. Must not be empty!
SET(SourceFileNames
ExampleSolver.cpp
EquationSystems/Laplace.cpp
)
# TODO - Add an entry here for every header file in your project. Must not be empty!
SET(HeaderFileNames
EquationSystems/Laplace.h
)
ADD_EXECUTABLE(${ProjectName} ${SourceFileNames} ${HeaderFileNames})
# TODO - If your executable needs to link to any other libraries,
# add them here.
TARGET_LINK_LIBRARIES(${ProjectName}
${NEKTAR++_LIBRARIES}
${NEKTAR++_TP_LIBRARIES}
)
///////////////////////////////////////////////////////////////////////////////
//
// File Laplace.cpp
//
// For more information, please see: http://www.nektar.info
//
// The MIT License
//
// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
// Department of Aeronautics, Imperial College London (UK), and Scientific
// Computing and Imaging Institute, University of Utah (USA).
//
// License for the specific language governing rights and limitations under
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
// Description: Laplace solve routines
//
///////////////////////////////////////////////////////////////////////////////
#include "Laplace.h"
namespace Nektar
{
string Laplace::className = GetEquationSystemFactory().
RegisterCreatorFunction("Laplace", Laplace::create);
Laplace::Laplace(
const LibUtilities::SessionReaderSharedPtr& pSession)
: EquationSystem(pSession),
m_factors()
{
m_factors[StdRegions::eFactorLambda] = 0.0;
m_factors[StdRegions::eFactorTau] = 1.0;
}
void Laplace::v_InitObject()
{
EquationSystem::v_InitObject();
}
Laplace::~Laplace()
{
}
void Laplace::v_GenerateSummary(SolverUtils::SummaryList& s)
{
EquationSystem::SessionSummary(s);
SolverUtils::AddSummaryItem(s, "Lambda",
m_factors[StdRegions::eFactorLambda]);
}
void Laplace::v_DoSolve()
{
for(int i = 0; i < m_fields.num_elements(); ++i)
{
// Zero field so initial conditions are zero
Vmath::Zero(m_fields[i]->GetNcoeffs(),
m_fields[i]->UpdateCoeffs(), 1);
m_fields[i]->HelmSolve(m_fields[i]->GetPhys(),
m_fields[i]->UpdateCoeffs(),
NullFlagList,
m_factors);
m_fields[i]->SetPhysState(false);
}
}
Array<OneD, bool> Laplace::v_GetSystemSingularChecks()
{
return Array<OneD, bool>(m_session->GetVariables().size(), true);
}
}
///////////////////////////////////////////////////////////////////////////////
//
// File Laplace.h
//
// For more information, please see: http://www.nektar.info
//
// The MIT License
//
// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
// Department of Aeronautics, Imperial College London (UK), and Scientific
// Computing and Imaging Institute, University of Utah (USA).
//
// License for the specific language governing rights and limitations under
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//
// Description: Laplace solve routines
//
///////////////////////////////////////////////////////////////////////////////
#ifndef NEKTAR_SOLVERS_ADRSOLVER_EQUATIONSYSTEMS_LAPLACE_H
#define NEKTAR_SOLVERS_ADRSOLVER_EQUATIONSYSTEMS_LAPLACE_H
#include <SolverUtils/EquationSystem.h>
using namespace Nektar::SolverUtils;
namespace Nektar
{
class Laplace : public EquationSystem
{
public:
/// Class may only be instantiated through the MemoryManager.
friend class MemoryManager<Laplace>;
/// Creates an instance of this class
static EquationSystemSharedPtr create(
const LibUtilities::SessionReaderSharedPtr& pSession)
{
EquationSystemSharedPtr p = MemoryManager<Laplace>::AllocateSharedPtr(pSession);
p->InitObject();
return p;
}
/// Name of class
static std::string className;
protected:
StdRegions::ConstFactorMap m_factors;
Laplace(const LibUtilities::SessionReaderSharedPtr& pSession);
virtual ~Laplace();
virtual void v_InitObject();
virtual void v_GenerateSummary(SolverUtils::SummaryList& s);
virtual void v_DoSolve();
private:
virtual Array<OneD, bool> v_GetSystemSingularChecks();
};
}
#endif