From 2ae72305882e11e175c26aa23e1154718996bbcc Mon Sep 17 00:00:00 2001
From: EXT GRIMA Nicolas <nicolas.grima@univ-pau.fr>
Date: Thu, 18 Jul 2024 10:53:56 +0200
Subject: [PATCH] Rename docker images (during this work a bug in sympy 1.13.0
 and hysop was solved by download sympy version to 1.12.1 and adding
 sm.Rational(f2q()) to coef.)

---
 .gitlab-ci.yml                                | 176 +++++--------
 ci/ci-templates.yml                           |   4 -
 .../Dockerfile                                |   3 +-
 .../Dockerfile                                |   0
 .../Dockerfile                                |   3 +-
 .../Dockerfile                                |   4 +-
 .../Dockerfile                                |   4 +-
 .../Dockerfile                                |   4 +-
 .../Dockerfile                                |   2 +-
 .../Dockerfile                                |   2 +-
 .../Dockerfile                                |   2 +-
 .../ubuntu_jammy_cmake/Dockerfile             | 248 ------------------
 ci/docker_images/ubuntu_jammy_lite/Dockerfile |  79 ------
 ci/utils/build_docker_image.bat               |   2 +-
 ci/utils/build_docker_image.sh                |   2 +-
 ci/utils/pull_docker_image.bat                |   2 +-
 ci/utils/pull_docker_image.sh                 |   2 +-
 ci/utils/push_docker_image.bat                |   2 +-
 ci/utils/push_docker_image.sh                 |   2 +-
 ci/utils/run_ci.bat                           |   2 +-
 ci/utils/run_ci.sh                            |   2 +-
 ci/utils/run_debug.bat                        |   2 +-
 ci/utils/run_debug.sh                         |   2 +-
 ci/utils/run_docker_image.bat                 |   2 +-
 ci/utils/run_docker_image.sh                  |   2 +-
 ci/utils/run_user_docker_image.sh             |   2 +-
 hysop/numerics/remesh/kernel_generator.py     |  21 +-
 27 files changed, 108 insertions(+), 470 deletions(-)
 rename ci/docker_images/{ubuntu_jammy_meson => ci_cpu_intel}/Dockerfile (99%)
 rename ci/docker_images/{mamba => ci_cpu_intel_mamba_dev}/Dockerfile (100%)
 rename ci/docker_images/{ubuntu_jammy_nvidia => ci_gpu_nvidia}/Dockerfile (98%)
 rename ci/docker_images/{hysop_jammy => hysop_cpu_intel}/Dockerfile (77%)
 rename ci/docker_images/{hysop_mamba => hysop_cpu_intel_mamba_dev}/Dockerfile (77%)
 rename ci/docker_images/{hysop_nvidia => hysop_gpu_nvidia}/Dockerfile (76%)
 rename ci/docker_images/{hysop_user_mamba => hysop_user_cpu_intel}/Dockerfile (94%)
 rename ci/docker_images/{hysop_user_jammy => hysop_user_cpu_intel_mamba_dev}/Dockerfile (93%)
 rename ci/docker_images/{hysop_user_nvidia => hysop_user_gpu_nvidia}/Dockerfile (94%)
 delete mode 100644 ci/docker_images/ubuntu_jammy_cmake/Dockerfile
 delete mode 100644 ci/docker_images/ubuntu_jammy_lite/Dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e58374980..2de61e39a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -33,230 +33,196 @@ include:
 #     - if: $CI_COMMIT_MESSAGE =~ /\[docker-build-jammy-lite\]/
 #       when: always
 
-ubuntu:jammy-meson:docker-build:
+ubuntu:cpu-intel:docker-build:
   variables:
-    DOCKERFILE_PATH: ubuntu_jammy_meson
-    IMAGE_NAME: ubuntu_jammy_meson
+    DOCKERFILE_PATH: ci_cpu_intel
+    IMAGE_NAME: ci_cpu_intel
   extends: .docker-build
   tags:
     - lmap
     - cpu
   rules:
-    - if: $CI_COMMIT_MESSAGE =~ /\[docker-build-jammy-meson\]/ || $CI_COMMIT_MESSAGE =~ /\[docker-build-all\]/
+    - if: $CI_COMMIT_MESSAGE =~ /\[docker-build-cpu-intel\]/ || $CI_COMMIT_MESSAGE =~ /\[docker-build-all\]/
       when: always
 
-ubuntu:nvidia-meson:docker-build:
+ubuntu:gpu-nvidia:docker-build:
   variables:
-    DOCKERFILE_PATH: ubuntu_jammy_nvidia
-    IMAGE_NAME: ubuntu_jammy_nvidia
+    DOCKERFILE_PATH: ci_gpu_nvidia
+    IMAGE_NAME: ci_gpu_nvidia
   extends: .docker-build
   tags:
     - lmap
     - cpu
   rules:
-    - if: $CI_COMMIT_MESSAGE =~ /\[docker-build-nvidia\]/ || $CI_COMMIT_MESSAGE =~ /\[docker-build-all\]/
+    - if: $CI_COMMIT_MESSAGE =~ /\[docker-build-gpu-nvidia\]/ || $CI_COMMIT_MESSAGE =~ /\[docker-build-all\]/
       when: always
 
-mamba-meson:docker-build:
+cpu-mamba:docker-build:
    variables:
-     DOCKERFILE_PATH: mamba
-     IMAGE_NAME: mamba
+     DOCKERFILE_PATH: ci_cpu_intel_mamba_dev
+     IMAGE_NAME: ci_cpu_intel_mamba_dev
    extends: .docker-build
    tags:
      - lmap
      - cpu
    rules:
-     - if: $CI_COMMIT_MESSAGE =~ /\[docker-build-mamba\]/ || $CI_COMMIT_MESSAGE =~ /\[docker-build-all\]/
+     - if: $CI_COMMIT_MESSAGE =~ /\[docker-build-cpu-mamba\]/ || $CI_COMMIT_MESSAGE =~ /\[docker-build-all\]/
        when: always
 
 ## -- hysop jobs --
 
-### Lite env (minimal setup: no opencl, no fortran ...)
+### Standard, CPU Intel
 
-# config:jammy_lite:
-#   variables:
-#       IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_lite:latest
-#       CONF_FILE: $HYSOP_CONFIG_PATH/minimal.cmake
-#   extends: .hysop-configure
-#
-# build:jammy_lite:
-#   variables:
-#       IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_lite:latest
-#   needs: ["config:jammy_lite"]
-#   extends: .hysop-build
-#
-# install:jammy_lite:
-#   variables:
-#     IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_lite:latest
-#   needs: ["build:jammy_lite"]
-#   extends: .hysop-install
-#
-# test:jammy_lite:
-#   variables:
-#       IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_lite:latest
-#   needs: ["install:jammy_lite"]
-#   extends: .hysop-test
-
-
-# NG: nov and dec 2023, some examples are based on OpenCL!
-# examples:jammy_lite:
-#   variables:
-#       IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_lite:latest
-#   needs: ["install:jammy_lite"]
-#   extends: .hysop-examples
-
-### Standard, ubuntu
-
-config:jammy-meson:
+config:ci-cpu-intel:
   variables:
