diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a23a55d8c..302f2aaf0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,447 +1,447 @@
 stages:
   - configure
   - build
   - test
   - deploy
 
 .docker_build:
   image: 'docker:19.03.11'
   stage: .pre
   services:
     - docker:19.03.11-dind
   variables:
     # Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled
     DOCKER_HOST: tcp://docker:2376
     DOCKER_TLS_CERTDIR: "/certs"
   before_script:
     - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
   script:
     - cd test/ci/${IMAGE_NAME}/
     - docker build -t registry.gitlab.com/akantu/akantu/${IMAGE_NAME} .
     - docker push registry.gitlab.com/akantu/akantu/${IMAGE_NAME}
 
 docker build:debian-testing:
   variables:
     IMAGE_NAME: debian:testing
   extends: .docker_build
   rules:
     - changes:
         - test/ci/debian:testing/Dockerfile
 
 docker build:ubuntu-lts:
   variables:
     IMAGE_NAME: ubuntu:lts
   extends: .docker_build
   rules:
     - changes:
         - test/ci/ubuntu:lts/Dockerfile
 
 .configure:
   stage: configure
   except:
     - tags
   variables:
     BLA_VENDOR: 'Generic'
   script:
     - cmake -E make_directory build
     - cd build
     - cmake -DAKANTU_COHESIVE_ELEMENT:BOOL=TRUE
             -DAKANTU_IMPLICIT:BOOL=TRUE
             -DAKANTU_PARALLEL:BOOL=TRUE
             -DAKANTU_STRUCTURAL_MECHANICS:BOOL=TRUE
             -DAKANTU_HEAT_TRANSFER:BOOL=TRUE
             -DAKANTU_DAMAGE_NON_LOCAL:BOOL=TRUE
             -DAKANTU_PHASE_FIELD:BOOL=TRUE
             -DAKANTU_PYTHON_INTERFACE:BOOL=TRUE
             -DAKANTU_CONTACT_MECHANICS:BOOL=TRUE
             -DAKANTU_EXAMPLES:BOOL=TRUE
             -DAKANTU_BUILD_ALL_EXAMPLES:BOOL=TRUE
             -DAKANTU_TESTS:BOOL=TRUE
             -DAKANTU_RUN_IN_DOCKER:BOOL=TRUE
             -DAKANTU_TEST_EXAMPLES:BOOL=${TEST_EXAMPLES}
             -DCMAKE_BUILD_TYPE:STRING=${BUILD_TYPE} ..
      - cp compile_commmands.json ..
   artifacts:
     when: on_success
     paths:
       - build
       - compile_commands.json
     expire_in: 10h
 
 .build:
   stage: build
   script:
     - cmake --build build/src > >(tee -a build-${output}-out.log) 2> >(tee -a build-${output}-err.log >&2)
     - cmake --build build/python > >(tee -a build-${output}-out.log) 2> >(tee -a build-${output}-err.log >&2)
     - cmake --build build/test/ > >(tee -a build-${output}-out.log) 2> >(tee -a build-${output}-err.log >&2)
     - cmake --build build/examples > >(tee -a build-${output}-out.log) 2> >(tee -a build-${output}-err.log >&2)
   artifacts:
     when: on_success
     paths:
       - build/
       - build-${output}-err.log
       - compile_commands.json
     exclude:
       - build/**/*.o
     expire_in: 10h
 
 .tests:
   stage: test
   script:
     - cd build
     - ctest -T test --output-on-failure --no-compress-output --timeout 1800
   after_script:
     - cd build
     - tag=$(head -n 1 < Testing/TAG)
     - if [ -e Testing/${tag}/Test.xml ]; then
     -   xsltproc -o ./juint.xml ${CI_PROJECT_DIR}/test/ci/ctest2junit.xsl Testing/${tag}/Test.xml;
     - fi
     - if [ "${BUILD_TYPE}" = "Coverage" ]; then
     -   gcovr --xml
               --gcov-executable "${GCOV_EXECUTABLE}"
               --output coverage.xml
               --object-directory ${CI_PROJECT_DIR}/build
               --root ${CI_PROJECT_DIR}  -s || true
     - fi
   artifacts:
     when: always
     paths:
       - build/juint.xml
       - build/coverage.xml
     reports:
       junit:
         - build/juint.xml
       cobertura:
         - build/coverage.xml
 
 # ------------------------------------------------------------------------------
 .cache_build:
   variables:
     CCACHE_BASEDIR: ${CI_PROJECT_DIR}/
     CCACHE_DIR: ${CI_PROJECT_DIR}/.ccache
     #CCACHE_NOHASHDIR: 1
     #CCACHE_COMPILERCHECK: content
   cache:
     key: ${output}_${BUILD_TYPE}
     policy: pull-push
     paths:
       - .ccache/
       - third-party/google-test
       - third-party/pybind11
   before_script:
     - ccache --zero-stats || true
   after_script:
     - ccache --show-stats || true
 
 # ------------------------------------------------------------------------------
 .image_debian_testing:
   image: registry.gitlab.com/akantu/akantu/debian:testing
 
 .image_ubuntu_lts:
   image: registry.gitlab.com/akantu/akantu/ubuntu:lts
 
 # ------------------------------------------------------------------------------
 .compiler_gcc:
   variables:
     CC: /usr/lib/ccache/gcc
     CXX: /usr/lib/ccache/g++
     FC: gfortran
     GCOV_EXECUTABLE: gcov
 
 .compiler_clang:
   variables:
     CC: /usr/lib/ccache/clang
     CXX: /usr/lib/ccache/clang++
     FC: gfortran
     GCOV_EXECUTABLE: llvm-cov gcov
 
 .build_coverage:
   variables:
     TEST_EXAMPLES: 'FALSE'
     BUILD_TYPE: 'Coverage'
 
 .build_release:
   variables:
     TEST_EXAMPLES: 'TRUE'
     BUILD_TYPE: 'Release'
 
 .build_valgrind:
   variables:
     TEST_EXAMPLES: 'FALSE'
     BUILD_TYPE: 'Valgrind'
 
 # ------------------------------------------------------------------------------
 .debian_testing_gcc:
   variables:
     output: debian_testing_gcc
   extends:
     - .compiler_gcc
     - .image_debian_testing
     - .cache_build
 
 .debian_testing_clang:
   variables:
     output: debian_testing_clang
   extends:
     - .compiler_clang
     - .image_debian_testing
     - .cache_build
 
 .ubuntu_lts_gcc:
   variables:
     output: ubuntu_lts_gcc
   extends:
     - .compiler_gcc
     - .image_ubuntu_lts
     - .cache_build
 
 # ------------------------------------------------------------------------------
 # ------------------------------------------------------------------------------
 configure:debian_testing_gcc:
   extends:
     - .debian_testing_gcc
     - .build_coverage
     - .configure
 
 build:debian_testing_gcc:
   extends:
     - .debian_testing_gcc
     - .build_coverage
     - .build
   needs:
     - job: configure:debian_testing_gcc
 
 test:debian_testing_gcc:
   extends:
     - .debian_testing_gcc
     - .build_coverage
     - .tests
