diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2dbbacf48871e644de50f35429056bb0355f5679..bbb0c2240d5f2db8ae37e57ac5fc652da76dad61 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -105,3 +105,86 @@ create_release:
       --ref "$CI_COMMIT_SHA" \
       --job-token "$CI_JOB_TOKEN" \
       --assets-link="{'name':'VirtualFluidsSingularityImage_OpenMPI','url':'','type':'other','filepath':'Containers/VirtualFluidsOpenMPI.sif'}"
+    - build/bin/basicsTests
+
+
+###############################################################################
+##                                                                           ##
+##    Deploy: Code analysis                                                  ##
+##                                                                           ##
+###############################################################################
+
+clangBuildAnalyzer:
+  stage: test
+
+  rules:
+    - when: manual
+
+  before_script:
+    - export DEBIAN_FRONTEND=noninteractive
+    - apt-get update
+    - cmake --version
+    - mpirun --version
+    - export CC=clang
+    - export CXX=clang++
+    - $CXX --version
+    - cd /tmp
+    - git clone https://github.com/aras-p/ClangBuildAnalyzer.git
+    - cd ClangBuildAnalyzer
+    - cmake .
+    - make
+    - export PATH+=:$(pwd)
+
+  script:
+    - mkdir $CI_PROJECT_DIR/build
+    - cd $CI_PROJECT_DIR/build
+    - cmake .. -DBUILD_VF_CPU=ON -DUSE_OPENMP=OFF -DCMAKE_CXX_FLAGS=-ftime-trace
+    - ClangBuildAnalyzer --start .
+    - make
+    - ClangBuildAnalyzer --stop . CBA
+    - ClangBuildAnalyzer --analyze CBA
+
+
+include_what_you_use:
+  stage: test
+
+  rules:
+    - when: manual
+
+  before_script:
+    - export DEBIAN_FRONTEND=noninteractive
+    - apt-get update
+    - cd /tmp
+    - git clone https://github.com/include-what-you-use/include-what-you-use.git
+    - cd include-what-you-use
+    - git checkout clang_10
+    - cmake . -DCMAKE_PREFIX_PATH=/usr/lib/llvm-10
+    - make
+    - export PATH+=:$(pwd)/bin
+
+  script:
+    - mkdir $CI_PROJECT_DIR/build
+    - cd $CI_PROJECT_DIR/build
+    - cmake .. -DBUILD_VF_CPU=ON -DUSE_OPENMP=OFF -DBUILD_VF_INCLUDE_WHAT_YOU_USE=ON
+    - make
+
+
+cppcheck:
+  stage: test
+
+  before_script:
+    - export DEBIAN_FRONTEND=noninteractive
+    - apt-get update
+    - apt-get install -y cppcheck
+
+  script:
+    - cd $CI_PROJECT_DIR
+    - cppcheck --version
+    - cppcheck src --enable=all --xml 2> report.xml
+    - cppcheck-htmlreport --file=report.xml --report-dir=html_report --source-dir=.
+
+  artifacts:
+    paths:
+      - html_report/
+
+
diff --git a/CMake/VirtualFluidsMacros.cmake b/CMake/VirtualFluidsMacros.cmake
index 14309caeb84668682f7ae013fead67b248f0e53c..6b7964dfda94853bbae5dad298895cfcbb58b50f 100644
--- a/CMake/VirtualFluidsMacros.cmake
+++ b/CMake/VirtualFluidsMacros.cmake
@@ -173,6 +173,21 @@ function(vf_add_library)
         status_lib("include-what-you-use enabled")
     endif()
 
+    # cppcheck
+    if(BUILD_VF_CPPCHECK)
+        find_program(CPPCHECK_PROGRAM NAMES cppcheck)
+
+        if(NOT CPPCHECK_PROGRAM)
+            message(FATAL_ERROR "Could not find the program cppcheck")
+        endif()
+
+        set_target_properties(${library_name}
+                PROPERTIES
+                CXX_CPPCHECK "${CPPCHECK_PROGRAM};--enable=all")
+
+        status_lib("cppcheck enabled")
+    endif()
+
     #################################################################
     ###   ADDITIONAL LINK LIBRARIES                               ###
     #################################################################
diff --git a/CMake/compilerflags/AppleClang.cmake b/CMake/compilerflags/AppleClang.cmake
index 1887de8bf98ac6793cf8f6e2181d38db152ebfb9..aecc48fa5398c6418c2d47f5af243659128050bc 100644
--- a/CMake/compilerflags/AppleClang.cmake
+++ b/CMake/compilerflags/AppleClang.cmake
@@ -19,4 +19,4 @@ list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wall")
 list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wunreachable-code")
 
 list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-unused-function")
-list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-reorder-ctor")
+list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-reorder")
diff --git a/CMake/compilerflags/GNU.cmake b/CMake/compilerflags/GNU.cmake
index 8f932429c9c8f43d25b9dcd238efcbc3ed7a5fe0..bd69600c60b89ddac120663de4716bf99528e87d 100644
--- a/CMake/compilerflags/GNU.cmake
+++ b/CMake/compilerflags/GNU.cmake
@@ -11,8 +11,10 @@ list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE "-O3") # optimizat
 
 # all
 list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-fPIC") # position independent code for shared libraries
-LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-funroll-all-loops")
 
+if(NOT BUILD_VF_INCLUDE_WHAT_YOU_USE) # optimization flag '-funroll-all-loops' is not supported for IWYU
+    LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-funroll-all-loops")
+endif()
 
 #############################################################################################################
 # warnings
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f6176bae09f384c35a01a025e3f0f5fc6ffc0858..e1540fd0a319739662cc2f50013da4f8975257c5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -40,6 +40,7 @@ option(BUILD_VF_GPU "Build VirtualFluids gpu variant" OFF)
 option(BUILD_VF_UNIT_TESTS "Build VirtualFluids unit tests" OFF)
 option(BUILD_VF_CLANG_TIDY "Add the clang tidy checks to the targets" OFF)
 option(BUILD_VF_INCLUDE_WHAT_YOU_USE "Add IWYU to the targets" OFF)
+option(BUILD_VF_CPPCHECK "Add cppcheck to the targets" OFF)
 
 option(BUILD_SHARED_LIBS "" ON)
 
diff --git a/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h b/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h
index b3de5c873ecb361049e25ec05e0660cf29d1dc30..627549dc991f31b543ca23e4c87e8520feb84af3 100644
--- a/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h
+++ b/src/cpu/VirtualFluidsCore/LBM/InterpolationProcessor.h
@@ -1,10 +1,9 @@
-#ifndef D3Q27INTRPOLATIOPROCESSOR_H_
-#define D3Q27INTRPOLATIOPROCESSOR_H_
+#ifndef INTERPOLATIONPROCESSOR_H
+#define INTERPOLATIONPROCESSOR_H
 
 #include "BCArray3D.h"
 #include "BoundaryConditions.h"
 #include "DistributionArray3D.h"
-#include "InterpolationProcessor.h"
 #include "LBMSystem.h"
 
 struct D3Q27ICell {