-    IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_meson:latest
+    IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel:latest
   extends:
     - .hysop-configure
     - .lmap-cpu
 
-build:jammy-meson:
+build:ci-cpu-intel:
   variables:
-      IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_meson:latest
-  needs: ["config:jammy-meson"]
+      IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel:latest
+  needs: ["config:ci-cpu-intel"]
   extends:
     - .hysop-build
     - .lmap-cpu
 
-install:jammy-meson:
+install:ci-cpu-intel:
   variables:
-      IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_meson:latest
-  needs: ["build:jammy-meson"]
+      IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel:latest
+  needs: ["build:ci-cpu-intel"]
   extends:
     - .hysop-install
     - .lmap-cpu
 
-test:jammy-meson:
+test:ci-cpu-intel:
   variables:
-      IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_meson:latest
-  needs: ["install:jammy-meson"]
+      IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel:latest
+  needs: ["install:ci-cpu-intel"]
   extends:
     - .hysop-test
     - .lmap-cpu
 
-examples:jammy_meson:
+examples:ci-cpu-intel:
   variables:
-    IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_meson:latest
-  needs: ["install:jammy-meson"]
+    IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel:latest
+  needs: ["install:ci-cpu-intel"]
   extends:
     - .hysop-examples
     - .lmap-cpu
 
-docker:hysop:jammy:
+docker:hysop:cpu-intel:
   variables:
-    DOCKERFILE_PATH: hysop_jammy
-    HYSOP_DOCKER_TARGET: hysop_jammy
-    IMAGE_NAME: hysop_jammy
+    DOCKERFILE_PATH: hysop_cpu_intel
+    HYSOP_DOCKER_TARGET: hysop_cpu_intel
+    IMAGE_NAME: hysop_cpu_intel
   extends:
     - .hysop-docker-hysop
     - .lmap-cpu
-  needs: ["build:jammy-meson", "test:jammy-meson"]
+  needs: ["build:ci-cpu-intel", "test:ci-cpu-intel"]
 
-### Mamba - standard setup without gpus
+### Mamba - DEV - CPU Intel
 
-config:mamba-meson:
+config:ci-cpu-mamba:
   variables:
-    IMAGE_NAME: $HYSOP_REGISTRY/mamba:latest
+    IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_mamba_dev:latest
   extends:
     - .hysop-configure
     - .lmap-cpu
 
-build:mamba-meson:
+build:ci-cpu-mamba:
   variables:
-    IMAGE_NAME: $HYSOP_REGISTRY/mamba:latest
-  needs: ["config:mamba-meson"]
+    IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_mamba_dev:latest
+  needs: ["config:ci-cpu-mamba"]
   extends:
     - .hysop-build
     - .lmap-cpu
 
-install:mamba-meson:
+install:ci-cpu-mamba:
   variables:
-    IMAGE_NAME: $HYSOP_REGISTRY/mamba:latest
-  needs: ["build:mamba-meson"]
+    IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_mamba_dev:latest
+  needs: ["build:ci-cpu-mamba"]
   extends:
     - .hysop-install
     - .lmap-cpu
 
-test:mamba-meson:
+test:ci-cpu-mamba:
   variables:
-    IMAGE_NAME: $HYSOP_REGISTRY/mamba:latest
-  needs: ["install:mamba-meson"]
+    IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_mamba_dev:latest
+  needs: ["install:ci-cpu-mamba"]
   extends:
     - .hysop-test
     - .lmap-cpu
 
-examples:mamba-meson:
+examples:ci-cpu-mamba:
   variables:
-    IMAGE_NAME: $HYSOP_REGISTRY/mamba:latest
-  needs: ["install:mamba-meson"]
+    IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_mamba_dev:latest
+  needs: ["install:ci-cpu-mamba"]
   extends:
     - .hysop-examples
     - .lmap-cpu
 
-docker:hysop:mamba:
+docker:hysop:cpu-mamba:
   variables:
-    DOCKERFILE_PATH: hysop_mamba
-    HYSOP_DOCKER_TARGET: hysop_mamba
-    IMAGE_NAME: hysop_mamba
+    DOCKERFILE_PATH: hysop_cpu_intel_mamba_dev
+    HYSOP_DOCKER_TARGET: hysop_cpu_intel_mamba_dev
+    IMAGE_NAME: hysop_cpu_intel_mamba_dev
   extends:
     - .hysop-docker-hysop
     - .lmap-cpu
-  needs: ["build:mamba-meson", "test:mamba-meson"]
+  needs: ["build:ci-cpu-mamba", "test:ci-cpu-mamba"]
 
 ### Ubuntu, with Nvidia GPUs
 
-config:nvidia-meson:
+config:ci-gpu-nvidia:
   variables:
-    IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_nvidia:latest
+    IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia:latest
   extends:
     - .hysop-configure
     - .hysop-gpu
 
-build:nvidia-meson:
+build:ci-gpu-nvidia:
   variables:
-      IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_nvidia:latest
-  needs: ["config:nvidia-meson"]
+      IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia:latest
+  needs: ["config:ci-gpu-nvidia"]
   extends:
     - .hysop-build
     - .hysop-gpu
 
-install:nvidia-meson:
+install:ci-gpu-nvidia:
   variables:
-      IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_nvidia:latest
-  needs: ["build:nvidia-meson"]
+      IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia:latest
+  needs: ["build:ci-gpu-nvidia"]
   extends:
     - .hysop-install
     - .hysop-gpu
 
-test:nvidia-meson:
+test:ci-gpu-nvidia:
   variables:
-      IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_nvidia:latest
-  needs: ["install:nvidia-meson"]
+      IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia:latest
+  needs: ["install:ci-gpu-nvidia"]
   extends:
     - .hysop-test
     - .hysop-gpu
 
-examples:nvidia-meson:
+examples:ci-gpu-nvidia:
   variables:
-    IMAGE_NAME: $HYSOP_REGISTRY/ubuntu_jammy_nvidia:latest
-  needs: ["install:nvidia-meson"]
+    IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia:latest
+  needs: ["install:ci-gpu-nvidia"]
   extends:
     - .hysop-examples
     - .hysop-gpu
 
-docker:hysop:nvidia:
+docker:hysop:gpu-nvidia:
   variables:
-    DOCKERFILE_PATH: hysop_nvidia
-    HYSOP_DOCKER_TARGET: hysop_nvidia
-    IMAGE_NAME: hysop_nvidia
+    DOCKERFILE_PATH: hysop_gpu_nvidia
+    HYSOP_DOCKER_TARGET: hysop_gpu_nvidia
+    IMAGE_NAME: hysop_gpu_nvidia
   extends:
     - .hysop-docker-hysop
     - .lmap-cpu
-  needs: ["build:nvidia-meson", "test:nvidia-meson"]
+  needs: ["build:ci-gpu-nvidia", "test:ci-gpu-nvidia"]
 
 # Trigger the CI of hysop-doc project to re-build online documentation (user+generated)
 onlinedocupdate:
diff --git a/ci/ci-templates.yml b/ci/ci-templates.yml
index e1fea5d6b..882f14022 100644
--- a/ci/ci-templates.yml
+++ b/ci/ci-templates.yml
@@ -70,11 +70,9 @@ stages:
   # https://gricad-gitlab.univ-grenoble-alpes.fr/particle_methods/hysop/container_registry
   - doc
 
-
 # --- Templates definitions ---
 # Each template can be used in CI jobs, with the keyword 'extends'.
 
-
 # ============ RULES ============
 
 .docker-rules:
@@ -105,7 +103,6 @@ stages:
       when: always
     - when: never
 
-
 # ============ Docker image builds ============
 
 # -- Template used to describe docker-build jobs --
@@ -153,7 +150,6 @@ workflow:
     - if: $CI_COMMIT_TAG
     - if: $CI_COMMIT_BRANCH       # If a branch is updated -> delegates specific behavior control to the jobs
 
-
 # ============ Hysop conf, build and tests ============
 
 .hysop-ctest:
diff --git a/ci/docker_images/ubuntu_jammy_meson/Dockerfile b/ci/docker_images/ci_cpu_intel/Dockerfile
similarity index 99%
rename from ci/docker_images/ubuntu_jammy_meson/Dockerfile
rename to ci/docker_images/ci_cpu_intel/Dockerfile
index 9c9729c6f..2ff6278ff 100644
--- a/ci/docker_images/ubuntu_jammy_meson/Dockerfile
+++ b/ci/docker_images/ci_cpu_intel/Dockerfile
@@ -112,7 +112,8 @@ RUN pip install --upgrade                               \
     cffi pytest                                         \
     pybind11 pkgconfig                                  \
     build                                               \
-    scipy sympy matplotlib==3.8.2 gmpy2 psutil py-cpuinfo \
+    scipy sympy==1.12.1 matplotlib==3.8.2               \
+    gmpy2 psutil py-cpuinfo                             \
     Mako editdistance portalocker colors.py tee         \
     pycairo argparse_color_formatter networkx pyvis     \
     zarr numcodecs jsonpickle memory-tempfile           \
diff --git a/ci/docker_images/mamba/Dockerfile b/ci/docker_images/ci_cpu_intel_mamba_dev/Dockerfile
similarity index 100%
rename from ci/docker_images/mamba/Dockerfile
rename to ci/docker_images/ci_cpu_intel_mamba_dev/Dockerfile
diff --git a/ci/docker_images/ubuntu_jammy_nvidia/Dockerfile b/ci/docker_images/ci_gpu_nvidia/Dockerfile
similarity index 98%
rename from ci/docker_images/ubuntu_jammy_nvidia/Dockerfile
rename to ci/docker_images/ci_gpu_nvidia/Dockerfile
index 275cc6f50..41166959b 100644
--- a/ci/docker_images/ubuntu_jammy_nvidia/Dockerfile
+++ b/ci/docker_images/ci_gpu_nvidia/Dockerfile
@@ -129,7 +129,8 @@ RUN ${PYTHON_EXECUTABLE} -m pip install --upgrade       \
     cffi pytest                                         \
     pybind11 pkgconfig                                  \
     build                                               \
-    scipy sympy matplotlib==3.8.2 gmpy2 psutil py-cpuinfo      \
+    scipy sympy==1.12.1 matplotlib==3.8.2               \
+    gmpy2 psutil py-cpuinfo                             \
     Mako editdistance portalocker colors.py tee         \
     pycairo argparse_color_formatter networkx pyvis     \
     zarr numcodecs jsonpickle memory-tempfile           \
diff --git a/ci/docker_images/hysop_jammy/Dockerfile b/ci/docker_images/hysop_cpu_intel/Dockerfile
similarity index 77%
rename from ci/docker_images/hysop_jammy/Dockerfile
rename to ci/docker_images/hysop_cpu_intel/Dockerfile
index 8ae9b7afb..086f94018 100644
--- a/ci/docker_images/hysop_jammy/Dockerfile
+++ b/ci/docker_images/hysop_cpu_intel/Dockerfile
@@ -1,9 +1,9 @@
 ARG REGISTRY=gricad-registry.univ-grenoble-alpes.fr
 ARG PROJECT=particle_methods/hysop
-ARG DEFAULT_IMAGE=ubuntu_jammy_meson
+ARG DEFAULT_IMAGE=ci_cpu_intel
 ARG IMAGENAME=$REGISTRY/$PROJECT/$DEFAULT_IMAGE
 
-FROM $IMAGENAME AS hysop_jammy
+FROM $IMAGENAME AS hysop_cpu_intel
 
 # TODO: generic path to hysop!
 RUN cd /builds/particle_methods/hysop && \
diff --git a/ci/docker_images/hysop_mamba/Dockerfile b/ci/docker_images/hysop_cpu_intel_mamba_dev/Dockerfile
similarity index 77%
rename from ci/docker_images/hysop_mamba/Dockerfile
rename to ci/docker_images/hysop_cpu_intel_mamba_dev/Dockerfile
index 6445413c0..d796f3a34 100644
--- a/ci/docker_images/hysop_mamba/Dockerfile
+++ b/ci/docker_images/hysop_cpu_intel_mamba_dev/Dockerfile
@@ -1,9 +1,9 @@
 ARG REGISTRY=gricad-registry.univ-grenoble-alpes.fr
 ARG PROJECT=particle_methods/hysop
-ARG DEFAULT_IMAGE=mamba
+ARG DEFAULT_IMAGE=ci_cpu_intel_mamba_dev
 ARG IMAGENAME=$REGISTRY/$PROJECT/$DEFAULT_IMAGE
 
-FROM $IMAGENAME AS hysop_mamba
+FROM $IMAGENAME AS hysop_cpu_intel_mamba_dev
 
 ARG MAMBA_DOCKERFILE_ACTIVATE=1  # (otherwise meson will not be found)
 