-  coverage: /^lines: (\d+\.\d+\%)/
+  coverage: '/^lines: (\d+\.\d+\%)/'
   needs:
     - job: build:debian_testing_gcc
 
 # ------------------------------------------------------------------------------
 configure:debian_testing_gcc_valgrind:
   extends:
     - .debian_testing_gcc
     - .build_valgrind
     - .configure
 
 build:debian_testing_gcc_valgrind:
   extends:
     - .debian_testing_gcc
     - .build_valgrind
     - .build
   needs:
     - job: configure:debian_testing_gcc_valgrind
 
 test:debian_testing_gcc_valgrind:
   extends:
     - .debian_testing_gcc
     - .build_valgrind
     - .tests
   needs:
     - job: build:debian_testing_gcc_valgrind
 
 # ------------------------------------------------------------------------------
 configure:debian_testing_clang:
   extends:
     - .debian_testing_clang
     - .build_coverage
     - .configure
 
 build:debian_testing_clang:
   extends:
     - .debian_testing_clang
     - .build_coverage
     - .build
   needs:
     - job: configure:debian_testing_clang
 
 test:debian_testing_clang:
   extends:
     - .debian_testing_clang
     - .build_coverage
     - .tests
-  coverage: '^lines: (\d+\.\d+\%)'
+  coverage: '/^lines: (\d+\.\d+\%)/'
   needs:
     - job: build:debian_testing_clang
 
 # ------------------------------------------------------------------------------
 configure:ubuntu_lts_gcc:
   extends:
     - .ubuntu_lts_gcc
     - .build_release
     - .configure
 
 build:ubuntu_lts_gcc:
   extends:
     - .ubuntu_lts_gcc
     - .build_release
     - .build
   needs:
     - job: configure:ubuntu_lts_gcc
 
 test:ubuntu_lts_gcc:
   extends:
     - .ubuntu_lts_gcc
     - .build_release
     - .tests
   needs:
     - job: build:ubuntu_lts_gcc
 
 # ------------------------------------------------------------------------------
 cq:code_quality:
   stage: test
   image: docker:19.03.12
   allow_failure: true
   services:
     - docker:19.03.12-dind
   variables:
     DOCKER_DRIVER: overlay2
     DOCKER_TLS_CERTDIR: ""
     CODE_QUALITY_IMAGE: "registry.gitlab.com/gitlab-org/ci-cd/codequality:0.85.24"
   needs: []
   script:
     - export SOURCE_CODE=$PWD
     - |
       if ! docker info &>/dev/null; then
         if [ -z "$DOCKER_HOST" -a "$KUBERNETES_PORT" ]; then
           export DOCKER_HOST='tcp://localhost:2375'
         fi
       fi
     - | # this is required to avoid undesirable reset of Docker image ENV variables being set on build stage
       function propagate_env_vars() {
         CURRENT_ENV=$(printenv)
 
         for VAR_NAME; do
           echo $CURRENT_ENV | grep "${VAR_NAME}=" > /dev/null && echo "--env $VAR_NAME "
         done
       }
     - docker pull --quiet "$CODE_QUALITY_IMAGE"
     - |
       docker run --rm \
         $(propagate_env_vars \
           SOURCE_CODE \
           TIMEOUT_SECONDS \
           CODECLIMATE_DEBUG \
           CODECLIMATE_DEV \
           REPORT_STDOUT \
           REPORT_FORMAT \
           ENGINE_MEMORY_LIMIT_BYTES \
           CODECLIMATE_PREFIX \
         ) \
         --volume "$PWD":/code \
         --volume /var/run/docker.sock:/var/run/docker.sock \
         "$CODE_QUALITY_IMAGE" /code
   artifacts:
     paths:
       - gl-code-quality-report.json
     expire_in: 1 week
   needs:
     - job: build:debian_testing_clang
   rules:
     - if: '$CODE_QUALITY_DISABLED'
       when: never
     - if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH'
 
 .clang_tools:
   stage: test
   extends:
     - .debian_testing_clang
   before_script:
     - if [ 'x${CI_MERGE_REQUEST_ID}' != 'x' ]; then
     -   git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
     -   git diff --name-only $CI_COMMIT_SHA $CI_MERGE_REQUEST_TARGET_BRANCH_NAME > file_list
     -   FILE_LIST_ARG='-f file_list'
     - fi
   needs:
     - job: build:debian_testing_clang
   allow_failure: true
   rules:
     - if: '$CODE_QUALITY_DISABLED'
       when: never
     - if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH'
 
 cq:clang_tidy:
   extends:
     - .clang_tools
   script:
     - test/ci/scripts/cq
             -x third-party
             -x extra-packages
             -x pybind11
             -x test
             ${FILE_LIST_ARG}
             clang-tidy
             -p ${CI_PROJECT_DIR}/build > gl-clang-tidy-report.json
   artifacts:
     paths:
       - gl-clang-tidy-report.json
 
 cq:clang_format:
   extends:
     - .clang_tools
   script:
     - test/ci/scripts/cq
             -x third-party
             -x extra-packages
             clang-format
             -p ${CI_PROJECT_DIR}/build > gl-clang-format-report.json
   artifacts:
     paths:
       - gl-clang-format-report.json
 
 cq:compilation_warnings:
   stage: test
   image: python:latest
   script:
     - pip install warning-parser termcolor Click
     - ls build-*-err.log
     - test/ci/scripts/cq
             -x third-party
             -x extra-packages
             warnings
             build-*-err.log > gl-warnings-report.json
   needs:
     - job: build:debian_testing_clang
     - job: build:debian_testing_gcc
     - job: build:ubuntu_lts_gcc
   artifacts:
     paths:
       - gl-warnings-report.json
 
 cq:merge_code_quality:
   stage: deploy
   extends:
     - .debian_testing_clang
   script:
     - jq -Ms '[.[][]]' gl-*-report.json | tee gl-codequality.json | jq -C
   needs:
     - job: cq:code_quality
     - job: cq:clang_tidy
     - job: cq:clang_format
     - job: cq:compilation_warnings
   artifacts:
     paths:
       - gl-codequality.json
   artifacts:
     reports:
       codequality: [gl-codequality.json]
 # ------------------------------------------------------------------------------
 pages:
   stage: deploy
   extends:
     - .debian_testing_gcc
   script:
     - cd build
     - cmake -DAKANTU_DOCUMENTATION=ON ..
     - cmake --build . -t sphinx-doc
     - mv doc/dev-doc/html ../public
   needs:
     - job: build:debian_testing_gcc
   artifacts:
     paths:
       - public
   only:
     - master