...
 
Commits (83)
......@@ -89,6 +89,9 @@ v5.0.0
- Fix issues related to leading factors, arithmetic order and associativity of
exponential operator in expression evaluator (!1066)
- Remove use of `using namespace std` in header files (!1066)
- Add error messages for use of ARPACK in serial (!1079)
- Generalise ContainsPoint routine (!1078)
- Homogenized fallthrough to fix issues with gcc 7.4.0 (!1084)
**NekMesh**:
- Add feature to read basic 2D geo files as CAD (!731)
......@@ -159,7 +162,8 @@ v5.0.0
- Updated SVV to allow for the DGKernel extension (!851)
- Pre-calculate Time invariant portion of Womersley Solution (!814)
- Fix for independent setting of SVV in Homogeneous direction (!936)
- Write flow field based on CFL treshold (!1025)
- Write flow field based on CFL threshold (!1025)
- Fix unsteady Stokes solver (!1074)
**CompressibleFlowSolver**
- Add 3D regression tests (!567)
......
......@@ -169,6 +169,9 @@ OPTION(NEKTAR_TEST_ALL "Include full set of regression tests to this build." OFF
OPTION(NEKTAR_TEST_USE_HOSTFILE "Use a hostfile to explicitly specify number of
slots." OFF)
OPTION(NEKTAR_ERROR_ON_WARNINGS "Use -Werror to make warnings stop compilation." ON)
MARK_AS_ADVANCED(NEKTAR_ERROR_ON_WARNINGS)
# Meshing utilities and library
IF (NOT WIN32)
OPTION(NEKTAR_USE_MESHGEN "Build mesh generation utilities." OFF)
......
......@@ -52,6 +52,15 @@ project. It's a pretty simple process:
- Did you add regression tests (for fixes) or unit tests and/or normal tests for
new features?
- Have you run your branch through buildbot and do all the tests pass?
- Have you fixed any new compiler warnings your code has introduced into the
compilation step for all of the Linux buildbots?
- **unused parameters**: if these are genuinely needed (e.g. virtual functions
in a derived class, please use `boost::ignore_unused()` to mark as such.
- **switch case may fall-through**: for switch statements which
*intentionally* exploit fall-through between cases, mark the end of such
cases with the comment `/* Falls through. */` to suppress the warning.
- Avoid `ASSERTL0(false, msg)`; instead use `NEKERROR(ErrorUtil:efatal, msg)`.
- Ensure variables are initialised with sensible default values.
- Is there documentation in the user guide and/or developer guide?
- Have you added a CHANGELOG entry, including the MR number?
- Are there any massive files you might have added in the commit history? We try
......@@ -110,15 +119,23 @@ You should also test your branch on the
the code against a number of Linux, Mac and Windows operating systems, both 32-
and 64-bit. If your tests don't pass, we can't merge the code into master.
Testing is presently manually executed. You should:
1. Go to the buildbot site and navigate to the *Builders* page.
2. Scroll to the bottom of the page in the section *Force all builds*
3. Enter your details. If you're working on a fork, then the *Suffix to repo
url* box should be changed to `username/nektar`.
4. Hit the *Force build* button.
5. Check the output in the *Grid* page -- hopefully everything should be green!
Tests can take up to two hours to run.
When you submit a merge request testing on buildbot will happen automatically,
unless you have marked the merge request as a work-in-progress (WIP: prefix).
Each time you push commits to a non-WIP merge request branch, it will also
trigger a build.
For WIP merge request branches, you can force a build on individual builders
using the buildbot web interface:
1. Go to the buildbot site and log in using the drop-down menu (top right).
2. Go to the console display and select the builder from the column headings on
which you would like to force test.
3. Select 'Force' from the top-right of the page.
4. Enter the details as required. If you're working on a fork, then the *Fork*
box should be changed to `username/nektar`.
5. Hit the *Start build* button.
6. Return to the *console* display to see progress. You can click on the
flashing indicator for your active build to see progress and output.
## Documentation
Nektar++ has a fairly comprehensive user guide and a developer guide that is
......
......@@ -67,25 +67,32 @@ MACRO(SET_COMMON_PROPERTIES name)
SET_TARGET_PROPERTIES(${name} PROPERTIES MINSIZEREL_POSTFIX -ms)
SET_TARGET_PROPERTIES(${name} PROPERTIES RELWITHDEBINFO_POSTFIX -rg)
IF( MSVC )
# Disable the warnings about duplicate copy/assignment methods
# (4521, 4522)
# Disable the warning that arrays are default intialized (4351)
# Disable "forcing value to bool 'true' or 'false' (performance
# warning)" warning (4800)
# 4250 - Inheritance via dominance. Nektar appears to be handling the
# diamond correctly.
# 4373 - Overriding a virtual method with parameters that differ by const
# or volatile conforms to the standard.
# /Za is necessary to prevent temporaries being bound to reference
# parameters.
SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS
"/wd4521 /wd4522 /wd4351 /wd4018 /wd4800 /wd4250 /wd4373")
# Enable source level parallel builds.
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
ENDIF( MSVC )
IF (MSVC)
# Enable production-level warnings
TARGET_COMPILE_OPTIONS(${name} PRIVATE /W4)
# Temporarily disable signed/unsigned comparison warning
TARGET_COMPILE_OPTIONS(${name} PRIVATE /wd4018)
# Temporarily disable narrowing warnings
TARGET_COMPILE_OPTIONS(${name} PRIVATE /wd4244 /wd4267)
# Enable source-level parallel builds
TARGET_COMPILE_OPTIONS(${name} PRIVATE /MP)
# Specify minimum Windows version (501=WinXP, 601=Windows 7)
TARGET_COMPILE_DEFINITIONS(${name} PRIVATE _WIN32_WINNT=0x0601)
ELSE ()
# Enable all warnings
TARGET_COMPILE_OPTIONS(${name} PRIVATE -Wpedantic -Wall -Wextra)
# Temporarily disable warnings about comparing signed and unsigned
TARGET_COMPILE_OPTIONS(${name} PRIVATE -Wno-sign-compare)
# Temporarily disable warnings about narrowing of data types
TARGET_COMPILE_OPTIONS(${name} PRIVATE -Wno-narrowing -Wno-conversion)
IF (NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
TARGET_COMPILE_OPTIONS(${name} PRIVATE -fpermissive)
ENDIF()
IF ( NEKTAR_ERROR_ON_WARNINGS )
TARGET_COMPILE_OPTIONS(${name} PRIVATE -Werror)
ENDIF()
ENDIF()
IF (${CMAKE_COMPILER_IS_GNUCXX})
IF(NEKTAR_ENABLE_PROFILE)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg")
......@@ -104,19 +111,6 @@ MACRO(SET_COMMON_PROPERTIES name)
"${CMAKE_CXX_FLAGS_DEBUG} -DNEKTAR_FULLDEBUG")
ENDIF( NEKTAR_FULL_DEBUG)
IF(NOT MSVC)
SET(CMAKE_CXX_FLAGS_DEBUG
"${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wno-deprecated -Wno-sign-compare")
SET(CMAKE_CXX_FLAGS_RELEASE
"${CMAKE_CXX_FLAGS_RELEASE} -Wall -Wno-deprecated -Wno-sign-compare")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO
"${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -Wall -Wno-deprecated -Wno-sign-compare")
IF (NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
SET(CMAKE_CXX_FLAGS_DEBUG
"${CMAKE_CXX_FLAGS_DEBUG} -fpermissive")
ENDIF()
ENDIF (NOT MSVC)
# Define version
SET_PROPERTY(TARGET ${name}
APPEND PROPERTY COMPILE_DEFINITIONS
......
......@@ -111,6 +111,7 @@ IF (THIRDPARTY_BUILD_BOOST)
variant=release
link=shared
include=${TPDIST}/include
cxxflags="-w"
linkflags="-L${TPDIST}/lib"
${BOOST_FLAGS} ${BOOST_LIB_LIST}
--layout=system toolset=${TOOLSET} install
......@@ -176,7 +177,7 @@ IF (THIRDPARTY_BUILD_BOOST)
SET(Boost_LIBRARY_DIRS ${TPSRC}/dist/lib)
SET(Boost_CONFIG_LIBRARY_DIR ${TPLIB})
INCLUDE_DIRECTORIES(${TPDIST}/include)
INCLUDE_DIRECTORIES(SYSTEM ${TPDIST}/include)
STRING(REPLACE ";" ", " NEEDED_BOOST_LIBS_STRING "${NEEDED_BOOST_LIBS}")
MESSAGE(STATUS "Build boost libs: ${NEEDED_BOOST_LIBS_STRING}")
......@@ -189,4 +190,4 @@ ELSE (THIRDPARTY_BUILD_BOOST)
SET(Boost_CONFIG_LIBRARY_DIR ${Boost_LIBRARY_DIRS})
ENDIF (THIRDPARTY_BUILD_BOOST)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIRS})
......@@ -25,6 +25,14 @@ ENDIF ()
OPTION(THIRDPARTY_BUILD_CCMIO "Build CCMIO library from ThirdParty." ${BUILD_CCMIO})
IF (THIRDPARTY_BUILD_CCMIO)
UNSET(PATCH CACHE)
FIND_PROGRAM(PATCH patch)
IF(NOT PATCH)
MESSAGE(FATAL_ERROR
"'patch' tool for modifying files not found. Cannot build CCM.")
ENDIF()
MARK_AS_ADVANCED(PATCH)
INCLUDE(ExternalProject)
EXTERNALPROJECT_ADD(
libccmio-2.6.1
......@@ -37,6 +45,7 @@ IF (THIRDPARTY_BUILD_CCMIO)
BINARY_DIR ${TPBUILD}/libccmio-2.6.1
TMP_DIR ${TPBUILD}/libccmio-2.6.1-tmp
PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/cmake/thirdparty-patches/CMakeLists_CCM.txt ${TPSRC}/libccmio-2.6.1/CMakeLists.txt
COMMAND ${PATCH} -p 0 < ${CMAKE_SOURCE_DIR}/cmake/thirdparty-patches/ccmio-warning.patch
INSTALL_DIR ${TPDIST}
CONFIGURE_COMMAND ${CMAKE_COMMAND}
-G ${CMAKE_GENERATOR}
......@@ -51,14 +60,14 @@ IF (THIRDPARTY_BUILD_CCMIO)
THIRDPARTY_LIBRARY(
CCMIO_ADF_LIBRARY STATIC adf DESCRIPTION "CCMIO ADF library")
INCLUDE_DIRECTORIES(NekMesh ${TPDIST}/include)
INCLUDE_DIRECTORIES(SYSTEM NekMesh ${TPDIST}/include)
MESSAGE(STATUS "Build CCMIO: ${CCMIO_LIBRARY}")
SET(CCMIO_CONFIG_INCLUDE_DIR ${TPINC})
ELSE()
ADD_CUSTOM_TARGET(libccmio-2.6.1 ALL)
MESSAGE(STATUS "Found CCMIO: ${CCMIO_LIBRARY}")
SET(CCMIO_CONFIG_INCLUDE_DIR ${CCMIO_INCLUDE_DIR})
INCLUDE_DIRECTORIES(NekMesh ${CCMIO_INCLUDE_DIR})
INCLUDE_DIRECTORIES(SYSTEM NekMesh ${CCMIO_INCLUDE_DIR})
LINK_DIRECTORIES(${CCMIO_LIBRARY_DIR})
ENDIF (THIRDPARTY_BUILD_CCMIO)
......
......@@ -91,4 +91,4 @@ IF(NEKTAR_USE_MESHGEN)
ENDIF()
ENDIF()
INCLUDE_DIRECTORIES(${OCC_INCLUDE_DIR})
INCLUDE_DIRECTORIES(SYSTEM ${OCC_INCLUDE_DIR})
......@@ -28,6 +28,14 @@ IF (NEKTAR_USE_PETSC)
FIND_PACKAGE(PythonInterp 2 REQUIRED)
UNSET(PATCH CACHE)
FIND_PROGRAM(PATCH patch)
IF(NOT PATCH)
MESSAGE(FATAL_ERROR
"'patch' tool for modifying files not found. Cannot build PETSc.")
ENDIF()
MARK_AS_ADVANCED(PATCH)
SET(PETSC_C_COMPILER "${CMAKE_C_COMPILER}")
SET(PETSC_CXX_COMPILER "${CMAKE_CXX_COMPILER}")
SET(PETSC_Fortran_COMPILER "${CMAKE_Fortran_COMPILER}")
......@@ -52,10 +60,12 @@ IF (NEKTAR_USE_PETSC)
SET(PETSC_DEPS "")
IF(NOT BLAS_LAPACK_BUILTIN )
LIST(GET BLAS_LAPACK 0 BLAS)
LIST(GET BLAS_LAPACK 0 LAPACK)
LIST(GET BLAS_LAPACK 1 BLAS)
GET_FILENAME_COMPONENT(BLAS_LAPACK_DIR ${BLAS} PATH)
IF( NEKTAR_USE_MKL OR NEKTAR_USE_SYSTEM_BLAS_LAPACK)
SET(PETSC_MUMPS ${PETSC_MUMPS} --with-blas-lapack-dir=${BLAS_LAPACK_DIR})
SET(PETSC_MUMPS ${PETSC_MUMPS} --with-blas-lib=${BLAS}
--with-lapack-lib=${LAPACK})
IF(THIRDPARTY_BUILD_BLAS_LAPACK)
SET(PETSC_DEPS ${PETSC_DEPS} lapack-3.7.0)
ENDIF()
......@@ -74,26 +84,30 @@ IF (NEKTAR_USE_PETSC)
ENDIF()
EXTERNALPROJECT_ADD(
petsc-3.7.7
petsc-3.11.4
DEPENDS ${PETSC_DEPS}
PREFIX ${TPSRC}
STAMP_DIR ${TPBUILD}/stamp
DOWNLOAD_DIR ${TPSRC}
SOURCE_DIR ${TPBUILD}/petsc-3.7.7
TMP_DIR ${TPBUILD}/petsc-3.7.7-tmp
SOURCE_DIR ${TPBUILD}/petsc-3.11.4
TMP_DIR ${TPBUILD}/petsc-3.11.4-tmp
INSTALL_DIR ${TPDIST}
BINARY_DIR ${TPBUILD}/petsc-3.7.7
URL ${TPURL}/petsc-lite-3.7.7.tar.gz
URL_MD5 "7b476e38cfab4cddb26f73e5ef23538e"
BINARY_DIR ${TPBUILD}/petsc-3.11.4
URL https://www.nektar.info/thirdparty/petsc-lite-3.11.4.tar.gz
URL_MD5 "33da4b6a430d5d9e13b19871d707af0f"
CONFIGURE_COMMAND
OMPI_FC=${CMAKE_Fortran_COMPILER}
OMPI_CC=${CMAKE_C_COMPILER}
OMPI_CXX=${CMAKE_CXX_COMPILER}
${PYTHON_EXECUTABLE} ./configure
MAKEFLAGS=$MAKEFLAGS
CFLAGS="-w"
CXXFLAGS="-w"
--with-fc=${PETSC_Fortran_COMPILER}
--with-cc=${PETSC_C_COMPILER}
--with-cxx=${PETSC_CXX_COMPILER}
--with-shared-libraries=1
--with-make-np=1
--with-pic=1
--with-x=0
--with-ssl=0
......@@ -101,7 +115,9 @@ IF (NEKTAR_USE_PETSC)
--with-petsc-arch=c-opt
${PETSC_MUMPS}
${PETSC_NO_MPI}
BUILD_COMMAND MAKEFLAGS= make)
BUILD_COMMAND $(MAKE)
TEST_COMMAND $(MAKE)
PETSC_DIR=${TPDIST} PETSC_ARCH=c-opt test)
THIRDPARTY_LIBRARY(PETSC_LIBRARIES SHARED petsc
DESCRIPTION "PETSc library")
......@@ -118,7 +134,7 @@ IF (NEKTAR_USE_PETSC)
ENDIF (NOT PETSC_FOUND)
SET(PETSC_CONFIG_INCLUDE_DIR ${PETSC_INCLUDES})
INCLUDE_DIRECTORIES(${PETSC_INCLUDES})
ADD_CUSTOM_TARGET(petsc-3.7.7 ALL)
ADD_CUSTOM_TARGET(petsc-3.11.4 ALL)
ENDIF (THIRDPARTY_BUILD_PETSC)
ADD_DEFINITIONS(-DNEKTAR_USING_PETSC)
......
......@@ -83,8 +83,8 @@ IF (NEKTAR_BUILD_PYTHON)
EXTERNALPROJECT_ADD(
boost-numpy
PREFIX ${TPSRC}
URL ${TPURL}/boost-numpy_1.0.1.tar.bz2
URL_MD5 ae8c6f4d114a9c20dff72e915288a408
URL ${TPURL}/boost-numpy_1.0.2.tar.bz2
URL_MD5 250a517556e67f65c8837c73f419f773
STAMP_DIR ${TPBUILD}/stamp
DOWNLOAD_DIR ${TPSRC}
SOURCE_DIR ${TPSRC}/boost-numpy
......@@ -93,6 +93,7 @@ IF (NEKTAR_BUILD_PYTHON)
INSTALL_DIR ${TPDIST}
CONFIGURE_COMMAND ${CMAKE_COMMAND}
-G ${CMAKE_GENERATOR} -DCMAKE_INSTALL_PREFIX:PATH=${TPDIST}
-DCMAKE_CXX_FLAGS="-Wno-cpp"
-DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
-DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DLIBRARY_TYPE=STATIC
${TPSRC}/boost-numpy
......
......@@ -48,14 +48,14 @@ IF (NEKTAR_USE_SCOTCH)
IF (APPLE)
SET(SCOTCH_MAKE Makefile.inc.i686_mac_darwin8)
SET(SCOTCH_LDFLAGS "")
SET(SCOTCH_CFLAGS "-O3 -Drestrict=__restrict -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_TIMING_OLD -DSCOTCH_RENAME -DCOMMON_PTHREAD_BARRIER")
SET(SCOTCH_CFLAGS "-w -O3 -Drestrict=__restrict -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_TIMING_OLD -DSCOTCH_RENAME -DCOMMON_PTHREAD_BARRIER")
ELSE ()
IF (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
SET(SCOTCH_MAKE Makefile.inc.x86-64_pc_linux2)
SET(SCOTCH_CFLAGS "-O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict -DIDXSIZE64")
SET(SCOTCH_CFLAGS "-w -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict -DIDXSIZE64")
ELSE ()
SET(SCOTCH_MAKE Makefile.inc.i686_pc_linux2)
SET(SCOTCH_CFLAGS "-O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict")
SET(SCOTCH_CFLAGS "-w -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict")
ENDIF ()
SET(SCOTCH_LDFLAGS "-lz -lm -lrt -lpthread")
ENDIF ()
......@@ -124,7 +124,7 @@ IF (NEKTAR_USE_SCOTCH)
SET(SCOTCH_CONFIG_INCLUDE_DIR ${SCOTCH_INCLUDE_DIR})
ENDIF (THIRDPARTY_BUILD_SCOTCH)
INCLUDE_DIRECTORIES(${SCOTCH_INCLUDE_DIR} ${PTSCOTCH_INCLUDE_DIR})
INCLUDE_DIRECTORIES(SYSTEM ${SCOTCH_INCLUDE_DIR} ${PTSCOTCH_INCLUDE_DIR})
LINK_DIRECTORIES(${SCOTCH_LIBRARY_DIR} ${PTSCOTCH_LIBRARY_DIR})
MARK_AS_ADVANCED(SCOTCH_LIBRARY)
......
......@@ -46,6 +46,10 @@ IF( NEKTAR_USE_VTK )
ENDIF()
INCLUDE (${VTK_USE_FILE})
# Force VTK headers to be treated as system headers.
INCLUDE_DIRECTORIES(SYSTEM ${VTK_INCLUDE_DIRS})
MARK_AS_ADVANCED(VTK_DIR)
ADD_DEFINITIONS(-DNEKTAR_USING_VTK)
ENDIF( NEKTAR_USE_VTK )
......
--- libccmio/ccmioutility.c 2019-09-30 22:56:12.400753340 +0100
+++ libccmio/ccmioutility.c 2019-09-30 22:56:28.004901262 +0100
@@ -35,7 +35,7 @@
#include <direct.h>
#include <io.h>
#define getcwd _getcwd
- #define mktemp _mktemp
+ #define mkstemp _mktemp
#else
#include <unistd.h>
#include <strings.h> /* for rindex() */
@@ -222,7 +222,7 @@
basename[bytes++] = 'X';
basename[bytes] = '\0';
tmpFilename = strdup(basename);
- if (!mktemp(tmpFilename))
+ if (!mkstemp(tmpFilename))
return(*err = kCCMIOIOErr);
*err = CCMIOOpen(filename, kCCMIORead, &origRoot);
@@ -246,7 +246,7 @@
if ((*err) == kCCMIONoErr)
{
moved = strdup(basename);
- if (!mktemp(moved))
+ if (!mkstemp(moved))
goto error;
errno = 0;
rename(filename, moved);
@@ -299,7 +299,6 @@
bytes = (char*)malloc(size);
if (!bytes)
{
- free(dims);
return(*err = kCCMIONoMemoryErr);
}
ADF_Read_All_Data(origNode.node, bytes, &adfErr);
--- libccmio/ccmio.c 2019-10-01 10:52:27.872670035 +0100
+++ libccmio/ccmio.c 2019-10-01 10:52:54.900797471 +0100
@@ -520,9 +520,9 @@
type == kCCMIORestartData || type == kCCMIOReferenceData ||
type == kCCMIOModelConstants)
#if kHasSNPrintf
- snprintf(name, kCCMIOMaxStringLength, gEntityNames[(int)type]);
+ snprintf(name, kCCMIOMaxStringLength, "%s", gEntityNames[(int)type]);
#else
- sprintf(name, gEntityNames[(int)type]);
+ sprintf(name, "%s", gEntityNames[(int)type]);
#endif
else
#if kHasSNPrintf
Subproject commit 8f8ed6f96bad562bedd8c242a4dc247e605ca20d
Subproject commit 63551b4436ba27cfd599d8c86554ee94db84d184
......@@ -32,6 +32,8 @@
//
///////////////////////////////////////////////////////////////////////////////
#include <boost/core/ignore_unused.hpp>
#include <Collections/Operator.h>
#include <Collections/Collection.h>
......@@ -67,6 +69,7 @@ class BwdTrans_StdMat : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2, wsp);
Blas::Dgemm('N', 'N', m_mat->GetRows(), m_numElmt,
m_mat->GetColumns(), 1.0, m_mat->GetRawPtr(),
m_mat->GetRows(), input.get(), m_stdExp->GetNcoeffs(),
......@@ -79,6 +82,7 @@ class BwdTrans_StdMat : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(dir, input, output, wsp);
ASSERTL0(false, "Not valid for this operator.");
}
......@@ -155,6 +159,8 @@ class BwdTrans_IterPerExp : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2, wsp);
const int nCoeffs = m_stdExp->GetNcoeffs();
const int nPhys = m_stdExp->GetTotPoints();
Array<OneD, NekDouble> tmp;
......@@ -171,6 +177,7 @@ class BwdTrans_IterPerExp : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(dir, input, output, wsp);
ASSERTL0(false, "Not valid for this operator.");
}
......@@ -237,6 +244,8 @@ class BwdTrans_NoCollection : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2, wsp);
const int nCoeffs = m_expList[0]->GetNcoeffs();
const int nPhys = m_expList[0]->GetTotPoints();
Array<OneD, NekDouble> tmp;
......@@ -254,6 +263,7 @@ class BwdTrans_NoCollection : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(dir, input, output, wsp);
ASSERTL0(false, "Not valid for this operator.");
}
......@@ -324,6 +334,7 @@ class BwdTrans_SumFac_Seg : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2, wsp);
if(m_colldir0)
{
Vmath::Vcopy(m_numElmt*m_nmodes0,input.get(),1,output.get(),1);
......@@ -344,6 +355,7 @@ class BwdTrans_SumFac_Seg : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(dir, input, output, wsp);
ASSERTL0(false, "Not valid for this operator.");
}
......@@ -395,6 +407,8 @@ class BwdTrans_SumFac_Quad : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
int i = 0;
if(m_colldir0 && m_colldir1)
{
......@@ -449,6 +463,7 @@ class BwdTrans_SumFac_Quad : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(dir, input, output, wsp);
ASSERTL0(false, "Not valid for this operator.");
}
......@@ -506,6 +521,7 @@ class BwdTrans_SumFac_Tri : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -547,6 +563,7 @@ class BwdTrans_SumFac_Tri : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(dir, input, output, wsp);
ASSERTL0(false, "Not valid for this operator.");
}
......@@ -610,6 +627,7 @@ class BwdTrans_SumFac_Hex : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
if(m_colldir0 && m_colldir1 && m_colldir2)
{
......@@ -657,6 +675,7 @@ class BwdTrans_SumFac_Hex : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(dir, input, output, wsp);
ASSERTL0(false, "Not valid for this operator.");
}
......@@ -723,6 +742,8 @@ class BwdTrans_SumFac_Tet : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -825,6 +846,7 @@ class BwdTrans_SumFac_Tet : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(dir, input, output, wsp);
ASSERTL0(false, "Not valid for this operator.");
}
......@@ -897,6 +919,8 @@ class BwdTrans_SumFac_Prism : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -966,6 +990,7 @@ class BwdTrans_SumFac_Prism : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(dir, input, output, wsp);
ASSERTL0(false, "Not valid for this operator.");
}
......@@ -1038,6 +1063,8 @@ class BwdTrans_SumFac_Pyr : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -1129,6 +1156,7 @@ class BwdTrans_SumFac_Pyr : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(dir, input, output, wsp);
ASSERTL0(false, "Not valid for this operator.");
}
......
......@@ -32,6 +32,7 @@
//
///////////////////////////////////////////////////////////////////////////////
#include <boost/core/ignore_unused.hpp>
#include <boost/algorithm/string/predicate.hpp>
#include <Collections/CollectionOptimisation.h>
......@@ -321,6 +322,8 @@ OperatorImpMap CollectionOptimisation::SetWithTimings(
OperatorImpMap &impTypes,
bool verbose )
{
boost::ignore_unused(impTypes);
OperatorImpMap ret;
StdRegions::StdExpansionSharedPtr pExp = pCollExp[0];
......
......@@ -32,6 +32,8 @@
//
///////////////////////////////////////////////////////////////////////////////
#include <boost/core/ignore_unused.hpp>
#include <Collections/Operator.h>
#include <Collections/Collection.h>
#include <Collections/IProduct.h>
......@@ -68,6 +70,8 @@ class IProductWRTBase_StdMat : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -85,7 +89,8 @@ class IProductWRTBase_StdMat : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -163,6 +168,8 @@ class IProductWRTBase_IterPerExp : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -186,7 +193,8 @@ class IProductWRTBase_IterPerExp : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -276,6 +284,7 @@ class IProductWRTBase_NoCollection : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2, wsp);
const int nCoeffs = m_expList[0]->GetNcoeffs();
const int nPhys = m_expList[0]->GetTotPoints();
......@@ -295,7 +304,8 @@ class IProductWRTBase_NoCollection : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -375,6 +385,7 @@ class IProductWRTBase_SumFac_Seg : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
if(m_colldir0)
{
......@@ -398,7 +409,8 @@ class IProductWRTBase_SumFac_Seg : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -449,6 +461,8 @@ class IProductWRTBase_SumFac_Quad : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -465,7 +479,8 @@ class IProductWRTBase_SumFac_Quad : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -525,6 +540,8 @@ class IProductWRTBase_SumFac_Tri : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -539,7 +556,8 @@ class IProductWRTBase_SumFac_Tri : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -605,6 +623,7 @@ class IProductWRTBase_SumFac_Hex : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -622,7 +641,8 @@ class IProductWRTBase_SumFac_Hex : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -692,6 +712,8 @@ class IProductWRTBase_SumFac_Tet : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -709,7 +731,8 @@ class IProductWRTBase_SumFac_Tet : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -784,6 +807,7 @@ class IProductWRTBase_SumFac_Prism : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -801,7 +825,8 @@ class IProductWRTBase_SumFac_Prism : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -877,6 +902,7 @@ class IProductWRTBase_SumFac_Pyr : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
ASSERTL1(wsp.num_elements() == m_wspSize,
"Incorrect workspace size");
......@@ -894,7 +920,8 @@ class IProductWRTBase_SumFac_Pyr : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......
......@@ -32,6 +32,8 @@
//
///////////////////////////////////////////////////////////////////////////////
#include <boost/core/ignore_unused.hpp>
#include <Collections/Operator.h>
#include <Collections/Collection.h>
#include <Collections/IProduct.h>
......@@ -128,7 +130,8 @@ class IProductWRTDerivBase_StdMat : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -300,7 +303,8 @@ class IProductWRTDerivBase_IterPerExp : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -392,6 +396,8 @@ class IProductWRTDerivBase_NoCollection : public Operator
Array<OneD, NekDouble> &entry3,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(wsp);
unsigned int nmodes = m_expList[0]->GetNcoeffs();
unsigned int nPhys = m_expList[0]->GetTotPoints();
Array<OneD, NekDouble> tmp(nmodes),tmp1;
......@@ -428,7 +434,8 @@ class IProductWRTDerivBase_NoCollection : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -513,6 +520,7 @@ class IProductWRTDerivBase_SumFac_Seg : public Operator
Array<OneD, NekDouble> &output2,
Array<OneD, NekDouble> &wsp)
{
boost::ignore_unused(output1, output2);
Vmath::Vmul(m_numElmt*m_nquad0, m_jac, 1, input, 1, wsp, 1);
Vmath::Vmul(m_numElmt*m_nquad0, &m_derivFac[0][0], 1,
......@@ -532,7 +540,8 @@ class IProductWRTDerivBase_SumFac_Seg : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -634,7 +643,8 @@ class IProductWRTDerivBase_SumFac_Quad : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -793,7 +803,8 @@ class IProductWRTDerivBase_SumFac_Tri : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -962,7 +973,8 @@ class IProductWRTDerivBase_SumFac_Hex : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -1174,7 +1186,8 @@ class IProductWRTDerivBase_SumFac_Tet : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");
}
protected:
......@@ -1410,7 +1423,8 @@ class IProductWRTDerivBase_SumFac_Prism : public Operator
Array<OneD, NekDouble> &output,
Array<OneD, NekDouble> &wsp)
{
ASSERTL0(false, "Not valid for this operator.");
boost::ignore_unused(dir, input, output, wsp);
NEKERROR(ErrorUtil::efatal, "Not valid for this operator.");