diff --git a/ci/docker_images/hysop_nvidia/Dockerfile b/ci/docker_images/hysop_gpu_nvidia/Dockerfile
similarity index 76%
rename from ci/docker_images/hysop_nvidia/Dockerfile
rename to ci/docker_images/hysop_gpu_nvidia/Dockerfile
index 3b2218602..ed0ef43c9 100644
--- a/ci/docker_images/hysop_nvidia/Dockerfile
+++ b/ci/docker_images/hysop_gpu_nvidia/Dockerfile
@@ -1,9 +1,9 @@
 ARG REGISTRY=gricad-registry.univ-grenoble-alpes.fr
 ARG PROJECT=particle_methods/hysop
-ARG DEFAULT_IMAGE=ubuntu_jammy_nvidia
+ARG DEFAULT_IMAGE=ci_gpu_nvidia
 ARG IMAGENAME=$REGISTRY/$PROJECT/$DEFAULT_IMAGE
 
-FROM $IMAGENAME AS hysop_nvidia
+FROM $IMAGENAME AS hysop_gpu_nvidia
 
 # TODO: generic path to hysop!
 RUN cd /builds/particle_methods/hysop && \
diff --git a/ci/docker_images/hysop_user_mamba/Dockerfile b/ci/docker_images/hysop_user_cpu_intel/Dockerfile
similarity index 94%
rename from ci/docker_images/hysop_user_mamba/Dockerfile
rename to ci/docker_images/hysop_user_cpu_intel/Dockerfile
index a817dafa8..d15777c80 100644
--- a/ci/docker_images/hysop_user_mamba/Dockerfile
+++ b/ci/docker_images/hysop_user_cpu_intel/Dockerfile
@@ -1,6 +1,6 @@
 ARG REGISTRY=gricad-registry.univ-grenoble-alpes.fr
 ARG PROJECT=particle_methods/hysop
-ARG DEFAULT_IMAGE=hysop_mamba
+ARG DEFAULT_IMAGE=hysop_cpu_intel
 ARG IMAGENAME=$REGISTRY/$PROJECT/$DEFAULT_IMAGE
 
 FROM $IMAGENAME
diff --git a/ci/docker_images/hysop_user_jammy/Dockerfile b/ci/docker_images/hysop_user_cpu_intel_mamba_dev/Dockerfile
similarity index 93%
rename from ci/docker_images/hysop_user_jammy/Dockerfile
rename to ci/docker_images/hysop_user_cpu_intel_mamba_dev/Dockerfile
index f0d10596b..7a84c91b9 100644
--- a/ci/docker_images/hysop_user_jammy/Dockerfile
+++ b/ci/docker_images/hysop_user_cpu_intel_mamba_dev/Dockerfile
@@ -1,6 +1,6 @@
 ARG REGISTRY=gricad-registry.univ-grenoble-alpes.fr
 ARG PROJECT=particle_methods/hysop
-ARG DEFAULT_IMAGE=hysop_jammy
+ARG DEFAULT_IMAGE=hysop_cpu_intel_mamba_dev
 ARG IMAGENAME=$REGISTRY/$PROJECT/$DEFAULT_IMAGE
 
 FROM $IMAGENAME
diff --git a/ci/docker_images/hysop_user_nvidia/Dockerfile b/ci/docker_images/hysop_user_gpu_nvidia/Dockerfile
similarity index 94%
rename from ci/docker_images/hysop_user_nvidia/Dockerfile
rename to ci/docker_images/hysop_user_gpu_nvidia/Dockerfile
index bc82ddda7..0620dc8de 100644
--- a/ci/docker_images/hysop_user_nvidia/Dockerfile
+++ b/ci/docker_images/hysop_user_gpu_nvidia/Dockerfile
@@ -1,6 +1,6 @@
 ARG REGISTRY=gricad-registry.univ-grenoble-alpes.fr
 ARG PROJECT=particle_methods/hysop
-ARG DEFAULT_IMAGE=hysop_nvidia
+ARG DEFAULT_IMAGE=hysop_gpu_nvidia
 ARG IMAGENAME=$REGISTRY/$PROJECT/$DEFAULT_IMAGE
 
 FROM $IMAGENAME
