\chapter{Frequently Asked Questions} \section{Compilation and Testing} \textbf{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 \inlsh{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 \inlsh{\${NEKTAR\_HOME}} with the absolute path of your Nektar++ directory: \begin{itemize} \item On Linux (sh, bash, etc) \begin{lstlisting}[style=BashInputStyle] export LD_LIBRARY_PATH=${NEKTAR_HOME}/ThirdParty/dist/lib \end{lstlisting} or (csh, etc) \begin{lstlisting}[style=BashInputStyle] setenv LD_LIBRARY_PATH ${NEKTAR_HOME}/ThirdParty/dist/lib \end{lstlisting} \item On Mac \begin{lstlisting}[style=BashInputStyle] export DYLD_LIBRARY_PATH=${NEKTAR_HOME}/ThirdParty/dist/lib \end{lstlisting} \end{itemize} \textbf{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 \inlsh{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~\ref{s:installation:source:cmake}. \textbf{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): \begin{itemize} \item As an administrator, open ''System Properties'' in control panel, select the ''Advanced'' tab, and select ''Environment Variables''. \item Edit the system variable `path` and append \inlsh{C:\textbackslash path\textbackslash to\textbackslash nektar++\textbackslash ThirdParty\textbackslash dist\textbackslash bin} to the end, replacing \inlsh{path\textbackslash to\textbackslash nektar++} appropriately. \end{itemize} \textbf{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 \hspace{1cm} \inlsh{http://www.nektar.info/thirdparty/} and can be downloaded directly into the \inlsh{\${NEKTAR\_HOME}/ThirdParty} directory \section{Usage} \textbf{Q. How do I run a solver in parallel?} In a desktop environment, simply prefix the solver executable with the \inlsh{mpirun} helper. For example, to run the Incompressible Navier-Stokes solver on a 4-core desktop computer, you would run \begin{lstlisting}[style=BashInputStyle] mpirun -np 4 IncNavierStokesSolver Cyl.xml \end{lstlisting} In a cluster environment, using PBS for example, the \inlsh{mpiexec} command should be used. \textbf{Q. How can I generate a mesh for use with Nektar++?} Nektar++ supports a number of mesh input formats. These are converted to the Nektar++ native XML format (see Section~\ref{s:xml}) using the MeshConvert utility (see Section~\ref{s:utilities:meshconvert}. Supported formats include: \begin{itemize} \item Gmsh (.msh) \item Polygon (.ply) \item Nektar (.rea) \item Semtex (.sem) \end{itemize}