diff --git a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseNonReflectingOutflowBCStrategy.cpp b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseNonReflectingOutflowBCStrategy.cpp
index aae7dec82bde0bd3477558fd937f4058a26eddd0..34fae58a7cd19d0b19996903ccd713acfadbf03c 100644
--- a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseNonReflectingOutflowBCStrategy.cpp
+++ b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseNonReflectingOutflowBCStrategy.cpp
@@ -35,10 +35,11 @@
 #include "BoundaryConditions.h"
 #include "D3Q27System.h"
 #include "DistributionArray3D.h"
+#include "BCStrategyType.h"
 
 MultiphaseNonReflectingOutflowBCStrategy::MultiphaseNonReflectingOutflowBCStrategy()
 {
-    BCStrategy::type = BCStrategy::NonReflectingOutflowBCStrategy;
+    BCStrategy::type = BCStrategyType::NonReflectingOutflowBCStrategy;
     BCStrategy::preCollision = true;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphasePressureBCStrategy.cpp b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphasePressureBCStrategy.cpp
index 2c0344b232893664f56b6aa48168265c033de044..0ea532c2b766dbbb741267936599b23fabfaa61d 100644
--- a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphasePressureBCStrategy.cpp
+++ b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphasePressureBCStrategy.cpp
@@ -34,10 +34,12 @@
 #include "MultiphasePressureBCStrategy.h"
 #include "DistributionArray3D.h"
 #include "BoundaryConditions.h"
+#include "BCStrategyType.h"
+
 
 MultiphasePressureBCStrategy::MultiphasePressureBCStrategy()
 {
-   BCStrategy::type = BCStrategy::MultiphasePressureBCStrategy;
+   BCStrategy::type = BCStrategyType::MultiphasePressureBCStrategy;
    BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseSlipBCStrategy.cpp b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseSlipBCStrategy.cpp
index b394d2d5d249004225b533c63fdbd596224e4b33..92bc57c81b7bc5be3a4b5c95547b11f521bc820e 100644
--- a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseSlipBCStrategy.cpp
+++ b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseSlipBCStrategy.cpp
@@ -34,10 +34,11 @@
 #include "MultiphaseSlipBCStrategy.h"
 #include "DistributionArray3D.h"
 #include "BoundaryConditions.h"
+#include "BCStrategyType.h"
 
 MultiphaseSlipBCStrategy::MultiphaseSlipBCStrategy()
 {
-   BCStrategy::type = BCStrategy::SlipBCStrategy;
+   BCStrategy::type = BCStrategyType::SlipBCStrategy;
    BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseVelocityBCStrategy.cpp b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseVelocityBCStrategy.cpp
index a0b334d8ee7a88471ca3e5c640e04a914f4171bd..dd364e85ec62df4ac1296a21f4aafe8df1576f41 100644
--- a/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseVelocityBCStrategy.cpp
+++ b/src/cpu/MultiphaseFlow/BoundaryConditions/MultiphaseVelocityBCStrategy.cpp
@@ -34,10 +34,11 @@
 #include "MultiphaseVelocityBCStrategy.h"
 #include "DistributionArray3D.h"
 #include "BoundaryConditions.h"
+#include "BCStrategyType.h"
 
 MultiphaseVelocityBCStrategy::MultiphaseVelocityBCStrategy()
 {
-   BCStrategy::type = BCStrategy::MultiphaseVelocityBCStrategy;
+   BCStrategy::type = BCStrategyType::MultiphaseVelocityBCStrategy;
    BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/NonNewtonianFluids/BoundaryConditions/RheologyBinghamModelVelocityBCStrategy.h b/src/cpu/NonNewtonianFluids/BoundaryConditions/RheologyBinghamModelVelocityBCStrategy.h
index bbff469c0ebef26eaf57859d56e4bd27c39b358a..9039d00addb3c517265dbbcd185bf0e8ce570a9e 100644
--- a/src/cpu/NonNewtonianFluids/BoundaryConditions/RheologyBinghamModelVelocityBCStrategy.h
+++ b/src/cpu/NonNewtonianFluids/BoundaryConditions/RheologyBinghamModelVelocityBCStrategy.h
@@ -36,13 +36,14 @@
 
 #include "RheologyVelocityBCStrategy.h"
 #include "cpu/NonNewtonianFluids/LBM/Rheology.h"
+#include "BCStrategyType.h"
 
 class RheologyBinghamModelVelocityBCStrategy : public RheologyVelocityBCStrategy
 {
 public:
    RheologyBinghamModelVelocityBCStrategy()
    {
-      BCStrategy::type = BCStrategy::RheologyBinghamModelVelocityBCStrategy;
+      BCStrategy::type = BCStrategyType::RheologyBinghamModelVelocityBCStrategy;
       BCStrategy::preCollision = true;
    }
    ~RheologyBinghamModelVelocityBCStrategy() {}
diff --git a/src/cpu/NonNewtonianFluids/BoundaryConditions/RheologyHerschelBulkleyModelNoSlipBCStrategy.h b/src/cpu/NonNewtonianFluids/BoundaryConditions/RheologyHerschelBulkleyModelNoSlipBCStrategy.h
index c29c6e9cebc3092358369bc16c5bfe5b65215ea9..d5aa651d1d57863d4d54f1807e0fc886abe4c9ae 100644
--- a/src/cpu/NonNewtonianFluids/BoundaryConditions/RheologyHerschelBulkleyModelNoSlipBCStrategy.h
+++ b/src/cpu/NonNewtonianFluids/BoundaryConditions/RheologyHerschelBulkleyModelNoSlipBCStrategy.h
@@ -35,13 +35,14 @@
 
 #include "RheologyNoSlipBCStrategy.h"
 #include "cpu/NonNewtonianFluids/LBM/Rheology.h"
+#include "BCStrategyType.h"
 
 class RheologyHerschelBulkleyModelNoSlipBCStrategy : public RheologyNoSlipBCStrategy
 {
 public:
    RheologyHerschelBulkleyModelNoSlipBCStrategy() 
    {
-      BCStrategy::type = BCStrategy::RheologyHerschelBulkleyModelNoSlipBCStrategy;
+      BCStrategy::type = BCStrategyType::RheologyHerschelBulkleyModelNoSlipBCStrategy;
       BCStrategy::preCollision = true;
    }
    ~RheologyHerschelBulkleyModelNoSlipBCStrategy() {}
diff --git a/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyDensityBCStrategy.cpp b/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyDensityBCStrategy.cpp
index 70981c5d0e4178eb0b58ac807305635be5a7fdfd..f5db712e0347887805f7abb4ee508ffb047224f6 100644
--- a/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyDensityBCStrategy.cpp
+++ b/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyDensityBCStrategy.cpp
@@ -34,10 +34,11 @@
 #include "ThixotropyDensityBCStrategy.h"
 #include "DistributionArray3D.h"
 #include "BoundaryConditions.h"
+#include "BCStrategyType.h"
 
 ThixotropyDensityBCStrategy::ThixotropyDensityBCStrategy()
 {
-	BCStrategy::type = BCStrategy::ThixotropyDensityBCStrategy;
+	BCStrategy::type = BCStrategyType::ThixotropyDensityBCStrategy;
 	BCStrategy::preCollision = false;
 	BCStrategy::thixotropy = true;
 	lambdaBC = 0.0;
diff --git a/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyNoSlipBCStrategy.cpp b/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyNoSlipBCStrategy.cpp
index da1f2deaa8c18fb74f9d5b60212f05dbb94173fe..57797d8b8a4525456d586305acff2b7132c6ab44 100644
--- a/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyNoSlipBCStrategy.cpp
+++ b/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyNoSlipBCStrategy.cpp
@@ -33,10 +33,11 @@
 #include "ThixotropyNoSlipBCStrategy.h"
 #include "DistributionArray3D.h"
 #include "BoundaryConditions.h"
+#include "BCStrategyType.h"
 
 ThixotropyNoSlipBCStrategy::ThixotropyNoSlipBCStrategy()
 {
-	BCStrategy::type = BCStrategy::ThixotropyNoSlipBCStrategy;
+	BCStrategy::type = BCStrategyType::ThixotropyNoSlipBCStrategy;
 	BCStrategy::preCollision = false;
 	BCStrategy::thixotropy = true;
 	
diff --git a/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyNonReflectingOutflowBCStrategy.cpp b/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyNonReflectingOutflowBCStrategy.cpp
index 3ee059eec142c2c0ef14d36d52cdf097a68efa18..74f483b41843387ad06d27738e5e60874fc7a3e2 100644
--- a/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyNonReflectingOutflowBCStrategy.cpp
+++ b/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyNonReflectingOutflowBCStrategy.cpp
@@ -33,10 +33,11 @@
 #include "ThixotropyNonReflectingOutflowBCStrategy.h"
 #include "DistributionArray3D.h"
 #include "BoundaryConditions.h"
+#include "BCStrategyType.h"
 
 ThixotropyNonReflectingOutflowBCStrategy::ThixotropyNonReflectingOutflowBCStrategy()
 {
-	BCStrategy::type = BCStrategy::ThixotropyNonReflectingOutflowBCStrategy;
+	BCStrategy::type = BCStrategyType::ThixotropyNonReflectingOutflowBCStrategy;
 	BCStrategy::preCollision = true;
 	BCStrategy::thixotropy = true;
 }
diff --git a/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyVelocityBCStrategy.cpp b/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyVelocityBCStrategy.cpp
index 2b2dd1714eb7a9decceeb92a28a5dbfae6944e9c..ee1e75cb97fc32f5dfa5a8c6d79eb4a09f982462 100644
--- a/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyVelocityBCStrategy.cpp
+++ b/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyVelocityBCStrategy.cpp
@@ -33,10 +33,11 @@
 #include "ThixotropyVelocityBCStrategy.h"
 #include "DistributionArray3D.h"
 #include "BoundaryConditions.h"
+#include "BCStrategyType.h"
 
 ThixotropyVelocityBCStrategy::ThixotropyVelocityBCStrategy()
 {
-	BCStrategy::type = BCStrategy::ThixotropyVelocityBCStrategy;
+	BCStrategy::type = BCStrategyType::ThixotropyVelocityBCStrategy;
 	BCStrategy::preCollision = false;
 	BCStrategy::thixotropy = true;
 	lambdaBC = vf::basics::constant::c0o1;
diff --git a/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyVelocityWithDensityBCStrategy.cpp b/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyVelocityWithDensityBCStrategy.cpp
index 5d91a1e7a38ea5fc3d20e8aef5f78c9fad6a468d..604260918c7e50095dcab865fb197417847f2add 100644
--- a/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyVelocityWithDensityBCStrategy.cpp
+++ b/src/cpu/NonNewtonianFluids/BoundaryConditions/ThixotropyVelocityWithDensityBCStrategy.cpp
@@ -33,10 +33,11 @@
 #include "ThixotropyVelocityWithDensityBCStrategy.h"
 #include "DistributionArray3D.h"
 #include "BCArray3D.h"
+#include "BCStrategyType.h"
 
 ThixotropyVelocityWithDensityBCStrategy::ThixotropyVelocityWithDensityBCStrategy()
 {
-   BCStrategy::type = BCStrategy::ThixotropyVelocityWithDensityBCStrategy;
+   BCStrategy::type = BCStrategyType::ThixotropyVelocityWithDensityBCStrategy;
    BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/NonNewtonianFluids/Visitors/RheologyBoundaryConditionsBlockVisitor.cpp b/src/cpu/NonNewtonianFluids/Visitors/RheologyBoundaryConditionsBlockVisitor.cpp
index 3bcd257e272d3ef05ad2a6e3cc5ca32d5d798633..2bb8da69a578067d17d2590ebe18e4b2775718aa 100644
--- a/src/cpu/NonNewtonianFluids/Visitors/RheologyBoundaryConditionsBlockVisitor.cpp
+++ b/src/cpu/NonNewtonianFluids/Visitors/RheologyBoundaryConditionsBlockVisitor.cpp
@@ -44,6 +44,7 @@
 #include "Block3D.h"
 #include "BCArray3D.h"
 #include "ILBMKernel.h"
+#include "BCStrategyType.h"
 
 #include "NonNewtonianFluids/BoundaryConditions/ThixotropyDensityBCStrategy.h"
 #include "NonNewtonianFluids/BoundaryConditions/ThixotropyVelocityBCStrategy.h"
@@ -105,19 +106,19 @@ void BoundaryConditionsBlockVisitor::visit(SPtr<Grid3D> grid, SPtr<Block3D> bloc
                                 bca->setBcPointer(bcPtr);
                                 bca->addDistributions(distributions);
 
-                                if (alg == BCStrategy::ThixotropyVelocityBCStrategy)
+                                if (alg == BCStrategyType::ThixotropyVelocityBCStrategy)
                                     std::static_pointer_cast<ThixotropyVelocityBCStrategy>(bca)->addDistributionsH(
                                         kernel->getDataSet()->getHdistributions());
-                                if (alg == BCStrategy::ThixotropyDensityBCStrategy)
+                                if (alg == BCStrategyType::ThixotropyDensityBCStrategy)
                                     std::static_pointer_cast<ThixotropyDensityBCStrategy>(bca)->addDistributionsH(
                                         kernel->getDataSet()->getHdistributions());
-                                if (alg == BCStrategy::ThixotropyNoSlipBCStrategy)
+                                if (alg == BCStrategyType::ThixotropyNoSlipBCStrategy)
                                     std::static_pointer_cast<ThixotropyNoSlipBCStrategy>(bca)->addDistributionsH(
                                         kernel->getDataSet()->getHdistributions());
-                                if (alg == BCStrategy::ThixotropyNonReflectingOutflowBCStrategy)
+                                if (alg == BCStrategyType::ThixotropyNonReflectingOutflowBCStrategy)
                                     std::static_pointer_cast<ThixotropyNonReflectingOutflowBCStrategy>(bca)
                                         ->addDistributionsH(kernel->getDataSet()->getHdistributions());
-                                if (alg == BCStrategy::ThixotropyVelocityWithDensityBCStrategy)
+                                if (alg == BCStrategyType::ThixotropyVelocityWithDensityBCStrategy)
                                     std::static_pointer_cast<ThixotropyVelocityWithDensityBCStrategy>(bca)
                                         ->addDistributionsH(kernel->getDataSet()->getHdistributions());
 
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCStrategy.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCStrategy.h
index fafbf90467cf82dd13d5ce220671365d56007cca..348b3b3d315d1707096dedb230cc092e4384d6f7 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCStrategy.h
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCStrategy.h
@@ -31,8 +31,8 @@
 //! \author Konstantin Kutscher
 //=======================================================================================
 
-#ifndef BOUNDARYCONDITIONS_H
-#define BOUNDARYCONDITIONS_H
+#ifndef BCStrategy_H
+#define BCStrategy_H
 
 #include <PointerDefinitions.h>
 
@@ -47,32 +47,32 @@ class Block3D;
 //! \details  BCStrategy provides interface for implementation of diferent boundary conditions
 class BCStrategy
 {
-public:
-    static const char VelocityBCStrategy                           = 0;
-    static const char EqDensityBCStrategy                          = 1;
-    static const char NonEqDensityBCStrategy                       = 2;
-    static const char NoSlipBCStrategy                             = 3;
-    static const char SlipBCStrategy                               = 4;
-    static const char HighViscosityNoSlipBCStrategy                = 5;
-    static const char ThinWallNoSlipBCStrategy                     = 6;
-    static const char VelocityWithDensityBCStrategy                = 7;
-    static const char NonReflectingOutflowBCStrategy               = 8;
-    static const char ThixotropyVelocityBCStrategy                 = 9;
-    static const char ThixotropyDensityBCStrategy                  = 10;
-    static const char ThixotropyNoSlipBCStrategy                   = 11;
-    static const char ThixotropyNonReflectingOutflowBCStrategy     = 12;
-    static const char ThixotropyVelocityWithDensityBCStrategy      = 13;
-    static const char RheologyBinghamModelNoSlipBCStrategy         = 14;
-    static const char RheologyHerschelBulkleyModelNoSlipBCStrategy = 15;
-    static const char SimpleVelocityBCStrategy                     = 16;
-    static const char SimpleSlipBCStrategy                         = 17;
-    static const char RheologyPowellEyringModelNoSlipBCStrategy    = 18;
-    static const char RheologyBinghamModelVelocityBCStrategy       = 19;
-    static const char MultiphaseNoSlipBCStrategy                   = 20;
-    static const char MultiphaseVelocityBCStrategy                 = 21;
-    static const char NonReflectingInflowBCStrategy                = 22;
-    static const char NonReflectingOutflowWithRelaxationBCStrategy = 23;
-    static const char MultiphasePressureBCStrategy                 = 24;
+//public:
+//    static const char VelocityBCStrategy                           = 0;
+//    static const char EqDensityBCStrategy                          = 1;
+//    static const char NonEqDensityBCStrategy                       = 2;
+//    static const char NoSlipBCStrategy                             = 3;
+//    static const char SlipBCStrategy                               = 4;
+//    static const char HighViscosityNoSlipBCStrategy                = 5;
+//    static const char ThinWallNoSlipBCStrategy                     = 6;
+//    static const char VelocityWithDensityBCStrategy                = 7;
+//    static const char NonReflectingOutflowBCStrategy               = 8;
+//    static const char ThixotropyVelocityBCStrategy                 = 9;
+//    static const char ThixotropyDensityBCStrategy                  = 10;
+//    static const char ThixotropyNoSlipBCStrategy                   = 11;
+//    static const char ThixotropyNonReflectingOutflowBCStrategy     = 12;
+//    static const char ThixotropyVelocityWithDensityBCStrategy      = 13;
+//    static const char RheologyBinghamModelNoSlipBCStrategy         = 14;
+//    static const char RheologyHerschelBulkleyModelNoSlipBCStrategy = 15;
+//    static const char SimpleVelocityBCStrategy                     = 16;
+//    static const char SimpleSlipBCStrategy                         = 17;
+//    static const char RheologyPowellEyringModelNoSlipBCStrategy    = 18;
+//    static const char RheologyBinghamModelVelocityBCStrategy       = 19;
+//    static const char MultiphaseNoSlipBCStrategy                   = 20;
+//    static const char MultiphaseVelocityBCStrategy                 = 21;
+//    static const char NonReflectingInflowBCStrategy                = 22;
+//    static const char NonReflectingOutflowWithRelaxationBCStrategy = 23;
+//    static const char MultiphasePressureBCStrategy                 = 24;
 
 public:
     BCStrategy() = default;
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/BCStrategyType.h b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCStrategyType.h
new file mode 100644
index 0000000000000000000000000000000000000000..fccdef64f3d7103d31369f04189d2bfa59a6e2e3
--- /dev/null
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/BCStrategyType.h
@@ -0,0 +1,66 @@
+//=======================================================================================
+// ____          ____    __    ______     __________   __      __       __        __
+// \    \       |    |  |  |  |   _   \  |___    ___| |  |    |  |     /  \      |  |
+//  \    \      |    |  |  |  |  |_)   |     |  |     |  |    |  |    /    \     |  |
+//   \    \     |    |  |  |  |   _   /      |  |     |  |    |  |   /  /\  \    |  |
+//    \    \    |    |  |  |  |  | \  \      |  |     |   \__/   |  /  ____  \   |  |____
+//     \    \   |    |  |__|  |__|  \__\     |__|      \________/  /__/    \__\  |_______|
+//      \    \  |    |   ________________________________________________________________
+//       \    \ |    |  |  ______________________________________________________________|
+//        \    \|    |  |  |         __          __     __     __     ______      _______
+//         \         |  |  |_____   |  |        |  |   |  |   |  |   |   _  \    /  _____)
+//          \        |  |   _____|  |  |        |  |   |  |   |  |   |  | \  \   \_______
+//           \       |  |  |        |  |_____   |   \_/   |   |  |   |  |_/  /    _____  |
+//            \ _____|  |__|        |________|   \_______/    |__|   |______/    (_______/
+//
+//  This file is part of VirtualFluids. VirtualFluids is free software: you can
+//  redistribute it and/or modify it under the terms of the GNU General Public
+//  License as published by the Free Software Foundation, either version 3 of
+//  the License, or (at your option) any later version.
+//
+//  VirtualFluids is distributed in the hope that it will be useful, but WITHOUT
+//  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+//  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+//  for more details.
+//
+//  You should have received a copy of the GNU General Public License along
+//  with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
+//
+//! \file BCStrategy.h
+//! \ingroup BoundarConditions
+//! \author Konstantin Kutscher
+//=======================================================================================
+
+#ifndef BCStrategyType_H
+#define BCStrategyType_H
+
+struct BCStrategyType
+{
+    static const char VelocityBCStrategy = 0;
+    static const char EqDensityBCStrategy = 1;
+    static const char NonEqDensityBCStrategy = 2;
+    static const char NoSlipBCStrategy = 3;
+    static const char SlipBCStrategy = 4;
+    static const char HighViscosityNoSlipBCStrategy = 5;
+    static const char ThinWallNoSlipBCStrategy = 6;
+    static const char VelocityWithDensityBCStrategy = 7;
+    static const char NonReflectingOutflowBCStrategy = 8;
+    static const char ThixotropyVelocityBCStrategy = 9;
+    static const char ThixotropyDensityBCStrategy = 10;
+    static const char ThixotropyNoSlipBCStrategy = 11;
+    static const char ThixotropyNonReflectingOutflowBCStrategy = 12;
+    static const char ThixotropyVelocityWithDensityBCStrategy = 13;
+    static const char RheologyBinghamModelNoSlipBCStrategy = 14;
+    static const char RheologyHerschelBulkleyModelNoSlipBCStrategy = 15;
+    static const char SimpleVelocityBCStrategy = 16;
+    static const char SimpleSlipBCStrategy = 17;
+    static const char RheologyPowellEyringModelNoSlipBCStrategy = 18;
+    static const char RheologyBinghamModelVelocityBCStrategy = 19;
+    static const char MultiphaseNoSlipBCStrategy = 20;
+    static const char MultiphaseVelocityBCStrategy = 21;
+    static const char NonReflectingInflowBCStrategy = 22;
+    static const char NonReflectingOutflowWithRelaxationBCStrategy = 23;
+    static const char MultiphasePressureBCStrategy = 24;
+};
+
+#endif
\ No newline at end of file
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCStrategy.cpp
index 77a4601ea352efe1b25c9c509077f533e44f63dd..720ad7cc37e23f78cfb21ead9c5212509d8ac152 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/EqDensityBCStrategy.cpp
@@ -33,10 +33,11 @@
 #include "EqDensityBCStrategy.h"
 #include "BoundaryConditions.h"
 #include "DistributionArray3D.h"
+#include "BCStrategyType.h"
 
 EqDensityBCStrategy::EqDensityBCStrategy()
 {
-    BCStrategy::type         = BCStrategy::EqDensityBCStrategy;
+    BCStrategy::type         = BCStrategyType::EqDensityBCStrategy;
     BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/HighViscosityNoSlipBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/HighViscosityNoSlipBCStrategy.cpp
index cb8deaa00b7cf0f38095cef86f72b71656a4cac3..1556be3eea5c4d64604db4bd5e6c0335af551087 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/HighViscosityNoSlipBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/HighViscosityNoSlipBCStrategy.cpp
@@ -33,10 +33,11 @@
 #include "HighViscosityNoSlipBCStrategy.h"
 #include "BoundaryConditions.h"
 #include "DistributionArray3D.h"
+#include "BCStrategyType.h"
 
 HighViscosityNoSlipBCStrategy::HighViscosityNoSlipBCStrategy()
 {
-    BCStrategy::type         = BCStrategy::HighViscosityNoSlipBCStrategy;
+    BCStrategy::type         = BCStrategyType::HighViscosityNoSlipBCStrategy;
     BCStrategy::preCollision = true;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCStrategy.cpp
index bb98e499421328abc36f8911a14bcb8c90ebabd1..1c3cef76320fb6806053356afff84c2642fb7888 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NoSlipBCStrategy.cpp
@@ -34,10 +34,11 @@
 #include "NoSlipBCStrategy.h"
 #include "BoundaryConditions.h"
 #include "DistributionArray3D.h"
+#include "BCStrategyType.h"
 
 NoSlipBCStrategy::NoSlipBCStrategy()
 {
-    BCStrategy::type         = BCStrategy::NoSlipBCStrategy;
+    BCStrategy::type         = BCStrategyType::NoSlipBCStrategy;
     BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCStrategy.cpp
index d3f44c6ff7ce9d8acf913a8cebd3e42800b7a571..fd2ed61b86c4b57d523dac2d5482eb32e5a5cae3 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonEqDensityBCStrategy.cpp
@@ -34,10 +34,11 @@
 
 #include "BoundaryConditions.h"
 #include "DistributionArray3D.h"
+#include "BCStrategyType.h"
 
 NonEqDensityBCStrategy::NonEqDensityBCStrategy()
 {
-    BCStrategy::type         = BCStrategy::NonEqDensityBCStrategy;
+    BCStrategy::type         = BCStrategyType::NonEqDensityBCStrategy;
     BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCStrategy.cpp
index b1cf37e4b71ed883410c77098d9fa8d83f56a812..a9abc090c0449bf46bdd89cb37b7c0d73fbeda3d 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingInflowBCStrategy.cpp
@@ -35,10 +35,11 @@
 #include "BoundaryConditions.h"
 #include "D3Q27System.h"
 #include "DistributionArray3D.h"
+#include "BCStrategyType.h"
 
 NonReflectingInflowBCStrategy::NonReflectingInflowBCStrategy()
 {
-    BCStrategy::type         = BCStrategy::NonReflectingInflowBCStrategy;
+    BCStrategy::type         = BCStrategyType::NonReflectingInflowBCStrategy;
     BCStrategy::preCollision = true;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCStrategy.cpp
index b19b27ec1a5d22f835595020a26a76f194cc7ccb..8885e6c614f5a80bca30abfa49739079f3930fb1 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowBCStrategy.cpp
@@ -35,10 +35,11 @@
 #include "BoundaryConditions.h"
 #include "D3Q27System.h"
 #include "DistributionArray3D.h"
+#include "BCStrategyType.h"
 
 NonReflectingOutflowBCStrategy::NonReflectingOutflowBCStrategy()
 {
-    BCStrategy::type         = BCStrategy::NonReflectingOutflowBCStrategy;
+    BCStrategy::type         = BCStrategyType::NonReflectingOutflowBCStrategy;
     BCStrategy::preCollision = true;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowWithRelaxationBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowWithRelaxationBCStrategy.cpp
index f0fb4ccae28c38c13742fc9875acf7f44f545cbc..c69d86ba30c76bd171be9555823f10808b54dcc6 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowWithRelaxationBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/NonReflectingOutflowWithRelaxationBCStrategy.cpp
@@ -35,10 +35,11 @@
 #include "BoundaryConditions.h"
 #include "D3Q27System.h"
 #include "DistributionArray3D.h"
+#include "BCStrategyType.h"
 
 NonReflectingOutflowWithRelaxationBCStrategy::NonReflectingOutflowWithRelaxationBCStrategy()
 {
-    BCStrategy::type         = BCStrategy::NonReflectingOutflowWithRelaxationBCStrategy;
+    BCStrategy::type         = BCStrategyType::NonReflectingOutflowWithRelaxationBCStrategy;
     BCStrategy::preCollision = true;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCStrategy.cpp
index 7bd97721771d1cd5f2d5121bc3776c6dad9b3900..79edfb8e76689e355a1bc97ab11603b73d927caa 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleSlipBCStrategy.cpp
@@ -33,10 +33,11 @@
 #include "SimpleSlipBCStrategy.h"
 #include "DistributionArray3D.h"
 #include "BoundaryConditions.h"
+#include "BCStrategyType.h"
 
 SimpleSlipBCStrategy::SimpleSlipBCStrategy()
 {
-   BCStrategy::type = BCStrategy::SimpleSlipBCStrategy;
+   BCStrategy::type = BCStrategyType::SimpleSlipBCStrategy;
    BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleVelocityBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleVelocityBCStrategy.cpp
index 2206e71541d6d264fd91146be5641ba75ed5b4d3..03a3aeb1bb0a0316013eb89f3bed6ad156712a57 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleVelocityBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/SimpleVelocityBCStrategy.cpp
@@ -34,10 +34,11 @@
 #include "SimpleVelocityBCStrategy.h"
 #include "DistributionArray3D.h"
 #include "BoundaryConditions.h"
+#include "BCStrategyType.h"
 
 SimpleVelocityBCStrategy::SimpleVelocityBCStrategy()
 {
-   BCStrategy::type = BCStrategy::SimpleVelocityBCStrategy;
+   BCStrategy::type = BCStrategyType::SimpleVelocityBCStrategy;
    BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCStrategy.cpp
index 34093b6a86833266b7c589ce1ed88252ba608892..f0e246e57e92df2a0004d077f38f5dc53aa0e04d 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/SlipBCStrategy.cpp
@@ -1,10 +1,11 @@
 #include "SlipBCStrategy.h"
 #include "BoundaryConditions.h"
 #include "DistributionArray3D.h"
+#include "BCStrategyType.h"
 
 SlipBCStrategy::SlipBCStrategy()
 {
-    BCStrategy::type         = BCStrategy::SlipBCStrategy;
+    BCStrategy::type         = BCStrategyType::SlipBCStrategy;
     BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallBCSet.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallBCSet.cpp
index aefbd97f1fc7cae230af6632432b1efce41829cd..b89b015c27c2e11a222b99bb1135edb39ba23536 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallBCSet.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallBCSet.cpp
@@ -35,6 +35,7 @@
 #include "ThinWallNoSlipBCStrategy.h"
 
 #include "LBMKernel.h"
+#include "BCStrategyType.h"
 
 //////////////////////////////////////////////////////////////////////////
 ThinWallBCSet::ThinWallBCSet(SPtr<ILBMKernel> kernel) : BCSet(kernel) {}
@@ -50,7 +51,7 @@ void ThinWallBCSet::applyPostCollisionBC()
     BCSet::applyPostCollisionBC();
 
     for (SPtr<BCStrategy> bc : postBC) {
-        if (bc->getType() == BCStrategy::ThinWallNoSlipBCStrategy) {
+        if (bc->getType() == BCStrategyType::ThinWallNoSlipBCStrategy) {
             dynamicPointerCast<ThinWallNoSlipBCStrategy>(bc)->setPass(2);
             bc->applyBC();
             dynamicPointerCast<ThinWallNoSlipBCStrategy>(bc)->setPass(1);
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCStrategy.cpp
index 2427983a121b4948167b20d2336dbc39a0d81b9a..3d78fd9cc4c39933f3fa2c65b07e18ed6f88cc0c 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/ThinWallNoSlipBCStrategy.cpp
@@ -34,10 +34,11 @@
 
 #include "BoundaryConditions.h"
 #include "D3Q27EsoTwist3DSplittedVector.h"
+#include "BCStrategyType.h"
 
 ThinWallNoSlipBCStrategy::ThinWallNoSlipBCStrategy()
 {
-    BCStrategy::type         = BCStrategy::ThinWallNoSlipBCStrategy;
+    BCStrategy::type         = BCStrategyType::ThinWallNoSlipBCStrategy;
     BCStrategy::preCollision = false;
     pass                      = 1;
 }
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCStrategy.cpp
index 4f4c1615d0b6386a2e3382959e73f1885c8e9af4..c5a15631f1488e0aea59de7c5d6c8a0e76d5ddb5 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityBCStrategy.cpp
@@ -35,10 +35,11 @@
 #include "BoundaryConditions.h"
 #include "DistributionArray3D.h"
 #include "Block3D.h"
+#include "BCStrategyType.h"
 
 VelocityBCStrategy::VelocityBCStrategy()
 {
-    BCStrategy::type         = BCStrategy::VelocityBCStrategy;
+    BCStrategy::type         = BCStrategyType::VelocityBCStrategy;
     BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////
diff --git a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityWithDensityBCStrategy.cpp b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityWithDensityBCStrategy.cpp
index 0278ee0954dda41fd028a40d820782bf76b512f8..aa8dc479d406c7fface1cde028d3c2c5310ee13b 100644
--- a/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityWithDensityBCStrategy.cpp
+++ b/src/cpu/VirtualFluidsCore/BoundaryConditions/VelocityWithDensityBCStrategy.cpp
@@ -33,10 +33,11 @@
 #include "VelocityWithDensityBCStrategy.h"
 #include "BCArray3D.h"
 #include "DistributionArray3D.h"
+#include "BCStrategyType.h"
 
 VelocityWithDensityBCStrategy::VelocityWithDensityBCStrategy()
 {
-    BCStrategy::type         = BCStrategy::VelocityWithDensityBCStrategy;
+    BCStrategy::type         = BCStrategyType::VelocityWithDensityBCStrategy;
     BCStrategy::preCollision = false;
 }
 //////////////////////////////////////////////////////////////////////////