diff --git a/ci/docker_images/ubuntu_jammy_cmake/Dockerfile b/ci/docker_images/ubuntu_jammy_cmake/Dockerfile
deleted file mode 100644
index 3bb5806de..000000000
--- a/ci/docker_images/ubuntu_jammy_cmake/Dockerfile
+++ /dev/null
@@ -1,248 +0,0 @@
-/##
-## Copyright (c) HySoP 2011-2024
-##
-## This file is part of HySoP software.
-## See "https://particle_methods.gricad-pages.univ-grenoble-alpes.fr/hysop-doc/"
-## for further info.
-##
-## Licensed under the Apache License, Version 2.0 (the "License");
-## you may not use this file except in compliance with the License.
-## You may obtain a copy of the License at
-##
-##     http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-##
-
-# Docker muti-stage builds or buildkit (parallel stages)
-# https://docs.docker.com/build/building/multi-stage/
-#
-FROM ubuntu:jammy AS ubuntu_jammy
-LABEL authors="Jean-Baptiste.Keck@imag.fr, Nicolas.Grima@univ-pau.fr"
-
-# parallel builds
-ARG NTHREADS
-ENV MAKEFLAGS "-j${NTHREADS}"
-ENV PYTHON_EXECUTABLE=python3.10
-
-#
-ENV DEBIAN_FRONTEND noninteractive
-
-RUN apt-get update && apt-get full-upgrade -y                     && \
-    apt-get install -y --no-install-recommends                       \
-    expat unzip xz-utils pkg-config cmake rsync git ssh curl wget    \
-    ca-certificates gcc g++ lsb-core cpio libnuma1 libpciaccess0     \
-    libreadline-dev libgcc-11-dev libcairo-dev libcairomm-1.0-dev    \
-    ${PYTHON_EXECUTABLE}-dev openmpi-bin libopenmpi-dev python3-pip  \
-    automake libtool gfortran libblas-dev liblapack-dev              \
-    libgfortran-11-dev libgmp-dev libmpfr-dev libmpc-dev             \
-    libclfft-dev clpeak clinfo graphviz doxygen                   && \
-    apt autoclean  -y                                             && \
-    apt autoremove -y
-
-RUN pip install --upgrade setuptools==68.2.2
-
-########
-# HPTT #
-########
-FROM ubuntu_jammy AS hptt
-
-RUN cd /tmp                                         && \
-    git clone https://gitlab.com/keckj/hptt.git     && \
-    cd hptt                                         && \
-    sed -i "s#-mavx##g" CMakeLists.txt              && \
-    sed -i "s#-march=native##g" CMakeLists.txt      && \
-    sed -i "s#-mtune=native##g" CMakeLists.txt      && \
-    mkdir build                                     && \
-    cd build                                        && \
-    cmake -DCMAKE_BUILD_TYPE=Release ..             && \
-    make                                            && \
-    make install                                    && \
-    cd ../pythonAPI                                 && \
-    ${PYTHON_EXECUTABLE} -m pip install --upgrade . && \
-    cd /tmp && \
-    rm -rf /tmp/hptt
-
-#########
-# FLINT #
-#########
-FROM ubuntu_jammy AS flint
-
-#
-# python flint (FLINT2 + ARB + python-flint)
-#
-# flint 3.0.1 version is the last version (16 nov 2023)
-# (now ARB has been merged into flint 3)
-#
-RUN cd /tmp                                                                    && \
-    wget -q https://github.com/flintlib/flint/archive/refs/tags/v3.0.1.tar.gz  && \
-    tar -xzf v*.tar.gz                                                         && \
-    rm -f v*.tar.gz                                                            && \
-    cd flint*                                                                  && \
-    mkdir build                                                                && \
-    cd build/                                                                  && \
-    cmake .. -DBUILD_SHARED_LIBS=ON                                            && \
-    make                                                                       && \
-    make install                                                               && \
-    cd /tmp                                                                    && \
-    rm -rf /tmp/flint*
-
-##############
-# MAIN STAGE #
-##############
-FROM ubuntu_jammy AS main_stage
-
-# NG setuptools upgrade 69 20 nov 2023 = deprecations and removals
-# NG https://stackoverflow.com/questions/77523055/missingdynamic-license-defined-outside-of-pyproject-toml-is-ignored
-RUN ${PYTHON_EXECUTABLE} -m pip install --upgrade            \
-    numpy==1.26.3  cffi wheel pytest                         \
-    pybind11 cython==0.29.32 pkgconfig mpi4py build virtualenv \
-    scipy sympy matplotlib gmpy2 psutil py-cpuinfo           \
-    Mako editdistance portalocker colors.py tee              \
-    pycairo argparse_color_formatter networkx pyvis          \
-    zarr numcodecs jsonpickle memory-tempfile                \
-    primefac pyfftw numba llvmlite python-flint              \
-    sphinx sphinxcontrib-bibtex sphinxcontrib-doxylink       \
-    sphinx_bootstrap_theme sphinx-rtd-theme strip-hints      \
-    tox ansicolors pyopencl                                  \
-    meson meson-python ninja
-
-ENV MPICC "mpicc"
-ENV FC    "mpif90"
-RUN cd /tmp && \
-    wget -q https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-1.14.3/src/hdf5-1.14.3.tar.gz && \
-    tar -xzf hdf5-*.tar.gz  && \
-    rm -f hdf5-*.tar.gz     && \
-    cd hdf5-*               && \
-    CC="${MPICC}" ./configure --prefix=/usr/local --enable-parallel     \
-                              --enable-shared=yes --enable-static=no && \
-    make                    && \
-    make install            && \
-    cd /tmp                 && \
-    rm -rf /tmp/hdf5-*      && \
-    CC="${MPICC}" HDF5_MPI="ON" HDF5_VERSION="1.14.3"          \
-    HDF5_DIR=/usr/local H5PY_SETUP_REQUIRES=0                  \
-    ${PYTHON_EXECUTABLE} -m pip install                        \
-    --upgrade --no-binary=h5py  --no-deps --no-build-isolation \
-    h5py==3.10.0
-
-#
-# gpyFFT
-# https://github.com/geggo/gpyfft
-# latest release version 0.7.0 Feb 1 2017
-# using git clone -> version 0.7.3
-#
-# !!! test-fft failed !!!
-# $ sudo apt search gpyfft (ubuntu 22.04 LTS, jammy)
-# python3-gpyfft/focal 0.7.0-2build1 amd64
-#
-RUN cd /tmp                                                                 && \
- git clone https://github.com/geggo/gpyfft.git                              && \
- cd gpyfft                                                                  && \
- sed 's#finalize(self, _destroy_plan, self.plan)##' -i gpyfft/gpyfftlib.pyx && \
- ${PYTHON_EXECUTABLE} -m pip install .                                      && \
- cd -                                                                       && \
- rm -rf /tmp/gpyfft
-
-#
-# FFTW latest version nov 2023
-# Compilation is necessary because there is no mpi version
-# with the float precisions requested by hysop (single, double, long)
-#
-ENV FFTW_ROOT="/usr/local"
-RUN cd /tmp                                     && \
- wget -q http://www.fftw.org/fftw-3.3.10.tar.gz && \
- tar -xzf fftw-*.tar.gz                         && \
- rm -f fftw-*.tar.gz                            && \
- cd fftw-*                                      && \
- ./configure --enable-openmp --enable-threads --enable-mpi --enable-shared --with-pic --prefix="${FFTW_ROOT}" --enable-single && \
- make && make install && make clean && \
- ./configure --enable-openmp --enable-threads --enable-mpi --enable-shared --with-pic --prefix="${FFTW_ROOT}" && \
- make && make install && make clean && \
- ./configure --enable-openmp --enable-threads --enable-mpi --enable-shared --with-pic --prefix="${FFTW_ROOT}" --enable-long-double && \
- make && make install && make clean             && \
- cd /tmp                                        && \
- rm -rf /tmp/fftw-*
-
-#
-# PYFFTW latest version nov 2023
-# pyfftw is linked to fftw3 compiled above
-#
-ARG pyfftw_ver=v0.13.1.tar.gz
-ARG pip_install_opts='--no-binary=pyfftw --no-deps --no-build-isolation'
-RUN cd /tmp                                                                  && \
-    wget -q https://github.com/pyFFTW/pyFFTW/archive/refs/tags/${pyfftw_ver} && \
-    tar xzvf ${pyfftw_ver}                                                   && \
-    rm -f ${pyfftw_ver}                                                      && \
-    cd pyFFTW-*                                                              && \
-    PYFFTW_INCLUDE="/include"                                                   \
-    ${PYTHON_EXECUTABLE} -m pip install ${pip_install_opts} pyfftw           && \
-    cd /tmp                                                                  && \
-    rm -rf /tmp/pyFFTW-*
-
-#
-# Intel experimental OpenCL platform with SYCL support
-# OpenCL RT for Intel CPU
-#
-# nov 2023: update OclCpuExp 2023.16.10 and oneTBB 2021.11.0
-#           https://github.com/intel/llvm/releases/tag/
-# no x64!   2023-WW46/oclcpuexp-2023.16.10.0.17_rel.tar.gz -> Error test_poisson.py
-#           2023-WW27/oclcpuexp-2023.16.6.0.28_rel.tar.gz  -> Error test_array.py (nan_to_num)
-#           2023-WW13/oclcpuexp-2023.15.3.0.20_rel.tar.gz
-#             2022-12/oclcpuexp-2022.15.12.0.01_rel.tar.gz
-#
-ARG HTTPOCL='https://github.com/intel/llvm/releases/download'
-ARG HTTPTBB='https://github.com/oneapi-src/oneTBB/releases/download'
-ARG OCLCPUEXP='/opt/intel/oclcpuexp'
-RUN mkdir -p ${OCLCPUEXP}                                                &&\
-    cd       ${OCLCPUEXP}                                                &&\
-    wget -q ${HTTPOCL}/2023-WW27/oclcpuexp-2023.16.6.0.28_rel.tar.gz     &&\
-    tar -xzf oclcpuexp-*.tar.gz                                          &&\
-    rm  -rf  oclcpuexp-*.tar.gz                                          &&\
-    mv x64/* ./.                                                         &&\
-    rm -rf x64                                                           &&\
-    wget -q ${HTTPTBB}/v2021.11.0/oneapi-tbb-2021.11.0-lin.tgz           &&\
-    tar -xzf oneapi-tbb-*.tgz                                            &&\
-    mv oneapi-tbb-*/lib/intel64/gcc4.8/* ./.                             &&\
-    rm -rf oneapi-tbb-*                                                  &&\
-    rm -rf *debug*                                                       &&\
-    ln -fs ${OCLCPUEXP}/libOpenCL.so     /usr/local/lib/libOpenCL.so     &&\
-    ln -fs ${OCLCPUEXP}/libOpenCL.so.1   /usr/local/lib/libOpenCL.so.1   &&\
-    ln -fs ${OCLCPUEXP}/libOpenCL.so.1.2 /usr/local/lib/libOpenCL.so.1.2 &&\
-    echo "${OCLCPUEXP}" >> /etc/ld.so.conf.d/libintelopenclexp.conf      &&\
-    mkdir -p /etc/OpenCL/vendors                                         &&\
-    echo "${OCLCPUEXP}/libintelocl.so" > /etc/OpenCL/vendors/intel_expcpu.icd
-
-# To run MPI test as root on docker image
-ENV OMPI_ALLOW_RUN_AS_ROOT=1
-ENV OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
-
-# ensure all libraries are known by the runtime linker
-# clean cached packages
-RUN ldconfig                    && \
-    rm -rf /var/lib/apt/lists/* && \
-    rm -rf $HOME/.cache/pip/*   && \
-    rm -rf /tmp/*
-
-###############
-# Final-Stage #
-###############
-FROM main_stage AS final-stage
-
-COPY --from=hptt   /usr/local/include /usr/local/include
-COPY --from=hptt   /usr/local/lib /usr/local/lib
-COPY --from=flint  /usr/local/include /usr/local/include
-COPY --from=flint  /usr/local/lib /usr/local/lib
-
-# january 2024: h5py   doesn't compile with cython==3.x.x!
-# january 2024: pyfftw doesn't compile with cython==3.x.x!
-RUN pip   install --upgrade cython==3.0.8
-RUN pip uninstall -y setuptools
-
-ENV PYOPENCL_COMPILER_OUTPUT=1
-
-CMD ["/bin/bash"]
diff --git a/ci/docker_images/ubuntu_jammy_lite/Dockerfile b/ci/docker_images/ubuntu_jammy_lite/Dockerfile
deleted file mode 100644
index e30749bf7..000000000
--- a/ci/docker_images/ubuntu_jammy_lite/Dockerfile
+++ /dev/null
@@ -1,79 +0,0 @@
-##
-## Copyright (c) HySoP 2011-2024
-##
-## This file is part of HySoP software.
-## See "https://particle_methods.gricad-pages.univ-grenoble-alpes.fr/hysop-doc/"
-## for further info.
-##
-## Licensed under the Apache License, Version 2.0 (the "License");
-## you may not use this file except in compliance with the License.
-## You may obtain a copy of the License at
-##
-##     http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-##
-
-# 
-FROM ubuntu:jammy
-LABEL authors="Jean-Baptiste.Keck@imag.fr, Nicolas.Grima@univ-pau.fr"
-
-# parallel builds
-ARG NTHREADS
-ENV MAKEFLAGS "-j${NTHREADS}"
-ENV PYTHON_EXECUTABLE=python3.10
-
-# upgrade initial image
-ENV DEBIAN_FRONTEND noninteractive
-
-# get build tools and required libraries
-RUN apt-get update && apt-get install -y --no-install-recommends \
-    expat \
-    unzip \
-    xz-utils \
-    pkg-config \
-    cmake \
-    clinfo \
-    rsync \
-    git \
-    ssh \
-    curl \
-    wget \
-    ca-certificates \
-    gcc \
-    g++ \
-    lsb-core \
-    cpio \
-    libnuma1 \
-    libpciaccess0 \
-    libreadline-dev \
-    libgcc-11-dev \
-    libcairo-dev \
-    libcairomm-1.0-dev \
-    ${PYTHON_EXECUTABLE}-dev \
-    openmpi-bin \
-    libopenmpi-dev \
-    hdf5-tools \
-    python3-pip \
-    gfortran \
-    libfftw3-mpi-dev \
-    libfftw3-dev
-    
-RUN apt autoclean -y  && \
-    apt autoremove -y && \
-    rm -rf /var/lib/apt/lists/*
-
-ENV MPICC "mpicc"
-
-RUN ${PYTHON_EXECUTABLE} -m pip install --upgrade pip
-
-COPY ci/requirements_minimal.txt /home/requirements.txt
-RUN ${PYTHON_EXECUTABLE} -m pip install -r /home/requirements.txt
-
-RUN ${PYTHON_EXECUTABLE} -m pip install tox
-
-CMD ["/bin/bash"]
diff --git a/ci/utils/build_docker_image.bat b/ci/utils/build_docker_image.bat
index c334a274a..6121b4e6c 100755
--- a/ci/utils/build_docker_image.bat
+++ b/ci/utils/build_docker_image.bat
@@ -22,5 +22,5 @@ set "SCRIPT_DIR=%CD%"
 popd
 set "NTHREADS=%NUMBER_OF_PROCESSORS%"
 set "HYSOP_REGISTRY_URL=gricad-registry.univ-grenoble-alpes.fr"
-if "%~1" NEQ "" (set "DOCKER_IMAGE_TAG=%~1") else (set "DOCKER_IMAGE_TAG=ubuntu_jammy_meson")
+if "%~1" NEQ "" (set "DOCKER_IMAGE_TAG=%~1") else (set "DOCKER_IMAGE_TAG=ci_cpu_intel")
 docker build --rm=true --build-arg "NTHREADS=%NTHREADS%" -t "%HYSOP_REGISTRY_URL%/particle_methods/hysop/%DOCKER_IMAGE_TAG%:latest" -f "%SCRIPT_DIR%\..\docker_images\%DOCKER_IMAGE_TAG%\Dockerfile" "%SCRIPT_DIR%\..\.."
diff --git a/ci/utils/build_docker_image.sh b/ci/utils/build_docker_image.sh
index 0cfc231be..02c8a658c 100755
--- a/ci/utils/build_docker_image.sh
+++ b/ci/utils/build_docker_image.sh
@@ -21,7 +21,7 @@
 set -feu -o pipefail
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 NTHREADS="$(nproc)"
-DOCKER_IMAGE_TAG=${1:-ubuntu_jammy_meson}
+DOCKER_IMAGE_TAG=${1:-ci_cpu_intel}
 HYSOP_REGISTRY_URL='gricad-registry.univ-grenoble-alpes.fr'
 
 docker build --rm=true --build-arg "NTHREADS=$NTHREADS" -t "${HYSOP_REGISTRY_URL}/particle_methods/hysop/${DOCKER_IMAGE_TAG}:latest" -f "${SCRIPT_DIR}/../docker_images/${DOCKER_IMAGE_TAG}/Dockerfile" "${SCRIPT_DIR}/../.."
diff --git a/ci/utils/pull_docker_image.bat b/ci/utils/pull_docker_image.bat
index f73473ae1..c74669dab 100755
--- a/ci/utils/pull_docker_image.bat
+++ b/ci/utils/pull_docker_image.bat
@@ -23,7 +23,7 @@ popd
 
 set "HYSOP_REGISTRY_URL=gricad-registry.univ-grenoble-alpes.fr"
 
-if "%~1" NEQ "" (set "DOCKER_IMAGE_TAG=%~1") else (set "DOCKER_IMAGE_TAG=ubuntu_jammy_meson")
+if "%~1" NEQ "" (set "DOCKER_IMAGE_TAG=%~1") else (set "DOCKER_IMAGE_TAG=ci_cpu_intel")
 
 docker logout
 docker login "%HYSOP_REGISTRY_URL%"
diff --git a/ci/utils/pull_docker_image.sh b/ci/utils/pull_docker_image.sh
index 93d7be824..c3deaf176 100755
--- a/ci/utils/pull_docker_image.sh
+++ b/ci/utils/pull_docker_image.sh
@@ -19,7 +19,7 @@
 ## limitations under the License.
 ##
 set -ef -o pipefail
-DOCKER_IMAGE_TAG=${1:-ubuntu_jammy_meson}
+DOCKER_IMAGE_TAG=${1:-ci_cpu_intel}
 HYSOP_REGISTRY_URL='gricad-registry.univ-grenoble-alpes.fr'
 docker logout
 if [[ -z "${HYSOP_REGISTRY_USERNAME}" ]] || [[ -z "${HYSOP_REGISTRY_TOKEN}" ]]; then
diff --git a/ci/utils/push_docker_image.bat b/ci/utils/push_docker_image.bat
index ef4fa99f3..061eee381 100755
--- a/ci/utils/push_docker_image.bat
+++ b/ci/utils/push_docker_image.bat
@@ -19,7 +19,7 @@
 ::
 set HYSOP_REGISTRY_URL=gricad-registry.univ-grenoble-alpes.fr
 
-if "%~1" NEQ "" (set DOCKER_IMAGE_TAG=%~1) else (set DOCKER_IMAGE_TAG=ubuntu_jammy_meson)
+if "%~1" NEQ "" (set DOCKER_IMAGE_TAG=%~1) else (set DOCKER_IMAGE_TAG=ci_cpu_intel)
 
 docker push "%HYSOP_REGISTRY_URL%/particle_methods/hysop:%DOCKER_IMAGE_TAG%"
 docker logout
diff --git a/ci/utils/push_docker_image.sh b/ci/utils/push_docker_image.sh
index 5756692fa..a79e531c6 100755
--- a/ci/utils/push_docker_image.sh
+++ b/ci/utils/push_docker_image.sh
@@ -19,7 +19,7 @@
 ## limitations under the License.
 ##
 set -ef -o pipefail
-DOCKER_IMAGE_TAG=${1:-ubuntu_jammy_meson}
+DOCKER_IMAGE_TAG=${1:-ci_cpu_intel}
 HYSOP_REGISTRY_URL='gricad-registry.univ-grenoble-alpes.fr'
 docker logout
 if [[ -z "${HYSOP_REGISTRY_USERNAME}" ]] || [[ -z "${HYSOP_REGISTRY_TOKEN}" ]]; then
diff --git a/ci/utils/run_ci.bat b/ci/utils/run_ci.bat
index fb78d6fa0..51e3dae68 100644
--- a/ci/utils/run_ci.bat
+++ b/ci/utils/run_ci.bat
@@ -22,7 +22,7 @@ set SCRIPT_DIR=%CD%
 popd
 
 set "HYSOP_REGISTRY_URL=gricad-registry.univ-grenoble-alpes.fr"
-if "%~1" NEQ "" (set DOCKER_IMAGE_TAG=%~1) else (set DOCKER_IMAGE_TAG=ubuntu_jammy_meson)
+if "%~1" NEQ "" (set DOCKER_IMAGE_TAG=%~1) else (set DOCKER_IMAGE_TAG=ci_cpu_intel)
 set "DOCKER_IMAGE_TAG_POSTFIX=%DOCKER_IMAGE_TAG:~-4%"
 IF "%DOCKER_IMAGE_TAG_POSTFIX%" == "nvidia" (set "EXTRA_ARGS=--gpus all") else (set "EXTRA_ARGS=")
 set "DOCKER_IMG=%HYSOP_REGISTRY_URL%/particle_methods/hysop/%DOCKER_IMAGE_TAG%:latest"
diff --git a/ci/utils/run_ci.sh b/ci/utils/run_ci.sh
index 95764a377..816aa7d05 100755
--- a/ci/utils/run_ci.sh
+++ b/ci/utils/run_ci.sh
@@ -20,7 +20,7 @@
 ##
 set -feu -o pipefail
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-DOCKER_IMAGE_TAG=${1:-ubuntu_jammy_meson}
+DOCKER_IMAGE_TAG=${1:-ci_cpu_intel}
 HYSOP_REGISTRY_URL='gricad-registry.univ-grenoble-alpes.fr'
 DOCKER_IMG="${HYSOP_REGISTRY_URL}/particle_methods/hysop/${DOCKER_IMAGE_TAG}:latest"
 CONTAINER_ID='hysop_build_and_test'
diff --git a/ci/utils/run_debug.bat b/ci/utils/run_debug.bat
index ce2658370..04a2842dd 100644
--- a/ci/utils/run_debug.bat
+++ b/ci/utils/run_debug.bat
@@ -22,7 +22,7 @@ set SCRIPT_DIR=%CD%
 popd
 
 set "HYSOP_REGISTRY_URL=gricad-registry.univ-grenoble-alpes.fr"
-if "%~1" NEQ "" (set DOCKER_IMAGE_TAG=%~1) else (set DOCKER_IMAGE_TAG=ubuntu_jammy_meson)
+if "%~1" NEQ "" (set DOCKER_IMAGE_TAG=%~1) else (set DOCKER_IMAGE_TAG=ci_cpu_intel)
 set "DOCKER_IMAGE_TAG_POSTFIX=%DOCKER_IMAGE_TAG:~-4%"
 IF "%DOCKER_IMAGE_TAG_POSTFIX%" == "nvidia" (set "EXTRA_ARGS=--gpus all") else (set "EXTRA_ARGS=")
 set "DOCKER_IMG=%HYSOP_REGISTRY_URL%/particle_methods/hysop/%DOCKER_IMAGE_TAG%:latest"
diff --git a/ci/utils/run_debug.sh b/ci/utils/run_debug.sh
index 3de53580e..51a28a090 100755
--- a/ci/utils/run_debug.sh
+++ b/ci/utils/run_debug.sh
@@ -20,7 +20,7 @@
 ##
 set -feu -o pipefail
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-DOCKER_IMAGE_TAG=${1:-ubuntu_jammy_meson}
+DOCKER_IMAGE_TAG=${1:-ci_cpu_intel}
 HYSOP_REGISTRY_URL='gricad-registry.univ-grenoble-alpes.fr'
 DOCKER_IMG="${HYSOP_REGISTRY_URL}/particle_methods/hysop/${DOCKER_IMAGE_TAG}:latest"
 CONTAINER_ID='hysop_build_and_debug'
diff --git a/ci/utils/run_docker_image.bat b/ci/utils/run_docker_image.bat
index 007170563..e1240ea83 100755
--- a/ci/utils/run_docker_image.bat
+++ b/ci/utils/run_docker_image.bat
@@ -21,7 +21,7 @@ pushd %~dp0
 set "SCRIPT_DIR=%CD%"
 popd
 set "HYSOP_REGISTRY_URL=gricad-registry.univ-grenoble-alpes.fr"
-if "%~1" NEQ "" (set "DOCKER_IMAGE_TAG=%~1") else (set "DOCKER_IMAGE_TAG=ubuntu_jammy_meson")
+if "%~1" NEQ "" (set "DOCKER_IMAGE_TAG=%~1") else (set "DOCKER_IMAGE_TAG=ci_cpu_intel")
 set "DOCKER_IMAGE_TAG_POSTFIX=%DOCKER_IMAGE_TAG:~-4%"
 if "%DOCKER_IMAGE_TAG_POSTFIX%" == "nvidia" (set "EXTRA_ARGS=--gpus all") else (set "EXTRA_ARGS=")
 docker run --rm --cap-add=SYS_PTRACE %EXTRA_ARGS% -it -v "%SCRIPT_DIR%\..\..:/hysop:ro" "%HYSOP_REGISTRY_URL%/particle_methods/hysop/%DOCKER_IMAGE_TAG%:latest"
diff --git a/ci/utils/run_docker_image.sh b/ci/utils/run_docker_image.sh
index 548b6127c..f27c7b29e 100755
--- a/ci/utils/run_docker_image.sh
+++ b/ci/utils/run_docker_image.sh
@@ -20,7 +20,7 @@
 ##
 set -feu -o pipefail
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-DOCKER_IMAGE_TAG=${1:-ubuntu_jammy_meson}
+DOCKER_IMAGE_TAG=${1:-ci_cpu_intel}
 HYSOP_REGISTRY_URL='gricad-registry.univ-grenoble-alpes.fr'
 
 if [[ ${DOCKER_IMAGE_TAG} == *_nvidia ]]; then
diff --git a/ci/utils/run_user_docker_image.sh b/ci/utils/run_user_docker_image.sh
index b323dfddf..7dadb8779 100755
--- a/ci/utils/run_user_docker_image.sh
+++ b/ci/utils/run_user_docker_image.sh
@@ -20,7 +20,7 @@
 ##
 set -feu -o pipefail
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-DOCKER_IMAGE_TAG=${1:-hysop_user_jammy}
+DOCKER_IMAGE_TAG=${1:-hysop_user_cpu_intel}
 
 # Get your host's UID and GID
 export HOST_UID=$(id -u)
diff --git a/hysop/numerics/remesh/kernel_generator.py b/hysop/numerics/remesh/kernel_generator.py
index 31dcc1c0f..29248304e 100644
--- a/hysop/numerics/remesh/kernel_generator.py
+++ b/hysop/numerics/remesh/kernel_generator.py
@@ -407,16 +407,14 @@ class SymmetricKernelGenerator:
         # Cr-continuity on inner points      -> (Ms-1)*(r+1) eqs
         for d in range(r + 1):
             for i in range(Ms - 1):
-                eq = dPs[i][d].xreplace({x: sm.Integer(i + 1)}) - dPs[i + 1][
-                    d
-                ].xreplace(
-                    {x: sm.Integer(i + 1)}
-                )  # = 0
+                eq = dPs[i][d].xreplace({x: sm.Integer(i + 1)}) - \
+                    dPs[i + 1][d].xreplace({x: sm.Integer(i + 1)})  # = 0
                 eqs.append(eq.as_expr())
-
         # Interpolation condition on the left -> Ms equations
         for i in range(Ms):
-            eq = Pp[i].xreplace({x: sm.Integer(i)}) - H[Ms + i]  # = 0
+            # NG 17 july 2024 => q = Pp[i].xreplace({x: sm.Integer(i)}) - H[Ms + i]  # = 0
+            print(' NG DBG: f2q(H[Ms + i]) ', f2q(H[Ms + i]))
+            eq = Pp[i].xreplace({x: sm.Integer(i)}) - sm.Rational(f2q(H[Ms + i]))  # = 0
             eqs.append(eq.as_expr())
 
         # Discrete moments
@@ -427,13 +425,16 @@ class SymmetricKernelGenerator:
                 if m > 0 and l == 0:
                     continue
                 i = Ms - l
-                e = P[i].xreplace({x: s - f2q(l)}).as_expr()
+                # NG 17 july 2024 => e = P[i].xreplace({x: s - f2q(l)}).as_expr()
+                e = P[i].xreplace({x: s - sm.Rational(f2q(l))}).as_expr()
                 if m > 0:
-                    e *= f2q(l**m)
+                    # NG 17 july 2024 => e *= sm.Rational(f2q(l**m))
+                    e *= sm.Rational(f2q(l**m))
                 expr += e
             Pm = sm.polys.polytools.poly(expr, s)
             for i, Cmi in enumerate(Pm.all_coeffs()[::-1]):
-                eqs.append(Cmi - M[m][i])
+                # NG 17 july 2024 => qs.append( Cmi - M[m][i] )
+                eqs.append( Cmi - sm.Rational(f2q(M[m][i])) )
 
         if verbose:
             print("  => System built.")
-- 
GitLab