Commit 578081ae authored by Dave Moxey's avatar Dave Moxey
Browse files

Merge remote-tracking branch 'origin/master' into fix/defect_lapack_call

parents f85dc799 d0373bd6
......@@ -6,14 +6,25 @@ v4.3.1
**Library**:
- Add `THIRDPARTY_USE_SSL` option to disable use of SSL on systems where CMake
is not compiled with SSL support. (!602)
- Fixed a number of documentation issues (!586, !593, !596)
- Fix Homogeneous transform when unshuffling is not used. (!599)
- Fix namespace pollution in library header files. (!601)
- Fix issue with METIS compilation on clang 7.3 (!603)
- Fix bug in modified Arnoldi algorithm causing convergence to be reported when
number of vectors is less than `nvec` (!608)
- Fix uninitialised array bug in AssemblyMap (!598)
- Fix issue with LAPACK call in eigenvalue calculation (!610)
- Fix FieldConvert processing of partitions in serial (!612)
- Fix use of multi-level static condensation in parallel with periodic
boundary conditions (!614)
**NekMesh**:
- Fix incorrect link directory on CCMIO library.
**FieldConvert**:
- Fix to FLD input to update the field definitions always, not just when a range
is specified. (!611)
v4.3.0
------
**Library:**
......
......@@ -27,7 +27,18 @@ EXTERNALPROJECT_ADD(
-DCMAKE_C_FLAGS:STRING=-fPIC\ -w
-DGKLIB_PATH:PATH=${TPSRC}/modmetis-5.1.0/GKlib
${TPSRC}/modmetis-5.1.0
)
)
IF (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# Clang 7.3 has a lovely bug that needs to be patched in order for it to
# compile.
IF (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "7.3")
EXTERNALPROJECT_ADD_STEP(modmetis-5.1.0 patch-install-path
COMMAND sed -i ".bak" "s|#define MAX_JBUFS 128|#define MAX_JBUFS 24|" ${TPSRC}/modmetis-5.1.0/GKlib/error.c
DEPENDERS build
DEPENDEES download)
ENDIF()
ENDIF()
SET(METIS_LIB metis CACHE FILEPATH "METIS library" FORCE)
MARK_AS_ADVANCED(METIS_LIB)
......
......@@ -17,7 +17,7 @@ IF(NEKTAR_USE_MESHGEN)
EXTERNALPROJECT_ADD(
tetgen-1.5
PREFIX ${TPSRC}
URL http://ae-nektar.ae.ic.ac.uk/~mt4313/tetgen.zip
URL ${TPURL}/tetgen.zip
URL_MD5 6d62e63f9b1e7a8ce53d5bc87e6a0a09
STAMP_DIR ${TPBUILD}/stamp
DOWNLOAD_DIR ${TPSRC}
......
......@@ -17,7 +17,7 @@ IF(NEKTAR_USE_MESHGEN)
EXTERNALPROJECT_ADD(
triangle-1.6
PREFIX ${TPSRC}
URL http://ae-nektar.ae.ic.ac.uk/~mt4313/triangle.zip
URL ${TPURL}/triangle.zip
URL_MD5 357cb7107f51f3f89940c47435d4fa49
STAMP_DIR ${TPBUILD}/stamp
DOWNLOAD_DIR ${TPSRC}
......
......@@ -38,7 +38,7 @@ in the core sub-libraries, is depicted in the Figure~\ref{f:library:overview}.
\begin{figure}
\centering
\includegraphics[width=0.6\textwidth]{img/architecture}
\includegraphics[width=0.6\textwidth]{library-design/img/architecture}
\caption{Structural overview of the Nektar++ libraries}
\label{f:library:structure}
\end{figure}
......
\section{Compiling Documentation}
Documentation for Nektar++ is provided in a number of forms:
\begin{itemize}
\item User Guide (LaTeX, compiled to pdf or html)
\item Source code documentation (Doxygen compiled to html)
\end{itemize}
\subsection{Dependencies}
To build the LaTeX documents (user guide or tutorials), the following
dependencies are required:
\begin{itemize}
\item texlive-base
\item texlive-latex-extra
\item texlive-science
\item imagemagick
\end{itemize}
To build the Doxygen documentation, the following dependencies are required:
\begin{itemize}
\item doxygen
\item graphviz
\end{itemize}
\subsection{Compiling the User Guide}
To compile the User Guide:
\begin{enumerate}
\item Configure the Nektar++ build tree as normal.
\item Run
\begin{lstlisting}[style=BashInputStyle]
make user-guide-pdf
\end{lstlisting}
to make the PDF version, or run
\begin{lstlisting}[style=BashInputStyle]
make user-guide-html
\end{lstlisting}
to make the HTML version.
\end{enumerate}
\subsection{Compiling the code documentation}
To compile the code documentation enable the \inltt{NEKTAR\_BUILD\_DOC} option
in the \inlsh{ccmake} configuration tool.
You can then compile the HTML code documentation using:
\begin{lstlisting}[style=BashInputStyle]
make doc
\end{lstlisting}
\section{Compiling Tutorials}
If you are using a clone of the \nekpp git repository, you can also download
the source for the \nekpp tutorials which is available as a \emph{git submodule}.
\begin{enumerate}
\item From a \nekpp working directory (e.g. \inlsh{\$NEKPP}):
\begin{lstlisting}[style=BashInputStyle]
git submodule init
git submodule update --remote
\end{lstlisting}
\item From your build directory (e.g. \inlsh{\$NEKPP/build}), re-run \inlsh{cmake} to update the build system to include the tutorials
\begin{lstlisting}[style=BashInputStyle]
cmake ../
\end{lstlisting}
\item Compile each required tutorial, for example
\begin{lstlisting}[style=BashInputStyle]
make flow-stability-channel
\end{lstlisting}
\end{enumerate}
......@@ -9,4 +9,4 @@ solvers for simulation and do not need to perform additional code development.
\input{source}
\input{doc}
......@@ -37,6 +37,8 @@
#include <Collections/Operator.h>
#include <Collections/Collection.h>
using namespace std;
namespace Nektar {
namespace Collections {
......
......@@ -36,6 +36,8 @@
#include <Collections/Collection.h>
#include <sstream>
using namespace std;
namespace Nektar {
namespace Collections {
......
......@@ -36,6 +36,8 @@
#ifndef NEKTAR_LIBRARY_COLLECTIONS_COLLECTION_H
#define NEKTAR_LIBRARY_COLLECTIONS_COLLECTION_H
#include <vector>
#include <StdRegions/StdExpansion.h>
#include <SpatialDomains/Geometry.h>
#include <Collections/CollectionsDeclspec.h>
......@@ -56,8 +58,8 @@ class Collection
public:
COLLECTIONS_EXPORT Collection(
vector<StdRegions::StdExpansionSharedPtr> pCollExp,
OperatorImpMap &impTypes);
std::vector<StdRegions::StdExpansionSharedPtr> pCollExp,
OperatorImpMap &impTypes);
inline void ApplyOperator(
const OperatorType &op,
......@@ -81,7 +83,7 @@ class Collection
protected:
StdRegions::StdExpansionSharedPtr m_stdExp;
vector<SpatialDomains::GeometrySharedPtr> m_geom;
std::vector<SpatialDomains::GeometrySharedPtr> m_geom;
boost::unordered_map<OperatorType, OperatorSharedPtr> m_ops;
CoalescedGeomDataSharedPtr m_geomData;
......
......@@ -36,6 +36,8 @@
#include <Collections/CollectionOptimisation.h>
#include <LibUtilities/BasicUtils/ParseUtils.hpp>
using namespace std;
namespace Nektar
{
namespace Collections
......
......@@ -142,7 +142,7 @@ class CollectionOptimisation
// Get Map by doing autotuning testing.
COLLECTIONS_EXPORT OperatorImpMap SetWithTimings(
vector<StdRegions::StdExpansionSharedPtr> pGeom,
std::vector<StdRegions::StdExpansionSharedPtr> pGeom,
OperatorImpMap &impTypes,
bool verbose = true);
......@@ -152,10 +152,10 @@ class CollectionOptimisation
}
private:
typedef pair<LibUtilities::ShapeType, int> ElmtOrder;
typedef std::pair<LibUtilities::ShapeType, int> ElmtOrder;
static map<OpImpTimingKey,OperatorImpMap> m_opImpMap;
map<OperatorType, map<ElmtOrder, ImplementationType> > m_global;
static std::map<OpImpTimingKey,OperatorImpMap> m_opImpMap;
std::map<OperatorType, std::map<ElmtOrder, ImplementationType> > m_global;
bool m_setByXml;
bool m_autotune;
ImplementationType m_defaultType;
......
......@@ -36,6 +36,8 @@
#include <Collections/Collection.h>
#include <Collections/IProduct.h>
using namespace std;
namespace Nektar
{
namespace Collections
......
......@@ -38,6 +38,8 @@
#include <Collections/Collection.h>
#include <Collections/IProduct.h>
using namespace std;
namespace Nektar {
namespace Collections {
......
......@@ -38,6 +38,8 @@
#include <Collections/Collection.h>
#include <Collections/IProduct.h>
using namespace std;
namespace Nektar {
namespace Collections {
......
......@@ -46,7 +46,7 @@
static OperatorKey m_typeArr[]; \
friend class MemoryManager<cname>; \
static OperatorSharedPtr create( \
vector<StdRegions::StdExpansionSharedPtr> pCollExp, \
std::vector<StdRegions::StdExpansionSharedPtr> pCollExp,\
boost::shared_ptr<CoalescedGeomData> GeomData) \
{ \
return MemoryManager<cname> \
......@@ -99,7 +99,7 @@ const char* const ImplementationTypeMap[] =
typedef bool ExpansionIsNodal;
typedef map<OperatorType, ImplementationType> OperatorImpMap;
typedef std::map<OperatorType, ImplementationType> OperatorImpMap;
/// simple Operator Implementation Map generator
OperatorImpMap SetFixedImpType(ImplementationType defaultType);
......@@ -110,7 +110,7 @@ class Operator
public:
/// Constructor
Operator(
vector<StdRegions::StdExpansionSharedPtr> pCollExp,
std::vector<StdRegions::StdExpansionSharedPtr> pCollExp,
boost::shared_ptr<CoalescedGeomData> GeomData)
: m_stdExp(pCollExp[0]->GetStdExp()),
m_numElmt(pCollExp.size()),
......@@ -161,7 +161,7 @@ std::ostream &operator<<(std::ostream &os, OperatorKey const &p);
typedef Nektar::LibUtilities::NekFactory<
OperatorKey,
Operator,
vector<StdRegions::StdExpansionSharedPtr>,
std::vector<StdRegions::StdExpansionSharedPtr>,
CoalescedGeomDataSharedPtr> OperatorFactory;
/// Returns the singleton Operator factory object
......
......@@ -37,6 +37,8 @@
#include <Collections/Operator.h>
#include <Collections/Collection.h>
using namespace std;
namespace Nektar {
namespace Collections {
......
......@@ -46,6 +46,7 @@
#include <Collections/Collection.h>
#include <SpatialDomains/MeshGraph.h>
using namespace std;
using namespace Nektar;
using boost::timer::cpu_timer;
......
......@@ -11,8 +11,8 @@ using namespace std;
#include <LibUtilities/Foundations/Foundations.hpp>
#include <LibUtilities/Foundations/Points.h>
using namespace Nektar;
using namespace boost;
using namespace Nektar;
using namespace Nektar::LibUtilities;
int main(int argc, char *argv[])
......
......@@ -3,6 +3,7 @@
#include <LocalRegions/SegExp.h>
#include <SpatialDomains/SegGeom.h>
using namespace std;
using namespace Nektar;
static double solutionpoly(double x, int order);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment