Commit 5fad4472 authored by Claus-Justus Heine's avatar Claus-Justus Heine

[!269] Feature/ci

Merge branch 'feature/CI' into 'master'

Sync to master.

I do not delete the feature-branch as this is a never-ending story. Please
feel free to try out any CI thingies using this branch as a "playground".

See merge request [!269]

  [!269]: gitlab.dune-project.org/dune-fem/dune-fem/merge_requests/269
parents 22fbc7aa 588caeb7
Pipeline #10861 passed with stage
in 80 minutes and 11 seconds
......@@ -2,35 +2,103 @@
variables:
DUNECI_OPTS: "/builds/dune-fem/dune-fem/scripts/opts/ci-gcc.opts"
before_script:
- duneci-install-module https://gitlab.dune-project.org/core/dune-common.git
- duneci-install-module https://gitlab.dune-project.org/core/dune-geometry.git
- duneci-install-module https://gitlab.dune-project.org/core/dune-grid.git
- duneci-install-module https://gitlab.dune-project.org/core/dune-istl.git
- duneci-install-module https://gitlab.dune-project.org/core/dune-localfunctions.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-alugrid.git
- duneci-install-module https://gitlab.dune-project.org/extensions/dune-spgrid.git
debian:10 gcc:c++17:
image: duneci/base:10
script: duneci-standard-test --opts=/builds/dune-fem/dune-fem/scripts/opts/ci-gcc7.opts
#before_script:
# - duneci-install-module https://gitlab.dune-project.org/extensions/dune-alugrid.git
# - duneci-install-module https://gitlab.dune-project.org/extensions/dune-spgrid.git
.base: &base
stage: test
when: always
tags:
- "stuttgart"
# FEM_REQUIRE_PETSC=force is intended to trigger an error during cmake
# configuration if PETSc is not found
.base-petsc: &base-petsc
<<: *base
variables:
FEM_REQUIRE_PETSC: "force"
# FEM_REQUIRE_PETSC=disable is intended force PETSc to not being found
.base-nopetsc: &base-nopetsc
<<: *base
variables:
FEM_REQUIRE_PETSC: "disable"
debian:9--gcc:
image: duneci/base:9
# available image tags,
# debian-9-gcc-6-14
# debian-10-gcc-7-14
# debian-10-gcc-8-17
# debian-10-gcc-8-noassert-17
# debian-10-clang-6-libcpp-17 <-- this one does not seem to work
# ubuntu-18.04-clang-6-17
#
# We reserve some jobs for the nightly build. The Gitlab-schedule for
# the nightly build will also set the environment variable
# TORTURE_TESTS=on
debian-9-gcc-6-14:
<<: *base-petsc
image: dune-fem-ci:git-debian-9-gcc-6-14
script: duneci-standard-test --opts=/builds/dune-fem/dune-fem/scripts/opts/ci-gcc.opts
debian:9--clang:
image: duneci/base:9
script: duneci-standard-test --opts=/builds/dune-fem/dune-fem/scripts/opts/ci-clang.opts
debian-10-gcc-7-14:
<<: *base-petsc
image: dune-fem-ci:git-debian-10-gcc-7-14
script: duneci-standard-test --opts=/builds/dune-fem/dune-fem/scripts/opts/ci-gcc7.opts
ubuntu:16.04--gcc:
image: duneci/base:16.04
debian-10-gcc-8-17:
<<: *base-petsc
image: dune-fem-ci:git-debian-10-gcc-8-17
script: duneci-standard-test --opts=/builds/dune-fem/dune-fem/scripts/opts/ci-gcc.opts
only:
- triggers
- schedules
ubuntu:16.04--clang:
image: duneci/base:16.04
debian-10-gcc-8-noassert-17:
<<: *base-petsc
image: dune-fem-ci:git-debian-10-gcc-8-noassert-17
script: duneci-standard-test --opts=/builds/dune-fem/dune-fem/scripts/opts/ci-gcc.opts
only:
- triggers
- schedules
# This fails, have to further investigate what this libcpp really means.
.debian-10-clang-6-libcpp-17:
<<: *base-petsc
image: dune-fem-ci:git-debian-10-clang-6-libcpp-17
script: duneci-standard-test --opts=/builds/dune-fem/dune-fem/scripts/opts/ci-clang-6.opts
only:
- triggers
- schedules
ubuntu-18.04-clang-6-17:
<<: *base-petsc
image: dune-fem-ci:git-ubuntu-18.04-clang-6-17
script: duneci-standard-test --opts=/builds/dune-fem/dune-fem/scripts/opts/ci-clang.opts
debian:9--gcc--petsc:
image: registry.dune-project.org/dune-fem/dune-fem/ci-petsc:9
####################### REQUIRE_PETSc=disable versions ########################
#
# We only test Debian 10 as we basically only want to test whether the
# build-system successfully has disabled the PETSc bindings.
debian-10-gcc-7-14-nopetsc:
<<: *base-nopetsc
image: dune-fem-ci:git-debian-10-gcc-7-14
script: duneci-standard-test --opts=/builds/dune-fem/dune-fem/scripts/opts/ci-gcc7.opts
debian-10-gcc-8-17-petsc:
<<: *base-nopetsc
image: dune-fem-ci:git-debian-10-gcc-8-17
script: duneci-standard-test --opts=/builds/dune-fem/dune-fem/scripts/opts/ci-gcc.opts
only:
- triggers
- schedules
debian-10-gcc-8-noassert-17-nopetsc:
<<: *base-nopetsc
image: dune-fem-ci:git-debian-10-gcc-8-noassert-17
script: duneci-standard-test --opts=/builds/dune-fem/dune-fem/scripts/opts/ci-gcc.opts
only:
- triggers
- schedules
......@@ -103,3 +103,6 @@ include(CommandLineHacks)
# check SuiteSparse support
find_package(SuiteSparse OPTIONAL_COMPONENTS UMFPACK SPQR LDL)
include(AddSuiteSparseFlags)
# torture tests AKA nighly builds
include(FemTortureTests)
if("$ENV{TORTURE_TESTS}" STREQUAL "on")
set(TORTURE_TESTS on CACHE BOOL "Enable Torture Tests")
message(STATUS "Enabling torture-tests")
else()
set(TORTURE_TESTS off CACHE BOOL "Enable Torture Tests")
message(STATUS "Not enabling torture-tests")
endif()
......@@ -421,6 +421,14 @@ namespace Dune
v[ qp.index() ] = jacobian( qp );
}
template< class Quadrature, class Vector >
auto evaluateQuadrature ( const Quadrature &quad, Vector &v ) const
-> std::enable_if_t< std::is_same< std::decay_t< decltype(v[ 0 ]) >, HessianRangeType >::value >
{
for( const auto qp : quad )
v[ qp.index() ] = hessian( qp );
}
void bind ( const EntityType &entity ) { gridFunction_.bind( entity ); }
void unbind () { gridFunction().unbind(); }
......
......@@ -161,6 +161,14 @@ namespace Dune
jacobian( quadrature[ qp ], values[ qp ] );
}
template< class QuadratureType, class VectorType >
void evaluateQuadratureImp ( const QuadratureType &quadrature, VectorType &values, const HessianRangeType & ) const
{
const unsigned int nop = quadrature.nop();
for( unsigned int qp = 0; qp < nop; ++qp )
hessian( quadrature[ qp ], values[ qp ] );
}
Converter converter_;
};
......
......@@ -417,6 +417,15 @@ namespace Dune
basisFunctionSet().jacobianAll( quad, localDofVector(), result );
}
// evaluate jacobian of local function and store result in vector of
// JacobianRangeTypes, this method only helps to identify the correct method on
// the basis function set
template< class QuadratureType, class VectorType >
void evaluateQuadrature( const QuadratureType &quad, VectorType &result, const HessianRangeType & ) const
{
basisFunctionSet().hessianAll( quad, localDofVector(), result );
}
BasisFunctionSetType basisFunctionSet_;
LocalDofVectorType localDofVector_;
};
......
CMAKE_FLAGS="
-DCMAKE_CXX_COMPILER='/usr/bin/clang++-5.0' \
-DCMAKE_C_COMPILER='/usr/bin/clang-5.0' \
-DCMAKE_CXX_FLAGS='-Wall -O3 -ftemplate-backtrace-limit=0' \
-DDUNE_GRID_GRIDTYPE_SELECTOR=ON \
-DDUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS=TRUE \
"
CMAKE_FLAGS="
-DCMAKE_CXX_COMPILER='/usr/bin/clang++-6.0' \
-DCMAKE_C_COMPILER='/usr/bin/clang-6.0' \
-DCMAKE_CXX_FLAGS='-Wall -O3 -ftemplate-backtrace-limit=0' \
-DDUNE_GRID_GRIDTYPE_SELECTOR=ON \
-DDUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS=TRUE \
"
CMAKE_FLAGS="
-DCMAKE_CXX_COMPILER='/usr/bin/clang++' \
-DCMAKE_C_COMPILER='/usr/bin/clang' \
-DCMAKE_CXX_FLAGS='-Wall -O1 -ftemplate-backtrace-limit=0' \
-DCMAKE_CXX_FLAGS='-Wall -O3 -ftemplate-backtrace-limit=0' \
-DDUNE_GRID_GRIDTYPE_SELECTOR=ON \
-DDUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS=TRUE \
"
CMAKE_FLAGS="
-DCMAKE_CXX_FLAGS='-Wall -Winit-self -O1' \
-DCMAKE_CXX_FLAGS='-Wall -Winit-self -O3' \
-DDUNE_GRID_GRIDTYPE_SELECTOR=ON \
-DDUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS=TRUE \
"
......@@ -2,7 +2,7 @@ CMAKE_FLAGS="
-DCMAKE_CXX_COMPILER=/usr/bin/g++-7 \
-DCMAKE_C_COMPILER=/usr/bin/gcc-7 \
-DCXX_MAX_STANDARD=17 \
-DCMAKE_CXX_FLAGS='-Wall -Winit-self -O1' \
-DCMAKE_CXX_FLAGS='-Wall -Winit-self -O3' \
-DDUNE_GRID_GRIDTYPE_SELECTOR=ON \
-DDUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS=TRUE \
"
......@@ -3,7 +3,7 @@
USE_CMAKE=YES
MODULEDIR=/hosts/raid5/aragorn/dune/modules/$HOSTTYPE
CONFIGURE_FLAGS="--enable-parallel"
CONFIGURE_FLAGS="--enable-parallel"
CC=${CC:-cc}
CXX=${CXX:-c++}
......@@ -13,7 +13,7 @@ BUILD_DIR=build-all
CMAKE_FLAGS="
-DCMAKE_SYSTEM_PREFIX_PATH=\"${SYSTEM_PREFIX_PATH}\" \
-DCMAKE_CXX_FLAGS=\"-Wall -Winit-self -O1 -g \" \
-DCMAKE_CXX_FLAGS=\"-Wall -Winit-self -O3 -g \" \
-DCMAKE_CXX_COMPILER=\"$(which ${CXX})\" \
-DCMAKE_C_COMPILER=\"$(which ${CC})\" \
-DCMAKE_Fortran_COMPILER=\"$(which ${F77} )\" \
......
......@@ -11,7 +11,7 @@ BUILD_DIR=build-alu-cube
CMAKE_FLAGS="
-DCMAKE_SYSTEM_PREFIX_PATH=\"${SYSTEM_PREFIX_PATH}\" \
-DCMAKE_CXX_FLAGS=\"-Wall -Winit-self -O1 -g \" \
-DCMAKE_CXX_FLAGS=\"-Wall -Winit-self -O3 -g \" \
-DCMAKE_CXX_COMPILER=\"$(which ${CXX})\" \
-DCMAKE_C_COMPILER=\"$(which ${CC})\" \
-DCMAKE_Fortran_COMPILER=\"$(which ${F77} )\" \
......
......@@ -11,7 +11,7 @@ BUILD_DIR=build-alu-simplex
CMAKE_FLAGS="
-DCMAKE_SYSTEM_PREFIX_PATH=\"${SYSTEM_PREFIX_PATH}\" \
-DCMAKE_CXX_FLAGS=\"-Wall -Winit-self -O1 -g \" \
-DCMAKE_CXX_FLAGS=\"-Wall -Winit-self -O3 -g \" \
-DCMAKE_CXX_COMPILER=\"$(which ${CXX})\" \
-DCMAKE_C_COMPILER=\"$(which ${CC})\" \
-DCMAKE_Fortran_COMPILER=\"$(which ${F77} )\" \
......
......@@ -8,7 +8,7 @@ BUILD_DIR=build-none
CMAKE_FLAGS="
-DCMAKE_SYSTEM_PREFIX_PATH=\"${SYSTEM_PREFIX_PATH}\" \
-DCMAKE_CXX_FLAGS=\"-Wall -Winit-self -O1 -g \" \
-DCMAKE_CXX_FLAGS=\"-Wall -Winit-self -O3 -g \" \
-DCMAKE_CXX_COMPILER=\"$(which ${CXX})\" \
-DCMAKE_C_COMPILER=\"$(which ${CC})\" \
-DCMAKE_Fortran_COMPILER=\"$(which ${F77} )\" \
......
......@@ -8,7 +8,7 @@ BUILD_DIR=build-spgrid
CMAKE_FLAGS="
-DCMAKE_SYSTEM_PREFIX_PATH=\"${SYSTEM_PREFIX_PATH}\" \
-DCMAKE_CXX_FLAGS=\"-Wall -Winit-self -O1 -g \" \
-DCMAKE_CXX_FLAGS=\"-Wall -Winit-self -O3 -g \" \
-DCMAKE_CXX_COMPILER=\"$(which ${CXX})\" \
-DCMAKE_C_COMPILER=\"$(which ${CC})\" \
-DCMAKE_Fortran_COMPILER=\"$(which ${F77} )\" \
......
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