17.1 Compilation and Testing

Q. I compile Nektar++ successfully but, when I run ctest, all the tests fail. What might be wrong?

On Linux or Mac, if you compile the ThirdParty version of Boost, rather than using version supplied with your operating system (or MacPorts on a Mac), the libraries will be installed in the ThirdParty/dist/lib subdirectory of your Nektar++ directory. When Nektar++ executables are run, the Boost libraries will not be found as this path is not searched by default. To allow the Boost libraries to be found set the following environmental variable, substituting $NEKTAR_HOME with the absolute path of your Nektar++ directory:

Q. How to I compile Nektar++ to run in parallel?

Parallel execution of all Nektar++ solvers is available using MPI. To compile using MPI, enable the NEKTAR_USE_MPI option in the CMake configuration. On recent versions of MPI, the solvers can still be run in serial when compiled with MPI. More information on Nektar++ compilation options is available in Section 1.3.5.

Q. When compiling Nektar++, I receive the following error:

CMake Error: The following variables are used in this project, but they are 
set to NOTFOUND. Please set them or make sure they are set and tested 
correctly in the CMake files: NATIVE_BLAS (ADVANCED) linked by target 
"LibUtilities" in directory /path/to/nektar++/library/LibUtilities 
NATIVE_LAPACK (ADVANCED) linked by target "LibUtilities" in directory 
/path/to/nektar++/library/LibUtilities

This is caused by one of two problems:

Q. When I compile Nektar++ I receive an error

error: #error "SEEK_SET is #defined but must not be for the C++ binding of 
MPI. Include mpi.h before stdio.h"

This can be fixed by including the flags

-DMPICH_IGNORE_CXX_SEEK -DMPICH_SKIP_MPICXX

in the CMAKE_CXX_FLAGS option within the ccmake configuration.

Q. After installing Nektar++ on my local HPC cluster, when I run the ’ctest’ command, all the parallel tests fail. Why is this?

The parallel tests are those which include the word parallel or par. On many HPC systems, the MPI binaries used to execute jobs are not available on the login nodes, to prevent inadvertent parallel runs outside of the queuing system. Consequently, these tests will not execute. To fully test the code, you can submit a job to the queuing system using a minimum of two cores, to run the ctest command.

Q. When running any Nektar++ executable on Windows, I receive an error that zlib.dll cannot be found. How do I fix this?

Windows searches for DLL files in directories specified in the PATH environmental variable. You should add the location of the ThirdParty files to your path. To fix this (example for Windows XP):

Q. When compiling Nektar++ Thirdparty libraries I get an error “CMake Error: Problem extracting tar”

Nektar++ tries to download the appropriate ThirdParty libraries. However if the download protocols are restricted on your computer this may fail leading to the error “‘CMake Error: Problem extracting tar”. These libraries are available from

   http://www.nektar.info/thirdparty/

and can be downloaded directly into the $NEKTAR_HOME/ThirdParty directory