Skip to content
Snippets Groups Projects
Commit b0916450 authored by Chris Cantwell's avatar Chris Cantwell
Browse files

Merge branch 'master' into fix/remove-getexp-coord

parents ad3333b2 c47ba0ad
No related branches found
No related tags found
No related merge requests found
Pipeline #2144 canceled
Showing
with 238 additions and 57 deletions
...@@ -3,6 +3,11 @@ stages: ...@@ -3,6 +3,11 @@ stages:
- build-env-full - build-env-full
- build-and-test - build-and-test
- compiler-warnings - compiler-warnings
- package-env
- package-build
- package-build-dev
- package-test
- package-deploy
.execution-conditions: &execution-conditions .execution-conditions: &execution-conditions
only: only:
...@@ -103,8 +108,7 @@ stages: ...@@ -103,8 +108,7 @@ stages:
.build-env-debian-template-default: &build-env-debian-template-default .build-env-debian-template-default: &build-env-debian-template-default
<<: *build-env-template <<: *build-env-template
stage: stage: build-env-default
build-env-default
variables: variables:
OS_DISTRO: debian OS_DISTRO: debian
script: script:
...@@ -119,8 +123,7 @@ stages: ...@@ -119,8 +123,7 @@ stages:
.build-env-debian-template-full: &build-env-debian-template-full .build-env-debian-template-full: &build-env-debian-template-full
<<: *build-env-debian-template-default <<: *build-env-debian-template-default
stage: stage: build-env-full
build-env-full
buster-default-build-env: buster-default-build-env:
<<: *build-env-debian-template-default <<: *build-env-debian-template-default
...@@ -177,8 +180,7 @@ stretch-full-warnings: ...@@ -177,8 +180,7 @@ stretch-full-warnings:
buster-documentation-build-env: buster-documentation-build-env:
<<: *execution-conditions <<: *execution-conditions
image: docker:19.03.6 image: docker:19.03.6
stage: stage: build-env-full
build-env-full
script: script:
- export IMAGE=$CI_REGISTRY_IMAGE:env-documentation - export IMAGE=$CI_REGISTRY_IMAGE:env-documentation
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
...@@ -241,8 +243,7 @@ tutorials-build: ...@@ -241,8 +243,7 @@ tutorials-build:
.build-env-ubuntu-template-full: &build-env-ubuntu-template-full .build-env-ubuntu-template-full: &build-env-ubuntu-template-full
<<: *build-env-ubuntu-template-default <<: *build-env-ubuntu-template-default
stage: stage: build-env-full
build-env-full
focal-default-build-env: focal-default-build-env:
<<: *build-env-ubuntu-template-default <<: *build-env-ubuntu-template-default
...@@ -328,8 +329,7 @@ xenial-full-warnings: ...@@ -328,8 +329,7 @@ xenial-full-warnings:
.build-env-centos-template-full: &build-env-centos-template-full .build-env-centos-template-full: &build-env-centos-template-full
<<: *build-env-centos-template-default <<: *build-env-centos-template-default
stage: stage: build-env-full
build-env-full
centos7-default-build-env: centos7-default-build-env:
<<: *build-env-centos-template-default <<: *build-env-centos-template-default
...@@ -399,21 +399,6 @@ osx-full-warnings: ...@@ -399,21 +399,6 @@ osx-full-warnings:
# ################# WINDOWS #################### # ################# WINDOWS ####################
# ################################################ # ################################################
#win7-default-build-and-test:
# <<: *build-and-test-template
# tags:
# - win7
# script:
# - $Env:path = "$CI_PROJECT_DIR\build\dist\bin;$CI_PROJECT_DIR\ThirdParty;" + $Env:path
# - echo $Env:path
# - mkdir build
# - cd build
# - cmake.exe -G "Visual Studio 12 2013 Win64" --config Debug ..
# - cmake.exe --build . --target ALL_BUILD --config Debug
# - cmake.exe --build . --target INSTALL --config Debug
# - ctest --output-on-failure -C Debug -j3
win10-default-build-and-test: win10-default-build-and-test:
<<: *build-and-test-template <<: *build-and-test-template
tags: tags:
...@@ -447,3 +432,141 @@ win10-mpi-default-build-and-test: ...@@ -447,3 +432,141 @@ win10-mpi-default-build-and-test:
after_script: after_script:
- Remove-Item -Recurse -Force build - Remove-Item -Recurse -Force build
needs: [] needs: []
# ##################################################
# ################# DOCKERHUB ####################
# ##################################################
# Docker Hub build template. We build images and push them into the gitlab
# container registry first; this way, we can test the images before they are
# deployed, modify images or test adjustments to the CI by using docker/*
# branches on gitlab, and test the images before they are deployed.
#
# Images are tagged with both :latest and the short SHA commit, so that the
# correct image version can be grabbed from the container registry.
.dockerhub_build_template: &dockerhub_build_template
image: docker:stable
only:
- master@nektar/nektar
- /^docker\/.*$/@nektar/nektar
- tags@nektar/nektar
script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- IMAGE=$CI_REGISTRY_IMAGE/${image_name}
- docker pull $IMAGE || true
- docker build ${args} --pull -t $IMAGE -f ${dockerfile} .
- docker tag $IMAGE $IMAGE:$CI_COMMIT_SHORT_SHA
- docker tag $IMAGE $IMAGE:latest
- docker push $IMAGE:$CI_COMMIT_SHORT_SHA
- docker push $IMAGE:latest
# Docker Hub test template, which runs an image from the gitlab container
# registry on a particular SHA commit.
.dockerhub-test-template: &dockerhub_test_template
image: ${CI_REGISTRY_IMAGE}/${image_name}:$CI_COMMIT_SHORT_SHA
stage: package-test
only:
- master@nektar/nektar
- /^docker\/.*$/@nektar/nektar
- tags@nektar/nektar
# Docker Hub deployment template. Only builds for master or tags on the main
# Nektar repository. The strategy is to login to the container registry and pull
# an image onto the runner; we then tag the image as appropriate (with :latest
# and SHA commit, as well as the git tag if this happens to be a tagged commit),
# then push the image up to Docker Hub. Note that cleanup of images on the
# runners can be difficult if they are tagged multiple times, so we also perform
# a quick rmi to make sure we only keep the images from the registry.
.dockerhub-deploy-template: &dockerhub_deploy_template
image: docker:stable
stage: package-deploy
only:
- master@nektar/nektar
- tags@nektar/nektar
script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- CI_IMAGE=$CI_REGISTRY_IMAGE/${image_name}:$CI_COMMIT_SHORT_SHA
- DH_IMAGE=${DOCKERIO_REGISTRY}/nektarpp/${image_name}
- docker pull $CI_IMAGE
- docker logout
- docker login -u "$DOCKERIO_REGISTRY_USER" -p "$DOCKERIO_REGISTRY_PASSWORD" $DOCKERIO_REGISTRY
- if [ ! -z $CI_COMMIT_TAG ]; then docker tag $CI_IMAGE $DH_IMAGE:$CI_COMMIT_TAG; docker push $DH_IMAGE:$CI_COMMIT_TAG; docker rmi $DH_IMAGE:$CI_COMMIT_TAG; fi
- docker tag $CI_IMAGE $DH_IMAGE:$CI_COMMIT_SHORT_SHA
- docker tag $CI_IMAGE $DH_IMAGE:latest
- docker push $DH_IMAGE:$CI_COMMIT_SHORT_SHA
- docker push $DH_IMAGE:latest
- docker rmi $DH_IMAGE:$CI_COMMIT_SHORT_SHA $DH_IMAGE:latest
# nektarpp/nektar-env image
dockerhub-build-env:
<<: *dockerhub_build_template
stage: package-env
variables:
image_name: nektar-env
dockerfile: docker/nektar-env/Dockerfile
# nektarpp/nektar image
dockerhub-build-nektar:
<<: *dockerhub_build_template
stage: package-build
needs: [ "dockerhub-build-env" ]
variables:
image_name: nektar
dockerfile: docker/nektar/Dockerfile
args: --build-arg ENV_IMAGE=$CI_REGISTRY_IMAGE/nektar-env:$CI_COMMIT_SHORT_SHA
GIT_SUBMODULE_STRATEGY: normal
# nektarpp/nektar image
dockerhub-build-workbook:
<<: *dockerhub_build_template
stage: package-build
needs: []
variables:
image_name: nektar-workbook
dockerfile: docker/nektar-workbook/Dockerfile
# nektarpp/nektar-dev image
dockerhub-build-dev:
<<: *dockerhub_build_template
stage: package-build-dev
needs: [ "dockerhub-build-nektar" ]
variables:
image_name: nektar-dev
args: --build-arg ENV_IMAGE=$CI_REGISTRY_IMAGE/nektar-env:$CI_COMMIT_SHORT_SHA --build-arg NEKTAR_IMAGE=$CI_REGISTRY_IMAGE/nektar:$CI_COMMIT_SHORT_SHA
dockerfile: docker/nektar-dev/Dockerfile
# Test the dockerhub images
dockerhub-test-nektar:
<<: *dockerhub_test_template
needs: [ "dockerhub-build-nektar" ]
variables:
image_name: nektar
script:
- mpirun -n 3 IncNavierStokesSolver $CI_PROJECT_DIR/solvers/IncNavierStokesSolver/Tests/ChanFlow_m3_par.xml
dockerhub-test-nektar-dev:
<<: *dockerhub_test_template
needs: [ "dockerhub-build-dev" ]
variables:
image_name: nektar-dev
script:
- cd $CI_PROJECT_DIR/templates/executable
- ./test.sh /usr/local/lib64/nektar++/cmake 3
# Deployment
dockerhub-deploy-nektar:
<<: *dockerhub_deploy_template
variables:
image_name: nektar
dockerhub-deploy-nektar-env:
<<: *dockerhub_deploy_template
variables:
image_name: nektar-env
dockerhub-deploy-nektar-dev:
<<: *dockerhub_deploy_template
variables:
image_name: nektar-dev
dockerhub-deploy-nektar-workbook:
<<: *dockerhub_deploy_template
variables:
image_name: nektar-workbook
...@@ -5,18 +5,19 @@ v5.1.0 ...@@ -5,18 +5,19 @@ v5.1.0
------ ------
**Library** **Library**
- Restructure library to use local coefficient storage down to the GlobalLinSys - Restructure library to use local coefficient storage down to the GlobalLinSys
level. Removed GlobalCoeffs functionality (!963) level. Removed GlobalCoeffs functionality (!963, !1145)
- Restructure library to use local coefficient storage down to the GlobalLinSys level. Removed GlobalCeoffs functionality (!963)
- Corrected the use of communicator in AssemblyMapDG and AssemblyCommDG which was not using GetRowComm() (!1144)
- Add interior penalty method to DG framework (!1101) - Add interior penalty method to DG framework (!1101)
- Add an error filter for the time-evolution of the L2 and Linf errors (!1147) - Add an error filter for the time-evolution of the L2 and Linf errors (!1147)
**FieldConvert**
- Refactored time integration code using factory pattern (!1034) - Refactored time integration code using factory pattern (!1034)
- Fix to preprocessor logic for boost with Visual Studio >= 2015 (!1115) - Fix to preprocessor logic for boost with Visual Studio >= 2015 (!1115)
- Fix type consistency and real comparison in SharedArray.hpp, replaced - Fix type consistency and real comparison in SharedArray.hpp, replaced
num_elements with size() (!1127) num_elements with size() (!1127, !1137, !1141)
- Use base MPI functions instead of the GS library in the trace exchange - Use base MPI functions instead of the GS library in the trace exchange
for parallel DG simulations (!1112) for parallel DG simulations (!1112)
num_elements with size() (!1127, !1137, !1141)
**FieldConvert**:
- Add phifile module to compute shape functions for the SPM solver (!1065) - Add phifile module to compute shape functions for the SPM solver (!1065)
**CardiacEPSolver** **CardiacEPSolver**
...@@ -27,6 +28,7 @@ v5.1.0 ...@@ -27,6 +28,7 @@ v5.1.0
(!1065) (!1065)
- Add new filter AeroForcesSPM to compute aerodynamic forces in immersed - Add new filter AeroForcesSPM to compute aerodynamic forces in immersed
boundaries (!1065) boundaries (!1065)
**Documentation**: **Documentation**:
- Updated Windows source build instructions in user guide (!1152) - Updated Windows source build instructions in user guide (!1152)
...@@ -50,6 +52,7 @@ v5.0.1 ...@@ -50,6 +52,7 @@ v5.0.1
Started using it in SharedArray and in NekMesh to fix peralign-extrude tool Started using it in SharedArray and in NekMesh to fix peralign-extrude tool
chain (!1134) chain (!1134)
- Fix performance of GetExp(coord) by using octree lookup (!1165) - Fix performance of GetExp(coord) by using octree lookup (!1165)
- Fix Collection unit tests (!1160)
**IncNavierStokesSolver** **IncNavierStokesSolver**
- Change the baseflow time in the Adjoint advection (!1133) - Change the baseflow time in the Adjoint advection (!1133)
......
...@@ -101,6 +101,9 @@ SET(LIB_DIR "lib") ...@@ -101,6 +101,9 @@ SET(LIB_DIR "lib")
IF( CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT APPLE ) IF( CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT APPLE )
SET(LIB_DIR "lib64") SET(LIB_DIR "lib64")
ENDIF() ENDIF()
IF (DEFINED NEKTAR_LIB_DIR)
SET(LIB_DIR ${NEKTAR_LIB_DIR})
ENDIF()
SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ") SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ")
SET(NEKTAR_BIN_DIR bin) SET(NEKTAR_BIN_DIR bin)
...@@ -110,11 +113,19 @@ SET(NEKTAR_SHARE_DIR share/nektar++) ...@@ -110,11 +113,19 @@ SET(NEKTAR_SHARE_DIR share/nektar++)
SET(NEKTAR_DOC_DIR share/doc/nektar++) SET(NEKTAR_DOC_DIR share/doc/nektar++)
SET(NEKTAR_CMAKE_DIR ${LIB_DIR}/nektar++/cmake) SET(NEKTAR_CMAKE_DIR ${LIB_DIR}/nektar++/cmake)
# Allow for overriding final include header directory (for Fedora/CentOS
# packaging)
IF (DEFINED NEKTAR_INCLUDE_ROOT)
SET(NEKTAR_INCLUDE_DIST_DIR ${NEKTAR_INCLUDE_ROOT}/nektar++)
ELSE()
SET(NEKTAR_INCLUDE_DIST_DIR ${CMAKE_INSTALL_PREFIX}/${NEKTAR_INCLUDE_DIR})
ENDIF()
# Set ThirdParty locations. # Set ThirdParty locations.
SET(TPSRC ${CMAKE_SOURCE_DIR}/ThirdParty) SET(TPSRC ${CMAKE_SOURCE_DIR}/ThirdParty)
SET(TPBUILD ${CMAKE_BINARY_DIR}/ThirdParty) SET(TPBUILD ${CMAKE_BINARY_DIR}/ThirdParty)
SET(TPDIST ${CMAKE_BINARY_DIR}/ThirdParty/dist) SET(TPDIST ${CMAKE_BINARY_DIR}/ThirdParty/dist)
SET(TPINC ${CMAKE_INSTALL_PREFIX}/include/ThirdParty) SET(TPINC ${NEKTAR_INCLUDE_DIST_DIR}/ThirdParty)
SET(TPLIB ${CMAKE_INSTALL_PREFIX}/${NEKTAR_LIB_DIR}/nektar++/thirdparty) SET(TPLIB ${CMAKE_INSTALL_PREFIX}/${NEKTAR_LIB_DIR}/nektar++/thirdparty)
# Create ThirdParty source directory if it doesn't exist already. # Create ThirdParty source directory if it doesn't exist already.
......
...@@ -30,13 +30,12 @@ ...@@ -30,13 +30,12 @@
SET(NEKTAR++_FOUND "ON") SET(NEKTAR++_FOUND "ON")
SET(NEKTAR++_VERSION "@NEKTAR_VERSION@") SET(NEKTAR++_VERSION "@NEKTAR_VERSION@")
SET(NEKTAR++_ROOT_DIR "@CMAKE_INSTALL_PREFIX@") SET(NEKTAR++_ROOT_DIR "@CMAKE_INSTALL_PREFIX@")
SET(NEKTAR++_INCLUDE_DIRS "${NEKTAR++_ROOT_DIR}/@NEKTAR_INCLUDE_DIR@") SET(NEKTAR++_INCLUDE_DIRS "@NEKTAR_INCLUDE_DIST_DIR@")
SET(NEKTAR++_LIBRARY_DIRS "${NEKTAR++_ROOT_DIR}/@NEKTAR_LIB_DIR@") SET(NEKTAR++_LIBRARY_DIRS "${NEKTAR++_ROOT_DIR}/@NEKTAR_LIB_DIR@")
SET(NEKTAR++_DEFINITIONS @NEKTAR_DEFINITIONS@) SET(NEKTAR++_DEFINITIONS @NEKTAR_DEFINITIONS@)
SET(NEKTAR++_LIBRARIES @NEKTAR++_LIBRARIES@) SET(NEKTAR++_LIBRARIES @NEKTAR++_LIBRARIES@)
SET(NEKTAR++_TP_INCLUDE_DIRS SET(NEKTAR++_TP_INCLUDE_DIRS "@NEKTAR_INCLUDE_DIST_DIR@/ThirdParty")
"${NEKTAR++_ROOT_DIR}/@NEKTAR_INCLUDE_DIR@/ThirdParty")
SET(NEKTAR++_TP_LIBRARIES "") SET(NEKTAR++_TP_LIBRARIES "")
SET(NEKTAR++_TP_LIBRARY_DIRS "") SET(NEKTAR++_TP_LIBRARY_DIRS "")
......
...@@ -51,14 +51,14 @@ IF( NEKTAR_USE_MPI ) ...@@ -51,14 +51,14 @@ IF( NEKTAR_USE_MPI )
IF (THIRDPARTY_BUILD_GSMPI) IF (THIRDPARTY_BUILD_GSMPI)
INCLUDE(ExternalProject) INCLUDE(ExternalProject)
EXTERNALPROJECT_ADD( EXTERNALPROJECT_ADD(
gsmpi-1.2.1 gsmpi-1.2.1_2
URL ${TPURL}/gsmpi-1.2.1_2.tar.bz2 URL ${TPURL}/gsmpi-1.2.1_2.tar.bz2
URL_MD5 3690b4a658324cd5ad17cf8f6115fb5d URL_MD5 3690b4a658324cd5ad17cf8f6115fb5d
STAMP_DIR ${TPBUILD}/stamp STAMP_DIR ${TPBUILD}/stamp
DOWNLOAD_DIR ${TPSRC} DOWNLOAD_DIR ${TPSRC}
SOURCE_DIR ${TPSRC}/gsmpi-1.2.1 SOURCE_DIR ${TPSRC}/gsmpi-1.2.1_2
BINARY_DIR ${TPBUILD}/gsmpi-1.2.1 BINARY_DIR ${TPBUILD}/gsmpi-1.2.1_2
TMP_DIR ${TPBUILD}/gsmpi-1.2.1-tmp TMP_DIR ${TPBUILD}/gsmpi-1.2.1_2-tmp
INSTALL_DIR ${TPDIST} INSTALL_DIR ${TPDIST}
CONFIGURE_COMMAND CONFIGURE_COMMAND
${CMAKE_COMMAND} ${CMAKE_COMMAND}
...@@ -67,7 +67,7 @@ IF( NEKTAR_USE_MPI ) ...@@ -67,7 +67,7 @@ IF( NEKTAR_USE_MPI )
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER} -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_BUILD_TYPE:STRING=Debug
-DCMAKE_INSTALL_PREFIX:PATH=${TPDIST} -DCMAKE_INSTALL_PREFIX:PATH=${TPDIST}
${TPSRC}/gsmpi-1.2.1 ${TPSRC}/gsmpi-1.2.1_2
) )
THIRDPARTY_LIBRARY(GSMPI_LIBRARY STATIC gsmpi DESCRIPTION "GSMPI Library") THIRDPARTY_LIBRARY(GSMPI_LIBRARY STATIC gsmpi DESCRIPTION "GSMPI Library")
THIRDPARTY_LIBRARY(XXT_LIBRARY STATIC xxt DESCRIPTION "XXT Library") THIRDPARTY_LIBRARY(XXT_LIBRARY STATIC xxt DESCRIPTION "XXT Library")
......
FROM nektarpp/nektar-env:latest AS build ARG NEKTAR_IMAGE=nektarpp/nektar:latest
ARG ENV_IMAGE=nektarpp/nektar-env:latest
FROM $NEKTAR_IMAGE as nektar
FROM $ENV_IMAGE AS build
LABEL maintainer="David Moxey <d.moxey@exeter.ac.uk>" LABEL maintainer="Nektar++ Development Team <nektar-users@imperial.ac.uk>"
ARG INSTALL_PREFIX=/usr/local ARG INSTALL_PREFIX=/usr/local
USER root USER root
COPY --from=nektarpp/nektar:latest ${INSTALL_PREFIX} ${INSTALL_PREFIX} COPY --from=nektar ${INSTALL_PREFIX} ${INSTALL_PREFIX}
# Set up entrypoint for copying test files. # Set up entrypoint for copying test files.
COPY docker/nektar/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh COPY docker/nektar/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
......
...@@ -6,14 +6,24 @@ image for code development purposes. ...@@ -6,14 +6,24 @@ image for code development purposes.
## Building ## Building
The image is built using `nektarpp/nektar-env` and requires as build context the The image is built using `nektarpp/nektar-env` or similar and requires as build
path to the Nektar++ source tree. It supports the build environment variable: context the path to the Nektar++ source tree. It supports the build environment
variables:
- `ENV_IMAGE` and `NEKTAR_IMAGE`, which are used to select the environment image
and Nektar image to build against. This is used by the CI to e.g. consistently
build against the correct commits. By default these are set to
`nektarpp/nektar-env:latest` and `nektarpp/nektar:latest`.
- `INSTALL_PREFIX` can be set to adjust the install prefix, which is - `INSTALL_PREFIX` can be set to adjust the install prefix, which is
`/usr/local` by default. `/usr/local` by default.
Then build the image using a command similar to: Then build the image using a command similar to:
```sh ```sh
docker build -t nektarpp/nektar-dev -f ~/nektar++/docker/nektar-dev/Dockerfile ~/nektar++ docker build \
-t nektarpp/nektar-dev \
-f ~/nektar++/docker/nektar-dev/Dockerfile \
--build-arg ENV_IMAGE=nektarpp/nektar-env:latest \
--build-arg NEKTAR_IMAGE=nektarpp/nektar:latest \
~/nektar++
``` ```
FROM debian:buster-slim FROM debian:buster-slim
LABEL maintainer="David Moxey <d.moxey@exeter.ac.uk>" LABEL maintainer="Nektar++ Development Team <nektar-users@imperial.ac.uk>"
RUN DEBIAN_RELEASE=buster && \ RUN DEBIAN_RELEASE=buster && \
echo "deb http://deb.debian.org/debian ${DEBIAN_RELEASE} non-free" > \ echo "deb http://deb.debian.org/debian ${DEBIAN_RELEASE} non-free" > \
......
...@@ -9,4 +9,7 @@ RUN echo "deb http://deb.debian.org/debian buster non-free" > \ ...@@ -9,4 +9,7 @@ RUN echo "deb http://deb.debian.org/debian buster non-free" > \
apt-get install -y $(cat packages.txt) \ apt-get install -y $(cat packages.txt) \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Patch security policy to allow PDF conversion by ImageMagick
RUN sed -i 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/g' /etc/ImageMagick-6/policy.xml
USER nektar:nektar USER nektar:nektar
FROM jupyter/scipy-notebook:ae5f7e104dd5 AS build FROM jupyter/scipy-notebook:ae5f7e104dd5 AS build
LABEL maintainer="Nektar++ Development Team <nektar-users@imperial.ac.uk>"
USER root USER root
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y libtinyxml-dev && \ apt-get install -y libtinyxml-dev && \
...@@ -23,4 +25,4 @@ RUN cd /tmp/nektar && mkdir build && cd build && \ ...@@ -23,4 +25,4 @@ RUN cd /tmp/nektar && mkdir build && cd build && \
chown -R $NB_UID:$NB_UID /tmp/nektar && \ chown -R $NB_UID:$NB_UID /tmp/nektar && \
cd /tmp/nektar/build && sudo -u $NB_USER make nekpy-install-system && cd && rm -R /tmp/nektar cd /tmp/nektar/build && sudo -u $NB_USER make nekpy-install-system && cd && rm -R /tmp/nektar
USER $NB_UID USER $NB_UID
\ No newline at end of file
FROM nektarpp/nektar-env:latest AS build ARG ENV_IMAGE=nektarpp/nektar-env:latest
FROM $ENV_IMAGE AS build
LABEL maintainer="David Moxey <d.moxey@exeter.ac.uk>" LABEL maintainer="Nektar++ Development Team <nektar-users@imperial.ac.uk>"
COPY --chown=nektar:nektar . /home/nektar COPY --chown=nektar:nektar . /home/nektar
......
...@@ -13,9 +13,13 @@ enabled: ...@@ -13,9 +13,13 @@ enabled:
## Building ## Building
The image is built using `nektarpp/nektar-env` and requires as build context the The image is built using `nektarpp/nektar-env` or similar and requires as build
path to the Nektar++ source tree. It supports three additional build arguments: context the path to the Nektar++ source tree. It supports several additional
build arguments:
- `ENV_IMAGE` is used to select the environment to build against. This is used
by the CI to e.g. consistently build against the correct commits. By default
this is set to `nektarpp/nektar-env:default`.
- `BUILD_DEMOS` can be set to `ON` to build demos, which are disabled by - `BUILD_DEMOS` can be set to `ON` to build demos, which are disabled by
default; default;
- `BUILD_SOLVERS` can be set to `OFF` to disable build of solvers, which are - `BUILD_SOLVERS` can be set to `OFF` to disable build of solvers, which are
......
...@@ -8,12 +8,15 @@ ADD_NEKTAR_EXECUTABLE(StdEquiToCoeff2D ...@@ -8,12 +8,15 @@ ADD_NEKTAR_EXECUTABLE(StdEquiToCoeff2D
COMPONENT demos DEPENDS StdRegions SOURCES StdEquiToCoeff2D.cpp) COMPONENT demos DEPENDS StdRegions SOURCES StdEquiToCoeff2D.cpp)
# Interpolation tests. # Interpolation tests.
ADD_NEKTAR_TEST(StdInterp_Seg_Mod_P6_Q7)
ADD_NEKTAR_TEST(StdInterp_Hex_Mod_P6_Q7) ADD_NEKTAR_TEST(StdInterp_Hex_Mod_P6_Q7)
ADD_NEKTAR_TEST(StdInterp_Quad_Lagrange_P6_Q7) ADD_NEKTAR_TEST(StdInterp_Quad_Lagrange_P6_Q7)
ADD_NEKTAR_TEST(StdInterp_Prism_Mod_P6_Q7) ADD_NEKTAR_TEST(StdInterp_Prism_Mod_P6_Q7)
ADD_NEKTAR_TEST(StdInterp_Pyr_Mod_P6_Q7) ADD_NEKTAR_TEST(StdInterp_Pyr_Mod_P6_Q7)
ADD_NEKTAR_TEST(StdInterp_Tet_Mod_P6_Q7) ADD_NEKTAR_TEST(StdInterp_Tet_Mod_P6_Q7)
ADD_NEKTAR_TEST(StdInterp_Tri_Mod_P6_Q7) ADD_NEKTAR_TEST(StdInterp_Tri_Mod_P6_Q7)
ADD_NEKTAR_TEST(StdInterp_Tri_Orth_P7_Q8)
# Basis interpolation tests. # Basis interpolation tests.
ADD_NEKTAR_TEST(StdInterpBasis_Prism_Orth_P6_Q7) ADD_NEKTAR_TEST(StdInterpBasis_Prism_Orth_P6_Q7)
...@@ -23,6 +26,7 @@ ADD_NEKTAR_TEST(StdInterpBasis_Tri_Mod_P7_Q8) ...@@ -23,6 +26,7 @@ ADD_NEKTAR_TEST(StdInterpBasis_Tri_Mod_P7_Q8)
ADD_NEKTAR_TEST(StdInterpBasis_Hex_Mod_P7_Q8) ADD_NEKTAR_TEST(StdInterpBasis_Hex_Mod_P7_Q8)
ADD_NEKTAR_TEST(StdInterpBasis_Pyr_Mod_P7_Q8) ADD_NEKTAR_TEST(StdInterpBasis_Pyr_Mod_P7_Q8)
# Projection tests. # Projection tests.
ADD_NEKTAR_TEST(StdProject1D_Seg_Orth_P6_Q7) ADD_NEKTAR_TEST(StdProject1D_Seg_Orth_P6_Q7)
ADD_NEKTAR_TEST(StdProject1D_Seg_Mod_P6_Q7) ADD_NEKTAR_TEST(StdProject1D_Seg_Mod_P6_Q7)
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<test> <test>
<description>StdInterp Hex Modified basis P=6 Q=7</description> <description>StdInterp Hex Modified basis P=6 Q=7</description>
<executable>StdInterp</executable> <executable>StdInterp</executable>
<parameters>-s hexahedron -b Modified_A Modified_A Modified_A -o 6 6 6 -p 7 7 7</parameters> <parameters>-s hexahedron -b Modified_A Modified_A Modified_A -o 6 6 6 -p 7
7 7 -P GaussGaussLegendre GaussGaussLegendre GaussGaussLegendre</parameters>
<metrics> <metrics>
<metric type="Linf" id="1"> <metric type="Linf" id="1">
<value tolerance="1e-12">0</value> <value tolerance="1e-12">0</value>
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<test> <test>
<description>StdInterp Prism Modified basis P=6 Q=7</description> <description>StdInterp Prism Modified basis P=6 Q=7</description>
<executable>StdInterp</executable> <executable>StdInterp</executable>
<parameters>-s prism -b Modified_A Modified_A Modified_B -o 6 6 6 -p 7 7 7</parameters> <parameters>-s prism -b Modified_A Modified_A Modified_B -o 6 6 6 -p 7 7 7
-P GaussGaussLegendre GaussGaussLegendre GaussGaussLegendre</parameters>
<metrics> <metrics>
<metric type="Linf" id="1"> <metric type="Linf" id="1">
<value tolerance="1e-12">0</value> <value tolerance="1e-12">0</value>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<test> <test>
<description>StdInterpBasis Prism Orthonormal basis P=6 Q=7</description> <description>StdInterpBasis Prism Orthonormal basis P=6 Q=7</description>
<executable>StdInterp</executable> <executable>StdInterp</executable>
<parameters>-s prism -b Ortho_A Ortho_A Ortho_B -o 6 6 6 -p 7 7 7</parameters> <parameters>-s prism -b Ortho_A Ortho_A Ortho_B -o 6 6 6 -p 7 7 7 -P GaussGaussLegendre GaussGaussLegendre GaussGaussLegendre</parameters>
<metrics> <metrics>
<metric type="L2" id="1"> <metric type="L2" id="1">
<value tolerance="1e-12">1.89694e-15</value> <value tolerance="1e-12">1.89694e-15</value>
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<test> <test>
<description>StdInterp Pyramid Modified basis P=6 Q=7</description> <description>StdInterp Pyramid Modified basis P=6 Q=7</description>
<executable>StdInterp</executable> <executable>StdInterp</executable>
<parameters>-s pyramid -b Modified_A Modified_A ModifiedPyr_C -o 6 6 6 -p 7 7 7</parameters> <parameters>-s pyramid -b Modified_A Modified_A ModifiedPyr_C -o 6 6 6 -p 7
7 7 -P GaussGaussLegendre GaussGaussLegendre GaussGaussLegendre</parameters>
<metrics> <metrics>
<metric type="Linf" id="1"> <metric type="Linf" id="1">
<value tolerance="1e-12">0</value> <value tolerance="1e-12">0</value>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<test> <test>
<description>StdInterp Quadrilateral Lagrange basis P=6 Q=7</description> <description>StdInterp Quadrilateral Lagrange basis P=6 Q=7</description>
<executable>StdInterp</executable> <executable>StdInterp</executable>
<parameters>-s quadrilateral -b GLL_Lagrange GLL_Lagrange -o 6 6 -p 7 7</parameters> <parameters>-s quadrilateral -b GLL_Lagrange GLL_Lagrange -o 6 6 -p 7 7 -P GaussGaussLegendre GaussGaussLegendre</parameters>
<metrics> <metrics>
<metric type="L2" id="1"> <metric type="L2" id="1">
<value tolerance="1e-12">0</value> <value tolerance="1e-12">0</value>
......
<?xml version="1.0" encoding="utf-8"?>
<test>
<description>StdInterp Seg Modified_A basis P=7 Q=8</description>
<executable>StdInterp</executable>
<parameters>-s segment -b Modified_A -o 7 -p 8 -P GaussGaussLegendre</parameters>
<metrics>
<metric type="L2" id="1">
<value tolerance="1e-12">2.81216e-16</value>
</metric>
<metric type="Linf" id="2">
<value tolerance="1e-12">1.33227e-15</value>
</metric>
</metrics>
</test>
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<test> <test>
<description>StdInterp Tetrahedron Modified basis P=6 Q=7</description> <description>StdInterp Tetrahedron Modified basis P=6 Q=7</description>
<executable>StdInterp</executable> <executable>StdInterp</executable>
<parameters>-s tetrahedron -b Modified_A Modified_B Modified_C -o 6 6 6 -p 7 7 7</parameters> <parameters>-s tetrahedron -b Modified_A Modified_B Modified_C -o 6 6 6 -p
7 7 7 -P GaussGaussLegendre GaussGaussLegendre GaussGaussLegendre</parameters>
<metrics> <metrics>
<metric type="L2" id="1"> <metric type="L2" id="1">
<value tolerance="1e-12">1.89776e-13</value> <value tolerance="1e-12">1.89776e-13</value>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment