diff --git a/applications/solvers/combustion/PDRFoam/Make/options b/applications/solvers/combustion/PDRFoam/Make/options
index def8d609c2a7aa18c6f0f14028d62c7647db3c79..ad544559cbdc260cc62c89ee1eb46c045e362fc2 100644
--- a/applications/solvers/combustion/PDRFoam/Make/options
+++ b/applications/solvers/combustion/PDRFoam/Make/options
@@ -25,6 +25,7 @@ EXE_LIBS = \
     -lengine \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lreactionThermophysicalModels \
diff --git a/applications/solvers/combustion/XiFoam/Make/options b/applications/solvers/combustion/XiFoam/Make/options
index 056ed94388407d2e297fe10c5355a02074e604cc..9fa188d81e8c9ca1d91cb0b945d896e3cbcd127a 100644
--- a/applications/solvers/combustion/XiFoam/Make/options
+++ b/applications/solvers/combustion/XiFoam/Make/options
@@ -19,6 +19,7 @@ EXE_LIBS = \
     -lengine \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lreactionThermophysicalModels \
diff --git a/applications/solvers/combustion/XiFoam/XiDyMFoam/Make/options b/applications/solvers/combustion/XiFoam/XiDyMFoam/Make/options
index 1e090ba60d10d160720bf9678a39d5df2413f5b7..bbd7cf10666d9fe84be64cee36e54d61dc4660f3 100644
--- a/applications/solvers/combustion/XiFoam/XiDyMFoam/Make/options
+++ b/applications/solvers/combustion/XiFoam/XiDyMFoam/Make/options
@@ -26,6 +26,7 @@ EXE_LIBS = \
     -lengine \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lreactionThermophysicalModels \
diff --git a/applications/solvers/combustion/XiFoam/XiEngineFoam/Make/options b/applications/solvers/combustion/XiFoam/XiEngineFoam/Make/options
index c44d3f5dd14ff205ed100a2d7d8466cdfa04fe7d..1ca21e6473433a7b457d4fee39c4cb642d7711eb 100644
--- a/applications/solvers/combustion/XiFoam/XiEngineFoam/Make/options
+++ b/applications/solvers/combustion/XiFoam/XiEngineFoam/Make/options
@@ -20,6 +20,7 @@ EXE_LIBS = \
     -lengine \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lreactionThermophysicalModels \
diff --git a/applications/solvers/combustion/coldEngineFoam/Make/options b/applications/solvers/combustion/coldEngineFoam/Make/options
index 9493f7850844077776f36232f2b8bb23948e511a..c79b6e493d4b3c0a063b7575ea84c6283b5b53a0 100644
--- a/applications/solvers/combustion/coldEngineFoam/Make/options
+++ b/applications/solvers/combustion/coldEngineFoam/Make/options
@@ -20,6 +20,7 @@ EXE_LIBS = \
     -lengine \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
     -lspecie
diff --git a/applications/solvers/combustion/fireFoam/Make/options b/applications/solvers/combustion/fireFoam/Make/options
index bdf679ccde3de4df4d170b0a7617a8c1c090d280..4854f5d34af989353dc22dfba84268f25a38b4ac 100644
--- a/applications/solvers/combustion/fireFoam/Make/options
+++ b/applications/solvers/combustion/fireFoam/Make/options
@@ -34,6 +34,7 @@ EXE_LIBS = \
     -lsampling \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
diff --git a/applications/solvers/combustion/reactingFoam/Make/options b/applications/solvers/combustion/reactingFoam/Make/options
index 6363f6d80d7c33c5781631c7416e2e2686c73ccb..754c39841034c9e4e91557d8c85ebbb0f21ecf85 100644
--- a/applications/solvers/combustion/reactingFoam/Make/options
+++ b/applications/solvers/combustion/reactingFoam/Make/options
@@ -19,6 +19,7 @@ EXE_LIBS = \
     -lsampling \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lreactionThermophysicalModels \
     -lspecie \
     -lcompressibleTransportModels \
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options
index ad06afa0c06a3e4c89e6ea5bcb0eef7ae7851e6c..0c0c8e3ea670bacaa05c0a106fecb134c22b0c1b 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/Make/options
@@ -20,6 +20,7 @@ EXE_LIBS = \
     -lsampling \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lreactionThermophysicalModels \
     -lspecie \
     -lcompressibleTransportModels \
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options
index ad06afa0c06a3e4c89e6ea5bcb0eef7ae7851e6c..0c0c8e3ea670bacaa05c0a106fecb134c22b0c1b 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/Make/options
@@ -20,6 +20,7 @@ EXE_LIBS = \
     -lsampling \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lreactionThermophysicalModels \
     -lspecie \
     -lcompressibleTransportModels \
diff --git a/applications/solvers/compressible/rhoCentralFoam/Make/options b/applications/solvers/compressible/rhoCentralFoam/Make/options
index 2b1b8035dc05b721895890065f9dc1a3751770be..cb4f2336c656efb617287bac494bf51f2edcbd1b 100644
--- a/applications/solvers/compressible/rhoCentralFoam/Make/options
+++ b/applications/solvers/compressible/rhoCentralFoam/Make/options
@@ -19,5 +19,6 @@ EXE_LIBS = \
     -lrhoCentralFoam \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -ldynamicFvMesh \
     -ltopoChangerFvMesh
diff --git a/applications/solvers/compressible/rhoPimpleAdiabaticFoam/Make/options b/applications/solvers/compressible/rhoPimpleAdiabaticFoam/Make/options
index 775d63a111f00c93264b9d6af1b186b37664898e..3c186a1e4e9f604fad65eeb276719460e38360b5 100644
--- a/applications/solvers/compressible/rhoPimpleAdiabaticFoam/Make/options
+++ b/applications/solvers/compressible/rhoPimpleAdiabaticFoam/Make/options
@@ -6,7 +6,7 @@ EXE_INC = \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-    -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude
 
 EXE_LIBS = \
     -lfiniteVolume \
@@ -17,4 +17,5 @@ EXE_LIBS = \
     -lfluidThermophysicalModels \
     -lspecie \
     -lturbulenceModels \
-    -lcompressibleTurbulenceModels
+    -lcompressibleTurbulenceModels \
+    -lthermoTools
diff --git a/applications/solvers/compressible/rhoPimpleFoam/Make/options b/applications/solvers/compressible/rhoPimpleFoam/Make/options
index 717240ffece6f320cfdde24dc7efbccfaa7e1512..6a29940926fd8394fe3bfbc90525320fba9dd409 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoPimpleFoam/Make/options
@@ -20,6 +20,7 @@ EXE_LIBS = \
     -lspecie \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -ldynamicMesh \
     -ldynamicFvMesh \
     -ltopoChangerFvMesh \
diff --git a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/Make/options b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/Make/options
index 74c9dc95385500e15ba76461b498c65f5c3dbcd9..3d58b8c4261a886537f522266cc833b13535b8a0 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/Make/options
+++ b/applications/solvers/compressible/rhoPimpleFoam/overRhoPimpleDyMFoam/Make/options
@@ -21,6 +21,7 @@ EXE_LIBS = \
     -lspecie \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -ldynamicFvMesh \
     -ltopoChangerFvMesh \
     -loverset
diff --git a/applications/solvers/compressible/rhoSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/Make/options
index dd872bce900fe839d9b203a1a109b535cfaba2d4..fa15d297443c22e003e8d5d37a742d681caab579 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoSimpleFoam/Make/options
@@ -19,5 +19,6 @@ EXE_LIBS = \
     -lspecie \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -latmosphericModels \
     -lregionFaModels
diff --git a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/Make/options
index 9bb800efbd2a5f3457d970cb48cfb67006267a49..d69a4104311886adbd1290d9d283939bf708f31d 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoSimpleFoam/overRhoSimpleFoam/Make/options
@@ -21,6 +21,7 @@ EXE_LIBS = \
     -lspecie \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -ldynamicFvMesh \
     -ltopoChangerFvMesh \
     -lsampling \
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
index 9e9ee05ce4a5117682408b2e9531b54cd279edba..53c75aa9074918ce23bccad84614ccbf2514f60d 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
@@ -18,4 +18,5 @@ EXE_LIBS = \
     -lfluidThermophysicalModels \
     -lspecie \
     -lturbulenceModels \
-    -lcompressibleTurbulenceModels
+    -lcompressibleTurbulenceModels \
+    -lthermoTools
diff --git a/applications/solvers/compressible/sonicFoam/Make/options b/applications/solvers/compressible/sonicFoam/Make/options
index eed2e95cbe0ad02f2c5dff4362a0837765fa30f4..b5c8157122e5f3ba9e98f6aa8a2a50925311f2eb 100644
--- a/applications/solvers/compressible/sonicFoam/Make/options
+++ b/applications/solvers/compressible/sonicFoam/Make/options
@@ -16,4 +16,5 @@ EXE_LIBS = \
     -lfluidThermophysicalModels \
     -lspecie \
     -lturbulenceModels \
-    -lcompressibleTurbulenceModels
+    -lcompressibleTurbulenceModels \
+    -lthermoTools
diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
index b157cc8553b33859e623924ab253de5cdd169881..424561b5f9e6c655d25ebf4cc19fcfdcaac6988f 100644
--- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
+++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/Make/options
@@ -21,6 +21,7 @@ EXE_LIBS = \
     -lspecie \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -ldynamicMesh \
     -ldynamicFvMesh \
     -ltopoChangerFvMesh \
diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options
index a9b16d2f2518a8842b3a0d618fae2ce9f7752e41..badebdc5abf95f25335013393b9482b5fe9e934a 100644
--- a/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/Make/options
@@ -23,6 +23,7 @@ EXE_LIBS = \
     -lspecie \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -latmosphericModels \
     -ldynamicMesh \
     -ldynamicFvMesh \
diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/overBuoyantPimpleDyMFoam/Make/options b/applications/solvers/heatTransfer/buoyantPimpleFoam/overBuoyantPimpleDyMFoam/Make/options
index 1c97aae0837d460308289cf291813673a355cc42..75d0ded852b2e51e25c880f6946ed845783f6025 100644
--- a/applications/solvers/heatTransfer/buoyantPimpleFoam/overBuoyantPimpleDyMFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/overBuoyantPimpleDyMFoam/Make/options
@@ -24,6 +24,7 @@ EXE_LIBS = \
     -lspecie \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -latmosphericModels \
     -loverset \
     -ldynamicFvMesh \
diff --git a/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options b/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options
index 322b0c4488739682ad05e0e9330dcad1a1632b3b..da109f9260908b157f14b55bdc226c97319a9013 100644
--- a/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/buoyantSimpleFoam/Make/options
@@ -20,5 +20,6 @@ EXE_LIBS = \
     -lradiationModels \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -latmosphericModels \
     -lregionFaModels
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options b/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options
index 941407a03c38f42f22dbb36d624c347894f1bb61..9f8b601014b0c4184659e787dd4c8fd8bd4731d2 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/Make/options
@@ -37,6 +37,7 @@ EXE_LIBS = \
     -lcombustionModels \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lradiationModels \
     -lregionModels \
     -lregionFaModels
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/Make/options b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/Make/options
index 02b07edfa58d17c10f871301013d8e90d3eebad4..e427bbfcfe7542210260dfee9eb275c881f597ac 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/Make/options
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/Make/options
@@ -30,6 +30,7 @@ EXE_LIBS = \
     -lspecie \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lradiationModels \
     -lfvOptions \
     -lfaOptions \
diff --git a/applications/solvers/heatTransfer/solidFoam/Make/options b/applications/solvers/heatTransfer/solidFoam/Make/options
index ab6d205602b9f48cc2d24ffa5bda5b7101167801..5b05f2e141ba453919bee06f13210fe45cb0536b 100644
--- a/applications/solvers/heatTransfer/solidFoam/Make/options
+++ b/applications/solvers/heatTransfer/solidFoam/Make/options
@@ -23,4 +23,5 @@ EXE_LIBS = \
     -lfluidThermophysicalModels \
     -lsolidThermo \
     -lradiationModels \
-    -lspecie
+    -lspecie \
+    -lthermoTools
diff --git a/applications/solvers/heatTransfer/thermoFoam/Make/options b/applications/solvers/heatTransfer/thermoFoam/Make/options
index 948d35898108f5b6b0163caa04f2c2caa548a78d..3aef1695c5c136b06882e1790381391a97b32cec 100644
--- a/applications/solvers/heatTransfer/thermoFoam/Make/options
+++ b/applications/solvers/heatTransfer/thermoFoam/Make/options
@@ -18,4 +18,5 @@ EXE_LIBS = \
     -lradiationModels \
     -lspecie \
     -lturbulenceModels \
-    -lcompressibleTurbulenceModels
+    -lcompressibleTurbulenceModels \
+    -lthermoTools
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/Make/options b/applications/solvers/lagrangian/coalChemistryFoam/Make/options
index 3fa33f636406c0abd76db7d393566a91abe5b867..67ee0526674c26bb80f37d3054e3185a61cbbc7c 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/Make/options
+++ b/applications/solvers/lagrangian/coalChemistryFoam/Make/options
@@ -31,6 +31,7 @@ EXE_LIBS = \
     -lmeshTools \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianTurbulence \
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
index 70ec7ed080301c7ed9ab73b2919c28f443a4eab1..81dbe56372533a6d9fa7fbf4f444f617ffc11560 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/Make/options
@@ -36,6 +36,7 @@ EXE_LIBS = \
     -lsampling \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingHeterogenousParcelFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/reactingHeterogenousParcelFoam/Make/options
index d307b5260ca3536af293ff9b5a9ae6d83467de5e..d2b25e0a671098bac1402eb0d5536798881eeeed 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/reactingHeterogenousParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingHeterogenousParcelFoam/Make/options
@@ -36,6 +36,7 @@ EXE_LIBS = \
     -ldynamicFvMesh \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lspecie \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
index 6b2a7257298379cf4614e12c4389a815e3f73bb5..3e1485606fd80215326ef8a68b0c8b876cfffd97 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/reactingParcelFoam/simpleReactingParcelFoam/Make/options
@@ -31,6 +31,7 @@ EXE_LIBS = \
     -lmeshTools \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianTurbulence \
diff --git a/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/options b/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/options
index 8612aedf9cf40077d192aaac1c049682e4c73949..2b0ed56ead2d05080ec3539d72c2d03a1631708f 100644
--- a/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/simpleCoalParcelFoam/Make/options
@@ -31,6 +31,7 @@ EXE_LIBS = \
     -lmeshTools \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianTurbulence \
diff --git a/applications/solvers/lagrangian/sprayFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/Make/options
index 1d711963065977bb1901fc5f7d15de35ca88726c..7ec29ea7dc8f26ab7545cfb4afe52744211674ce 100644
--- a/applications/solvers/lagrangian/sprayFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/Make/options
@@ -31,6 +31,7 @@ EXE_LIBS = \
     -lmeshTools \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianTurbulence \
diff --git a/applications/solvers/lagrangian/sprayFoam/engineFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/engineFoam/Make/options
index 7a8c521c90e6887924111c0951a4fb37a053d37e..4f13ec336452f60c9d4d9d660c7985d1e37c2526 100644
--- a/applications/solvers/lagrangian/sprayFoam/engineFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/engineFoam/Make/options
@@ -35,6 +35,7 @@ EXE_LIBS = \
     -lsampling \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianTurbulence \
diff --git a/applications/solvers/lagrangian/sprayFoam/simpleSprayFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/simpleSprayFoam/Make/options
index 151225cb0787a77e84500d3c4bd65d67ddb84b3e..44c94feb023b9e0f89ecd1936d80ee5491439f92 100644
--- a/applications/solvers/lagrangian/sprayFoam/simpleSprayFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/simpleSprayFoam/Make/options
@@ -31,6 +31,7 @@ EXE_LIBS = \
     -lmeshTools \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianSpray \
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
index c7501564d2e2554734d0f14dd4f7c9ac89a1262a..879780b5e089feb214a2170d528fcd050caba0c3 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/Make/options
@@ -36,6 +36,7 @@ EXE_LIBS = \
     -lmeshTools \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -llagrangian \
     -llagrangianIntermediate \
     -llagrangianTurbulence \
diff --git a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
index 18c419a4957c16295e35d99e3ae159665f7c0a9c..f94824bb630e8c2b2643fc78e5ee86b9c06c23a3 100644
--- a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
+++ b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
@@ -29,6 +29,7 @@ EXE_LIBS = \
     -lradiationModels \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lregionModels \
     -lsurfaceFilmModels \
     -lregionFaModels \
diff --git a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/options b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/options
index 067d0c0311530f0d108996be2e3bee3062086c04..6c1aed4e3112c1a7798e7cf60246ebf7a265d0ac 100644
--- a/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/options
+++ b/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/options
@@ -32,6 +32,7 @@ EXE_LIBS = \
     -lradiationModels \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lregionModels \
     -lsurfaceFilmModels \
     -ldynamicMesh \
diff --git a/applications/solvers/multiphase/MPPICInterFoam/compressibleTwoPhaseMixtureTurbulenceModels/Make/options b/applications/solvers/multiphase/MPPICInterFoam/compressibleTwoPhaseMixtureTurbulenceModels/Make/options
index 7c6e58567254be8300ca92802249a268e2ea63e5..c53fafcf5aa3777e90c7ab595f789505fe51b04d 100644
--- a/applications/solvers/multiphase/MPPICInterFoam/compressibleTwoPhaseMixtureTurbulenceModels/Make/options
+++ b/applications/solvers/multiphase/MPPICInterFoam/compressibleTwoPhaseMixtureTurbulenceModels/Make/options
@@ -23,4 +23,5 @@ LIB_LIBS = \
     -linterfaceProperties \
     -lturbulenceModels \
     -lincompressibleTurbulenceModels \
-    -lcompressibleTurbulenceModels
+    -lcompressibleTurbulenceModels \
+    -lthermoTools
diff --git a/applications/solvers/multiphase/compressibleInterFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/Make/options
index 5fce651136862480798875a2d27b96bd7f5cb548..8204d76d9accb21e87ca5b6fa74096e896d07d6d 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/Make/options
@@ -26,4 +26,5 @@ EXE_LIBS = \
     -linterfaceProperties \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lVoFphaseCompressibleTurbulenceModels
diff --git a/applications/solvers/multiphase/compressibleInterFoam/VoFphaseCompressibleTurbulenceModels/Make/options b/applications/solvers/multiphase/compressibleInterFoam/VoFphaseCompressibleTurbulenceModels/Make/options
index 746ca9a44321d533cfb58e96314d27a71e837b2a..7e536a2c83f8659e05e7be875bc38cf7b3172fe2 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/VoFphaseCompressibleTurbulenceModels/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/VoFphaseCompressibleTurbulenceModels/Make/options
@@ -22,4 +22,5 @@ LIB_LIBS = \
     -linterfaceProperties \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lincompressibleTransportModels
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
index cc49e190f4f434e4c62cb65612820c56d0c600de..3853db3847f82d02ca858c8d919a15d5944c31ec 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/Make/options
@@ -29,6 +29,7 @@ EXE_LIBS = \
     -linterfaceProperties \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lVoFphaseCompressibleTurbulenceModels \
     -ldynamicMesh \
     -ldynamicFvMesh
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/Make/options
index 54392f419dc35e1a8af06e176bb053ba1d575c21..e04e4e98c6c705a287a0c5894e4496ba8430c73e 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFilmFoam/Make/options
@@ -36,6 +36,7 @@ EXE_LIBS = \
     -linterfaceProperties \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lVoFphaseCompressibleTurbulenceModels \
     -lSLGThermo \
     -lsurfaceFilmModels \
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterIsoFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterIsoFoam/Make/options
index 20f4d1aa685dc0ec6c22b7a3d6f49a6d42d325c9..185e98d9dd1201a1cbcb435f57059ca57ee67955 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterIsoFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterIsoFoam/Make/options
@@ -36,5 +36,6 @@ EXE_LIBS = \
     -linterfaceProperties \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lVoFphaseCompressibleTurbulenceModels \
     -lgeometricVoF
diff --git a/applications/solvers/multiphase/compressibleInterFoam/overCompressibleInterDyMFoam/Make/options b/applications/solvers/multiphase/compressibleInterFoam/overCompressibleInterDyMFoam/Make/options
index 58a1577a9c965c5309fcf780dd01c2ae5827b3a8..2b120f36ed929d4bb2100f0bd696ad1c60b09d06 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/overCompressibleInterDyMFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleInterFoam/overCompressibleInterDyMFoam/Make/options
@@ -32,6 +32,7 @@ EXE_LIBS = \
     -linterfaceProperties \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lVoFphaseCompressibleTurbulenceModels \
     -ldynamicMesh \
     -ldynamicFvMesh \
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
index b58b0af6b09f90f2a7f635b3fb987d928da0b9d1..f130c88d986c3eab5e7322ad3a00a0ba08a31d57 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/Make/options
@@ -21,4 +21,5 @@ EXE_LIBS = \
     -lspecie \
     -linterfaceProperties \
     -lturbulenceModels \
-    -lcompressibleTurbulenceModels
+    -lcompressibleTurbulenceModels \
+    -lthermoTools
diff --git a/applications/solvers/multiphase/driftFluxFoam/Make/options b/applications/solvers/multiphase/driftFluxFoam/Make/options
index d54870c6889fd9949783fe7e978e40dac01f1acd..66084c852c1af808143a96e0552ad151f8c5a7eb 100644
--- a/applications/solvers/multiphase/driftFluxFoam/Make/options
+++ b/applications/solvers/multiphase/driftFluxFoam/Make/options
@@ -22,4 +22,5 @@ EXE_LIBS = \
     -ldriftFluxTransportModels \
     -ldriftFluxRelativeVelocityModels \
     -lturbulenceModels \
-    -lcompressibleTurbulenceModels
+    -lcompressibleTurbulenceModels \
+    -lthermoTools
diff --git a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/Make/options b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/Make/options
index 4136469216508db013dbd5f630fe700e5cfd2cde..b20cb96a370f62ee29ee1181efe8c392ce90e870 100644
--- a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/Make/options
+++ b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/Make/options
@@ -25,6 +25,7 @@ EXE_LIBS = \
     -ldynamicFvMesh \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lcompressibleTransportModels \
     -lradiationModels \
     -lfluidThermophysicalModels \
diff --git a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/YEqns.H b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/YEqns.H
index 31d10788bc5157ed57647d64d07ccbd64aa01145..912b91114ddd7d0e51c098cb8aa12c40c9e9241c 100644
--- a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/YEqns.H
+++ b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/YEqns.H
@@ -1,5 +1,5 @@
 {
-    for (phaseModel& phase : fluid.phases())
+    for (multiphaseInter::phaseModel& phase : fluid.phases())
     {
         PtrList<volScalarField>& Y = phase.Y();
 
diff --git a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/createFields.H b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/createFields.H
index cd9a50839021c454d098bee1f7f7fec5066388ab..0e51602d3cb74f0277637234f2a57c3de47ed10e 100644
--- a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/createFields.H
+++ b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/createFields.H
@@ -63,9 +63,10 @@
 
 
     Info<< "Creating multiphaseSystem\n" << endl;
-    autoPtr<multiphaseSystem> fluidPtr = multiphaseSystem::New(mesh);
+    autoPtr<multiphaseInter::multiphaseSystem> fluidPtr =
+        multiphaseInter::multiphaseSystem::New(mesh);
 
-    multiphaseSystem& fluid = fluidPtr();
+    multiphaseInter::multiphaseSystem& fluid = fluidPtr();
 
     if (!fluid.incompressible())
     {
@@ -118,9 +119,12 @@
     surfaceScalarField& rhoPhi = fluid.rhoPhi();
 
     // Construct incompressible turbulence model
-    autoPtr<CompressibleTurbulenceModel<multiphaseSystem>> turbulence
+    autoPtr
+    <
+        CompressibleTurbulenceModel<multiphaseInter::multiphaseSystem>
+    > turbulence
     (
-        CompressibleTurbulenceModel<multiphaseSystem>::New
+        CompressibleTurbulenceModel<multiphaseInter::multiphaseSystem>::New
         (
             rho,
             U,
@@ -129,6 +133,8 @@
         )
     );
 
+    fluid.setTurbulence(turbulence());
+
     // Creating radiation model
     autoPtr<radiation::radiationModel> radiation
     (
diff --git a/applications/solvers/multiphase/interCondensatingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/interfaceHeatResistance/interfaceHeatResistance.C b/applications/solvers/multiphase/interCondensatingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/interfaceHeatResistance/interfaceHeatResistance.C
index b4382754a635f326e79e3669caa4865464197111..3961c127bd4adaab134501928ad8e4d769655448 100644
--- a/applications/solvers/multiphase/interCondensatingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/interfaceHeatResistance/interfaceHeatResistance.C
+++ b/applications/solvers/multiphase/interCondensatingEvaporatingFoam/temperaturePhaseChangeTwoPhaseMixtures/interfaceHeatResistance/interfaceHeatResistance.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2020-2021 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
     Copyright (C) 2020 Henning Scheufler
 -------------------------------------------------------------------------------
 License
@@ -265,23 +265,13 @@ correct()
     const dimensionedScalar& TSat = thermo.TSat();
     const dimensionedScalar T0(dimTemperature, Zero);
 
-    dimensionedScalar L = mixture_.Hf2() - mixture_.Hf1();
+    const dimensionedScalar L(mag(mixture_.Hf2() - mixture_.Hf1()));
 
     // interface heat resistance
     mDotc_ = interfaceArea_*R_*max(TSat - T, T0)/L;
     mDote_ = interfaceArea_*R_*max(T - TSat, T0)/L;
 
-    // Limiting max condensation
-    forAll(mDotc_, celli)
-    {
-        scalar rhobyDt = mixture_.rho1().value()/mesh_.time().deltaTValue();
-        scalar maxEvap = mixture_.alpha1()[celli]*rhobyDt; // positive
-        scalar maxCond = -mixture_.alpha2()[celli]*rhobyDt; // negative
-        mDotc_[celli] = min(max(mDotc_[celli], maxCond), maxEvap);
-    }
-
     // Calculate the spread sources
-
     dimensionedScalar D
     (
         "D",
diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Make/options b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Make/options
index c8a632087e3129eef6f0796a2d57cca03b0fd51f..aba9ee616dc0999337b8bf8cab8287ae5ab24d5b 100644
--- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Make/options
+++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/Make/options
@@ -20,4 +20,5 @@ EXE_LIBS = \
     -lsampling \
     -lreactingMultiphaseSystem \
     -lreactingTwoPhaseSystem \
-    -ltwoPhaseReactingTurbulenceModels
+    -ltwoPhaseReactingTurbulenceModels \
+    -lthermoTools
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options b/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options
index fcd7558097fe55dde0d487b0b9631fc491973fe5..ee6c9ca96c4b5cee6ac81ab41a1ad8f526e6420a 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/Make/options
@@ -23,6 +23,7 @@ EXE_LIBS = \
     -lspecie \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lincompressibleTransportModels \
     -lcompressibleTwoPhaseSystem \
     -lphaseCompressibleTurbulenceModels
diff --git a/applications/utilities/mesh/advanced/PDRMesh/Make/options b/applications/utilities/mesh/advanced/PDRMesh/Make/options
index 619a76c7a91906c1bb476d02772cdd3558da344c..de525db6686b9581a41a6bc6123d0c9c50c8bb4b 100644
--- a/applications/utilities/mesh/advanced/PDRMesh/Make/options
+++ b/applications/utilities/mesh/advanced/PDRMesh/Make/options
@@ -10,5 +10,6 @@ EXE_LIBS = \
     -ldynamicMesh \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels
diff --git a/applications/utilities/miscellaneous/foamHelp/Make/options b/applications/utilities/miscellaneous/foamHelp/Make/options
index 280fed969213b72a63260a866edc0a51463a8af0..4e185104f2fc2522a83e673df025ab6fd17498f0 100644
--- a/applications/utilities/miscellaneous/foamHelp/Make/options
+++ b/applications/utilities/miscellaneous/foamHelp/Make/options
@@ -10,5 +10,6 @@ EXE_LIBS = \
     -lturbulenceModels \
     -lincompressibleTurbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lradiationModels \
     -lfluidThermophysicalModels
diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/Make/options b/applications/utilities/miscellaneous/foamHelp/helpTypes/Make/options
index b3d092f10260d0a9dc8ebb485610e11a4de09c5f..14a502de5a356ecb6feba316c10f3f38aca6f460 100644
--- a/applications/utilities/miscellaneous/foamHelp/helpTypes/Make/options
+++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/Make/options
@@ -6,5 +6,6 @@ LIB_LIBS = \
     -lturbulenceModels \
     -lincompressibleTurbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lradiationModels \
     -lfluidThermophysicalModels
diff --git a/applications/utilities/postProcessing/postProcess/Make/options b/applications/utilities/postProcessing/postProcess/Make/options
index c2019e8d8c0d8f3bcc3c618aebb3981185ed2bd7..5fcf420ba66b200d68c5819bc58feeab55f303d9 100644
--- a/applications/utilities/postProcessing/postProcess/Make/options
+++ b/applications/utilities/postProcessing/postProcess/Make/options
@@ -19,6 +19,7 @@ EXE_LIBS = \
     -lturbulenceModels \
     -lincompressibleTurbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lincompressibleTransportModels \
     -lcompressibleTransportModels \
     -lfluidThermophysicalModels \
diff --git a/applications/utilities/preProcessing/applyBoundaryLayer/Make/options b/applications/utilities/preProcessing/applyBoundaryLayer/Make/options
index a887778b7bae95e5993d365cdede2359c8d0717d..8842d1fecad6efaf56a413a8b33b8a7ea5676d63 100644
--- a/applications/utilities/preProcessing/applyBoundaryLayer/Make/options
+++ b/applications/utilities/preProcessing/applyBoundaryLayer/Make/options
@@ -16,6 +16,7 @@ EXE_LIBS = \
     -lturbulenceModels \
     -lincompressibleTurbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lfluidThermophysicalModels \
     -lincompressibleTransportModels \
     -lcompressibleTransportModels \
diff --git a/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/Make/options b/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/Make/options
index 2a75a610c1b4ce05ec76de232a86df8822dddd56..2738cef53eba68bc0c21ec46540fd319df065b93 100644
--- a/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/Make/options
+++ b/applications/utilities/preProcessing/createExternalCoupledPatchGeometry/Make/options
@@ -7,4 +7,6 @@ EXE_LIBS = \
     -lfiniteVolume \
     -lmeshTools \
     -ldynamicMesh \
-    -lfieldFunctionObjects
+    -lfieldFunctionObjects \
+    -lincompressibleMultiphaseSystems \
+    -lreactingMultiphaseSystem
diff --git a/applications/utilities/preProcessing/setTurbulenceFields/Make/options b/applications/utilities/preProcessing/setTurbulenceFields/Make/options
index a887778b7bae95e5993d365cdede2359c8d0717d..8842d1fecad6efaf56a413a8b33b8a7ea5676d63 100644
--- a/applications/utilities/preProcessing/setTurbulenceFields/Make/options
+++ b/applications/utilities/preProcessing/setTurbulenceFields/Make/options
@@ -16,6 +16,7 @@ EXE_LIBS = \
     -lturbulenceModels \
     -lincompressibleTurbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lfluidThermophysicalModels \
     -lincompressibleTransportModels \
     -lcompressibleTransportModels \
diff --git a/src/Allwmake b/src/Allwmake
index ff447a107566b5fba6d02ea80762f205f4f5479e..96071901af037d5b58a92046c0b58278c6f25ded 100755
--- a/src/Allwmake
+++ b/src/Allwmake
@@ -90,16 +90,13 @@ wmake $targetType combustionModels
 
 wmakeLnInclude -u regionFaModels
 wmakeLnInclude -u faOptions
-regionModels/Allwmake $targetType $*
 
-wmake $targetType fvOptions
-wmake $targetType faOptions
-wmake $targetType fvMotionSolver
-wmake $targetType regionFaModels
+wmakeLnInclude -u overset
+wmake $targetType overset
 
-lagrangian/Allwmake $targetType $*
+wmake $targetType fvOptions
 
-wmake $targetType overset
+wmake $targetType fvMotionSolver
 
 # snappyHexMesh uses overset voxelMesh
 mesh/Allwmake $targetType $*
@@ -111,15 +108,25 @@ wmake $targetType engine
 
 conversion/Allwmake $targetType $*
 
-functionObjects/Allwmake $targetType $*
 phaseSystemModels/Allwmake $targetType $*
+functionObjects/Allwmake $targetType $*
+
+wmake $targetType thermoTools
+
+regionModels/Allwmake $targetType $*
+
+wmake $targetType faOptions
+wmake $targetType regionFaModels
+
+lagrangian/Allwmake $targetType $*
+wmake $targetType functionObjects/lagrangian
+
 
 wmake $targetType lumpedPointMotion
 wmake $targetType sixDoFRigidBodyMotion
 wmake $targetType sixDoFRigidBodyState
 wmake $targetType rigidBodyDynamics
 wmake $targetType rigidBodyMeshMotion
-wmake $targetType semiPermeableBaffle
 wmake $targetType atmosphericModels
 wmake $targetType optimisation/adjointOptimisation/adjoint
 
@@ -128,10 +135,6 @@ wmake $targetType optimisation/adjointOptimisation/adjoint
 dynamicFaMesh/Allwmake $targetType $*
 
 
-# Needs access to Turbulence
-
-wmake $targetType thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties
-
 #------------------------------------------------------------------------------
 
 echo ========================================
diff --git a/src/TurbulenceModels/compressible/Make/files b/src/TurbulenceModels/compressible/Make/files
index 50a25f81c57f10545c8a8ede8c99dd32dc8d0920..3197fb304ad93b17fbad284bb07fd1a65927ed2c 100644
--- a/src/TurbulenceModels/compressible/Make/files
+++ b/src/TurbulenceModels/compressible/Make/files
@@ -1,23 +1,4 @@
 compressibleTurbulenceModel.C
 turbulentFluidThermoModels/turbulentFluidThermoModels.C
 
-BCs = turbulentFluidThermoModels/derivedFvPatchFields
-
-$(BCs)/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.C
-$(BCs)/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C
-$(BCs)/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
-$(BCs)/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C
-$(BCs)/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C
-$(BCs)/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.C
-$(BCs)/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.C
-$(BCs)/outletMachNumberPressure/outletMachNumberPressureFvPatchScalarField.C
-
-$(BCs)/temperatureCoupledBase/temperatureCoupledBase.C
-$(BCs)/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
-$(BCs)/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
-$(BCs)/lumpedMassWallTemperature/lumpedMassWallTemperatureFvPatchScalarField.C
-
-$(BCs)/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C
-$(BCs)/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C
-
 LIB = $(FOAM_LIBBIN)/libcompressibleTurbulenceModels
diff --git a/src/faOptions/Make/options b/src/faOptions/Make/options
index 46c960d614b9ba1846f15d329bf92412ceff9ea7..f37f3d412a8c1eddcb76c106398610ea8949a499 100644
--- a/src/faOptions/Make/options
+++ b/src/faOptions/Make/options
@@ -10,6 +10,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
+    -I$(LIB_SRC)/thermoTools/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude
 
 LIB_LIBS = \
@@ -19,4 +20,5 @@ LIB_LIBS = \
     -lmeshTools \
     -lturbulenceModels \
     -lincompressibleTurbulenceModels \
-    -lcompressibleTurbulenceModels
+    -lcompressibleTurbulenceModels \
+    -lthermoTools
diff --git a/src/functionObjects/Allwmake b/src/functionObjects/Allwmake
index 4a6d461b7f514708d3b2ef2a8654473f197bde98..700e799fc49569c18eec7f9a11711b3cf1f37e25 100755
--- a/src/functionObjects/Allwmake
+++ b/src/functionObjects/Allwmake
@@ -7,9 +7,9 @@ cd "${0%/*}" || exit                                # Run from this directory
 wmake $targetType field
 wmake $targetType forces
 wmake $targetType initialisation
-wmake $targetType lagrangian
 wmake $targetType utilities
 wmake $targetType solvers
+wmake $targetType phaseSystems
 
 ./randomProcesses/Allwmake $targetType
 
diff --git a/src/functionObjects/field/Make/files b/src/functionObjects/field/Make/files
index b7c2550efbde555b67f5c74433539b100f13c553..3fd56b2f79a6486e5e459ece5d42cb6e2ec3e419 100644
--- a/src/functionObjects/field/Make/files
+++ b/src/functionObjects/field/Make/files
@@ -33,6 +33,8 @@ heatTransferCoeff/heatTransferCoeffModels/heatTransferCoeffModel/heatTransferCoe
 heatTransferCoeff/heatTransferCoeffModels/fixedReferenceTemperature/fixedReferenceTemperature.C
 heatTransferCoeff/heatTransferCoeffModels/localReferenceTemperature/localReferenceTemperature.C
 heatTransferCoeff/heatTransferCoeffModels/ReynoldsAnalogy/ReynoldsAnalogy.C
+heatTransferCoeff/reactingEulerHtcModel/reactingEulerHtcModel.C
+heatTransferCoeff/multiphaseInterHtcModel/multiphaseInterHtcModel.C
 
 limitFields/limitFields.C
 
diff --git a/src/functionObjects/field/Make/options b/src/functionObjects/field/Make/options
index cc5819e29c66249e19b5c8d66725251a4e694c9b..c5df9e3b470c354f2a0b5359b213e2d3b503b175 100644
--- a/src/functionObjects/field/Make/options
+++ b/src/functionObjects/field/Make/options
@@ -21,7 +21,9 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-    -I$(LIB_SRC)/fvAgglomerationMethods/pairPatchAgglomeration/lnInclude
+    -I$(LIB_SRC)/fvAgglomerationMethods/pairPatchAgglomeration/lnInclude \
+    -I$(LIB_SRC)/phaseSystemModels/multiphaseInter/phasesSystem/lnInclude \
+    -I$(LIB_SRC)/phaseSystemModels/reactingEuler/multiphaseSystem/lnInclude
 
 LIB_LIBS = \
     -lfiniteVolume \
@@ -43,4 +45,6 @@ LIB_LIBS = \
     -lturbulenceModelSchemes \
     -lchemistryModel \
     -lreactionThermophysicalModels \
-    -lpairPatchAgglomeration
+    -lpairPatchAgglomeration \
+    -lincompressibleMultiphaseSystems \
+    -lreactingMultiphaseSystem
diff --git a/src/functionObjects/field/heatTransferCoeff/multiphaseInterHtcModel/multiphaseInterHtcModel.C b/src/functionObjects/field/heatTransferCoeff/multiphaseInterHtcModel/multiphaseInterHtcModel.C
new file mode 100644
index 0000000000000000000000000000000000000000..108b4d473a3f1ddbc9848976e3a2cc95fae82b98
--- /dev/null
+++ b/src/functionObjects/field/heatTransferCoeff/multiphaseInterHtcModel/multiphaseInterHtcModel.C
@@ -0,0 +1,173 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | www.openfoam.com
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+    Copyright (C) 2022 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM 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.
+
+    OpenFOAM 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 OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "multiphaseInterHtcModel.H"
+#include "multiphaseInterSystem.H"
+#include "addToRunTimeSelectionTable.H"
+#include "dictionary.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+    defineTypeNameAndDebug(multiphaseInterHtcModel, 0);
+    addToRunTimeSelectionTable
+    (
+        functionObject,
+        multiphaseInterHtcModel,
+        dictionary
+    );
+}
+}
+
+
+// * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
+
+Foam::tmp<Foam::FieldField<Foam::Field, Foam::scalar>>
+Foam::functionObjects::multiphaseInterHtcModel::q() const
+{
+    const fvMesh& mesh = htcModelPtr_->mesh();
+
+    const auto& T = mesh.lookupObject<volScalarField>(htcModelPtr_->TName());
+
+    const volScalarField::Boundary& Tbf = T.boundaryField();
+
+    auto tq = tmp<FieldField<Field, scalar>>::New(Tbf.size());
+    auto& q = tq.ref();
+
+    forAll(q, patchi)
+    {
+        q.set(patchi, new Field<scalar>(Tbf[patchi].size(), Zero));
+    }
+
+    const auto* fluidPtr =
+        mesh.cfindObject<multiphaseInterSystem>("phaseProperties");
+
+    if (!fluidPtr)
+    {
+        FatalErrorInFunction
+            << "Unable to find a valid phaseSystem to evaluate q" << nl
+            << exit(FatalError);
+    }
+
+    const multiphaseInterSystem& fluid = *fluidPtr;
+
+    for (const label patchi : htcModelPtr_->patchSet())
+    {
+        q[patchi] += fluid.kappaEff(patchi)()*Tbf[patchi].snGrad();
+    }
+
+    // Add radiative heat flux contribution if present
+
+    const auto* qrPtr =
+        mesh.cfindObject<volScalarField>(htcModelPtr_->qrName());
+
+    if (qrPtr)
+    {
+        const volScalarField::Boundary& qrbf = qrPtr->boundaryField();
+
+        for (const label patchi : htcModelPtr_->patchSet())
+        {
+            q[patchi] += qrbf[patchi];
+        }
+    }
+
+    return tq;
+}
+
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+bool Foam::functionObjects::multiphaseInterHtcModel::calc()
+{
+    auto& htc =
+        htcModelPtr_->mesh().lookupObjectRef<volScalarField>(resultName_);
+
+    htcModelPtr_->calc(htc, q());
+
+    return true;
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::functionObjects::multiphaseInterHtcModel::multiphaseInterHtcModel
+(
+    const word& name,
+    const Time& runTime,
+    const dictionary& dict
+)
+:
+    fieldExpression(name, runTime, dict),
+    htcModelPtr_(nullptr)
+{
+    read(dict);
+
+    setResultName(typeName, "htc:" + htcModelPtr_->type());
+
+    auto* htcPtr =
+        new volScalarField
+        (
+            IOobject
+            (
+                resultName_,
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            mesh_,
+            dimensionedScalar(dimPower/dimArea/dimTemperature, Zero)
+        );
+
+    mesh_.objectRegistry::store(htcPtr);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+bool Foam::functionObjects::multiphaseInterHtcModel::read
+(
+    const dictionary& dict
+)
+{
+    if (!fieldExpression::read(dict))
+    {
+        return false;
+    }
+
+    htcModelPtr_ = heatTransferCoeffModel::New(dict, mesh_, fieldName_);
+
+    htcModelPtr_->read(dict);
+
+    return true;
+}
+
+
+// ************************************************************************* //
diff --git a/src/functionObjects/field/heatTransferCoeff/multiphaseInterHtcModel/multiphaseInterHtcModel.H b/src/functionObjects/field/heatTransferCoeff/multiphaseInterHtcModel/multiphaseInterHtcModel.H
new file mode 100644
index 0000000000000000000000000000000000000000..1e8645b8b952907c7817b9a5986de327bfad9886
--- /dev/null
+++ b/src/functionObjects/field/heatTransferCoeff/multiphaseInterHtcModel/multiphaseInterHtcModel.H
@@ -0,0 +1,122 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | www.openfoam.com
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+    Copyright (C) 2022 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM 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.
+
+    OpenFOAM 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 OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::functionObjects::multiphaseInterHtcModel
+
+Description
+    A heat transfer coefficient for multiphase inter solvers
+    (i.e. icoReactingMultiphaseFoam).
+
+SourceFiles
+    multiphaseInterHtcModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef Foam_functionObjects_multiphaseInterHtcModel_H
+#define Foam_functionObjects_multiphaseInterHtcModel_H
+
+#include "HashSet.H"
+#include "volFields.H"
+#include "fieldExpression.H"
+#include "runTimeSelectionTables.H"
+#include "heatTransferCoeffModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+
+/*---------------------------------------------------------------------------*\
+                   Class multiphaseInterHtcModel Declaration
+\*---------------------------------------------------------------------------*/
+
+class multiphaseInterHtcModel
+:
+    public fieldExpression
+{
+    // Private Data
+
+        //- Heat transfer coefficient model
+        autoPtr<heatTransferCoeffModel> htcModelPtr_;
+
+
+protected:
+
+    // Protected Member Functions
+
+        //- Calculate the heat transfer coefficient field
+        //  \return true on success
+        virtual bool calc();
+
+        //- Calculate heat flux
+        tmp<FieldField<Field, scalar>> q() const;
+
+        //- No copy construct
+        multiphaseInterHtcModel(const multiphaseInterHtcModel&) = delete;
+
+        //- No copy assignment
+        void operator=(const multiphaseInterHtcModel&) = delete;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("multiphaseInterHtcModel");
+
+
+    // Constructors
+
+        //- Construct from components
+        multiphaseInterHtcModel
+        (
+            const word& name,
+            const Time& runTime,
+            const dictionary& dict
+        );
+
+
+    //- Destructor
+    virtual ~multiphaseInterHtcModel() = default;
+
+
+    // Member Functions
+
+        //- Read the heatTransferCoeff data
+        virtual bool read(const dictionary& dict);
+};
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace functionObjects
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/phaseSystemModels/reactingEuler/functionObjects/reactingEulerHtcModel/reactingEulerHtcModel.C b/src/functionObjects/field/heatTransferCoeff/reactingEulerHtcModel/reactingEulerHtcModel.C
similarity index 99%
rename from src/phaseSystemModels/reactingEuler/functionObjects/reactingEulerHtcModel/reactingEulerHtcModel.C
rename to src/functionObjects/field/heatTransferCoeff/reactingEulerHtcModel/reactingEulerHtcModel.C
index be169e7fb22affeb6af4c25870ff34d24be440fb..9360972dedf44e73c45c8289f2f6c56a9cab4d58 100644
--- a/src/phaseSystemModels/reactingEuler/functionObjects/reactingEulerHtcModel/reactingEulerHtcModel.C
+++ b/src/functionObjects/field/heatTransferCoeff/reactingEulerHtcModel/reactingEulerHtcModel.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
diff --git a/src/phaseSystemModels/reactingEuler/functionObjects/reactingEulerHtcModel/reactingEulerHtcModel.H b/src/functionObjects/field/heatTransferCoeff/reactingEulerHtcModel/reactingEulerHtcModel.H
similarity index 94%
rename from src/phaseSystemModels/reactingEuler/functionObjects/reactingEulerHtcModel/reactingEulerHtcModel.H
rename to src/functionObjects/field/heatTransferCoeff/reactingEulerHtcModel/reactingEulerHtcModel.H
index 7c1536bf7d8097f9301ed25228043170ee991cf1..72fd176724aa6cd31219b3de32197900665066a2 100644
--- a/src/phaseSystemModels/reactingEuler/functionObjects/reactingEulerHtcModel/reactingEulerHtcModel.H
+++ b/src/functionObjects/field/heatTransferCoeff/reactingEulerHtcModel/reactingEulerHtcModel.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,7 +24,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::reactingEulerHtcModel
+    Foam::functionObjects::reactingEulerHtcModel
 
 Description
     A heat transfer coefficient for reactingEuler solvers
@@ -34,8 +34,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef reactingEulerHtcModel_H
-#define reactingEulerHtcModel_H
+#ifndef Foam_functionObjects_reactingEulerHtcModel_H
+#define Foam_functionObjects_reactingEulerHtcModel_H
 
 #include "HashSet.H"
 #include "volFields.H"
diff --git a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
index c7dcf4a8877a3e4546e37abca21435961b0e5565..c8e5ed9b86a49d5bfe91ad4ece43420a600b2a9f 100644
--- a/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
+++ b/src/functionObjects/field/wallHeatFlux/wallHeatFlux.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2016-2017 OpenFOAM Foundation
-    Copyright (C) 2016-2020 OpenCFD Ltd.
+    Copyright (C) 2016-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -34,6 +34,7 @@ License
 #include "wallPolyPatch.H"
 #include "turbulentFluidThermoModel.H"
 #include "addToRunTimeSelectionTable.H"
+#include "multiphaseInterSystem.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
@@ -236,6 +237,19 @@ bool Foam::functionObjects::wallHeatFlux::execute()
 
         calcHeatFlux(thermo.alpha(), thermo.he(), wallHeatFlux);
     }
+    else if
+    (
+        foundObject<multiphaseInterSystem>
+            (multiphaseInterSystem::phasePropertiesName)
+    )
+    {
+        const auto& thermo = lookupObject<multiphaseInterSystem>
+        (
+            multiphaseInterSystem::phasePropertiesName
+        );
+
+        calcHeatFlux(thermo.kappaEff()(), thermo.T(), wallHeatFlux);
+    }
     else
     {
         FatalErrorInFunction
diff --git a/src/functionObjects/phaseSystems/Make/files b/src/functionObjects/phaseSystems/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..b925df49e1670261ea32ec4287d966d264aeb34c
--- /dev/null
+++ b/src/functionObjects/phaseSystems/Make/files
@@ -0,0 +1,4 @@
+sizeDistribution/sizeDistribution.C
+phaseForces/phaseForces.C
+
+LIB = $(FOAM_LIBBIN)/libphaseFunctionObjects
diff --git a/src/phaseSystemModels/reactingEuler/functionObjects/Make/options b/src/functionObjects/phaseSystems/Make/options
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/functionObjects/Make/options
rename to src/functionObjects/phaseSystems/Make/options
diff --git a/src/phaseSystemModels/reactingEuler/functionObjects/phaseForces/phaseForces.C b/src/functionObjects/phaseSystems/phaseForces/phaseForces.C
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/functionObjects/phaseForces/phaseForces.C
rename to src/functionObjects/phaseSystems/phaseForces/phaseForces.C
diff --git a/src/phaseSystemModels/reactingEuler/functionObjects/phaseForces/phaseForces.H b/src/functionObjects/phaseSystems/phaseForces/phaseForces.H
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/functionObjects/phaseForces/phaseForces.H
rename to src/functionObjects/phaseSystems/phaseForces/phaseForces.H
diff --git a/src/phaseSystemModels/reactingEuler/functionObjects/sizeDistribution/sizeDistribution.C b/src/functionObjects/phaseSystems/sizeDistribution/sizeDistribution.C
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/functionObjects/sizeDistribution/sizeDistribution.C
rename to src/functionObjects/phaseSystems/sizeDistribution/sizeDistribution.C
diff --git a/src/phaseSystemModels/reactingEuler/functionObjects/sizeDistribution/sizeDistribution.H b/src/functionObjects/phaseSystems/sizeDistribution/sizeDistribution.H
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/functionObjects/sizeDistribution/sizeDistribution.H
rename to src/functionObjects/phaseSystems/sizeDistribution/sizeDistribution.H
diff --git a/src/phaseSystemModels/Allwmake b/src/phaseSystemModels/Allwmake
index 64e3943b1db28eef3b4bda922e14ed14ab98f1b9..02f197f250218530d4e846e9abdd0fc1449204c9 100755
--- a/src/phaseSystemModels/Allwmake
+++ b/src/phaseSystemModels/Allwmake
@@ -3,9 +3,9 @@ cd "${0%/*}" || exit                                # Run from this directory
 . ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
 #------------------------------------------------------------------------------
 
+reactingEuler/Allwmake $targetType $*
 multiphaseInter/Allwmake $targetType $*
 multiphaseEuler/Allwmake $targetType $*
-reactingEuler/Allwmake $targetType $*
 twoPhaseEuler/Allwmake $targetType $*
 twoPhaseInter/Allwmake $targetType $*
 
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/Make/files b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/Make/files
index 159e04c95099f20fd39fcdd00b711c3c3bba8dd9..2ddef9fb4c9342179bc8921bd417aaf34348e50a 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/Make/files
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/Make/files
@@ -7,7 +7,6 @@ $(diameter)/diameterModel/diameterModel.C
 $(diameter)/constantDiameter/constantDiameter.C
 $(diameter)/isothermalDiameter/isothermalDiameter.C
 
-
 drag = interfacialModels/dragModels
 $(drag)/dragModel/dragModel.C
 $(drag)/Ergun/Ergun.C
@@ -24,7 +23,7 @@ heatTransfer = interfacialModels/heatTransferModels
 $(heatTransfer)/heatTransferModel/heatTransferModel.C
 $(heatTransfer)/RanzMarshall/RanzMarshall.C
 
+derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.C
 
-alphaContactAngle/alphaContactAngleFvPatchScalarField.C
 
 LIB = $(FOAM_LIBBIN)/libmultiphaseSystem
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.C
similarity index 97%
rename from src/phaseSystemModels/multiphaseEuler/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.C
rename to src/phaseSystemModels/multiphaseEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.C
index 77b08137bcb16fcdfc86e189e0716c8164bce757..b1b875062568db26f46923d17d3ae02c0c4eabda 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -33,6 +34,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 
 alphaContactAngleFvPatchScalarField::interfaceThetaProps::interfaceThetaProps
 (
@@ -142,6 +145,7 @@ makePatchTypeField
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // ************************************************************************* //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
similarity index 95%
rename from src/phaseSystemModels/multiphaseEuler/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
rename to src/phaseSystemModels/multiphaseEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
index 929c8ab78a636fb4fc10d9a23556e7845e7a2f25..a9fac35aa3ed79f5d48363cc37068be84cba1a09 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2012 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -35,8 +36,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef alphaContactAngleFvPatchScalarField_H
-#define alphaContactAngleFvPatchScalarField_H
+#ifndef Foam_multiphaseEuler_alphaContactAngleFvPatchScalarField_H
+#define Foam_multiphaseEuler_alphaContactAngleFvPatchScalarField_H
 
 #include "zeroGradientFvPatchFields.H"
 #include "multiphaseSystem.H"
@@ -45,6 +46,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 
 /*---------------------------------------------------------------------------*\
                   Class alphaContactAngleFvPatch Declaration
@@ -134,7 +137,7 @@ private:
 public:
 
     //- Runtime type information
-    TypeName("alphaContactAngle");
+    TypeName("multiphaseEuler::alphaContactAngle");
 
 
     // Constructors
@@ -208,6 +211,7 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.C
index f1136346d64a53f38e8dd9a2cec1d8b65c1b6447..d3667c5204dd6d8aada4066069085768afc1784c 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2015 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace diameterModels
 {
     defineTypeNameAndDebug(constant, 0);
@@ -44,11 +47,12 @@ namespace diameterModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::diameterModels::constant::constant
+Foam::multiphaseEuler::diameterModels::constant::constant
 (
     const dictionary& dict,
     const phaseModel& phase
@@ -61,7 +65,8 @@ Foam::diameterModels::constant::constant
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::diameterModels::constant::d() const
+Foam::tmp<Foam::volScalarField>
+Foam::multiphaseEuler::diameterModels::constant::d() const
 {
     return tmp<Foam::volScalarField>
     (
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.H
index 27cb0482ee83ab247b6ebce4ffa2d2a8f6fd1530..bd7fefc05b07cf70f7bb725058d99630c839a1f9 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/constantDiameter/constantDiameter.H
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2013 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -25,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::diameterModels::constant
+    Foam::multiphaseEuler::diameterModels::constant
 
 Description
     Constant dispersed-phase particle diameter model.
@@ -35,8 +35,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef diameterModels_constant_H
-#define diameterModels_constant_H
+#ifndef Foam_multiphaseEuler_diameterModels_constant_H
+#define Foam_multiphaseEuler_diameterModels_constant_H
 
 #include "diameterModel.H"
 
@@ -44,6 +44,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace diameterModels
 {
 
@@ -90,6 +92,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace diameterModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/diameterModel/diameterModel.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/diameterModel/diameterModel.C
index da3d0e8f8dd18c2a077143ded5bd8af043f2bf6f..976ec0569b3f856190f5d8e9f34d0167a6f1f781 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/diameterModel/diameterModel.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/diameterModel/diameterModel.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2013 OpenFOAM Foundation
-    Copyright (C) 2019-2021 OpenCFD Ltd.
+    Copyright (C) 2019-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -31,15 +31,18 @@ License
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
+{
+namespace multiphaseEuler
 {
     defineTypeNameAndDebug(diameterModel, 0);
     defineRunTimeSelectionTable(diameterModel, dictionary);
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::diameterModel::diameterModel
+Foam::multiphaseEuler::diameterModel::diameterModel
 (
     const dictionary& dict,
     const phaseModel& phase
@@ -52,7 +55,8 @@ Foam::diameterModel::diameterModel
 
 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::diameterModel> Foam::diameterModel::New
+Foam::autoPtr<Foam::multiphaseEuler::diameterModel>
+Foam::multiphaseEuler::diameterModel::New
 (
     const dictionary& dict,
     const phaseModel& phase
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/diameterModel/diameterModel.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/diameterModel/diameterModel.H
index cc3c9459650c843411e3ecaa6ffd17327d048a81..485cf7102169fcc01855b86879bc45793b5a6bb6 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/diameterModel/diameterModel.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/diameterModel/diameterModel.H
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2013 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -25,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::diameterModel
+    Foam::multiphaseEuler::diameterModel
 
 Description
     Abstract base-class for dispersed-phase particle diameter models.
@@ -35,8 +35,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef diameterModel_H
-#define diameterModel_H
+#ifndef Foam_multiphaseEuler_diameterModel_H
+#define Foam_multiphaseEuler_diameterModel_H
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -46,6 +46,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 
 /*---------------------------------------------------------------------------*\
                            Class diameterModel Declaration
@@ -115,6 +117,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
+} // End namespace multiphaseEuler
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.C
index cf2c79d16bc49d0ccb34ab54e3da25527888c803..fb455ea84bf1966e8adb26a5ac15e7ee3e696ac9 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2015 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace diameterModels
 {
     defineTypeNameAndDebug(isothermal, 0);
@@ -44,11 +47,12 @@ namespace diameterModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::diameterModels::isothermal::isothermal
+Foam::multiphaseEuler::diameterModels::isothermal::isothermal
 (
     const dictionary& dict,
     const phaseModel& phase
@@ -62,7 +66,8 @@ Foam::diameterModels::isothermal::isothermal
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::diameterModels::isothermal::d() const
+Foam::tmp<Foam::volScalarField>
+Foam::multiphaseEuler::diameterModels::isothermal::d() const
 {
     const volScalarField& p = phase_.U().db().lookupObject<volScalarField>
     (
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.H
index b42ef69a89db9143dd3d2a3f3548ff3f44be17ca..0a1b8e182796162996c7be78b96527a106226afa 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/diameterModels/isothermalDiameter/isothermalDiameter.H
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2013 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -25,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::diameterModels::isothermal
+    Foam::multiphaseEuler::diameterModels::isothermal
 
 Description
     Isothermal dispersed-phase particle diameter model.
@@ -35,8 +35,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef diameterModels_isothermal_H
-#define diameterModels_isothermal_H
+#ifndef Foam_multiphaseEuler_diameterModels_isothermal_H
+#define Foam_multiphaseEuler_diameterModels_isothermal_H
 
 #include "diameterModel.H"
 
@@ -44,6 +44,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace diameterModels
 {
 
@@ -93,6 +95,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace diameterModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Ergun/Ergun.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Ergun/Ergun.C
index b8efba99c6da12af150629aee5e05424b3ab729d..2253ff6af64edd2e4352219002f05eca55598dd5 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Ergun/Ergun.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Ergun/Ergun.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2012 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
     defineTypeNameAndDebug(Ergun, 0);
@@ -44,11 +47,12 @@ namespace dragModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::dragModels::Ergun::Ergun
+Foam::multiphaseEuler::dragModels::Ergun::Ergun
 (
     const dictionary& interfaceDict,
     const phaseModel& phase1,
@@ -61,13 +65,13 @@ Foam::dragModels::Ergun::Ergun
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::dragModels::Ergun::~Ergun()
+Foam::multiphaseEuler::dragModels::Ergun::~Ergun()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::dragModels::Ergun::K
+Foam::tmp<Foam::volScalarField> Foam::multiphaseEuler::dragModels::Ergun::K
 (
     const volScalarField& Ur
 ) const
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Ergun/Ergun.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Ergun/Ergun.H
index 49db4bb014289f361d7d6abf0b33d94f137d04c9..a23dfe175b941e6dfe648d1d161d1b816f7bb1c6 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Ergun/Ergun.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Ergun/Ergun.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::dragModels::Ergun
+    Foam::multiphaseEuler::dragModels::Ergun
 
 Description
     H, Enwald, E. Peirano, A-E Almstedt
@@ -37,8 +38,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef Ergun_H
-#define Ergun_H
+#ifndef Foam_multiphaseEuler_dragModels_Ergun_H
+#define Foam_multiphaseEuler_dragModels_Ergun_H
 
 #include "dragModel.H"
 
@@ -46,6 +47,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
 
@@ -88,6 +91,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace dragModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Gibilaro/Gibilaro.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Gibilaro/Gibilaro.C
index beaac85a24f4cef3d3811dba4c4353ebf6d0c7d8..4adb0956ac990bb9659ba95ace59a4024230887b 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Gibilaro/Gibilaro.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Gibilaro/Gibilaro.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2012 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
     defineTypeNameAndDebug(Gibilaro, 0);
@@ -44,11 +47,12 @@ namespace dragModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::dragModels::Gibilaro::Gibilaro
+Foam::multiphaseEuler::dragModels::Gibilaro::Gibilaro
 (
     const dictionary& interfaceDict,
     const phaseModel& phase1,
@@ -61,13 +65,13 @@ Foam::dragModels::Gibilaro::Gibilaro
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::dragModels::Gibilaro::~Gibilaro()
+Foam::multiphaseEuler::dragModels::Gibilaro::~Gibilaro()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::dragModels::Gibilaro::K
+Foam::tmp<Foam::volScalarField> Foam::multiphaseEuler::dragModels::Gibilaro::K
 (
     const volScalarField& Ur
 ) const
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Gibilaro/Gibilaro.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Gibilaro/Gibilaro.H
index acd0cc6880750a6a1efaddb06308404c4222e755..135af0f960b30f528ad377c893530aaf8a404973 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Gibilaro/Gibilaro.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/Gibilaro/Gibilaro.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::dragModels::Gibilaro
+    Foam::multiphaseEuler::dragModels::Gibilaro
 
 Description
     H, Enwald, E. Peirano, A-E Almstedt
@@ -37,8 +38,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef Gibilaro_H
-#define Gibilaro_H
+#ifndef Foam_multiphaseEuler_dragModels_Gibilaro_H
+#define Foam_multiphaseEuler_dragModels_Gibilaro_H
 
 #include "dragModel.H"
 
@@ -46,6 +47,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
 
@@ -88,6 +91,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace dragModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C
index fed9000c4db5da63aacc7d1ac0fc9d7921136827..c1193fdd28edbbd396903f118b6ce487272696e4 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2017 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
     defineTypeNameAndDebug(GidaspowErgunWenYu, 0);
@@ -44,11 +47,12 @@ namespace dragModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::dragModels::GidaspowErgunWenYu::GidaspowErgunWenYu
+Foam::multiphaseEuler::dragModels::GidaspowErgunWenYu::GidaspowErgunWenYu
 (
     const dictionary& interfaceDict,
     const phaseModel& phase1,
@@ -61,13 +65,14 @@ Foam::dragModels::GidaspowErgunWenYu::GidaspowErgunWenYu
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::dragModels::GidaspowErgunWenYu::~GidaspowErgunWenYu()
+Foam::multiphaseEuler::dragModels::GidaspowErgunWenYu::~GidaspowErgunWenYu()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowErgunWenYu::K
+Foam::tmp<Foam::volScalarField>
+Foam::multiphaseEuler::dragModels::GidaspowErgunWenYu::K
 (
     const volScalarField& Ur
 ) const
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.H
index 48d2c41203819e2304b67cbb08874193673b4c33..3f5285a1e47cfcf52fe41237c4a117702236481e 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::dragModels::GidaspowErgunWenYu
+    Foam::multiphaseEuler::dragModels::GidaspowErgunWenYu
 
 Description
     D. Gidaspow, Multiphase flow and fluidization,
@@ -35,8 +36,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef GidaspowErgunWenYu_H
-#define GidaspowErgunWenYu_H
+#ifndef Foam_multiphaseEuler_dragModels_GidaspowErgunWenYu_H
+#define Foam_multiphaseEuler_dragModels_GidaspowErgunWenYu_H
 
 #include "dragModel.H"
 
@@ -44,6 +45,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
 
@@ -86,6 +89,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace dragModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C
index a9c20ab92152db7bfae4974fcf67699c712534d5..db2659ade9e8c1b82abe7f9d2922a8be9afe25ef 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2017 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
     defineTypeNameAndDebug(GidaspowSchillerNaumann, 0);
@@ -44,11 +47,13 @@ namespace dragModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::dragModels::GidaspowSchillerNaumann::GidaspowSchillerNaumann
+Foam::multiphaseEuler::dragModels::GidaspowSchillerNaumann::
+GidaspowSchillerNaumann
 (
     const dictionary& interfaceDict,
     const phaseModel& phase1,
@@ -61,13 +66,15 @@ Foam::dragModels::GidaspowSchillerNaumann::GidaspowSchillerNaumann
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::dragModels::GidaspowSchillerNaumann::~GidaspowSchillerNaumann()
+Foam::multiphaseEuler::dragModels::GidaspowSchillerNaumann::
+~GidaspowSchillerNaumann()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowSchillerNaumann::K
+Foam::tmp<Foam::volScalarField>
+Foam::multiphaseEuler::dragModels::GidaspowSchillerNaumann::K
 (
     const volScalarField& Ur
 ) const
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.H
index 5f3d55ddbca3145e37216751698bade0b83dc81f..24af98b75078eed5f4e365e1c52ba86afa889856 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::dragModels::GidaspowSchillerNaumann
+    Foam::multiphaseEuler::dragModels::GidaspowSchillerNaumann
 
 Description
     H, Enwald, E. Peirano, A-E Almstedt
@@ -44,8 +45,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef GidaspowSchillerNaumann_H
-#define GidaspowSchillerNaumann_H
+#ifndef Foam_multiphaseEuler_dragModels_GidaspowSchillerNaumann_H
+#define Foam_multiphaseEuler_dragModels_GidaspowSchillerNaumann_H
 
 #include "dragModel.H"
 
@@ -53,6 +54,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
 
@@ -95,6 +98,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace dragModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C
index 09a3545cee4d48bff1ca49553b4354fb07fc598c..0190f746f8e55489406591de7ef7491b9db5013d 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2017 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
     defineTypeNameAndDebug(SchillerNaumann, 0);
@@ -44,11 +47,12 @@ namespace dragModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::dragModels::SchillerNaumann::SchillerNaumann
+Foam::multiphaseEuler::dragModels::SchillerNaumann::SchillerNaumann
 (
     const dictionary& interfaceDict,
     const phaseModel& phase1,
@@ -61,13 +65,14 @@ Foam::dragModels::SchillerNaumann::SchillerNaumann
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::dragModels::SchillerNaumann::~SchillerNaumann()
+Foam::multiphaseEuler::dragModels::SchillerNaumann::~SchillerNaumann()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::dragModels::SchillerNaumann::K
+Foam::tmp<Foam::volScalarField>
+Foam::multiphaseEuler::dragModels::SchillerNaumann::K
 (
     const volScalarField& Ur
 ) const
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.H
index 61859f40705aee309cfb3794f7740fd89bbb2357..f11ac060951fc00e6ca9d2815a499ee74d795a5c 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SchillerNaumann/SchillerNaumann.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::dragModels::SchillerNaumann
+    Foam::multiphaseEuler::dragModels::SchillerNaumann
 
 Description
 
@@ -33,8 +34,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef SchillerNaumann_H
-#define SchillerNaumann_H
+#ifndef Foam_multiphaseEuler_dragModels_SchillerNaumann_H
+#define Foam_multiphaseEuler_dragModels_SchillerNaumann_H
 
 #include "dragModel.H"
 
@@ -42,6 +43,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
 
@@ -84,6 +87,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace dragModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.C
index b0646777c178b4894fc963d8e7030d3674cdced2..8c29ad32b19ca722c142cd1d72f51e19e202afdd 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2017 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
     defineTypeNameAndDebug(SyamlalOBrien, 0);
@@ -44,11 +47,12 @@ namespace dragModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::dragModels::SyamlalOBrien::SyamlalOBrien
+Foam::multiphaseEuler::dragModels::SyamlalOBrien::SyamlalOBrien
 (
     const dictionary& interfaceDict,
     const phaseModel& phase1,
@@ -61,13 +65,14 @@ Foam::dragModels::SyamlalOBrien::SyamlalOBrien
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::dragModels::SyamlalOBrien::~SyamlalOBrien()
+Foam::multiphaseEuler::dragModels::SyamlalOBrien::~SyamlalOBrien()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::dragModels::SyamlalOBrien::K
+Foam::tmp<Foam::volScalarField>
+Foam::multiphaseEuler::dragModels::SyamlalOBrien::K
 (
     const volScalarField& Ur
 ) const
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.H
index bd4b714c33bed487589f3bc1a891112cf3d6bad9..34067eb45e534702ab91f050733d2dcdc75da050 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/SyamlalOBrien/SyamlalOBrien.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::dragModels::SyamlalOBrien
+    Foam::multiphaseEuler::dragModels::SyamlalOBrien
 
 Description
     Syamlal, M., Rogers, W. and O'Brien, T. J. (1993) MFIX documentation,
@@ -36,8 +37,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef SyamlalOBrien_H
-#define SyamlalOBrien_H
+#ifndef Foam_multiphaseEuler_dragModels_SyamlalOBrien_H
+#define Foam_multiphaseEuler_dragModels_SyamlalOBrien_H
 
 #include "dragModel.H"
 
@@ -45,6 +46,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
 
@@ -87,6 +90,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace dragModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/WenYu/WenYu.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/WenYu/WenYu.C
index 1ba93914a7dfe53186de739878f298146dd74db4..4b6722a8e6c9816797afed284111d0e2db9a5828 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/WenYu/WenYu.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/WenYu/WenYu.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2017 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
     defineTypeNameAndDebug(WenYu, 0);
@@ -44,11 +47,12 @@ namespace dragModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::dragModels::WenYu::WenYu
+Foam::multiphaseEuler::dragModels::WenYu::WenYu
 (
     const dictionary& interfaceDict,
     const phaseModel& phase1,
@@ -61,13 +65,13 @@ Foam::dragModels::WenYu::WenYu
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::dragModels::WenYu::~WenYu()
+Foam::multiphaseEuler::dragModels::WenYu::~WenYu()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::dragModels::WenYu::K
+Foam::tmp<Foam::volScalarField> Foam::multiphaseEuler::dragModels::WenYu::K
 (
     const volScalarField& Ur
 ) const
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/WenYu/WenYu.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/WenYu/WenYu.H
index 2b60eeaf5fd8dbe0ac43fcd45581485bb890de89..a5aa3c3802c3e0952faffcdc78b0c104a4afc3e1 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/WenYu/WenYu.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/WenYu/WenYu.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::dragModels::WenYu
+    Foam::multiphaseEuler::dragModels::WenYu
 
 Description
     H, Enwald, E. Peirano, A-E Almstedt
@@ -47,8 +48,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef WenYu_H
-#define WenYu_H
+#ifndef Foam_multiphaseEuler_dragModels_WenYu_H
+#define Foam_multiphaseEuler_dragModels_WenYu_H
 
 #include "dragModel.H"
 
@@ -56,6 +57,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
 
@@ -98,6 +101,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace dragModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/blended/blended.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/blended/blended.C
index 2a96058f9e1a0fd87d281b9473fe5ad5fe115379..c54bf672b8f0ab984f56d0418074b96cde972f6c 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/blended/blended.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/blended/blended.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -33,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
     defineTypeNameAndDebug(blended, 0);
@@ -45,11 +47,12 @@ namespace dragModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::dragModels::blended::blended
+Foam::multiphaseEuler::dragModels::blended::blended
 (
     const dictionary& interfaceDict,
     const phaseModel& phase1,
@@ -64,7 +67,7 @@ Foam::dragModels::blended::blended
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::dragModels::blended::K
+Foam::tmp<Foam::volScalarField> Foam::multiphaseEuler::dragModels::blended::K
 (
     const volScalarField& Ur
 ) const
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/blended/blended.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/blended/blended.H
index 2557bab0e63bd1af98730210a9b571465e5a5cb1..aa39a186639ff9ba8e1f15c8dcb450fe6806810e 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/blended/blended.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/blended/blended.H
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -25,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::dragModels::blended
+    Foam::multiphaseEuler::dragModels::blended
 
 Description
     Blends two drag models based on the phase fractions to handle
@@ -36,8 +36,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef blended_H
-#define blended_H
+#ifndef Foam_multiphaseEuler_dragModels_blended_H
+#define Foam_multiphaseEuler_dragModels_blended_H
 
 #include "dragModel.H"
 
@@ -45,6 +45,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
 
@@ -93,6 +95,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace dragModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/dragModel/dragModel.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/dragModel/dragModel.C
index 026152379b8eeca17d9b202ca9f7d46da55705d4..29ad59478c615c31711bacee944f6692082a6b3a 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/dragModel/dragModel.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/dragModel/dragModel.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
-    Copyright (C) 2019-2021 OpenCFD Ltd.
+    Copyright (C) 2019-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -31,15 +31,18 @@ License
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
+{
+namespace multiphaseEuler
 {
     defineTypeNameAndDebug(dragModel, 0);
     defineRunTimeSelectionTable(dragModel, dictionary);
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::dragModel::dragModel
+Foam::multiphaseEuler::dragModel::dragModel
 (
     const dictionary& dict,
     const phaseModel& phase1,
@@ -56,7 +59,8 @@ Foam::dragModel::dragModel
 
 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::dragModel> Foam::dragModel::New
+Foam::autoPtr<Foam::multiphaseEuler::dragModel>
+Foam::multiphaseEuler::dragModel::New
 (
     const dictionary& dict,
     const phaseModel& phase1,
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/dragModel/dragModel.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/dragModel/dragModel.H
index a3b2365e5f8c3cca87eff00a2a46c3dad8124f34..54c21a876d99b4fc4f846b377a1954c4e808533b 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/dragModel/dragModel.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/dragModel/dragModel.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2015 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::dragModel
+    Foam::multiphaseEuler::dragModel
 
 Description
 
@@ -33,8 +34,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef dragModel_H
-#define dragModel_H
+#ifndef Foam_multiphaseEuler_dragModel_H
+#define Foam_multiphaseEuler_dragModel_H
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -44,6 +45,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 
 /*---------------------------------------------------------------------------*\
                            Class dragModel Declaration
@@ -144,6 +147,7 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/interface/interface.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/interface/interface.C
index f26752e827bf6c551fa469be8363ad5cbcf2e281..24f6c4afb2baf6117fdf155ee138217b3827d175 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/interface/interface.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/interface/interface.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -33,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
     defineTypeNameAndDebug(interface, 0);
@@ -45,11 +47,12 @@ namespace dragModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::dragModels::interface::interface
+Foam::multiphaseEuler::dragModels::interface::interface
 (
     const dictionary& interfaceDict,
     const phaseModel& phase1,
@@ -62,7 +65,7 @@ Foam::dragModels::interface::interface
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::dragModels::interface::K
+Foam::tmp<Foam::volScalarField> Foam::multiphaseEuler::dragModels::interface::K
 (
     const volScalarField& Ur
 ) const
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/interface/interface.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/interface/interface.H
index 097a81b7928927987f15cdc469b1b0654219c8ab..0687db8b574f400da64ec161369248eee6edc717 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/interface/interface.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/dragModels/interface/interface.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::dragModels::interface
+    Foam::multiphaseEuler::dragModels::interface
 
 Description
     Drag between phase separated by a VoF resolved interface.
@@ -34,8 +35,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef interface_H
-#define interface_H
+#ifndef Foam_multiphaseEuler_dragModels_interface_H
+#define Foam_multiphaseEuler_dragModels_interface_H
 
 #include "dragModel.H"
 
@@ -43,6 +44,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace dragModels
 {
 
@@ -85,6 +88,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace dragModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C
index 82a5be7b0a1fb6a5c2435b503c0015c64df55441..c8b1c26167251ce7206e00833575919201ed087a 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2012 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,6 +33,8 @@ License
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace heatTransferModels
 {
     defineTypeNameAndDebug(RanzMarshall, 0);
@@ -44,11 +47,12 @@ namespace heatTransferModels
     );
 }
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::heatTransferModels::RanzMarshall::RanzMarshall
+Foam::multiphaseEuler::heatTransferModels::RanzMarshall::RanzMarshall
 (
     const dictionary& interfaceDict,
     const volScalarField& alpha1,
@@ -62,13 +66,14 @@ Foam::heatTransferModels::RanzMarshall::RanzMarshall
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::heatTransferModels::RanzMarshall::~RanzMarshall()
+Foam::multiphaseEuler::heatTransferModels::RanzMarshall::~RanzMarshall()
 {}
 
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::heatTransferModels::RanzMarshall::K
+Foam::tmp<Foam::volScalarField>
+Foam::multiphaseEuler::heatTransferModels::RanzMarshall::K
 (
     const volScalarField& Ur
 ) const
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H
index 8c88fbc33c39ca8449aa8ad62909c8425c4215b2..85dbef35808be798419914d03eed372da996afb2 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2012 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::heatTransferModels::RanzMarshall
+    Foam::multiphaseEuler::heatTransferModels::RanzMarshall
 
 Description
 
@@ -33,8 +34,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef RanzMarshall_H
-#define RanzMarshall_H
+#ifndef Foam_multiphaseEuler_heatTransferModels_RanzMarshall_H
+#define Foam_multiphaseEuler_heatTransferModels_RanzMarshall_H
 
 #include "heatTransferModel.H"
 
@@ -42,6 +43,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 namespace heatTransferModels
 {
 
@@ -85,6 +88,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace heatTransferModels
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C
index 44b8e6928d928c8e474b57eae0e4e2a428659265..4a310001b77084106591180cea8afb4c4ce9f490 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2012 OpenFOAM Foundation
-    Copyright (C) 2019-2021 OpenCFD Ltd.
+    Copyright (C) 2019-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -31,15 +31,18 @@ License
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
+{
+namespace multiphaseEuler
 {
     defineTypeNameAndDebug(heatTransferModel, 0);
     defineRunTimeSelectionTable(heatTransferModel, dictionary);
 }
+}
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::heatTransferModel::heatTransferModel
+Foam::multiphaseEuler::heatTransferModel::heatTransferModel
 (
     const dictionary& dict,
     const volScalarField& alpha1,
@@ -56,7 +59,8 @@ Foam::heatTransferModel::heatTransferModel
 
 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::heatTransferModel> Foam::heatTransferModel::New
+Foam::autoPtr<Foam::multiphaseEuler::heatTransferModel>
+Foam::multiphaseEuler::heatTransferModel::New
 (
     const dictionary& dict,
     const volScalarField& alpha1,
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H
index fc94fb69d0f94a6f7e67b98aeec2585819f0edf5..f1e8cb7c278d0b5d289e77d656c1e32f81d2a011 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/interfacialModels/heatTransferModels/heatTransferModel/heatTransferModel.H
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2015 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -25,7 +25,7 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::heatTransferModel
+    Foam::multiphaseEuler::heatTransferModel
 
 Description
 
@@ -35,8 +35,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef heatTransferModel_H
-#define heatTransferModel_H
+#ifndef Foam_multiphaseEuler_heatTransferModel_H
+#define Foam_multiphaseEuler_heatTransferModel_H
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -46,6 +46,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace multiphaseEuler
+{
 
 /*---------------------------------------------------------------------------*\
                            Class heatTransferModel Declaration
@@ -129,6 +131,7 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+} // End namespace multiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.C
index 4af3fb946791a35ba31f80ba362d19c21afbb31a..7d17da77eb1adb15a79e7e07e6ca82ff14e141d5 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2018 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -251,10 +251,22 @@ void Foam::multiphaseSystem::correctContactAngle
 
     forAll(boundary, patchi)
     {
-        if (isA<alphaContactAngleFvPatchScalarField>(gbf[patchi]))
+        if
+        (
+            isA<multiphaseEuler::alphaContactAngleFvPatchScalarField>
+            (
+                gbf[patchi]
+            )
+        )
         {
-            const alphaContactAngleFvPatchScalarField& acap =
-                refCast<const alphaContactAngleFvPatchScalarField>(gbf[patchi]);
+            const auto& acap =
+                refCast
+                <
+                    const multiphaseEuler::alphaContactAngleFvPatchScalarField
+                >
+                (
+                    gbf[patchi]
+                );
 
             vectorField& nHatPatch = nHatb[patchi];
 
@@ -414,7 +426,7 @@ Foam::multiphaseSystem::multiphaseSystem
         dragModels_.set
         (
             iter.key(),
-            dragModel::New
+            multiphaseEuler::dragModel::New
             (
                 iter(),
                 *phases_.lookup(iter.key().first()),
@@ -645,7 +657,7 @@ Foam::multiphaseSystem::dragCoeffs() const
 
     forAllConstIters(dragModels_, iter)
     {
-        const dragModel& dm = *iter();
+        const multiphaseEuler::dragModel& dm = *iter();
 
         volScalarField* Kptr =
             (
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.H
index 632b2bdeb03b1cb873d2ead00a55894fa06a50b0..aa571691497b48da741341a740cefac568f8ad89 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.H
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2016 OpenFOAM Foundation
-    Copyright (C) 2019-2021 OpenCFD Ltd.
+    Copyright (C) 2019-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -42,8 +42,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef multiphaseSystem_H
-#define multiphaseSystem_H
+#ifndef Foam_multiphaseEuler_multiphaseSystem_H
+#define Foam_multiphaseEuler_multiphaseSystem_H
 
 #include "incompressible/transportModel/transportModel.H"
 #include "IOdictionary.H"
@@ -121,8 +121,11 @@ public:
     };
 
 
-    typedef HashPtrTable<dragModel, interfacePair, interfacePair::symmHash>
-        dragModelTable;
+    typedef
+        HashPtrTable
+        <
+            multiphaseEuler::dragModel, interfacePair, interfacePair::symmHash
+        > dragModelTable;
 
     typedef HashPtrTable<volScalarField, interfacePair, interfacePair::symmHash>
         dragCoeffFields;
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/phaseModel/phaseModel.C b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/phaseModel/phaseModel.C
index 4b5af03e9fa0d8ab004cbccd216457d67a74f651..efe44cab08da08c426675675b554ef20d003eec3 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/phaseModel/phaseModel.C
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/phaseModel/phaseModel.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2017 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -188,7 +189,7 @@ Foam::phaseModel::phaseModel
         );
     }
 
-    dPtr_ = diameterModel::New
+    dPtr_ = multiphaseEuler::diameterModel::New
     (
         phaseDict_,
         *this
diff --git a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/phaseModel/phaseModel.H b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/phaseModel/phaseModel.H
index 4da109e736da2c356eaa4d7302f9fff170cad6c9..66379ce2908483e0d48eae2129f9d0bc43be644e 100644
--- a/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/phaseModel/phaseModel.H
+++ b/src/phaseSystemModels/multiphaseEuler/multiphaseSystem/phaseModel/phaseModel.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2017 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -31,8 +32,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef phaseModel_H
-#define phaseModel_H
+#ifndef Foam_multiphaseEuler_phaseModel_H
+#define Foam_multiphaseEuler_phaseModel_H
 
 #include "dictionary.H"
 #include "dictionaryEntry.H"
@@ -45,8 +46,11 @@ SourceFiles
 namespace Foam
 {
 
+namespace multiphaseEuler
+{
 // Forward declarations
 class diameterModel;
+}
 
 /*---------------------------------------------------------------------------*\
                            Class phaseModel Declaration
@@ -88,7 +92,7 @@ class phaseModel
         autoPtr<surfaceScalarField> phiPtr_;
 
         //- Diameter model
-        autoPtr<diameterModel> dPtr_;
+        autoPtr<multiphaseEuler::diameterModel> dPtr_;
 
 
 public:
diff --git a/src/phaseSystemModels/multiphaseInter/compressibleMultiPhaseTurbulenceModels/compressibleMultiPhaseTurbulenceModels.C b/src/phaseSystemModels/multiphaseInter/compressibleMultiPhaseTurbulenceModels/compressibleMultiPhaseTurbulenceModels.C
index a53f543289a0da8ae73e9fd9aab3323664c91bc3..b5abbaa5f2ddbce0490d2b6f35da059d1052858c 100644
--- a/src/phaseSystemModels/multiphaseInter/compressibleMultiPhaseTurbulenceModels/compressibleMultiPhaseTurbulenceModels.C
+++ b/src/phaseSystemModels/multiphaseInter/compressibleMultiPhaseTurbulenceModels/compressibleMultiPhaseTurbulenceModels.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd
+    Copyright (C) 2017-2022 OpenCFD Ltd
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -37,6 +37,8 @@ License
 #include "RASModel.H"
 #include "LESModel.H"
 
+using namespace Foam::multiphaseInter;
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 defineTurbulenceModelTypes
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModel.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModel.C
index 6fef82db2b43f33129be3583bbd01cd21405b8a9..baf820ab43526bc8c4f568a497097f82ffcff733 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModel.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModel.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -33,6 +33,8 @@ License
 #include "rhoThermo.H"
 #include "zeroGradientFvPatchFields.H"
 
+using namespace Foam::multiphaseInter;
+
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
 template<class Thermo, class OtherThermo>
@@ -211,12 +213,58 @@ Foam::InterfaceCompositionModel<Thermo, OtherThermo>::InterfaceCompositionModel
 
 template<class Thermo, class OtherThermo>
 Foam::tmp<Foam::volScalarField>
-Foam::InterfaceCompositionModel<Thermo, OtherThermo>::D
+Foam::InterfaceCompositionModel<Thermo, OtherThermo>::Dto
 (
     const word& speciesName
 ) const
 {
-    const typename Thermo::thermoType& fromThermo =
+    const typename OtherThermo::thermoType& toThermoType =
+        getLocalThermo
+        (
+            speciesName,
+            toThermo_
+        );
+
+    const volScalarField& p = toThermo_.p();
+
+    const volScalarField& T = toThermo_.T();
+
+    auto tmpD = tmp<volScalarField>::New
+    (
+        IOobject
+        (
+            IOobject::groupName("D", pair_.name()),
+            p.time().timeName(),
+            p.mesh()
+        ),
+        p.mesh(),
+        dimensionedScalar(dimArea/dimTime, Zero)
+    );
+
+    auto& D = tmpD.ref();
+
+    forAll(p, celli)
+    {
+        D[celli] =
+            toThermoType.alphah(p[celli], T[celli])
+           /toThermoType.rho(p[celli], T[celli]);
+    }
+
+    D /= Le_;
+    D.correctBoundaryConditions();
+
+    return tmpD;
+}
+
+
+template<class Thermo, class OtherThermo>
+Foam::tmp<Foam::volScalarField>
+Foam::InterfaceCompositionModel<Thermo, OtherThermo>::Dfrom
+(
+    const word& speciesName
+) const
+{
+    const typename Thermo::thermoType& fromThermoType =
         getLocalThermo
         (
             speciesName,
@@ -241,11 +289,11 @@ Foam::InterfaceCompositionModel<Thermo, OtherThermo>::D
 
     auto& D = tmpD.ref();
 
-    forAll(p, cellI)
+    forAll(p, celli)
     {
-        D[cellI] =
-            fromThermo.alphah(p[cellI], T[cellI])
-           /fromThermo.rho(p[cellI], T[cellI]);
+        D[celli] =
+            fromThermoType.alphah(p[celli], T[celli])
+           /fromThermoType.rho(p[celli], T[celli]);
     }
 
     D /= Le_;
@@ -286,9 +334,9 @@ Foam::InterfaceCompositionModel<Thermo, OtherThermo>::L
     auto& L = tmpL.ref();
 
     // from Thermo (from) to Thermo (to)
-    forAll(p, cellI)
+    forAll(p, celli)
     {
-        L[cellI] = fromThermo.Hc() - toThermo.Hc();
+        L[celli] = fromThermo.Hc() - toThermo.Hc();
     }
 
     L.correctBoundaryConditions();
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModel.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModel.H
index 8f70f06ed5f5be65893e0a1dcba8b90e7bc03624..0e3171b3b39703637f2fea98410aa85447b93194 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModel.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModel.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -45,6 +45,8 @@ SourceFiles
 namespace Foam
 {
 
+using namespace multiphaseInter;
+
 // Forward Declarations
 class phaseModel;
 class phasePair;
@@ -132,7 +134,7 @@ public:
     InterfaceCompositionModel(const dictionary& dict, const phasePair& pair);
 
     //- Destructor
-    ~InterfaceCompositionModel() = default;
+    virtual ~InterfaceCompositionModel() = default;
 
 
     // Member Functions
@@ -151,12 +153,18 @@ public:
             const volScalarField& Tf
         ) const;
 
-        //- Mass diffusivity of the local thermo
-        virtual tmp<volScalarField> D
+        //- Specie mass diffusivity for pure mixture
+        virtual tmp<volScalarField> Dfrom
         (
             const word& speciesName
         ) const;
 
+        //- Specie mass diffusivity for specie in a multicomponent
+        virtual tmp<volScalarField> Dto
+        (
+             const word& speciesName
+        ) const;
+
         //- Latent heat (to - from)(thermo - otherThermo)
         virtual tmp<volScalarField> L
         (
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModels.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModels.C
index cc18d3681cf35525e7ea18362129f29b6930fa74..980f5e087372cc35b1c1ecc6d33eb82dde494752 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModels.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/InterfaceCompositionModel/InterfaceCompositionModels.C
@@ -52,6 +52,7 @@ License
 #include "Lee.H"
 #include "interfaceHeatResistance.H"
 #include "interfaceOxideRate.H"
+#include "diffusionGasEvaporation.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -726,6 +727,39 @@ namespace Foam
             pureMixture,
             constRhoHThermoPhysics
         );
+
+
+    // diffusionGasEvaporation model definitions
+
+        // From pure liquid (rhoConst) to a multi-component gas incomp phase
+        makeInterfaceContSpecieMixtureType
+        (
+            diffusionGasEvaporation,
+            heRhoThermo,
+            rhoThermo,
+            pureMixture,
+            constRhoHThermoPhysics,
+            heRhoThermo,
+            rhoReactionThermo,
+            multiComponentMixture,
+            constIncompressibleGasHThermoPhysics
+        );
+
+
+        // From pure liquid (BoussinesqFluid) to a multi-component gas incomp
+        // phase
+        makeInterfaceContSpecieMixtureType
+        (
+            diffusionGasEvaporation,
+            heRhoThermo,
+            rhoThermo,
+            pureMixture,
+            BoussinesqFluidEThermoPhysics,
+            heRhoThermo,
+            rhoReactionThermo,
+            multiComponentMixture,
+            constIncompressibleGasHThermoPhysics
+        );
 }
 
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/Make/files b/src/phaseSystemModels/multiphaseInter/phasesSystem/Make/files
index e7b4689ac9c197768aae71d92784f9573cb1280b..304b0439c431b33b98039f47893b419e9d8bca98 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/Make/files
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/Make/files
@@ -5,7 +5,7 @@ phasePair/phasePair.C
 phasePair/phasePairKey.C
 phasePair/orderedPhasePair.C
 
-phaseSystem/phaseSystem.C
+multiphaseInterSystem/multiphaseInterSystem.C
 
 multiphaseSystem/multiphaseSystem.C
 multiphaseSystem/multiphaseSystemNew.C
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/Make/options b/src/phaseSystemModels/multiphaseInter/phasesSystem/Make/options
index a4d673753705b652113db379396a2c63eaa16302..f17cdb10d0681df01d2472cf2db2e4649b365e08 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/Make/options
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/Make/options
@@ -1,4 +1,5 @@
 EXE_INC = \
+    -I../../reactingEuler/saturationModels/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
@@ -30,4 +31,5 @@ LIB_LIBS = \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
     -lthermophysicalProperties \
-    -lcombustionModels
+    -lcombustionModels \
+    -lsaturationModel
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/MassTransferPhaseSystem/MassTransferPhaseSystem.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/MassTransferPhaseSystem/MassTransferPhaseSystem.C
index 2f027a0de49de6e4d496a62d3f8413fe02b56b85..559fee3e63915cb5a225bf687a6b77a475a96843 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/MassTransferPhaseSystem/MassTransferPhaseSystem.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/MassTransferPhaseSystem/MassTransferPhaseSystem.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2020 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -33,6 +33,8 @@ License
 #include "volFields.H"
 #include "fundamentalConstants.H"
 
+using namespace Foam::multiphaseInter;
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 template<class BasePhaseSystem>
@@ -119,7 +121,7 @@ Foam::MassTransferPhaseSystem<BasePhaseSystem>::calculateL
 
         const word species(speciesName.substr(0, speciesName.find('.')));
 
-        L += pos(dmdtNetki)*interfacePtr->L(species, T);
+        L -= pos(dmdtNetki)*interfacePtr->L(species, T);
     }
 
     return tL;
@@ -238,7 +240,7 @@ Foam::MassTransferPhaseSystem<BasePhaseSystem>::heatTransfer
 
                     if (KSp.valid())
                     {
-                        Sp -= KSp.ref();
+                        Sp += KSp.ref();
                     }
 
                     tmp<volScalarField> KSu =
@@ -246,13 +248,13 @@ Foam::MassTransferPhaseSystem<BasePhaseSystem>::heatTransfer
 
                     if (KSu.valid())
                     {
-                        Su -= KSu.ref();
+                        Su += KSu.ref();
                     }
 
                     // If linearization is not provided used full explicit
                     if (!KSp.valid() && !KSu.valid())
                     {
-                        Su -= *dmdt_[keyik];
+                        Su += *dmdt_[keyik];
                     }
                 }
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/MassTransferPhaseSystem/MassTransferPhaseSystem.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/MassTransferPhaseSystem/MassTransferPhaseSystem.H
index 71498129f8cf3d44a891b5768ddd3ffdf4c61e3c..8a10abbad85ba6c8ec12222ea0811f33b0fac18d 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/MassTransferPhaseSystem/MassTransferPhaseSystem.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/MassTransferPhaseSystem/MassTransferPhaseSystem.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2020 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -34,10 +34,10 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef MassTransferPhaseSystem_H
-#define MassTransferPhaseSystem_H
+#ifndef Foam_multiphaseInter_MassTransferPhaseSystem_H
+#define Foam_multiphaseInter_MassTransferPhaseSystem_H
 
-#include "phaseSystem.H"
+#include "multiphaseInterSystem.H"
 #include "HashPtrTable.H"
 #include "interfaceCompositionModel.H"
 
@@ -46,6 +46,8 @@ SourceFiles
 namespace Foam
 {
 
+using namespace multiphaseInter;
+
 /*---------------------------------------------------------------------------*\
                  Class MassTransferPhaseSystem Declaration
 \*---------------------------------------------------------------------------*/
@@ -144,7 +146,7 @@ public:
         //- Calculate mass transfer for species
         virtual void massSpeciesTransfer
         (
-            const phaseModel& phase,
+            const Foam::phaseModel& phase,
             volScalarField::Internal& Su,
             volScalarField::Internal& Sp,
             const word speciesName
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/interfaceCompositionModel/interfaceCompositionModel.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/interfaceCompositionModel/interfaceCompositionModel.C
index c347594f0b1bdb5fa1114677f0e5e4c862225c97..d457dff34466ce0aa6f919be3bf961b8adb10864 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/interfaceCompositionModel/interfaceCompositionModel.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/interfaceCompositionModel/interfaceCompositionModel.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2021 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,14 +32,19 @@ License
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
+{
+namespace multiphaseInter
 {
     defineTypeNameAndDebug(interfaceCompositionModel, 0);
     defineRunTimeSelectionTable(interfaceCompositionModel, dictionary);
 }
+}
 
-
-const Foam::Enum<Foam::interfaceCompositionModel::modelVariable>
-Foam::interfaceCompositionModel::modelVariableNames_
+const Foam::Enum
+<
+    Foam::multiphaseInter::interfaceCompositionModel::modelVariable
+>
+Foam::multiphaseInter::interfaceCompositionModel::modelVariableNames_
 {
     { modelVariable::T, "temperature" },
     { modelVariable::P, "pressure" },
@@ -50,7 +55,7 @@ Foam::interfaceCompositionModel::modelVariableNames_
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::interfaceCompositionModel::interfaceCompositionModel
+Foam::multiphaseInter::interfaceCompositionModel::interfaceCompositionModel
 (
     const dictionary& dict,
     const phasePair& pair
@@ -74,8 +79,8 @@ Foam::interfaceCompositionModel::interfaceCompositionModel
 
 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::interfaceCompositionModel>
-Foam::interfaceCompositionModel::New
+Foam::autoPtr<Foam::multiphaseInter::interfaceCompositionModel>
+Foam::multiphaseInter::interfaceCompositionModel::New
 (
     const dictionary& dict,
     const phasePair& pair
@@ -113,31 +118,42 @@ Foam::interfaceCompositionModel::New
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-const Foam::word Foam::interfaceCompositionModel::transferSpecie() const
+const Foam::word Foam::multiphaseInter::interfaceCompositionModel
+::transferSpecie() const
 {
     return speciesName_;
 }
 
 
-const Foam::phasePair& Foam::interfaceCompositionModel::pair() const
+const Foam::phasePair& Foam::multiphaseInter::interfaceCompositionModel
+::pair() const
 {
     return pair_;
 }
 
 
-const Foam::word& Foam::interfaceCompositionModel::variable() const
+const Foam::multiphaseInterSystem& Foam::multiphaseInter
+::interfaceCompositionModel::fluid() const
+{
+    return pair().to().fluid();
+}
+
+
+const Foam::word& Foam::multiphaseInter::interfaceCompositionModel
+::variable() const
 {
     return modelVariableNames_[modelVariable_];
 }
 
 
-bool Foam::interfaceCompositionModel::includeDivU() const noexcept
+bool Foam::multiphaseInter::interfaceCompositionModel::includeDivU()
+const noexcept
 {
     return true;
 }
 
 
-bool Foam::interfaceCompositionModel::includeVolChange()
+bool Foam::multiphaseInter::interfaceCompositionModel::includeVolChange()
 {
     return includeVolChange_;
 }
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/interfaceCompositionModel/interfaceCompositionModel.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/interfaceCompositionModel/interfaceCompositionModel.H
index ae99c7040481590a491af83c8012721163a96572..3b6d64641c1fc37d0fd87ffde7c697ed9ad491f6 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/interfaceCompositionModel/interfaceCompositionModel.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/interfaceCompositionModel/interfaceCompositionModel.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2021 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -43,6 +43,7 @@ SourceFiles
 #include "dictionary.H"
 #include "Enum.H"
 #include "runTimeSelectionTables.H"
+#include "multiphaseInterSystem.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -50,9 +51,14 @@ namespace Foam
 {
 
 // Forward Declarations
-class phaseModel;
 class phasePair;
 
+namespace multiphaseInter
+{
+
+// Forward Declarations
+class phaseModel;
+
 /*---------------------------------------------------------------------------*\
                   Class interfaceCompositionModel Declaration
 \*---------------------------------------------------------------------------*/
@@ -147,6 +153,9 @@ public:
         //- The phase pair
         const phasePair& pair() const;
 
+        //- Return the multiphaseInterSystem this interface belongs to
+        const multiphaseInterSystem& fluid() const;
+
         //- Interface mass fraction
         virtual tmp<volScalarField> Yf
         (
@@ -161,12 +170,18 @@ public:
             const volScalarField& Tf
         ) const = 0;
 
-        //- Mass diffusivity
-        virtual tmp<volScalarField> D
+        //- Specie mass diffusivity for pure mixture
+        virtual tmp<volScalarField> Dfrom
         (
             const word& speciesName
         ) const = 0;
 
+        //- Specie mass diffusivity for specie in a multicomponent
+        virtual tmp<volScalarField> Dto
+        (
+             const word& speciesName
+        ) const = 0;
+
         //- Latent heat (delta Hc)
         virtual tmp<volScalarField> L
         (
@@ -212,6 +227,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
+} // End multiphaseInter
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/Lee/Lee.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/Lee/Lee.C
index b8313ea33e3eb9a0f16778257d9d45fe95e4725a..d0cde4679e2a3b2276052e3d248ebc12a5a1b79d 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/Lee/Lee.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/Lee/Lee.C
@@ -78,7 +78,7 @@ Foam::meltingEvaporationModels::Lee<Thermo, OtherThermo>::Kexp
         {
             return
             (
-               coeff*pos(Tactivate_ - refValue)
+                coeff*pos(Tactivate_ - refValue)
             );
         }
     }
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/diffusionGasEvaporation/diffusionGasEvaporation.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/diffusionGasEvaporation/diffusionGasEvaporation.C
new file mode 100644
index 0000000000000000000000000000000000000000..7a9139bc0b2a2bed8427be27a4e03256ce5de71a
--- /dev/null
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/diffusionGasEvaporation/diffusionGasEvaporation.C
@@ -0,0 +1,249 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | www.openfoam.com
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+    Copyright (C) 2022 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM 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.
+
+    OpenFOAM 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 OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "diffusionGasEvaporation.H"
+#include "constants.H"
+#include "cutCellIso.H"
+#include "volPointInterpolation.H"
+#include "fvcGrad.H"
+
+using namespace Foam::constant;
+
+// * * * * * * * * * * *  Private Member Functions * * * * * * * * * * * * * //
+
+template<class Thermo, class OtherThermo>
+void Foam::meltingEvaporationModels::
+diffusionGasEvaporation<Thermo, OtherThermo>::updateInterface
+(
+    const volScalarField& T
+)
+{
+    const fvMesh& mesh = this->mesh_;
+
+    const volScalarField& alpha = this->pair().from();
+
+    scalarField ap
+    (
+        volPointInterpolation::New(mesh).interpolate(alpha)
+    );
+
+    cutCellIso cutCell(mesh, ap);
+
+    forAll(interfaceArea_, celli)
+    {
+        const label status = cutCell.calcSubCell(celli, isoAlpha_);
+        interfaceArea_[celli] = 0;
+        if (status == 0) // cell is cut
+        {
+            interfaceArea_[celli] = mag(cutCell.faceArea())/mesh.V()[celli];
+        }
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class Thermo, class OtherThermo>
+Foam::meltingEvaporationModels::diffusionGasEvaporation<Thermo, OtherThermo>
+::diffusionGasEvaporation
+(
+    const dictionary& dict,
+    const phasePair& pair
+)
+:
+    InterfaceCompositionModel<Thermo, OtherThermo>(dict, pair),
+    saturationModelPtr_
+    (
+        saturationModel::New
+        (
+            dict.subDict("saturationPressure"),
+            this->mesh_
+        )
+    ),
+    isoAlpha_(dict.getOrDefault<scalar>("isoAlpha", 0.5)),
+    C_("C", dimless, dict),
+    Tactivate_("Tactivate", dimTemperature, 0, dict),
+    interfaceArea_
+    (
+        IOobject
+        (
+            "interfaceArea",
+            this->mesh_.time().timeName(),
+            this->mesh_,
+            IOobject::NO_READ,
+            IOobject::NO_WRITE
+        ),
+        this->mesh_,
+        dimensionedScalar(dimless/dimLength, Zero)
+    ),
+    mDotc_
+    (
+        IOobject
+        (
+            "mDotc",
+            this->mesh_.time().timeName(),
+            this->mesh_,
+            IOobject::NO_READ,
+            IOobject::AUTO_WRITE
+        ),
+        this->mesh_,
+        dimensionedScalar(dimDensity/dimTime, Zero)
+    )
+{}
+
+
+// * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
+
+template<class Thermo, class OtherThermo>
+Foam::tmp<Foam::volScalarField>
+Foam::meltingEvaporationModels::diffusionGasEvaporation<Thermo, OtherThermo>
+::Kexp
+(
+    const volScalarField& T
+)
+{
+    const fvMesh& mesh = this->mesh_;
+
+    const word speciesName(IOobject::member(this->transferSpecie()));
+
+    const typename OtherThermo::thermoType& vapourThermo =
+        this->getLocalThermo
+        (
+            speciesName,
+            this->toThermo_
+        );
+
+    const volScalarField& from = this->pair().from();
+    const volScalarField& to = this->pair().to();
+
+    const volScalarField& Yv = this->toThermo_.composition().Y(speciesName);
+
+    updateInterface(T);
+
+    auto tRhog = tmp<volScalarField>::New
+    (
+        IOobject
+        (
+            "tRhog",
+            mesh.time().timeName(),
+            mesh
+        ),
+        mesh,
+        dimensionedScalar(dimDensity, Zero)
+    );
+    volScalarField& rhog = tRhog.ref();
+    rhog = this->pair().to().rho();
+
+    auto tDvg = tmp<volScalarField>::New
+    (
+        IOobject
+        (
+            "tDvg",
+            mesh.time().timeName(),
+            mesh
+        ),
+        mesh,
+        dimensionedScalar(sqr(dimLength)/dimTime, Zero)
+    );
+    volScalarField& Dvg = tDvg.ref();
+    Dvg = this->Dto(speciesName);
+
+    tmp<volScalarField> tpSat = saturationModelPtr_->pSat(T);
+
+    const volScalarField XvSat(tpSat()/this->toThermo_.p());
+
+    const dimensionedScalar Wv("Wv", dimMass/dimMoles, vapourThermo.W());
+    const volScalarField YvSat
+    (
+        XvSat
+       *(
+           Wv/(XvSat*Wv + (1-XvSat)*this->toThermo_.W())
+        )
+    );
+
+	const volScalarField Ygm(max(from*YvSat + to*Yv, Zero));
+
+    const multiphaseInterSystem& fluid = this->fluid();
+
+    tmp<volVectorField> tnHatInt(fluid.nVolHatfv(to, from));
+
+    const volScalarField gradYgm(fvc::grad(Ygm) & tnHatInt());
+
+    mDotc_ =
+       -pos(T - Tactivate_)
+       *C_*rhog*Dvg*gradYgm*interfaceArea_
+       /(1 - YvSat);
+
+    if (debug && mesh.time().outputTime())
+    {
+        volScalarField pSat("pSat", saturationModelPtr_->pSat(T));
+        pSat.write();
+
+        volScalarField YvSat1("YvSat", YvSat);
+        YvSat1.write();
+
+        volScalarField YgmDebug("Ygm", Ygm);
+        YgmDebug.write();
+
+        volScalarField gradYgmD("gradYgm", gradYgm);
+        gradYgmD.write();
+
+        volVectorField nHatIntD("nHatInt", tnHatInt());
+        nHatIntD.write();
+    }
+
+    return tmp<volScalarField>::New(mDotc_);
+}
+
+
+template<class Thermo, class OtherThermo>
+Foam::tmp<Foam::volScalarField>
+Foam::meltingEvaporationModels::diffusionGasEvaporation<Thermo, OtherThermo>::
+KSp
+(
+    label variable,
+    const volScalarField& refValue
+)
+{
+    return nullptr;
+}
+
+
+template<class Thermo, class OtherThermo>
+Foam::tmp<Foam::volScalarField>
+Foam::meltingEvaporationModels::diffusionGasEvaporation<Thermo, OtherThermo>::
+KSu
+(
+    label variable,
+    const volScalarField& refValue
+)
+{
+    return nullptr;
+}
+
+
+//************************************************************************ //
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/diffusionGasEvaporation/diffusionGasEvaporation.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/diffusionGasEvaporation/diffusionGasEvaporation.H
new file mode 100644
index 0000000000000000000000000000000000000000..20b92296a2461426169929861ac631e879768e13
--- /dev/null
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/diffusionGasEvaporation/diffusionGasEvaporation.H
@@ -0,0 +1,228 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | www.openfoam.com
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+    Copyright (C) 2022 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM 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.
+
+    OpenFOAM 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 OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::meltingEvaporationModels::diffusionGasEvaporation
+
+Description
+    Gas diffusion based evaporation/condensation mass transfer model.
+
+    THE evaporation rate is given by:
+
+    \f[
+        \hat{m_i} =
+            - C \rho_{g} D_{v,i}
+            \frac
+            {
+                \frac{dY_{v,i}}{dn}
+            }
+            {
+                1 - \; \sum_{1}^{Nv}Y_{g,j}
+            }
+    \f]
+
+    where:
+    \vartable
+        \hat{m_i}           | mass flux rate [kg/s/m2]
+        \rho_{g}            | gas phase density
+        D_{v,i}             | diffusion coefficient
+        C                   | model coefficient
+        \frac{dY_{v,i}}{dn} | normal derivative of evaporated component
+        Y_{g,j}             | mass fraction at the surface
+    \endvartable
+
+Usage
+    Example usage:
+    \verbatim
+    massTransferModel
+    (
+        (liquid to gas)
+        {
+            // Mandatory entries
+            type                diffusionGasEvaporation;
+            species             vapour.gas;
+            C                   1;
+            saturationPressure
+            {
+                type    Antoine;
+                A       3.55;
+                B       643;
+                C       -198;
+            }
+
+            // Optional entries
+            isoAlpha            <scalar>;
+            Tactivate           <scalar>;
+
+            // Inherited entries
+            ...
+        }
+    );
+    \endverbatim
+
+    where:
+    \table
+      Property     | Description                        | Type | Reqd | Deflt
+      type         | Type name: diffusionGasEvaporation | word | yes  | -
+      saturationPressure | Saturation model             | dict | yes  | -
+      isoAlpha    | Iso-alpha for interface            | scalar | no  | 0.5
+      C           | Model coefficient                  | scalar | yes | -
+      Tactivate   | Saturation temperature             | scalar | no  | 0
+    \endtable
+
+    The inherited entries are elaborated in:
+      - \link InterfaceCompositionModel.H \endlink
+      - \link saturationModel.H \endlink
+
+SourceFiles
+    diffusionGasEvaporation.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef Foam_meltingEvaporationModels_diffusionGasEvaporation_H
+#define Foam_meltingEvaporationModels_diffusionGasEvaporation_H
+
+#include "InterfaceCompositionModel.H"
+#include "saturationModel.H"
+
+// * * * * * * * * * * * * * * * * *  * * * * * * * * * * * * * * * * * * * *//
+
+namespace Foam
+{
+
+// Forward Declarations
+class phasePair;
+
+namespace meltingEvaporationModels
+{
+
+/*---------------------------------------------------------------------------*\
+                    Class diffusionGasEvaporation Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class Thermo, class OtherThermo>
+class diffusionGasEvaporation
+:
+    public InterfaceCompositionModel<Thermo, OtherThermo>
+{
+    // Private Data
+
+        //- Saturation pressure model
+        autoPtr<saturationModel> saturationModelPtr_;
+
+        //- Interface Iso-value
+        scalar isoAlpha_;
+
+        //- Evaporation coefficient
+        dimensionedScalar C_;
+
+        //- Activation temperature
+        const dimensionedScalar Tactivate_;
+
+        //- Interface area
+        volScalarField interfaceArea_;
+
+        //- Mass source
+        volScalarField mDotc_;
+
+
+    // Private Member Functions
+
+        //- Update interface
+        void updateInterface(const volScalarField& T);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("diffusionGasEvaporation");
+
+
+    // Constructors
+
+        //- Construct from components
+        diffusionGasEvaporation
+        (
+            const dictionary& dict,
+            const phasePair& pair
+        );
+
+
+    //- Destructor
+    virtual ~diffusionGasEvaporation() = default;
+
+
+    // Member Functions
+
+        //- Explicit total mass transfer coefficient
+        virtual tmp<volScalarField> Kexp
+        (
+            const volScalarField& field
+        );
+
+        //- Implicit mass transfer coefficient
+        virtual tmp<volScalarField> KSp
+        (
+            label modelVariable,
+            const volScalarField& field
+        );
+
+        //- Explicit mass transfer coefficient
+        virtual tmp<volScalarField> KSu
+        (
+            label modelVariable,
+            const volScalarField& field
+        );
+
+        //- Return Tactivate
+        virtual const dimensionedScalar& Tactivate() const noexcept
+        {
+            return Tactivate_;
+        }
+
+        //- Add/subtract alpha*div(U) as a source term
+        //- for alpha, substituting div(U) = mDot(1/rho1 - 1/rho2)
+        virtual bool includeDivU() const noexcept
+        {
+            return true;
+        }
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace meltingEvaporationModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+#   include "diffusionGasEvaporation.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+#endif
+
+// ************************************************************************* //
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/interfaceHeatResistance/interfaceHeatResistance.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/interfaceHeatResistance/interfaceHeatResistance.C
index ca76c43a51e0ed96e173105a34d29f48f1ab6d30..0dfd7e8b117b3af5044a07a8b66ace78ca4e79c5 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/interfaceHeatResistance/interfaceHeatResistance.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/interfaceHeatResistance/interfaceHeatResistance.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2020 Henning Scheufler
-    Copyright (C) 2020-2021 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -223,7 +223,7 @@ Foam::meltingEvaporationModels::interfaceHeatResistance<Thermo, OtherThermo>
     auto tempOpen = fullSpeciesName.find('.');
     const word speciesName(fullSpeciesName.substr(0, tempOpen));
 
-    tmp<volScalarField> L = this->L(speciesName, T);
+    tmp<volScalarField> L = mag(this->L(speciesName, T));
 
     htc_ = R_/L();
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/kineticGasEvaporation/kineticGasEvaporation.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/kineticGasEvaporation/kineticGasEvaporation.C
index 7b89464004e46d45aea0ff3d08e634820d9a683f..83f0d399d43aeffa0ddfe921957865dc242bbe1e 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/kineticGasEvaporation/kineticGasEvaporation.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/massTransferModels/kineticGasEvaporation/kineticGasEvaporation.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2021 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -62,49 +62,6 @@ void Foam::meltingEvaporationModels::kineticGasEvaporation<Thermo, OtherThermo>
                 mag(cutCell.faceArea())/mesh.V()[celli];
         }
     }
-
-    for (const polyPatch& pp : mesh.boundaryMesh())
-    {
-        if (isA<wallPolyPatch>(pp))
-        {
-            forAll(pp.faceCells(), faceI)
-            {
-                const label pCelli = pp.faceCells()[faceI];
-                bool interface(false);
-                if
-                (
-                     sign(C_.value()) > 0
-                 && (T[pCelli] - Tactivate_.value()) > 0
-                )
-                {
-                    interface = true;
-                }
-
-                if
-                (
-                    sign(C_.value()) < 0
-                 && (T[pCelli] - Tactivate_.value()) < 0
-                )
-                {
-                    interface = true;
-                }
-
-                if
-                (
-                    interface
-                 &&
-                    (
-                        alpha[pCelli] < 2*isoAlpha_
-                     && alpha[pCelli] > 0.5*isoAlpha_
-                    )
-                )
-                {
-                    interfaceArea_[pCelli] =
-                        mag(pp.faceAreas()[faceI])/mesh.V()[pCelli];
-                }
-            }
-        }
-    }
 }
 
 
@@ -206,7 +163,7 @@ Foam::meltingEvaporationModels::kineticGasEvaporation<Thermo, OtherThermo>
     );
 
     word speciesName = IOobject::member(this->transferSpecie());
-    tmp<volScalarField> L = this->L(speciesName, T);
+    tmp<volScalarField> L = mag(this->L(speciesName, T));
 
     updateInterface(T);
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseSystem/phaseSystem.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseInterSystem/multiphaseInterSystem.C
similarity index 74%
rename from src/phaseSystemModels/multiphaseInter/phasesSystem/phaseSystem/phaseSystem.C
rename to src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseInterSystem/multiphaseInterSystem.C
index a4d0230bdc118c442a15bcb2bb4ea65affa4f9a7..3df86d343a7d9fc24aa5301b685e8763ce99686f 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseSystem/phaseSystem.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseInterSystem/multiphaseInterSystem.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2021 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -25,7 +25,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "phaseSystem.H"
+#include "multiphaseInterSystem.H"
 #include "surfaceTensionModel.H"
 #include "porousModel.H"
 
@@ -46,23 +46,27 @@ License
 
 namespace Foam
 {
-    defineTypeNameAndDebug(phaseSystem, 0);
+    defineTypeNameAndDebug(multiphaseInterSystem, 0);
 }
 
 /* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
 
-const Foam::word Foam::phaseSystem::phasePropertiesName("phaseProperties");
+const Foam::word
+Foam::multiphaseInterSystem::phasePropertiesName("phaseProperties");
 
 // * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
 
-void Foam::phaseSystem::calcMu()
+void Foam::multiphaseInterSystem::calcMu()
 {
     mu_ = mu()();
 }
 
 
-Foam::phaseSystem::phaseModelTable
-Foam::phaseSystem::generatePhaseModels(const wordList& phaseNames) const
+Foam::multiphaseInterSystem::phaseModelTable
+Foam::multiphaseInterSystem::generatePhaseModels
+(
+    const wordList& phaseNames
+) const
 {
     phaseModelTable phaseModels;
 
@@ -71,7 +75,7 @@ Foam::phaseSystem::generatePhaseModels(const wordList& phaseNames) const
         phaseModels.insert
         (
             phaseName,
-            phaseModel::New
+            multiphaseInter::phaseModel::New
             (
                 *this,
                 phaseName
@@ -83,7 +87,7 @@ Foam::phaseSystem::generatePhaseModels(const wordList& phaseNames) const
 }
 
 
-Foam::tmp<Foam::surfaceScalarField> Foam::phaseSystem::generatePhi
+Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseInterSystem::generatePhi
 (
     const phaseModelTable& phaseModels
 ) const
@@ -105,7 +109,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::phaseSystem::generatePhi
 }
 
 
-void Foam::phaseSystem::generatePairs(const dictTable& modelDicts)
+void Foam::multiphaseInterSystem::generatePairs(const dictTable& modelDicts)
 {
     forAllConstIters(modelDicts, iter)
     {
@@ -152,7 +156,7 @@ void Foam::phaseSystem::generatePairs(const dictTable& modelDicts)
 }
 
 
-void Foam::phaseSystem::generatePairsTable()
+void Foam::multiphaseInterSystem::generatePairsTable()
 {
     forAllConstIters(phaseModels_, phaseIter1)
     {
@@ -201,7 +205,7 @@ void Foam::phaseSystem::generatePairsTable()
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::phaseSystem::phaseSystem
+Foam::multiphaseInterSystem::multiphaseInterSystem
 (
     const fvMesh& mesh
 )
@@ -288,13 +292,13 @@ Foam::phaseSystem::phaseSystem
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::phaseSystem::~phaseSystem()
+Foam::multiphaseInterSystem::~multiphaseInterSystem()
 {}
 
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::he
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::he
 (
     const volScalarField& p,
     const volScalarField& T
@@ -305,7 +309,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::he
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::he
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::he
 (
     const scalarField& p,
     const scalarField& T,
@@ -317,7 +321,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::he
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::he
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::he
 (
     const scalarField& p,
     const scalarField& T,
@@ -329,7 +333,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::he
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::hc() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::hc() const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -347,7 +351,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::hc() const
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::THE
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::THE
 (
     const scalarField& e,
     const scalarField& p,
@@ -360,7 +364,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::THE
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::THE
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::THE
 (
     const scalarField& e,
     const scalarField& p,
@@ -373,7 +377,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::THE
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::rho() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::rho() const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -391,7 +395,10 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::rho() const
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::rho(const label patchI) const
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::rho
+(
+    const label patchI
+) const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -414,7 +421,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::rho(const label patchI) const
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cp() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::Cp() const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -432,7 +439,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cp() const
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cp
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::Cp
 (
     const scalarField& p,
     const scalarField& T,
@@ -455,7 +462,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cp
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cv() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::Cv() const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -473,7 +480,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cv() const
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cv
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::Cv
 (
     const scalarField& p,
     const scalarField& T,
@@ -496,7 +503,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cv
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::rhoEoS
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::rhoEoS
 (
     const scalarField& p,
     const scalarField& T,
@@ -508,7 +515,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::rhoEoS
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::gamma() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::gamma() const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -532,7 +539,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::gamma() const
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::gamma
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::gamma
 (
     const scalarField& p,
     const scalarField& T,
@@ -546,7 +553,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::gamma
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cpv() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::Cpv() const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -564,7 +571,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cpv() const
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cpv
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::Cpv
 (
     const scalarField& p,
     const scalarField& T,
@@ -587,7 +594,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cpv
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::CpByCpv() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::CpByCpv() const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -605,7 +612,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::CpByCpv() const
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::CpByCpv
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::CpByCpv
 (
     const scalarField& p,
     const scalarField& T,
@@ -633,14 +640,14 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::CpByCpv
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::W() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::W() const
 {
     NotImplemented;
     return nullptr;
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::kappa() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::kappa() const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -658,7 +665,10 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::kappa() const
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::kappa(const label patchI) const
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::kappa
+(
+    const label patchI
+) const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -681,7 +691,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::kappa(const label patchI) const
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::alphahe() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::alphahe() const
 {
     phaseModelTable::const_iterator phaseModelIter = phaseModels_.begin();
 
@@ -699,7 +709,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::alphahe() const
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::alphahe
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::alphahe
 (
     const label patchi
 ) const
@@ -723,7 +733,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::alphahe
 }
 
 
-Foam::tmp<Foam::volScalarField>Foam::phaseSystem::kappaEff
+Foam::tmp<Foam::volScalarField>Foam::multiphaseInterSystem::kappaEff
 (
     const volScalarField& kappat
 ) const
@@ -734,7 +744,7 @@ Foam::tmp<Foam::volScalarField>Foam::phaseSystem::kappaEff
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::kappaEff
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::kappaEff
 (
     const scalarField& kappat,
     const label patchI
@@ -744,7 +754,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::kappaEff
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::alphaEff
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::alphaEff
 (
     const volScalarField& alphat
 ) const
@@ -767,7 +777,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::alphaEff
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::alphaEff
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::alphaEff
 (
     const scalarField& alphat,
     const label patchI
@@ -796,13 +806,13 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::alphaEff
 }
 
 
-const Foam::dimensionedScalar& Foam::phaseSystem::Prt() const
+const Foam::dimensionedScalar& Foam::multiphaseInterSystem::Prt() const
 {
     return Prt_;
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::mu() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::mu() const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -820,7 +830,10 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::mu() const
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::mu(const label patchI) const
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::mu
+(
+    const label patchI
+) const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -843,7 +856,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::mu(const label patchI) const
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nu() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::nu() const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -861,7 +874,10 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nu() const
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseSystem::nu(const label patchI) const
+Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::nu
+(
+    const label patchI
+) const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -884,31 +900,92 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::nu(const label patchI) const
 }
 
 
-const Foam::surfaceScalarField& Foam::phaseSystem::phi() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::mut() const
+{
+    return turb_->mut();
+}
+
+
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::muEff() const
+{
+    return turb_->muEff();
+}
+
+
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::nut() const
+{
+    return turb_->nut();
+}
+
+
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::nuEff() const
+{
+    return turb_->nuEff();
+}
+
+
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::kappaEff() const
+{
+    const volScalarField kappaEff
+    (
+        this->kappa() + this->Cp()*turb_->mut()/Prt_
+    );
+
+    return tmp<volScalarField>::New(kappaEff);
+}
+
+
+Foam::tmp<Foam::scalarField>
+Foam::multiphaseInterSystem::kappaEff(const label patchi) const
+{
+    const scalarField Cp(this->Cp()().boundaryField()[patchi]);
+    const scalarField kappaEffp
+    (
+         this->kappa(patchi) + Cp*turb_->mut(patchi)/Prt_.value()
+    );
+
+    return tmp<scalarField>::New(kappaEffp);
+}
+
+
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::alphaEff() const
+{
+    return this->alpha() + turb_->mut()/Prt_;
+}
+
+
+Foam::tmp<Foam::scalarField>
+Foam::multiphaseInterSystem::alphaEff(const label patchi) const
+{
+    return (this->alpha(patchi) + turb_->mut(patchi))/Prt_.value();
+}
+
+
+const Foam::surfaceScalarField& Foam::multiphaseInterSystem::phi() const
 {
     return phi_;
 }
 
 
-Foam::surfaceScalarField& Foam::phaseSystem::phi()
+Foam::surfaceScalarField& Foam::multiphaseInterSystem::phi()
 {
     return phi_;
 }
 
 
-const Foam::surfaceScalarField& Foam::phaseSystem::rhoPhi() const
+const Foam::surfaceScalarField& Foam::multiphaseInterSystem::rhoPhi() const
 {
     return rhoPhi_;
 }
 
 
-Foam::surfaceScalarField& Foam::phaseSystem::rhoPhi()
+Foam::surfaceScalarField& Foam::multiphaseInterSystem::rhoPhi()
 {
     return rhoPhi_;
 }
 
 
-void Foam::phaseSystem::correct()
+void Foam::multiphaseInterSystem::correct()
 {
     forAllIters(phaseModels_, iter)
     {
@@ -919,7 +996,7 @@ void Foam::phaseSystem::correct()
 }
 
 
-void Foam::phaseSystem::correctTurbulence()
+void Foam::multiphaseInterSystem::correctTurbulence()
 {
     forAllIters(phaseModels_, iter)
     {
@@ -928,32 +1005,35 @@ void Foam::phaseSystem::correctTurbulence()
 }
 
 
-const Foam::phaseSystem::phaseModelTable& Foam::phaseSystem::phases() const
+const Foam::multiphaseInterSystem::phaseModelTable&
+Foam::multiphaseInterSystem::phases() const
 {
     return phaseModels_;
 }
 
 
-Foam::phaseSystem::phaseModelTable& Foam::phaseSystem::phases()
+Foam::multiphaseInterSystem::phaseModelTable&
+Foam::multiphaseInterSystem::phases()
 {
     return phaseModels_;
 }
 
 
-const Foam::phaseSystem::phasePairTable&
-Foam::phaseSystem::totalPhasePairs() const
+const Foam::multiphaseInterSystem::phasePairTable&
+Foam::multiphaseInterSystem::totalPhasePairs() const
 {
     return totalPhasePairs_;
 }
 
 
-Foam::phaseSystem::phasePairTable& Foam::phaseSystem::totalPhasePairs()
+Foam::multiphaseInterSystem::phasePairTable&
+Foam::multiphaseInterSystem::totalPhasePairs()
 {
     return totalPhasePairs_;
 }
 
 
-bool Foam::phaseSystem::incompressible() const
+bool Foam::multiphaseInterSystem::incompressible() const
 {
     forAllConstIters(phaseModels_, iter)
     {
@@ -967,13 +1047,13 @@ bool Foam::phaseSystem::incompressible() const
 }
 
 
-bool Foam::phaseSystem::incompressible(const word phaseName) const
+bool Foam::multiphaseInterSystem::incompressible(const word phaseName) const
 {
     return phaseModels_[phaseName]->thermo().incompressible();
 }
 
 
-bool Foam::phaseSystem::isochoric() const
+bool Foam::multiphaseInterSystem::isochoric() const
 {
     forAllConstIters(phaseModels_, iter)
     {
@@ -987,14 +1067,14 @@ bool Foam::phaseSystem::isochoric() const
 }
 
 
-const Foam::fvMesh& Foam::phaseSystem::mesh() const
+const Foam::fvMesh& Foam::multiphaseInterSystem::mesh() const
 {
     return mesh_;
 }
 
 
 Foam::tmp<Foam::surfaceScalarField>
-Foam::phaseSystem::surfaceTensionForce() const
+Foam::multiphaseInterSystem::surfaceTensionForce() const
 {
     auto tstf = tmp<surfaceScalarField>::New
     (
@@ -1044,7 +1124,7 @@ Foam::phaseSystem::surfaceTensionForce() const
 }
 
 
-Foam::tmp<Foam::volVectorField> Foam::phaseSystem::U() const
+Foam::tmp<Foam::volVectorField> Foam::multiphaseInterSystem::U() const
 {
     auto tstf = tmp<volVectorField>::New
     (
@@ -1070,13 +1150,13 @@ Foam::tmp<Foam::volVectorField> Foam::phaseSystem::U() const
 
 
 Foam::tmp<Foam::volScalarField>
-Foam::phaseSystem::surfaceTensionCoeff(const phasePairKey& key) const
+Foam::multiphaseInterSystem::surfaceTensionCoeff(const phasePairKey& key) const
 {
     return surfaceTensionModels_[key]->sigma();
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::coeffs
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::coeffs
 (
     const word& key
 ) const
@@ -1085,14 +1165,14 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::coeffs
 }
 
 
-void Foam::phaseSystem::addInterfacePorosity(fvVectorMatrix& UEqn)
+void Foam::multiphaseInterSystem::addInterfacePorosity(fvVectorMatrix& UEqn)
 {
     const scalarField& Vc = mesh_.V();
     scalarField& Udiag = UEqn.diag();
 
     forAllConstIters(phaseModels_, iteri)
     {
-        const phaseModel& phasei = iteri()();
+        const multiphaseInter::phaseModel& phasei = iteri()();
 
         auto iterk = iteri;
 
@@ -1100,7 +1180,7 @@ void Foam::phaseSystem::addInterfacePorosity(fvVectorMatrix& UEqn)
         {
             if (iteri()().name() != iterk()().name())
             {
-                const phaseModel& phasek = iterk()();
+                const multiphaseInter::phaseModel& phasek = iterk()();
 
                 // Phase i and k
                 const phasePairKey keyik
@@ -1123,7 +1203,7 @@ void Foam::phaseSystem::addInterfacePorosity(fvVectorMatrix& UEqn)
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::K
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::K
 (
     const volScalarField& alpha1,
     const volScalarField& alpha2
@@ -1136,7 +1216,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::K
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nearInterface
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::nearInterface
 (
     const volScalarField& alpha1,
     const volScalarField& alpha2
@@ -1150,7 +1230,8 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nearInterface
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nearInterface() const
+Foam::tmp<Foam::volScalarField>
+Foam::multiphaseInterSystem::nearInterface() const
 {
     auto tnearInt = tmp<volScalarField>::New
     (
@@ -1188,17 +1269,60 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nearInterface() const
 }
 
 
-Foam::tmp<Foam::surfaceVectorField> Foam::phaseSystem::nHatfv
+Foam::tmp<Foam::volVectorField> Foam::multiphaseInterSystem::nVolHatfv
+(
+    const volScalarField& alpha1,
+    const volScalarField& alpha2
+) const
+{
+    const volScalarField alpha1m
+    (
+        min(max(alpha1, scalar(0)), scalar(1))
+    );
+
+    const volScalarField alpha2m
+    (
+        min(max(alpha2, scalar(0)), scalar(1))
+    );
+
+    const volVectorField gradAlphaf
+    (
+        alpha2m*(fvc::grad(alpha1m))
+      - alpha1m*(fvc::grad(alpha2m))
+    );
+
+    const dimensionedScalar deltaN
+    (
+        "deltaN",
+        1e-8/cbrt(average(mesh_.V()))
+    );
+
+    // Face unit interface normal
+    return gradAlphaf/(mag(gradAlphaf) + deltaN);
+}
+
+
+Foam::tmp<Foam::surfaceVectorField> Foam::multiphaseInterSystem::nHatfv
 (
     const volScalarField& alpha1,
     const volScalarField& alpha2
 ) const
 {
 
+    const volScalarField alpha1b
+    (
+        min(max(alpha1, scalar(0)), scalar(1))
+    );
+
+    const volScalarField alpha2b
+    (
+        min(max(alpha2, scalar(0)), scalar(1))
+    );
+
     surfaceVectorField gradAlphaf
     (
-        fvc::interpolate(alpha2)*fvc::interpolate(fvc::grad(alpha1))
-      - fvc::interpolate(alpha1)*fvc::interpolate(fvc::grad(alpha2))
+        fvc::interpolate(alpha2b)*fvc::interpolate(fvc::grad(alpha1b))
+      - fvc::interpolate(alpha1b)*fvc::interpolate(fvc::grad(alpha2b))
     );
 
     const dimensionedScalar deltaN
@@ -1212,7 +1336,7 @@ Foam::tmp<Foam::surfaceVectorField> Foam::phaseSystem::nHatfv
 }
 
 
-Foam::tmp<Foam::surfaceScalarField> Foam::phaseSystem::nHatf
+Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseInterSystem::nHatf
 (
     const volScalarField& alpha1,
     const volScalarField& alpha2
@@ -1223,7 +1347,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::phaseSystem::nHatf
 }
 
 
-bool Foam::phaseSystem::read()
+bool Foam::multiphaseInterSystem::read()
 {
     if (regIOobject::read())
     {
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseSystem/phaseSystem.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseInterSystem/multiphaseInterSystem.H
similarity index 87%
rename from src/phaseSystemModels/multiphaseInter/phasesSystem/phaseSystem/phaseSystem.H
rename to src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseInterSystem/multiphaseInterSystem.H
index c6a30787cb8f053628fc591ac1a4591c889c2568..fbcacaefbc293eafbdeae7a324a690234fd91940 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseSystem/phaseSystem.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseInterSystem/multiphaseInterSystem.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2021 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -24,17 +24,17 @@ License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
 Class
-    Foam::phaseSystem
+    Foam::multiphaseInterSystem
 
 Description
 
 SourceFiles
-    phaseSystem.C
+    multiphaseInterSystem.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef phaseSystem_H
-#define phaseSystem_H
+#ifndef multiphaseInterSystem_H
+#define multiphaseInterSystem_H
 
 #include "basicThermo.H"
 
@@ -48,6 +48,8 @@ SourceFiles
 #include "compressibleTransportModel.H"
 #include "localMin.H"
 
+#include "compressibleTurbulenceModel.H"
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
@@ -61,10 +63,10 @@ class surfaceTensionModel;
 class porousModel;
 
 /*---------------------------------------------------------------------------*\
-                         Class phaseSystem Declaration
+                    Class multiphaseInterSystem Declaration
 \*---------------------------------------------------------------------------*/
 
-class phaseSystem
+class multiphaseInterSystem
 :
     public basicThermo,
     public compressibleTransportModel
@@ -81,7 +83,7 @@ public:
             phasePairTable;
 
 
-        typedef HashTable<autoPtr<phaseModel>> phaseModelTable;
+        typedef HashTable<autoPtr<multiphaseInter::phaseModel>> phaseModelTable;
 
 
         typedef HashTable<volScalarField::Internal> SuSpTable;
@@ -145,6 +147,9 @@ protected:
         //- Turbulent Prandt number
         dimensionedScalar Prt_;
 
+        //- Turbulence model
+        compressibleTurbulenceModel* turb_;
+
 
         // Sub Models
 
@@ -162,7 +167,7 @@ protected:
         void calcMu();
 
         //- Generate the phases
-        HashTable<autoPtr<phaseModel>> generatePhaseModels
+        HashTable<autoPtr<multiphaseInter::phaseModel>> generatePhaseModels
         (
             const wordList& names
         ) const;
@@ -170,7 +175,7 @@ protected:
         //- Generate the mixture flux
         tmp<surfaceScalarField> generatePhi
         (
-            const HashTable<autoPtr<phaseModel>>& phaseModels
+            const HashTable<autoPtr<multiphaseInter::phaseModel>>& phaseModels
         ) const;
 
         //- Generate pairs
@@ -252,7 +257,7 @@ protected:
 public:
 
     //- Runtime type information
-    TypeName("phaseSystem");
+    TypeName("multiphaseInterSystem");
 
     //- Default name of the phase properties dictionary
     static const word phasePropertiesName;
@@ -261,13 +266,15 @@ public:
     // Constructors
 
         //- Construct from fvMesh
-        phaseSystem(const fvMesh& mesh);
+        multiphaseInterSystem(const fvMesh& mesh);
 
 
     //- Destructor
-    virtual ~phaseSystem();
+    virtual ~multiphaseInterSystem();
 
 
+    // Member Functions
+
     // Energy related thermo functionaliy functions
 
         //- Return access to the internal energy field [J/Kg]
@@ -484,6 +491,47 @@ public:
         virtual tmp<scalarField> nu(const label patchi) const;
 
 
+    // Turbulence
+
+        //- Set turbulence model
+        void setTurbulence(compressibleTurbulenceModel& turb)
+        {
+            turb_ = &turb;
+        }
+
+        //- Return pointer to turbulence model
+        compressibleTurbulenceModel* turbulence() const
+        {
+            return turb_;
+        }
+
+        //- Return the turbulent dynamic viscosity
+        tmp<volScalarField> mut() const;
+
+        //- Return the effective dynamic viscosity
+        tmp<volScalarField> muEff() const;
+
+        //- Return the turbulent kinematic viscosity
+        tmp<volScalarField> nut() const;
+
+        //- Return the effective kinematic viscosity
+        tmp<volScalarField> nuEff() const;
+
+        //- Effective thermal turbulent diffusivity for temperature
+        //  of mixture [J/m/s/K]
+        tmp<volScalarField> kappaEff() const;
+
+        //- Effective thermal turbulent diffusivity for temperature
+        //  of mixture for patch [J/m/s/K]
+        tmp<scalarField> kappaEff(const label patchi) const;
+
+        //- Effective thermal turbulent diffusivity of mixture [kg/m/s]
+        tmp<volScalarField> alphaEff() const;
+
+        //- Effective thermal turbulent diffusivity of mixture [kg/m/s]
+        tmp<scalarField> alphaEff(const label patchi) const;
+
+
     // Phase fluxes
 
         //- Constant access to the total flux
@@ -547,7 +595,7 @@ public:
         //- Calculate mass transfer for species
         virtual void massSpeciesTransfer
         (
-            const phaseModel& phase,
+            const multiphaseInter::phaseModel& phase,
             volScalarField::Internal& Su,
             volScalarField::Internal& Sp,
             const word speciesName
@@ -605,8 +653,8 @@ public:
         template <class modelType>
         const modelType& lookupSubModel
         (
-            const phaseModel& from,
-            const phaseModel& to
+            const multiphaseInter::phaseModel& from,
+            const multiphaseInter::phaseModel& to
         ) const;
 
 
@@ -636,15 +684,20 @@ public:
             const volScalarField& alpha2
         ) const;
 
+        //- Interface normal volField vector
+        tmp<volVectorField> nVolHatfv
+        (
+            const volScalarField& alpha1,
+            const volScalarField& alpha2
+        ) const;
 
-        //- Interface normal volume vector
+        //- Interface normal surface vector
         tmp<surfaceScalarField> nHatf
         (
             const volScalarField& alpha1,
             const volScalarField& alpha2
         ) const;
 
-
         //- Interface curvature
         tmp<volScalarField> K
         (
@@ -652,7 +705,6 @@ public:
             const volScalarField& alpha2
         ) const;
 
-
         //- Near Interface of alpha1 and alpha2
         tmp<volScalarField> nearInterface
         (
@@ -672,7 +724,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
-#   include "phaseSystemTemplates.H"
+#   include "multiphaseInterSystemTemplates.H"
 #endif
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseSystem/phaseSystemTemplates.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseInterSystem/multiphaseInterSystemTemplates.H
similarity index 88%
rename from src/phaseSystemModels/multiphaseInter/phasesSystem/phaseSystem/phaseSystemTemplates.H
rename to src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseInterSystem/multiphaseInterSystemTemplates.H
index 9b129e66df5a89e83d642304cd29748334055dd3..0c84a957302f182fe976e6eca417479a93298af1 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseSystem/phaseSystemTemplates.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseInterSystem/multiphaseInterSystemTemplates.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -28,7 +28,7 @@ License
 // * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * //
 
 template<class modelType>
-void Foam::phaseSystem::createSubModels
+void Foam::multiphaseInterSystem::createSubModels
 (
     const dictTable& modelDicts,
     HashTable
@@ -57,7 +57,7 @@ void Foam::phaseSystem::createSubModels
 
 
 template<class modelType>
-void Foam::phaseSystem::createSubModels
+void Foam::multiphaseInterSystem::createSubModels
 (
     const dictTable& modelDicts,
     const fvMesh& mesh,
@@ -87,7 +87,7 @@ void Foam::phaseSystem::createSubModels
 
 
 template<class modelType>
-void Foam::phaseSystem::generatePairsAndSubModels
+void Foam::multiphaseInterSystem::generatePairsAndSubModels
 (
     const word& modelName,
     HashTable
@@ -107,7 +107,7 @@ void Foam::phaseSystem::generatePairsAndSubModels
 
 
 template<class modelType>
-void Foam::phaseSystem::generatePairsAndSubModels
+void Foam::multiphaseInterSystem::generatePairsAndSubModels
 (
     const word& modelName,
     const fvMesh& mesh,
@@ -128,7 +128,7 @@ void Foam::phaseSystem::generatePairsAndSubModels
 
 
 template<class modelType>
-void Foam::phaseSystem::generatePairsAndSubModels
+void Foam::multiphaseInterSystem::generatePairsAndSubModels
 (
     const word& modelName,
     HashTable
@@ -176,7 +176,10 @@ void Foam::phaseSystem::generatePairsAndSubModels
 
 
 template <class modelType>
-const modelType& Foam::phaseSystem::lookupSubModel(const phasePair& key) const
+const modelType& Foam::multiphaseInterSystem::lookupSubModel
+(
+    const phasePair& key
+) const
 {
     return
         mesh().lookupObject<modelType>
@@ -187,10 +190,10 @@ const modelType& Foam::phaseSystem::lookupSubModel(const phasePair& key) const
 
 
 template <class modelType>
-const modelType& Foam::phaseSystem::lookupSubModel
+const modelType& Foam::multiphaseInterSystem::lookupSubModel
 (
-    const phaseModel& from,
-    const phaseModel& to
+    const multiphaseInter::phaseModel& from,
+    const multiphaseInter::phaseModel& to
 ) const
 {
     return lookupSubModel<modelType>(orderedPhasePair(from, to));
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystem.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystem.C
index 346e4aa66470c7fc5f564397c69905ddd2295ace..ffda1f535a1361be079435dfcd868b7d8df88de5 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystem.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystem.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2020 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -47,20 +47,22 @@ License
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
+{
+namespace multiphaseInter
 {
     defineTypeNameAndDebug(multiphaseSystem, 0);
     defineRunTimeSelectionTable(multiphaseSystem, dictionary);
 }
-
+}
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::multiphaseSystem::multiphaseSystem
+Foam::multiphaseInter::multiphaseSystem::multiphaseSystem
 (
      const fvMesh& mesh
 )
 :
-    phaseSystem(mesh),
+    multiphaseInterSystem(mesh),
     cAlphas_(),
     ddtAlphaMax_(0.0),
     limitedPhiAlphas_(phaseModels_.size()),
@@ -71,7 +73,7 @@ Foam::multiphaseSystem::multiphaseSystem
     phases_.setSize(phaseModels_.size());
     forAllIters(phaseModels_, iter)
     {
-        phaseModel& pm = iter()();
+        multiphaseInter::phaseModel& pm = iter()();
         phases_.set(phasei++, &pm);
     }
 
@@ -80,7 +82,7 @@ Foam::multiphaseSystem::multiphaseSystem
     // Initiate Su and Sp
     forAllConstIters(phaseModels_, iter)
     {
-        const phaseModel& pm = iter()();
+        const multiphaseInter::phaseModel& pm = iter()();
 
         Su_.insert
         (
@@ -119,13 +121,13 @@ Foam::multiphaseSystem::multiphaseSystem
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
-void Foam::multiphaseSystem::calculateSuSp()
+void Foam::multiphaseInter::multiphaseSystem::calculateSuSp()
 {
     this->alphaTransfer(Su_, Sp_);
 }
 
 
-void Foam::multiphaseSystem::solve()
+void Foam::multiphaseInter::multiphaseSystem::solve()
 {
     const dictionary& alphaControls = mesh_.solverDict("alpha");
     label nAlphaSubCycles(alphaControls.get<label>("nAlphaSubCycles"));
@@ -167,7 +169,7 @@ void Foam::multiphaseSystem::solve()
 
 }
 
-void Foam::multiphaseSystem::solveAlphas()
+void Foam::multiphaseInter::multiphaseSystem::solveAlphas()
 {
 
     const dictionary& alphaControls = mesh_.solverDict("alpha");
@@ -196,7 +198,7 @@ void Foam::multiphaseSystem::solveAlphas()
     for (int acorr=0; acorr<nAlphaCorr; acorr++)
     {
         label phasei = 0;
-        for (phaseModel& phase1 : phases_)
+        for (multiphaseInter::phaseModel& phase1 : phases_)
         {
             const volScalarField& alpha1 = phase1;
 
@@ -217,7 +219,7 @@ void Foam::multiphaseSystem::solveAlphas()
 
             surfaceScalarField& phiAlphaCorr = phiAlphaCorrs[phasei];
 
-            for (phaseModel& phase2 : phases_)
+            for (multiphaseInter::phaseModel& phase2 : phases_)
             {
                 const volScalarField& alpha2 = phase2;
 
@@ -277,7 +279,7 @@ void Foam::multiphaseSystem::solveAlphas()
         }
 
         // Set Su and Sp to zero
-        for (const phaseModel& phase : phases_)
+        for (const multiphaseInter::phaseModel& phase : phases_)
         {
             Su_[phase.name()] = dimensionedScalar("Su", dimless/dimTime, Zero);
             Sp_[phase.name()] = dimensionedScalar("Sp", dimless/dimTime, Zero);
@@ -293,7 +295,7 @@ void Foam::multiphaseSystem::solveAlphas()
 
         // Limit phiAlphaCorr on each phase
         phasei = 0;
-        for (phaseModel& phase : phases_)
+        for (multiphaseInter::phaseModel& phase : phases_)
         {
             volScalarField& alpha1 = phase;
 
@@ -333,7 +335,7 @@ void Foam::multiphaseSystem::solveAlphas()
         );
 
         phasei = 0;
-        for (phaseModel& phase : phases_)
+        for (multiphaseInter::phaseModel& phase : phases_)
         {
             volScalarField& alpha1 = phase;
 
@@ -398,7 +400,7 @@ void Foam::multiphaseSystem::solveAlphas()
             // Reset rhoPhi
             rhoPhi_ = dimensionedScalar("rhoPhi", dimMass/dimTime, Zero);
 
-            for (phaseModel& phase : phases_)
+            for (multiphaseInter::phaseModel& phase : phases_)
             {
                 volScalarField& alpha1 = phase;
                 sumAlpha += alpha1;
@@ -415,7 +417,7 @@ void Foam::multiphaseSystem::solveAlphas()
 
             volScalarField sumCorr(1.0 - sumAlpha);
 
-            for (phaseModel& phase : phases_)
+            for (multiphaseInter::phaseModel& phase : phases_)
             {
                 volScalarField& alpha = phase;
                 alpha += alpha*sumCorr;
@@ -431,37 +433,43 @@ void Foam::multiphaseSystem::solveAlphas()
 }
 
 
-const Foam::UPtrList<Foam::phaseModel>& Foam::multiphaseSystem::phases() const
+const Foam::UPtrList<Foam::multiphaseInter::phaseModel>&
+Foam::multiphaseInter::multiphaseSystem::phases() const
 {
     return phases_;
 }
 
 
-Foam::UPtrList<Foam::phaseModel>& Foam::multiphaseSystem::phases()
+Foam::UPtrList<Foam::multiphaseInter::phaseModel>&
+Foam::multiphaseInter::multiphaseSystem::phases()
 {
     return phases_;
 }
 
 
-const Foam::phaseModel& Foam::multiphaseSystem::phase(const label i) const
+const Foam::multiphaseInter::phaseModel&
+Foam::multiphaseInter::multiphaseSystem::phase(const label i) const
 {
     return phases_[i];
 }
 
 
-Foam::phaseModel& Foam::multiphaseSystem::phase(const label i)
+Foam::multiphaseInter::phaseModel&
+Foam::multiphaseInter::multiphaseSystem::phase(const label i)
 {
     return phases_[i];
 }
 
 
-Foam::dimensionedScalar Foam::multiphaseSystem::ddtAlphaMax() const
+Foam::dimensionedScalar
+Foam::multiphaseInter::multiphaseSystem::ddtAlphaMax() const
 {
     return ddtAlphaMax_;
 }
 
 
-Foam::scalar Foam::multiphaseSystem::maxDiffNo() const
+Foam::scalar
+Foam::multiphaseInter::multiphaseSystem::maxDiffNo() const
 {
     auto iter = phaseModels_.cbegin();
 
@@ -476,26 +484,28 @@ Foam::scalar Foam::multiphaseSystem::maxDiffNo() const
 }
 
 
-const Foam::multiphaseSystem::compressionFluxTable&
-Foam::multiphaseSystem::limitedPhiAlphas() const
+const Foam::multiphaseInter::multiphaseSystem::compressionFluxTable&
+Foam::multiphaseInter::multiphaseSystem::limitedPhiAlphas() const
 {
     return limitedPhiAlphas_;
 }
 
 
-Foam::multiphaseSystem::SuSpTable& Foam::multiphaseSystem::Su()
+Foam::multiphaseInter::multiphaseSystem::SuSpTable&
+Foam::multiphaseInter::multiphaseSystem::Su()
 {
     return Su_;
 }
 
 
-Foam::multiphaseSystem::SuSpTable& Foam::multiphaseSystem::Sp()
+Foam::multiphaseInter::multiphaseSystem::SuSpTable&
+Foam::multiphaseInter::multiphaseSystem::Sp()
 {
     return Sp_;
 }
 
 
-bool Foam::multiphaseSystem::read()
+bool Foam::multiphaseInter::multiphaseSystem::read()
 {
     return true;
 }
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystem.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystem.H
index e8329d7cf190b0c5ba434a0e28963b3b9a265482..4cf77007c784ae9d8fc178a62fdf9482cbecba70 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystem.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystem.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2020 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -37,7 +37,7 @@ SourceFiles
 #ifndef multiphaseSystem_H
 #define multiphaseSystem_H
 
-#include "phaseSystem.H"
+#include "multiphaseInterSystem.H"
 #include "UPtrList.H"
 #include "phasePairKey.H"
 
@@ -45,14 +45,15 @@ SourceFiles
 
 namespace Foam
 {
-
+namespace multiphaseInter
+{
 /*---------------------------------------------------------------------------*\
                       Class multiphaseSystem Declaration
 \*---------------------------------------------------------------------------*/
 
 class multiphaseSystem
 :
-    public phaseSystem
+    public multiphaseInterSystem
 {
 protected:
 
@@ -170,6 +171,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
+} // End namespace multiphaseInter
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystemNew.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystemNew.C
index 8535ddd031c07ce050ebf1602415c6dbe6682273..191af99c2ecb93f7543ccc70a124ff51a211ae58 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystemNew.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystemNew.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2021 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -29,7 +29,8 @@ License
 
 // * * * * * * * * * * * * * * * * Selector  * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::multiphaseSystem> Foam::multiphaseSystem::New
+Foam::autoPtr<Foam::multiphaseInter::multiphaseSystem>
+Foam::multiphaseInter::multiphaseSystem::New
 (
     const fvMesh& mesh
 )
@@ -64,7 +65,7 @@ Foam::autoPtr<Foam::multiphaseSystem> Foam::multiphaseSystem::New
         ) << exit(FatalIOError);
     }
 
-    return autoPtr<multiphaseSystem>(ctorPtr(mesh));
+    return autoPtr<multiphaseInter::multiphaseSystem>(ctorPtr(mesh));
 }
 
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystems.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystems.C
index 22c5f08276a9dc073faee7d07b8f6d81b8dcfc9a..f772cbb8343a6bbd853f9de8d3f533f93036fff0 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystems.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/multiphaseSystem/multiphaseSystems.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -27,7 +27,7 @@ License
 
 #include "addToRunTimeSelectionTable.H"
 
-#include "phaseSystem.H"
+#include "multiphaseInterSystem.H"
 #include "multiphaseSystem.H"
 #include "MassTransferPhaseSystem.H"
 
@@ -36,7 +36,8 @@ License
 namespace Foam
 {
     typedef
-        MassTransferPhaseSystem<multiphaseSystem> massTransferMultiphaseSystem;
+        MassTransferPhaseSystem
+        <multiphaseInter::multiphaseSystem> massTransferMultiphaseSystem;
 
     addNamedToRunTimeSelectionTable
     (
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.C
index ef7d21288bd61f6996d578ab6c73fd1635394c13..efe8c61a6a078a2c758c300bef5f95befccb7d24 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -27,7 +27,7 @@ License
 
 #include "MovingPhaseModel.H"
 
-#include "phaseSystem.H"
+#include "multiphaseInterSystem.H"
 
 #include "fixedValueFvPatchFields.H"
 #include "slipFvPatchFields.H"
@@ -46,7 +46,7 @@ License
 template<class BasePhaseModel>
 Foam::MovingPhaseModel<BasePhaseModel>::MovingPhaseModel
 (
-    const phaseSystem& fluid,
+    const multiphaseInterSystem& fluid,
     const word& phaseName
 )
 :
@@ -57,7 +57,11 @@ Foam::MovingPhaseModel<BasePhaseModel>::MovingPhaseModel
     (
         IOobject
         (
-            IOobject::groupName("alphaPhi", phaseModel::name()),
+            IOobject::groupName
+            (
+                "alphaPhi",
+                multiphaseInter::phaseModel::name()
+            ),
             fluid.mesh().time().timeName(),
             fluid.mesh()
         ),
@@ -124,7 +128,7 @@ diffNo() const
     (
         IOobject
         (
-            IOobject::groupName("diffNo", phaseModel::name()),
+            IOobject::groupName("diffNo", multiphaseInter::phaseModel::name()),
             U_.mesh().time().timeName(),
             U_.mesh()
         ),
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.H
index eb9ed0422c95966b196e8c8084333bda11360509..6964894aacb369faac7ccc258716f64c296b1a4b 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -75,7 +75,7 @@ public:
 
         MovingPhaseModel
         (
-            const phaseSystem& fluid,
+            const multiphaseInterSystem& fluid,
             const word& phaseName
         );
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C
index ec1e5b8441a1c7782a464fb6aad8e71906a91fa2..3926d267300c31e9e0879bf3f1e5fefb0337948d 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2021 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -27,8 +27,7 @@ License
 
 #include "MultiComponentPhaseModel.H"
 
-#include "phaseSystem.H"
-#include "multiphaseSystem.H"
+#include "multiphaseInterSystem.H"
 #include "fvmDdt.H"
 #include "fvmDiv.H"
 #include "fvmSup.H"
@@ -47,13 +46,14 @@ template<class BasePhaseModel, class phaseThermo>
 Foam::MultiComponentPhaseModel<BasePhaseModel, phaseThermo>::
 MultiComponentPhaseModel
 (
-    const phaseSystem& fluid,
+    const multiphaseInterSystem& fluid,
     const word& phaseName
 )
 :
     BasePhaseModel(fluid, phaseName),
     species_(),
-    inertIndex_(-1)
+    inertIndex_(-1),
+    addDiffusion_(false)
 {
     thermoPtr_.reset
     (
@@ -76,6 +76,11 @@ MultiComponentPhaseModel
 
     inertIndex_ = species_.find(thermoPtr_().template get<word>("inertSpecie"));
 
+    addDiffusion_ =
+        thermoPtr_().template getOrDefault<bool>("addDiffusion", false);
+
+    Sct_ = thermoPtr_().template getOrDefault<scalar>("Sct", 1.0);
+
     X_.setSize(thermoPtr_->composition().species().size());
 
     // Initiate X's using Y's to set BC's
@@ -221,7 +226,10 @@ void Foam::MultiComponentPhaseModel<BasePhaseModel, phaseThermo>::solveYi
 
     surfaceScalarField phir(0.0*phi);
 
-    forAllConstIter(phaseSystem::phaseModelTable,this->fluid().phases(),iter2)
+    forAllConstIter
+    (
+        multiphaseInterSystem::phaseModelTable,this->fluid().phases(),iter2
+    )
     {
         const volScalarField& alpha2 = iter2()();
         if (&alpha2 == &alpha1)
@@ -272,7 +280,9 @@ void Foam::MultiComponentPhaseModel<BasePhaseModel, phaseThermo>::solveYi
 
             forAllConstIter
             (
-                phaseSystem::phaseModelTable, this->fluid().phases(), iter2
+                multiphaseInterSystem::phaseModelTable,
+                this->fluid().phases(),
+                iter2
             )
             {
                 //const volScalarField& alpha2 = iter2()().oldTime();
@@ -396,6 +406,23 @@ void Foam::MultiComponentPhaseModel<BasePhaseModel, phaseThermo>::solveYi
                     zeroField()
                 );
             }
+
+            if (addDiffusion_)
+            {
+                const volScalarField& alpha = *this;
+                fvScalarMatrix YiDiffEqn
+                (
+                    fvm::ddt(Yi) - fvc::ddt(Yi)
+                  - fvm::laplacian
+                    (
+                        alpha*this->fluid().turbulence()->nut()/Sct_,
+                        Yi
+                    )
+                );
+
+                YiDiffEqn.solve(mesh.solver("diffusion" + Yi.name()));
+            }
+
             Yt += Yi;
         }
     }
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.H
index 15a5f2c56339cf7654f7e4f7be0cc1ab8defcfce..0a572d4b914a5ddb6e23223c517a9e64e4858f94 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -73,6 +73,12 @@ protected:
         //- Ptr list of volumetric fractions for species
         PtrList<volScalarField> X_;
 
+        //- Add diffusion transport on Yi's Eq
+        bool addDiffusion_;
+
+        //- Schmidt number
+        scalar Sct_;
+
 
     // Protected functions
 
@@ -89,7 +95,7 @@ public:
 
         MultiComponentPhaseModel
         (
-            const phaseSystem& fluid,
+            const multiphaseInterSystem& fluid,
             const word& phaseName
         );
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/PurePhaseModel/PurePhaseModel.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/PurePhaseModel/PurePhaseModel.C
index 9415a138eaf0c21b3ac7423948382aba2148c52e..546ef404cde93d27fc1864e7a4559d552fc03280 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/PurePhaseModel/PurePhaseModel.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/PurePhaseModel/PurePhaseModel.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2020 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -26,7 +26,7 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "PurePhaseModel.H"
-#include "phaseSystem.H"
+#include "multiphaseInterSystem.H"
 #include "basicThermo.H"
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
@@ -34,7 +34,7 @@ License
 template<class BasePhaseModel, class phaseThermo>
 Foam::PurePhaseModel<BasePhaseModel, phaseThermo>::PurePhaseModel
 (
-    const phaseSystem& fluid,
+    const multiphaseInterSystem& fluid,
     const word& phaseName
 )
 :
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/PurePhaseModel/PurePhaseModel.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/PurePhaseModel/PurePhaseModel.H
index 040c6fc542ab558504ac0150378bbf0ee4246d11..d227c7745e836d63c017f596f14ea9e9188b1cef 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/PurePhaseModel/PurePhaseModel.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/PurePhaseModel/PurePhaseModel.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -47,7 +47,7 @@ SourceFiles
 namespace Foam
 {
 
-class phaseSystem;
+class multiphaseInterSystem;
 
 /*---------------------------------------------------------------------------*\
                            Class PurePhaseModel Declaration
@@ -75,7 +75,7 @@ public:
 
         PurePhaseModel
         (
-            const phaseSystem& fluid,
+            const multiphaseInterSystem& fluid,
             const word& phaseName
         );
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/StaticPhaseModel/StaticPhaseModel.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/StaticPhaseModel/StaticPhaseModel.C
index 3a2920cdfde1edeb2e3f6e092c4a748eb4be5539..b86c773cc70bbee40be252aa8319ade8581fccf8 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/StaticPhaseModel/StaticPhaseModel.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/StaticPhaseModel/StaticPhaseModel.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -27,7 +27,7 @@ License
 
 #include "StaticPhaseModel.H"
 
-#include "phaseSystem.H"
+#include "multiphaseInterSystem.H"
 
 #include "fvcDdt.H"
 #include "fvcDiv.H"
@@ -39,7 +39,7 @@ License
 template<class BasePhaseModel>
 Foam::StaticPhaseModel<BasePhaseModel>::StaticPhaseModel
 (
-    const phaseSystem& fluid,
+    const multiphaseInterSystem& fluid,
     const word& phaseName
 )
 :
@@ -49,7 +49,7 @@ Foam::StaticPhaseModel<BasePhaseModel>::StaticPhaseModel
     (
         IOobject
         (
-            IOobject::groupName("phi", phaseModel::name()),
+            IOobject::groupName("phi", multiphaseInter::phaseModel::name()),
             fluid.mesh().time().timeName(),
             fluid.mesh()
         ),
@@ -60,7 +60,11 @@ Foam::StaticPhaseModel<BasePhaseModel>::StaticPhaseModel
     (
         IOobject
         (
-            IOobject::groupName("alphaPhi", phaseModel::name()),
+            IOobject::groupName
+            (
+                "alphaPhi",
+                multiphaseInter::phaseModel::name()
+            ),
             fluid.mesh().time().timeName(),
             fluid.mesh()
         ),
@@ -87,7 +91,7 @@ Foam::StaticPhaseModel<BasePhaseModel>::phi() const
     (
         IOobject
         (
-            IOobject::groupName("phi", phaseModel::name()),
+            IOobject::groupName("phi", multiphaseInter::phaseModel::name()),
             U_.mesh().time().timeName(),
             U_.mesh()
         ),
@@ -110,19 +114,20 @@ template<class BasePhaseModel>
 Foam::tmp<Foam::surfaceScalarField>
 Foam::StaticPhaseModel<BasePhaseModel>::alphaPhi() const
 {
-    return tmp<surfaceScalarField>
+    return tmp<surfaceScalarField>::New
     (
-        new surfaceScalarField
+        IOobject
         (
-            IOobject
+            IOobject::groupName
             (
-                IOobject::groupName("alphaPhi", phaseModel::name()),
-                U_.mesh().time().timeName(),
-                U_.mesh()
+                "alphaPhi",
+                multiphaseInter::phaseModel::name()
             ),
-            U_.mesh(),
-            dimensionedScalar(dimensionSet(0, 3, -1, 0, 0), Zero)
-        )
+            U_.mesh().time().timeName(),
+            U_.mesh()
+        ),
+        U_.mesh(),
+        dimensionedScalar(dimensionSet(0, 3, -1, 0, 0), Zero)
     );
 }
 
@@ -140,19 +145,16 @@ template<class BasePhaseModel>
 Foam::tmp<Foam::volVectorField>
 Foam::StaticPhaseModel<BasePhaseModel>::U() const
 {
-    return tmp<volVectorField>
+    return tmp<volVectorField>::New
     (
-        new volVectorField
+        IOobject
         (
-            IOobject
-            (
-                IOobject::groupName("U", phaseModel::name()),
-                U_.mesh().time().timeName(),
-                U_.mesh()
-            ),
-            U_.mesh(),
-            dimensionedVector(dimVelocity, Zero)
-        )
+            IOobject::groupName("U", multiphaseInter::phaseModel::name()),
+            U_.mesh().time().timeName(),
+            U_.mesh()
+        ),
+        U_.mesh(),
+        dimensionedVector(dimVelocity, Zero)
     );
 }
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/StaticPhaseModel/StaticPhaseModel.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/StaticPhaseModel/StaticPhaseModel.H
index 5113ae4f175477fbde0c69bfb903b35b957b9bc5..df6bcca94c9ff55b4c7780721fb2b032616bd9ee 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/StaticPhaseModel/StaticPhaseModel.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/StaticPhaseModel/StaticPhaseModel.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -71,7 +71,7 @@ public:
 
         StaticPhaseModel
         (
-            const phaseSystem& fluid,
+            const multiphaseInterSystem& fluid,
             const word& phaseName
         );
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/makePhaseTypes.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/makePhaseTypes.H
index 2a7ac11b196b496cc4d26a37c17b4b949654f15b..679b3d4c0e14b80a07e4d4703a25f1685637daee 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/makePhaseTypes.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/makePhaseTypes.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -46,15 +46,17 @@ License
             >                                                               \
         >                                                                   \
         Name;                                                               \
-                                                                            \
-        addNamedToRunTimeSelectionTable                                     \
-        (                                                                   \
-            phaseModel,                                                     \
-            Name,                                                           \
-            phaseSystem,                                                    \
-            Name                                                            \
-        );                                                                  \
-    }
+        namespace multiphaseInter                                           \
+        {                                                                   \
+            addNamedToRunTimeSelectionTable                                 \
+            (                                                               \
+                phaseModel,                                                 \
+                Name,                                                       \
+                multiphaseInterSystem,                                      \
+                Name                                                        \
+            );                                                              \
+        }                                                                   \
+    }                                                                       \
 
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModel.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModel.C
index 4bbe1e30535c2d0f7c9c09994487d056a43ba5ac..fabb861777db87c8bb7ad29bb9de5174350445b0 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModel.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModel.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2021 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -26,21 +26,24 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "phaseModel.H"
-#include "phaseSystem.H"
+#include "multiphaseInterSystem.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
+{
+namespace multiphaseInter
 {
     defineTypeNameAndDebug(phaseModel, 0);
-    defineRunTimeSelectionTable(phaseModel, phaseSystem);
+    defineRunTimeSelectionTable(phaseModel, multiphaseInterSystem);
+}
 }
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::phaseModel::phaseModel
+Foam::multiphaseInter::phaseModel::phaseModel
 (
-    const phaseSystem& fluid,
+    const multiphaseInterSystem& fluid,
     const word& phaseName
 )
 :
@@ -64,10 +67,10 @@ Foam::phaseModel::phaseModel
 
 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::phaseModel>
-Foam::phaseModel::New
+Foam::autoPtr<Foam::multiphaseInter::phaseModel>
+Foam::multiphaseInter::phaseModel::New
 (
-    const phaseSystem& fluid,
+    const multiphaseInterSystem& fluid,
     const word& phaseName
 )
 {
@@ -78,7 +81,7 @@ Foam::phaseModel::New
     Info<< "Selecting phaseModel for "
         << phaseName << ": " << modelType << endl;
 
-    auto* ctorPtr = phaseSystemConstructorTable(modelType);
+    auto* ctorPtr = multiphaseInterSystemConstructorTable(modelType);
 
     if (!ctorPtr)
     {
@@ -87,7 +90,7 @@ Foam::phaseModel::New
             dict,
             "phaseModel",
             modelType,
-            *phaseSystemConstructorTablePtr_
+            *multiphaseInterSystemConstructorTablePtr_
         ) << exit(FatalIOError);
     }
 
@@ -97,49 +100,51 @@ Foam::phaseModel::New
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-const Foam::phaseSystem& Foam::phaseModel::fluid() const
+const Foam::multiphaseInterSystem&
+Foam::multiphaseInter::phaseModel::fluid() const
 {
     return fluid_;
 }
 
 
-void Foam::phaseModel::correct()
+void Foam::multiphaseInter::phaseModel::correct()
 {
     thermo().correct();
 }
 
 
-void Foam::phaseModel::correctTurbulence()
+void Foam::multiphaseInter::phaseModel::correctTurbulence()
 {
     // do nothing
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::rho() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::rho() const
 {
     return thermo().rho();
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::rho(const label patchI) const
+Foam::tmp<Foam::scalarField>
+Foam::multiphaseInter::phaseModel::rho(const label patchI) const
 {
      return thermo().rho(patchI);
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::hc() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::hc() const
 {
      return thermo().hc();
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::Cp() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::Cp() const
 {
      return thermo().Cp();
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::Cp
+Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::Cp
 (
     const scalarField& p,
     const scalarField& T,
@@ -150,13 +155,13 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::Cp
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::Cv() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::Cv() const
 {
     return thermo().Cv();
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::Cv
+Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::Cv
 (
     const scalarField& p,
     const scalarField& T,
@@ -167,13 +172,13 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::Cv
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::gamma() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::gamma() const
 {
     return thermo().gamma();
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::gamma
+Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::gamma
 (
     const scalarField& p,
     const scalarField& T,
@@ -184,13 +189,13 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::gamma
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::Cpv() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::Cpv() const
 {
     return thermo().Cpv();
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::Cpv
+Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::Cpv
 (
     const scalarField& p,
     const scalarField& T,
@@ -201,13 +206,13 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::Cpv
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::CpByCpv() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::CpByCpv() const
 {
      return thermo().CpByCpv();
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::CpByCpv
+Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::CpByCpv
 (
     const scalarField& p,
     const scalarField& T,
@@ -218,43 +223,47 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::CpByCpv
 }
 
 
-const Foam::volScalarField& Foam::phaseModel::alpha() const
+const Foam::volScalarField& Foam::multiphaseInter::phaseModel::alpha() const
 {
     return thermo().alpha();
 }
 
 
-const Foam::scalarField& Foam::phaseModel::alpha(const label patchI) const
+const Foam::scalarField&
+Foam::multiphaseInter::phaseModel::alpha(const label patchI) const
 {
     return thermo().alpha(patchI);
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::kappa() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::kappa() const
 {
     return thermo().kappa();
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::kappa(const label patchI) const
+Foam::tmp<Foam::scalarField>
+Foam::multiphaseInter::phaseModel::kappa(const label patchI) const
 {
     return thermo().kappa(patchI);
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::alphahe() const
+Foam::tmp<Foam::volScalarField>
+Foam::multiphaseInter::phaseModel::alphahe() const
 {
     return thermo().alphahe();
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::alphahe(const label patchI) const
+Foam::tmp<Foam::scalarField>
+Foam::multiphaseInter::phaseModel::alphahe(const label patchI) const
 {
     return thermo().alphahe(patchI);
 }
 
 
-Foam::tmp<Foam::volScalarField>Foam::phaseModel::kappaEff
+Foam::tmp<Foam::volScalarField>Foam::multiphaseInter::phaseModel::kappaEff
 (
     const volScalarField& kappat
 ) const
@@ -265,7 +274,7 @@ Foam::tmp<Foam::volScalarField>Foam::phaseModel::kappaEff
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::kappaEff
+Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::kappaEff
 (
     const scalarField& kappat,
     const label patchI
@@ -275,7 +284,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::kappaEff
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::alphaEff
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::alphaEff
 (
     const volScalarField& alphat
 ) const
@@ -284,7 +293,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseModel::alphaEff
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::alphaEff
+Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::alphaEff
 (
     const scalarField& alphat,
     const label patchI
@@ -294,31 +303,33 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::alphaEff
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::mu() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::mu() const
 {
     return thermo().mu();
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::mu(const label patchi) const
+Foam::tmp<Foam::scalarField>
+Foam::multiphaseInter::phaseModel::mu(const label patchi) const
 {
     return thermo().mu(patchi);
 }
 
 
-Foam::tmp<Foam::volScalarField> Foam::phaseModel::nu() const
+Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::nu() const
 {
     return thermo().nu();
 }
 
 
-Foam::tmp<Foam::scalarField> Foam::phaseModel::nu(const label patchi) const
+Foam::tmp<Foam::scalarField>
+Foam::multiphaseInter::phaseModel::nu(const label patchi) const
 {
     return thermo().nu(patchi);
 }
 
 
-bool Foam::phaseModel::read()
+bool Foam::multiphaseInter::phaseModel::read()
 {
     return true;
 }
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModel.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModel.H
index 1f9ade080838ee1e49db8da7a524e12e6f59f9ec..977dd8d862433dcc3ba43109d7b5e982b7d69e2e 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModel.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModel.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017-2021 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -33,8 +33,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef phaseModel_H
-#define phaseModel_H
+#ifndef Foam_multiphaseInter_phaseModel_H
+#define Foam_multiphaseInter_phaseModel_H
 
 #include "dictionary.H"
 #include "dimensionedScalar.H"
@@ -50,8 +50,10 @@ namespace Foam
 {
 
 // Forward Declarations
-class phaseSystem;
+class multiphaseInterSystem;
 
+namespace multiphaseInter
+{
 /*---------------------------------------------------------------------------*\
                          Class phaseModel Declaration
 \*---------------------------------------------------------------------------*/
@@ -62,8 +64,8 @@ class phaseModel
 {
     // Private Data
 
-        //- Reference to the phaseSystem to which this phase belongs
-        const phaseSystem& fluid_;
+        //- Reference to the multiphaseInterSystem to which this phase belongs
+        const multiphaseInterSystem& fluid_;
 
         //- Name of phase
         word name_;
@@ -79,9 +81,9 @@ public:
     (
         autoPtr,
         phaseModel,
-        phaseSystem,
+        multiphaseInterSystem,
         (
-            const phaseSystem& fluid,
+            const multiphaseInterSystem& fluid,
             const word& phaseName
         ),
         (fluid, phaseName)
@@ -90,8 +92,8 @@ public:
 
     // Constructors
 
-        //- Construct from phaseSystem and phaseName
-        phaseModel(const phaseSystem& fluid, const word& phaseName);
+        //- Construct from multiphaseInterSystem and phaseName
+        phaseModel(const multiphaseInterSystem& fluid, const word& phaseName);
 
 
     //- Destructor
@@ -102,7 +104,7 @@ public:
 
         static autoPtr<phaseModel> New
         (
-            const phaseSystem& fluid,
+            const multiphaseInterSystem& fluid,
             const word& phaseName
         );
 
@@ -116,7 +118,7 @@ public:
         }
 
         //- Return the system to which this phase belongs
-        const phaseSystem& fluid() const;
+        const multiphaseInterSystem& fluid() const;
 
         //- Correct phase thermo
         virtual void correct();
@@ -325,6 +327,7 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+} // End namespace multiphaseInter
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModels.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModels.C
index e1ef9e70d1d506ba7647f73a61ac7362190d9a9f..25eae2d892fd8ae7e8a3bb2cb64995acda2ea39e 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModels.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/phaseModel/phaseModels.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -42,7 +42,7 @@ makePhaseTypes
 (
     MovingPhaseModel,
     PurePhaseModel,
-    phaseModel,
+    multiphaseInter::phaseModel,
     rhoThermo,
     pureMovingPhaseModel // Name of the phase type
 );
@@ -51,7 +51,7 @@ makePhaseTypes
 (
     StaticPhaseModel,
     PurePhaseModel,
-    phaseModel,
+    multiphaseInter::phaseModel,
     rhoThermo,
     pureStaticPhaseModel
 );
@@ -60,7 +60,7 @@ makePhaseTypes
 (
     StaticPhaseModel,
     PurePhaseModel,
-    phaseModel,
+    multiphaseInter::phaseModel,
     solidThermo,
     pureStaticSolidPhaseModel
 );
@@ -69,7 +69,7 @@ makePhaseTypes
 (
     MovingPhaseModel,
     MultiComponentPhaseModel,
-    phaseModel,
+    multiphaseInter::phaseModel,
     rhoReactionThermo,
     multiComponentMovingPhaseModel
 );
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/orderedPhasePair.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/orderedPhasePair.C
index f8ae9e2a43005ed98a64eb0475d73f445d957388..3b65ef2d5000d2a4ba12ceb9410bc6621c853d08 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/orderedPhasePair.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/orderedPhasePair.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -31,8 +31,8 @@ License
 
 Foam::orderedPhasePair::orderedPhasePair
 (
-    const phaseModel& from,
-    const phaseModel& to
+    const multiphaseInter::phaseModel& from,
+    const multiphaseInter::phaseModel& to
 )
 :
     phasePair(from, to, true)
@@ -41,13 +41,13 @@ Foam::orderedPhasePair::orderedPhasePair
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
-const Foam::phaseModel& Foam::orderedPhasePair::from() const
+const Foam::multiphaseInter::phaseModel& Foam::orderedPhasePair::from() const
 {
     return phase1();
 }
 
 
-const Foam::phaseModel& Foam::orderedPhasePair::to() const
+const Foam::multiphaseInter::phaseModel& Foam::orderedPhasePair::to() const
 {
     return phase2();
 }
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/orderedPhasePair.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/orderedPhasePair.H
index 6c09db78da47b1e10f1a02f0243d1f2c9e137c59..0540d143ab37b2f8253ed4ce95513ae39ff697bc 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/orderedPhasePair.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/orderedPhasePair.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -58,8 +58,8 @@ public:
         //- Construct from two phases and gravity
         orderedPhasePair
         (
-            const phaseModel& from,
-            const phaseModel& to
+            const multiphaseInter::phaseModel& from,
+            const multiphaseInter::phaseModel& to
         );
 
 
@@ -70,10 +70,10 @@ public:
     // Member Functions
 
         //- Dispersed phase
-        virtual const phaseModel& from() const;
+        virtual const multiphaseInter::phaseModel& from() const;
 
         //- Continuous phase
-        virtual const phaseModel& to() const;
+        virtual const multiphaseInter::phaseModel& to() const;
 
         //- Pair name
         virtual word name() const;
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePair.C b/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePair.C
index 1d6837fb505dc6371f493e30ea248a47081477f9..49a3a2f4ff4168f6300c862163efcb82063e07d8 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePair.C
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePair.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -33,8 +33,8 @@ License
 
 Foam::phasePair::phasePair
 (
-    const phaseModel& phase1,
-    const phaseModel& phase2,
+    const multiphaseInter::phaseModel& phase1,
+    const multiphaseInter::phaseModel& phase2,
     const bool ordered
 )
 :
@@ -46,7 +46,7 @@ Foam::phasePair::phasePair
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
-const Foam::phaseModel& Foam::phasePair::from() const
+const Foam::multiphaseInter::phaseModel& Foam::phasePair::from() const
 {
     FatalErrorInFunction
         << "Requested from phase from an unordered pair."
@@ -56,7 +56,7 @@ const Foam::phaseModel& Foam::phasePair::from() const
 }
 
 
-const Foam::phaseModel& Foam::phasePair::to() const
+const Foam::multiphaseInter::phaseModel& Foam::phasePair::to() const
 {
     FatalErrorInFunction
         << "Requested to phase from an unordered pair."
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePair.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePair.H
index d20491e397fa6b6310db9331334b7dc99c03f822..c4a3c395a65d942294668b3421e3d300c4135915 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePair.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePair.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -58,10 +58,10 @@ class phasePair
     // Private data
 
         //- Phase 1
-        const phaseModel& phase1_;
+        const multiphaseInter::phaseModel& phase1_;
 
         //- Phase 2
-        const phaseModel& phase2_;
+        const multiphaseInter::phaseModel& phase2_;
 
 
 public:
@@ -71,8 +71,8 @@ public:
         //- Construct from two phases
         phasePair
         (
-            const phaseModel& phase1,
-            const phaseModel& phase2,
+            const multiphaseInter::phaseModel& phase1,
+            const multiphaseInter::phaseModel& phase2,
             const bool ordered = false
         );
 
@@ -84,10 +84,10 @@ public:
     // Member Functions
 
         //- From phase
-        virtual const phaseModel& from() const;
+        virtual const multiphaseInter::phaseModel& from() const;
 
         //- To phase
-        virtual const phaseModel& to() const;
+        virtual const multiphaseInter::phaseModel& to() const;
 
         //- Pair name
         virtual word name() const;
@@ -96,10 +96,10 @@ public:
         // Access
 
             // Phase 1
-            inline const phaseModel& phase1() const;
+            inline const multiphaseInter::phaseModel& phase1() const;
 
             // Phase 2
-            inline const phaseModel& phase2() const;
+            inline const multiphaseInter::phaseModel& phase2() const;
 };
 
 
diff --git a/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePairI.H b/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePairI.H
index 3aa4617ce4835f1a58e1304b9d2e65d68d5d06fa..bfcb3252f9be2eff399a454807c37f62c71f5620 100644
--- a/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePairI.H
+++ b/src/phaseSystemModels/multiphaseInter/phasesSystem/phasePair/phasePairI.H
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2017 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -27,13 +27,13 @@ License
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-inline const Foam::phaseModel& Foam::phasePair::phase1() const
+inline const Foam::multiphaseInter::phaseModel& Foam::phasePair::phase1() const
 {
     return phase1_;
 }
 
 
-inline const Foam::phaseModel& Foam::phasePair::phase2() const
+inline const Foam::multiphaseInter::phaseModel& Foam::phasePair::phase2() const
 {
     return phase2_;
 }
diff --git a/src/phaseSystemModels/reactingEuler/Allwclean b/src/phaseSystemModels/reactingEuler/Allwclean
index 79ef7c0453d0def456ada277e709722eab1abe38..36c0d2afde6b4a8ffddcf7cbab9c1c2d81b52ede 100755
--- a/src/phaseSystemModels/reactingEuler/Allwclean
+++ b/src/phaseSystemModels/reactingEuler/Allwclean
@@ -3,9 +3,9 @@ cd "${0%/*}" || exit    # Run from this directory
 #------------------------------------------------------------------------------
 
 # echo "cleaning ${PWD##*/}"
+wclean libso saturationModels
 
 wclean libso multiphaseSystem
-wclean libso functionObjects
 
 wclean libso twoPhaseSystem
 wclean libso twoPhaseCompressibleTurbulenceModels
diff --git a/src/phaseSystemModels/reactingEuler/Allwmake b/src/phaseSystemModels/reactingEuler/Allwmake
index ca9165e4a9349a1b57c8b144974ac39f2d6f7e2d..6c8102712b7a122aeb32ecb78ecf4b92367ef715 100755
--- a/src/phaseSystemModels/reactingEuler/Allwmake
+++ b/src/phaseSystemModels/reactingEuler/Allwmake
@@ -5,8 +5,9 @@ cd "${0%/*}" || exit                                # Run from this directory
 
 # echo "making ${PWD##*/}"
 
+wmake $targetType saturationModels
+
 wmake $targetType multiphaseSystem
-wmake $targetType functionObjects
 
 wmake $targetType twoPhaseSystem
 wmake $targetType twoPhaseCompressibleTurbulenceModels
diff --git a/src/phaseSystemModels/reactingEuler/functionObjects/Make/files b/src/phaseSystemModels/reactingEuler/functionObjects/Make/files
deleted file mode 100644
index 567c9619ea0ba90bf3f7aef88cb3150f079ee723..0000000000000000000000000000000000000000
--- a/src/phaseSystemModels/reactingEuler/functionObjects/Make/files
+++ /dev/null
@@ -1,5 +0,0 @@
-sizeDistribution/sizeDistribution.C
-phaseForces/phaseForces.C
-reactingEulerHtcModel/reactingEulerHtcModel.C
-
-LIB = $(FOAM_LIBBIN)/libreactingEulerFoamFunctionObjects
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files b/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files
index c03bcb3ffb8e690c6e70bb61de9c59c8ed18ce23..0033a1875de250b75a5ec8c976e72e66bb2630c4 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files
@@ -156,15 +156,6 @@ $(massTransfer)/massTransferModel/massTransferModel.C
 $(massTransfer)/Frossling/Frossling.C
 $(massTransfer)/sphericalMassTransfer/sphericalMassTransfer.C
 
-saturation = interfacialCompositionModels/saturationModels
-$(saturation)/saturationModel/saturationModel.C
-$(saturation)/Antoine/Antoine.C
-$(saturation)/AntoineExtended/AntoineExtended.C
-$(saturation)/ArdenBuck/ArdenBuck.C
-$(saturation)/polynomial/polynomial.C
-$(saturation)/function1/function1.C
-$(saturation)/constantSaturationConditions/constantSaturationConditions.C
-
 surfaceTension = interfacialCompositionModels/surfaceTensionModels
 $(surfaceTension)/surfaceTensionModel/surfaceTensionModel.C
 $(surfaceTension)/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.C
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/options b/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/options
index ae3cbab1b227dbaf9a6f41fae8980f4874186f3a..2be65999966c93c970d0374ba4dcf93b89ba141b 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/options
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/options
@@ -1,4 +1,5 @@
 EXE_INC = \
+    -I./../saturationModels/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
@@ -24,4 +25,5 @@ LIB_LIBS = \
     -lspecie \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
-    -lthermophysicalProperties
+    -lthermophysicalProperties \
+    -lsaturationModel
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.C
index 9fa823d4e83518540cf4a2fd5e959e49b1eca940..8e065b876a43d544606cc20f66a691ccbdc262c1 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.C
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2019 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -33,6 +34,8 @@ License
 
 namespace Foam
 {
+namespace reactingMultiphaseEuler
+{
 
 alphaContactAngleFvPatchScalarField::interfaceThetaProps::interfaceThetaProps
 (
@@ -142,6 +145,7 @@ makePatchTypeField
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+} // End namespace reactingMultiphaseEuler
 } // End namespace Foam
 
 // ************************************************************************* //
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.H b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
index 2e4090a0fe4380d1a1eed4a98af4b96a5b42d266..a28a4e5f54afcdac1f68c52ddefee6d79da41d92 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.H
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2018 OpenFOAM Foundation
-    Copyright (C) 2021 OpenCFD Ltd.
+    Copyright (C) 2021-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -69,8 +69,8 @@ SourceFiles
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef alphaContactAngleFvPatchScalarField_H
-#define alphaContactAngleFvPatchScalarField_H
+#ifndef Foam_reactingMultiphaseEuler_alphaContactAngleFvPatchScalarField_H
+#define Foam_reactingMultiphaseEuler_alphaContactAngleFvPatchScalarField_H
 
 #include "zeroGradientFvPatchFields.H"
 #include "multiphaseSystem.H"
@@ -79,6 +79,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace reactingMultiphaseEuler
+{
 
 /*---------------------------------------------------------------------------*\
                     Class alphaContactAngleFvPatch Declaration
@@ -172,7 +174,7 @@ private:
 public:
 
     //- Runtime type information
-    TypeName("alphaContactAngle");
+    TypeName("reactingMultiphaseEuler::alphaContactAngle");
 
 
     // Constructors
@@ -246,6 +248,7 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+} // End namespace reactingMultiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.C
index 2c7cbb2e0b5d4855fda15fdfa33ac878be880f84..56e7d5541249023256d2f87ceb98ff7664cbad34 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.C
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.C
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2015-2018 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -33,6 +34,8 @@ License
 
 namespace Foam
 {
+namespace reactingMultiphaseEuler
+{
 namespace surfaceTensionModels
 {
     defineTypeNameAndDebug(constantSurfaceTensionCoefficient, 0);
@@ -44,12 +47,12 @@ namespace surfaceTensionModels
     );
 }
 }
-
+}
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::surfaceTensionModels::constantSurfaceTensionCoefficient::
-constantSurfaceTensionCoefficient
+Foam::reactingMultiphaseEuler::surfaceTensionModels::
+constantSurfaceTensionCoefficient::constantSurfaceTensionCoefficient
 (
     const dictionary& dict,
     const phasePair& pair,
@@ -63,15 +66,16 @@ constantSurfaceTensionCoefficient
 
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
-Foam::surfaceTensionModels::constantSurfaceTensionCoefficient::
-~constantSurfaceTensionCoefficient()
+Foam::reactingMultiphaseEuler::surfaceTensionModels::
+constantSurfaceTensionCoefficient::~constantSurfaceTensionCoefficient()
 {}
 
 
 // * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * * //
 
 Foam::tmp<Foam::volScalarField>
-Foam::surfaceTensionModels::constantSurfaceTensionCoefficient::sigma() const
+Foam::reactingMultiphaseEuler::surfaceTensionModels::
+constantSurfaceTensionCoefficient::sigma() const
 {
     const fvMesh& mesh(this->pair_.phase1().mesh());
 
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H b/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H
index b31847b506eed518dd77f97926ba57ebdb8819c3..4715822c9c101052b6adf2310c7595fc3ee5df68 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2015-2018 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -43,6 +44,8 @@ SourceFiles
 
 namespace Foam
 {
+namespace reactingMultiphaseEuler
+{
 namespace surfaceTensionModels
 {
 
@@ -91,6 +94,7 @@ public:
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace surfaceTensionModels
+} // End namespace reactingMultiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C
index e8c068311112e2d044c8c6d7f6b111c260a49d68..4d4e05ce699259dfec1702bf7765a131118c647c 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2015-2018 OpenFOAM Foundation
-    Copyright (C) 2019-2021 OpenCFD Ltd.
+    Copyright (C) 2019-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -32,17 +32,21 @@ License
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
+{
+namespace reactingMultiphaseEuler
 {
     defineTypeNameAndDebug(surfaceTensionModel, 0);
     defineRunTimeSelectionTable(surfaceTensionModel, dictionary);
 }
+}
 
-const Foam::dimensionSet Foam::surfaceTensionModel::dimSigma(1, 0, -2, 0, 0);
+const Foam::dimensionSet
+Foam::reactingMultiphaseEuler::surfaceTensionModel::dimSigma(1, 0, -2, 0, 0);
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::surfaceTensionModel::surfaceTensionModel
+Foam::reactingMultiphaseEuler::surfaceTensionModel::surfaceTensionModel
 (
     const dictionary& dict,
     const phasePair& pair,
@@ -67,8 +71,8 @@ Foam::surfaceTensionModel::surfaceTensionModel
 
 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
 
-Foam::autoPtr<Foam::surfaceTensionModel>
-Foam::surfaceTensionModel::New
+Foam::autoPtr<Foam::reactingMultiphaseEuler::surfaceTensionModel>
+Foam::reactingMultiphaseEuler::surfaceTensionModel::New
 (
     const dictionary& dict,
     const phasePair& pair
@@ -98,7 +102,7 @@ Foam::surfaceTensionModel::New
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-bool Foam::surfaceTensionModel::writeData(Ostream& os) const
+bool Foam::reactingMultiphaseEuler::surfaceTensionModel::writeData(Ostream& os) const
 {
     return os.good();
 }
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H b/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H
index af8284cfcf6e3d5aed1e9e7ec10f0fe5c12e93d4..29b27e9529eb3a5bd0fc88907a216017010b346f 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/surfaceTensionModels/surfaceTensionModel/surfaceTensionModel.H
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2015-2018 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -49,6 +49,9 @@ namespace Foam
 // Forward Declarations
 class phasePair;
 
+namespace reactingMultiphaseEuler
+{
+
 /*---------------------------------------------------------------------------*\
                            Class surfaceTensionModel Declaration
 \*---------------------------------------------------------------------------*/
@@ -128,6 +131,7 @@ public:
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+} // End namespace reactingMultiphaseEuler
 } // End namespace Foam
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.C
index 75554b740d56d19e80954b7b94302af944dab761..3b795194c94d114791fc303de771c4702f77f097 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.C
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/multiphaseSystem/multiphaseSystem.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2013-2019 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -394,10 +394,20 @@ void Foam::multiphaseSystem::correctContactAngle
 
     forAll(boundary, patchi)
     {
-        if (isA<alphaContactAngleFvPatchScalarField>(gbf[patchi]))
+        if
+        (
+            isA<reactingMultiphaseEuler::alphaContactAngleFvPatchScalarField>
+            (
+                gbf[patchi]
+            )
+        )
         {
-            const alphaContactAngleFvPatchScalarField& acap =
-                refCast<const alphaContactAngleFvPatchScalarField>(gbf[patchi]);
+            const auto& acap =
+                refCast
+                <
+                    const reactingMultiphaseEuler::
+                        alphaContactAngleFvPatchScalarField
+                >(gbf[patchi]);
 
             vectorField& nHatPatch = nHatb[patchi];
 
@@ -407,8 +417,8 @@ void Foam::multiphaseSystem::correctContactAngle
                /mesh_.magSf().boundaryField()[patchi]
             );
 
-            alphaContactAngleFvPatchScalarField::thetaPropsTable::
-                const_iterator tp =
+            reactingMultiphaseEuler::alphaContactAngleFvPatchScalarField::
+                thetaPropsTable::const_iterator tp =
                     acap.thetaProps()
                    .find(phasePairKey(phase1.name(), phase2.name()));
 
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phasePair/phasePair.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phasePair/phasePair.C
index c121ca713aa8889c9d55bb74555057bd2ed3a21c..b16fb616e6b8e59cbde5b5b55f6258eb41998533 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phasePair/phasePair.C
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phasePair/phasePair.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2014-2018 OpenFOAM Foundation
-    Copyright (C) 2018 OpenCFD Ltd.
+    Copyright (C) 2018-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -170,7 +170,8 @@ Foam::tmp<Foam::volScalarField> Foam::phasePair::EoH2() const
 Foam::tmp<Foam::volScalarField> Foam::phasePair::sigma() const
 {
     return
-        phase1().fluid().lookupSubModel<surfaceTensionModel>
+        phase1().fluid().
+            lookupSubModel<reactingMultiphaseEuler::surfaceTensionModel>
         (
             phasePair(phase1(), phase2())
         ).sigma();
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseSystem/phaseSystem.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseSystem/phaseSystem.C
index 85beab63289e63cc5d87a5143f107a6eb02f7e6a..bee5a74ba85bca8e2a4878fa62a24bf4616f5f4e 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseSystem/phaseSystem.C
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseSystem/phaseSystem.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2015-2018 OpenFOAM Foundation
-    Copyright (C) 2019-2021 OpenCFD Ltd.
+    Copyright (C) 2019-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -326,9 +326,13 @@ Foam::phaseSystem::sigma(const phasePairKey& key) const
     {
         return volScalarField::New
         (
-            surfaceTensionModel::typeName + ":sigma",
+            reactingMultiphaseEuler::surfaceTensionModel::typeName + ":sigma",
             this->mesh_,
-            dimensionedScalar("zero", surfaceTensionModel::dimSigma, 0)
+            dimensionedScalar
+            (
+                reactingMultiphaseEuler::surfaceTensionModel::dimSigma,
+                0
+            )
         );
     }
 }
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseSystem/phaseSystem.H b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseSystem/phaseSystem.H
index 7b4549dbb57c03b1aefbfc06f296201069c68edc..da13bb2b58a4677a75b76cff0c472b7772ba975d 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseSystem/phaseSystem.H
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseSystem/phaseSystem.H
@@ -6,6 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2015-2019 OpenFOAM Foundation
+    Copyright (C) 2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -60,9 +61,12 @@ namespace Foam
 
 class blendingMethod;
 template<class modelType> class BlendedInterfacialModel;
-class surfaceTensionModel;
 class aspectRatioModel;
 
+namespace reactingMultiphaseEuler
+{
+    class surfaceTensionModel;
+}
 /*---------------------------------------------------------------------------*\
                          Class phaseSystem Declaration
 \*---------------------------------------------------------------------------*/
@@ -104,7 +108,7 @@ protected:
         typedef
             HashTable
             <
-                autoPtr<surfaceTensionModel>,
+                autoPtr<reactingMultiphaseEuler::surfaceTensionModel>,
                 phasePairKey,
                 phasePairKey::hash
             >
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/populationBalanceModel/populationBalanceModel/populationBalanceModel.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/populationBalanceModel/populationBalanceModel/populationBalanceModel.C
index c50ba7996a09dc6e9426e7b9ce5679ed2a0aba77..db4ccbfac4d3b9053de7f2e24421b72fe1c5ad2b 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/populationBalanceModel/populationBalanceModel/populationBalanceModel.C
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/populationBalanceModel/populationBalanceModel/populationBalanceModel.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2017-2019 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -1209,7 +1209,7 @@ Foam::diameterModels::populationBalanceModel::sigmaWithContinuousPhase
 ) const
 {
     return
-        fluid_.lookupSubModel<surfaceTensionModel>
+        fluid_.lookupSubModel<reactingMultiphaseEuler::surfaceTensionModel>
         (
             phasePair(dispersedPhase, continuousPhase_)
         ).sigma();
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/Antoine/Antoine.C b/src/phaseSystemModels/reactingEuler/saturationModels/Antoine/Antoine.C
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/Antoine/Antoine.C
rename to src/phaseSystemModels/reactingEuler/saturationModels/Antoine/Antoine.C
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/Antoine/Antoine.H b/src/phaseSystemModels/reactingEuler/saturationModels/Antoine/Antoine.H
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/Antoine/Antoine.H
rename to src/phaseSystemModels/reactingEuler/saturationModels/Antoine/Antoine.H
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C b/src/phaseSystemModels/reactingEuler/saturationModels/AntoineExtended/AntoineExtended.C
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.C
rename to src/phaseSystemModels/reactingEuler/saturationModels/AntoineExtended/AntoineExtended.C
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.H b/src/phaseSystemModels/reactingEuler/saturationModels/AntoineExtended/AntoineExtended.H
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/AntoineExtended/AntoineExtended.H
rename to src/phaseSystemModels/reactingEuler/saturationModels/AntoineExtended/AntoineExtended.H
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C b/src/phaseSystemModels/reactingEuler/saturationModels/ArdenBuck/ArdenBuck.C
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.C
rename to src/phaseSystemModels/reactingEuler/saturationModels/ArdenBuck/ArdenBuck.C
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.H b/src/phaseSystemModels/reactingEuler/saturationModels/ArdenBuck/ArdenBuck.H
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/ArdenBuck/ArdenBuck.H
rename to src/phaseSystemModels/reactingEuler/saturationModels/ArdenBuck/ArdenBuck.H
diff --git a/src/phaseSystemModels/reactingEuler/saturationModels/Make/files b/src/phaseSystemModels/reactingEuler/saturationModels/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..846b7bb4ee119423e96a38b5a23d42c003d690e6
--- /dev/null
+++ b/src/phaseSystemModels/reactingEuler/saturationModels/Make/files
@@ -0,0 +1,9 @@
+saturationModel/saturationModel.C
+Antoine/Antoine.C
+AntoineExtended/AntoineExtended.C
+ArdenBuck/ArdenBuck.C
+polynomial/polynomial.C
+function1/function1.C
+constantSaturationConditions/constantSaturationConditions.C
+
+LIB = $(FOAM_LIBBIN)/libsaturationModel
diff --git a/src/phaseSystemModels/reactingEuler/saturationModels/Make/options b/src/phaseSystemModels/reactingEuler/saturationModels/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..71b7873964d544eddf96d22aa40f4c3372c23c9c
--- /dev/null
+++ b/src/phaseSystemModels/reactingEuler/saturationModels/Make/options
@@ -0,0 +1,5 @@
+EXE_INC = \
+    -I$(LIB_SRC)/finiteVolume/lnInclude
+
+LIB_LIBS = \
+    -lfiniteVolume
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.C b/src/phaseSystemModels/reactingEuler/saturationModels/constantSaturationConditions/constantSaturationConditions.C
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.C
rename to src/phaseSystemModels/reactingEuler/saturationModels/constantSaturationConditions/constantSaturationConditions.C
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.H b/src/phaseSystemModels/reactingEuler/saturationModels/constantSaturationConditions/constantSaturationConditions.H
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/constantSaturationConditions/constantSaturationConditions.H
rename to src/phaseSystemModels/reactingEuler/saturationModels/constantSaturationConditions/constantSaturationConditions.H
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/function1/function1.C b/src/phaseSystemModels/reactingEuler/saturationModels/function1/function1.C
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/function1/function1.C
rename to src/phaseSystemModels/reactingEuler/saturationModels/function1/function1.C
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/function1/function1.H b/src/phaseSystemModels/reactingEuler/saturationModels/function1/function1.H
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/function1/function1.H
rename to src/phaseSystemModels/reactingEuler/saturationModels/function1/function1.H
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/polynomial/polynomial.C b/src/phaseSystemModels/reactingEuler/saturationModels/polynomial/polynomial.C
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/polynomial/polynomial.C
rename to src/phaseSystemModels/reactingEuler/saturationModels/polynomial/polynomial.C
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/polynomial/polynomial.H b/src/phaseSystemModels/reactingEuler/saturationModels/polynomial/polynomial.H
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/polynomial/polynomial.H
rename to src/phaseSystemModels/reactingEuler/saturationModels/polynomial/polynomial.H
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.C b/src/phaseSystemModels/reactingEuler/saturationModels/saturationModel/saturationModel.C
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.C
rename to src/phaseSystemModels/reactingEuler/saturationModels/saturationModel/saturationModel.C
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.H b/src/phaseSystemModels/reactingEuler/saturationModels/saturationModel/saturationModel.H
similarity index 100%
rename from src/phaseSystemModels/reactingEuler/multiphaseSystem/interfacialCompositionModels/saturationModels/saturationModel/saturationModel.H
rename to src/phaseSystemModels/reactingEuler/saturationModels/saturationModel/saturationModel.H
diff --git a/src/phaseSystemModels/reactingEuler/twoPhaseSystem/Make/options b/src/phaseSystemModels/reactingEuler/twoPhaseSystem/Make/options
index e07d2ee9331a97f77b2c4293af29b00342a25fab..f3e5d3551feb531666769a87665935027dd864c6 100644
--- a/src/phaseSystemModels/reactingEuler/twoPhaseSystem/Make/options
+++ b/src/phaseSystemModels/reactingEuler/twoPhaseSystem/Make/options
@@ -1,5 +1,6 @@
 EXE_INC = \
     -I../multiphaseSystem/lnInclude \
+    -I./../saturationModels/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
@@ -17,4 +18,5 @@ LIB_LIBS = \
     -lcombustionModels \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
-    -lreactingMultiphaseSystem
+    -lreactingMultiphaseSystem \
+    -lsaturationModel
diff --git a/src/regionModels/regionCoupling/Make/options b/src/regionModels/regionCoupling/Make/options
index 296ed5e2286997f7608261e1bbd3189fa0405d19..467ab19e8a6768137ee39e4bafd37e20a2e6a405 100644
--- a/src/regionModels/regionCoupling/Make/options
+++ b/src/regionModels/regionCoupling/Make/options
@@ -14,6 +14,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
+    -I$(LIB_SRC)/thermoTools/lnInclude \
     -I$(LIB_SRC)/regionModels/regionModel/lnInclude \
     -I$(LIB_SRC)/regionModels/pyrolysisModels/lnInclude \
     -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude
@@ -28,4 +29,5 @@ LIB_LIBS = \
     -lreactionThermophysicalModels \
     -lSLGThermo \
     -lturbulenceModels \
-    -lcompressibleTurbulenceModels
+    -lcompressibleTurbulenceModels \
+    -lthermoTools
diff --git a/src/regionModels/thermalBaffleModels/Make/options b/src/regionModels/thermalBaffleModels/Make/options
index 1f66d1e014bcd961847f470c548d415d94ebb43a..2fd73a00af11fd4b9e97867317cd61a14fcb4386 100644
--- a/src/regionModels/thermalBaffleModels/Make/options
+++ b/src/regionModels/thermalBaffleModels/Make/options
@@ -8,6 +8,7 @@ EXE_INC = \
     -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
     -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
+    -I$(LIB_SRC)/thermoTools/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/mesh/extrudeModel/lnInclude
 
@@ -19,5 +20,6 @@ LIB_LIBS = \
     -lsolidThermo \
     -lturbulenceModels \
     -lcompressibleTurbulenceModels \
+    -lthermoTools \
     -lradiationModels \
     -ldynamicMesh
diff --git a/src/semiPermeableBaffle/Make/files b/src/semiPermeableBaffle/Make/files
deleted file mode 100644
index 2556e5fb536ba69e8d7bf08bfbe632d77ad7e824..0000000000000000000000000000000000000000
--- a/src/semiPermeableBaffle/Make/files
+++ /dev/null
@@ -1,4 +0,0 @@
-derivedFvPatchFields/semiPermeableBaffleMassFraction/semiPermeableBaffleMassFractionFvPatchScalarField.C
-derivedFvPatchFields/semiPermeableBaffleVelocity/semiPermeableBaffleVelocityFvPatchVectorField.C
-
-LIB = $(FOAM_LIBBIN)/libsemiPermeableBaffle
diff --git a/src/semiPermeableBaffle/Make/options b/src/semiPermeableBaffle/Make/options
deleted file mode 100644
index 10f6ee79d8d1175b77364d56dd6a7413ec046628..0000000000000000000000000000000000000000
--- a/src/semiPermeableBaffle/Make/options
+++ /dev/null
@@ -1,17 +0,0 @@
-EXE_INC = \
-    -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-    -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude
-
-LIB_LIBS = \
-    -lfiniteVolume \
-    -lmeshTools \
-    -lcompressibleTransportModels \
-    -lfluidThermophysicalModels \
-    -lspecie \
-    -lreactionThermophysicalModels \
-    -lturbulenceModels
diff --git a/src/thermoTools/Make/files b/src/thermoTools/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..b66d55ed1360452d2d996dab7fdfdfd0eda6de9d
--- /dev/null
+++ b/src/thermoTools/Make/files
@@ -0,0 +1,24 @@
+BCs = derivedFvPatchFields
+
+$(BCs)/semiPermeableBaffle/semiPermeableBaffleMassFraction/semiPermeableBaffleMassFractionFvPatchScalarField.C
+$(BCs)/semiPermeableBaffle/semiPermeableBaffleVelocity/semiPermeableBaffleVelocityFvPatchVectorField.C
+
+$(BCs)/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.C
+$(BCs)/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.C
+$(BCs)/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C
+$(BCs)/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
+$(BCs)/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C
+$(BCs)/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C
+$(BCs)/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.C
+$(BCs)/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.C
+$(BCs)/outletMachNumberPressure/outletMachNumberPressureFvPatchScalarField.C
+
+$(BCs)/temperatureCoupledBase/temperatureCoupledBase.C
+$(BCs)/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
+$(BCs)/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
+$(BCs)/lumpedMassWallTemperature/lumpedMassWallTemperatureFvPatchScalarField.C
+
+$(BCs)/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C
+$(BCs)/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C
+
+LIB = $(FOAM_LIBBIN)/libthermoTools
diff --git a/src/thermoTools/Make/options b/src/thermoTools/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..d149ad3683a68954d5a20befb37cfe62e504afde
--- /dev/null
+++ b/src/thermoTools/Make/options
@@ -0,0 +1,30 @@
+EXE_INC = \
+    -I$(LIB_SRC)/finiteVolume/lnInclude \
+    -I$(LIB_SRC)/meshTools/lnInclude \
+    -I$(LIB_SRC)/regionCoupled/lnInclude \
+    -I$(LIB_SRC)/phaseSystemModels/multiphaseInter/phasesSystem/lnInclude \
+    -I$(LIB_SRC)/transportModels/compressible/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/solidThermo/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/solidSpecie/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
+    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
+    -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude
+
+LIB_LIBS = \
+    -lcompressibleTransportModels \
+    -lfiniteVolume \
+    -lmeshTools \
+    -lradiationModels \
+    -lfluidThermophysicalModels \
+    -lsolidThermo \
+    -lsolidSpecie \
+    -lturbulenceModels \
+    -lspecie \
+    -lcompressibleTurbulenceModels \
+    -lturbulenceModels \
+    -lreactionThermophysicalModels \
+    -lincompressibleMultiphaseSystems
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/fixedIncidentRadiation/fixedIncidentRadiationFvPatchScalarField.H
diff --git a/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.C
similarity index 100%
rename from src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.C
diff --git a/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.H
similarity index 100%
rename from src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/lumpedMassWallTemperature/lumpedMassWallTemperatureFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/lumpedMassWallTemperature/lumpedMassWallTemperatureFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/lumpedMassWallTemperature/lumpedMassWallTemperatureFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/lumpedMassWallTemperature/lumpedMassWallTemperatureFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/lumpedMassWallTemperature/lumpedMassWallTemperatureFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/lumpedMassWallTemperature/lumpedMassWallTemperatureFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/lumpedMassWallTemperature/lumpedMassWallTemperatureFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/lumpedMassWallTemperature/lumpedMassWallTemperatureFvPatchScalarField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/outletMachNumberPressure/outletMachNumberPressureFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/outletMachNumberPressure/outletMachNumberPressureFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/outletMachNumberPressure/outletMachNumberPressureFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/outletMachNumberPressure/outletMachNumberPressureFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/outletMachNumberPressure/outletMachNumberPressureFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/outletMachNumberPressure/outletMachNumberPressureFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/outletMachNumberPressure/outletMachNumberPressureFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/outletMachNumberPressure/outletMachNumberPressureFvPatchScalarField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.C b/src/thermoTools/derivedFvPatchFields/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.C
rename to src/thermoTools/derivedFvPatchFields/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.H b/src/thermoTools/derivedFvPatchFields/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.H
rename to src/thermoTools/derivedFvPatchFields/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.H
diff --git a/src/semiPermeableBaffle/derivedFvPatchFields/semiPermeableBaffleMassFraction/semiPermeableBaffleMassFractionFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/semiPermeableBaffle/semiPermeableBaffleMassFraction/semiPermeableBaffleMassFractionFvPatchScalarField.C
similarity index 100%
rename from src/semiPermeableBaffle/derivedFvPatchFields/semiPermeableBaffleMassFraction/semiPermeableBaffleMassFractionFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/semiPermeableBaffle/semiPermeableBaffleMassFraction/semiPermeableBaffleMassFractionFvPatchScalarField.C
diff --git a/src/semiPermeableBaffle/derivedFvPatchFields/semiPermeableBaffleMassFraction/semiPermeableBaffleMassFractionFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/semiPermeableBaffle/semiPermeableBaffleMassFraction/semiPermeableBaffleMassFractionFvPatchScalarField.H
similarity index 100%
rename from src/semiPermeableBaffle/derivedFvPatchFields/semiPermeableBaffleMassFraction/semiPermeableBaffleMassFractionFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/semiPermeableBaffle/semiPermeableBaffleMassFraction/semiPermeableBaffleMassFractionFvPatchScalarField.H
diff --git a/src/semiPermeableBaffle/derivedFvPatchFields/semiPermeableBaffleVelocity/semiPermeableBaffleVelocityFvPatchVectorField.C b/src/thermoTools/derivedFvPatchFields/semiPermeableBaffle/semiPermeableBaffleVelocity/semiPermeableBaffleVelocityFvPatchVectorField.C
similarity index 100%
rename from src/semiPermeableBaffle/derivedFvPatchFields/semiPermeableBaffleVelocity/semiPermeableBaffleVelocityFvPatchVectorField.C
rename to src/thermoTools/derivedFvPatchFields/semiPermeableBaffle/semiPermeableBaffleVelocity/semiPermeableBaffleVelocityFvPatchVectorField.C
diff --git a/src/semiPermeableBaffle/derivedFvPatchFields/semiPermeableBaffleVelocity/semiPermeableBaffleVelocityFvPatchVectorField.H b/src/thermoTools/derivedFvPatchFields/semiPermeableBaffle/semiPermeableBaffleVelocity/semiPermeableBaffleVelocityFvPatchVectorField.H
similarity index 100%
rename from src/semiPermeableBaffle/derivedFvPatchFields/semiPermeableBaffleVelocity/semiPermeableBaffleVelocityFvPatchVectorField.H
rename to src/thermoTools/derivedFvPatchFields/semiPermeableBaffle/semiPermeableBaffleVelocity/semiPermeableBaffleVelocityFvPatchVectorField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C b/src/thermoTools/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
similarity index 97%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
rename to src/thermoTools/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
index c3651276f375a149ca6dea6bf44045091bdc4890..b14d96c6929e1eca1f62a3ccff5986eb896cad16 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
+++ b/src/thermoTools/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2016 OpenFOAM Foundation
-    Copyright (C) 2017-2021 OpenCFD Ltd.
+    Copyright (C) 2017-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -31,6 +31,7 @@ License
 #include "fluidThermo.H"
 #include "solidThermo.H"
 #include "turbulentFluidThermoModel.H"
+#include "multiphaseInterSystem.H"
 
 // * * * * * * * * * * * * * Static Member Data  * * * * * * * * * * * * * * //
 
@@ -255,11 +256,14 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
 
             {
                 const auto* ptr =
-                    mesh.cfindObject<basicThermo>("phaseProperties");
+                    mesh.cfindObject<multiphaseInterSystem>
+                    (
+                        multiphaseInterSystem::phasePropertiesName
+                    );
 
                 if (ptr)
                 {
-                    return ptr->kappa(patchi);
+                    return ptr->kappaEff(patchi);
                 }
             }
 
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H b/src/thermoTools/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H
rename to src/thermoTools/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.C b/src/thermoTools/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.C
rename to src/thermoTools/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.H b/src/thermoTools/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.H
rename to src/thermoTools/derivedFvPatchFields/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/totalFlowRateAdvectiveDiffusive/totalFlowRateAdvectiveDiffusiveFvPatchScalarField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulenceBoundaryConditionsDoc.H b/src/thermoTools/derivedFvPatchFields/turbulenceBoundaryConditionsDoc.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulenceBoundaryConditionsDoc.H
rename to src/thermoTools/derivedFvPatchFields/turbulenceBoundaryConditionsDoc.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed/turbulentTemperatureRadCoupledMixedFvPatchScalarField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C b/src/thermoTools/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C
rename to src/thermoTools/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H b/src/thermoTools/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H
similarity index 100%
rename from src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H
rename to src/thermoTools/derivedFvPatchFields/wallHeatTransfer/wallHeatTransferFvPatchScalarField.H
diff --git a/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/Make/files b/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/Make/files
deleted file mode 100644
index b245eb6bd50c2c379ea0ee413bea2aaea9a029cc..0000000000000000000000000000000000000000
--- a/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/Make/files
+++ /dev/null
@@ -1,4 +0,0 @@
-humidityTemperatureCoupledMixed/humidityTemperatureCoupledMixedFvPatchScalarField.C
-
-
-LIB = $(FOAM_LIBBIN)/libliquidPropertiesFvPatchFields
diff --git a/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/Make/options b/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/Make/options
deleted file mode 100644
index 6c01649f5dc6e5a7baaaa28134caa6314669690b..0000000000000000000000000000000000000000
--- a/src/thermophysicalModels/thermophysicalPropertiesFvPatchFields/liquidProperties/Make/options
+++ /dev/null
@@ -1,11 +0,0 @@
-EXE_INC = \
-    -I$(LIB_SRC)/finiteVolume/lnInclude \
-    -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
-    -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude
-
-LIB_LIBS = \
-    -lfiniteVolume \
-    -lmeshTools \
-    -lthermophysicalProperties \
-    -lcompressibleTurbulenceModels
diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/controlDict b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/controlDict
index e473cc97cdd6615b862459d7105a6a37bf66997f..482b9761be74d9205672b02dcbf7276b6b094daa 100644
--- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/controlDict
+++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/controlDict
@@ -16,8 +16,6 @@ FoamFile
 
 #include "solverControls"
 
-libs            (liquidPropertiesFvPatchFields);
-
 application     chtMultiRegionFoam;
 
 startFrom       startTime;
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/evaporationMultiComponent/constant/thermophysicalProperties.liquid b/tutorials/multiphase/icoReactingMultiphaseInterFoam/evaporationMultiComponent/constant/thermophysicalProperties.liquid
index 8f35a391441839d5ca32df492593cf558a686076..a12acc2ec7857d9525e5e47b2295590438fe2ac5 100644
--- a/tutorials/multiphase/icoReactingMultiphaseInterFoam/evaporationMultiComponent/constant/thermophysicalProperties.liquid
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/evaporationMultiComponent/constant/thermophysicalProperties.liquid
@@ -39,7 +39,7 @@ mixture
     thermodynamics
     {
         Cp              4181;
-        Hf              2.45e6;//-1.5833e7;//deltaHv 2.45e6; //[J/Kg]
+        Hf              -2.45e6; //[J/Kg]
     }
     transport
     {
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/mixerVesselAMI2D/constant/thermophysicalProperties.liquid b/tutorials/multiphase/icoReactingMultiphaseInterFoam/mixerVesselAMI2D/constant/thermophysicalProperties.liquid
index 7c58fc3403ba1d0a3cdd6e29a19516d8cf5ef77e..104d664c5c1d270da3fb60890a184afc4c893cf7 100644
--- a/tutorials/multiphase/icoReactingMultiphaseInterFoam/mixerVesselAMI2D/constant/thermophysicalProperties.liquid
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/mixerVesselAMI2D/constant/thermophysicalProperties.liquid
@@ -40,7 +40,7 @@ mixture
     thermodynamics
     {
         Cp              4181;
-        Hf              2.45e6; //[J/Kg]
+        Hf              -2.45e6; //[J/Kg]
     }
     transport
     {
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/oxideFormation/constant/phaseProperties b/tutorials/multiphase/icoReactingMultiphaseInterFoam/oxideFormation/constant/phaseProperties
index 6a8ee77ff9a386e09b30a59107fbb6277aaf6d14..41adb3dc562601e674ce7a8d01baf2ef58f343a1 100644
--- a/tutorials/multiphase/icoReactingMultiphaseInterFoam/oxideFormation/constant/phaseProperties
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/oxideFormation/constant/phaseProperties
@@ -33,28 +33,6 @@ gas
     type            pureMovingPhaseModel;
 }
 
-surfaceTension
-(
-    (gas and liquid)
-    {
-        type            constant;
-        sigma           0.0;
-    }
-
-    (oxide and liquid)
-    {
-        type            constant;
-        sigma           0.0;
-    }
-
-    (oxide and gas)
-    {
-        type            constant;
-        sigma           0.0;
-    }
-);
-
-
 massTransferModel
 (
     (liquid to oxide)
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporation/constant/thermophysicalProperties.liquid b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporation/constant/thermophysicalProperties.liquid
index f1d85ecdca54d1900a9f51da2a08f07a2e2e3cec..ea44fd872f33aaafae29871315effdad50461cdb 100644
--- a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporation/constant/thermophysicalProperties.liquid
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporation/constant/thermophysicalProperties.liquid
@@ -39,7 +39,7 @@ mixture
     thermodynamics
     {
         Cp              4216;
-        Hf              2.45e6;
+        Hf              -2.45e6;
     }
     transport
     {
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporation/system/controlDict b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporation/system/controlDict
index 23df4b6f1d5b810a6750a5f2bca9256e46a68b3e..457fadaee42f83b62b0c591f050fbffc6f176c10 100644
--- a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporation/system/controlDict
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporation/system/controlDict
@@ -71,6 +71,28 @@ functions
             dmdt.liquidToGas
         );
     }
+    htc
+    {
+        type            multiphaseInterHtcModel;
+        libs            (fieldFunctionObjects);
+
+        field           T;
+        writeControl    outputTime;
+        writeInterval   1;
+        htcModel        fixedReferenceTemperature;
+        patches         (bottom);
+        TRef            373;
+    }
+
+    wallHeatFlux
+    {
+        type            wallHeatFlux;
+        libs            (fieldFunctionObjects);
+
+        patches         (bottom);
+        writeControl    outputTime;
+        writeInterval   1;
+    }
 }
 
 
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/T b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/T
new file mode 100644
index 0000000000000000000000000000000000000000..b4d0daa5892fde9e27e43f971bc11de73cbeafc9
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/T
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      T;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [0 0 0 1 0 0 0];
+
+internalField       uniform 360;
+
+boundaryField
+{
+    bottom
+    {
+        type            zeroGradient;
+    }
+
+    top
+    {
+        type            inletOutlet;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    left
+    {
+        type            fixedValue;
+        value           uniform 375;
+    }
+
+    right
+    {
+        type            zeroGradient;
+        value           $internalField;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/U b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/U
new file mode 100644
index 0000000000000000000000000000000000000000..a3bbd0750744e1d9b86acb8c9ccd670ef2565332
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/U
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volVectorField;
+    object      U;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -1 0 0 0 0];
+
+internalField   uniform (0 0 0);
+
+boundaryField
+{
+    bottom
+    {
+        type        fixedValue;
+        value       $internalField;
+    }
+
+    top
+    {
+        type        pressureInletOutletVelocity;
+        value       uniform (0 0 0);
+    }
+
+    left
+    {
+        type        fixedValue;
+        value       $internalField;
+    }
+
+    right
+    {
+        type        fixedValue;
+        value       $internalField;
+    }
+
+    frontAndBack
+    {
+        type        empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/air.gas b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/air.gas
new file mode 100644
index 0000000000000000000000000000000000000000..2c71f34c0c4c3054984b0bf9f9b54501169f0763
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/air.gas
@@ -0,0 +1,52 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      air.gas;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 1;
+
+boundaryField
+{
+    bottom
+    {
+        type            zeroGradient;
+    }
+
+    top
+    {
+        type            inletOutlet;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    left
+    {
+        type            zeroGradient;
+    }
+
+    right
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/alpha.gas b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/alpha.gas
new file mode 100644
index 0000000000000000000000000000000000000000..41abc243473467d1312e0d57714187629a85ad8b
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/alpha.gas
@@ -0,0 +1,52 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alpha.gas;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    bottom
+    {
+        type            zeroGradient;
+    }
+
+    top
+    {
+        type            inletOutlet;
+        inletValue      uniform 1;
+        value           uniform 1;
+    }
+
+    left
+    {
+        type            zeroGradient;
+    }
+
+    right
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/alpha.liquid b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/alpha.liquid
new file mode 100644
index 0000000000000000000000000000000000000000..bb215d81da7bad1a94d7acb9290383bc8327ed77
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/alpha.liquid
@@ -0,0 +1,52 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alpha.liquid;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 1;
+
+boundaryField
+{
+    bottom
+    {
+        type            zeroGradient;
+    }
+
+    top
+    {
+        type            inletOutlet;
+        inletValue      uniform 0;
+        value           uniform 0;
+    }
+
+    left
+    {
+        type            zeroGradient;
+    }
+
+    right
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/alphat b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/alphat
new file mode 100644
index 0000000000000000000000000000000000000000..a4cb2249cdfc3cf95ff846e0b982d4a64c379493
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/alphat
@@ -0,0 +1,57 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      alphat;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions     [1 -1 -1 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    bottom
+    {
+        type            compressible::alphatWallFunction;
+        Prt             0.85;
+        value           $internalField;
+    }
+
+    top
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    left
+    {
+        type            compressible::alphatWallFunction;
+        Prt             0.85;
+        value           $internalField;
+    }
+
+    right
+    {
+        type            compressible::alphatWallFunction;
+        Prt             0.85;
+        value           $internalField;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/epsilon b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/epsilon
new file mode 100644
index 0000000000000000000000000000000000000000..82398a4048c3570c270aea509060254478046ab5
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/epsilon
@@ -0,0 +1,55 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      epsilon;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 2 -3 0 0 0 0];
+
+internalField   uniform 1e-3;
+
+boundaryField
+{
+    bottom
+    {
+        type            epsilonWallFunction;
+        value           $internalField;
+    }
+
+    top
+    {
+        type            inletOutlet;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    left
+    {
+        type            epsilonWallFunction;
+        value           $internalField;
+    }
+
+    right
+    {
+        type            epsilonWallFunction;
+        value           $internalField;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/k b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/k
new file mode 100644
index 0000000000000000000000000000000000000000..9e6cb96c663d18e55d4143d8b1957835ef056385
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/k
@@ -0,0 +1,55 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      k;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [ 0 2 -2 0 0 0 0 ];
+
+internalField   uniform 1e-4;
+
+boundaryField
+{
+    bottom
+    {
+        type            kqRWallFunction;
+        value           $internalField;
+    }
+
+    top
+    {
+        type            inletOutlet;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    left
+    {
+        type            kqRWallFunction;
+        value           $internalField;
+    }
+
+    right
+    {
+        type            kqRWallFunction;
+        value           $internalField;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/nut b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/nut
new file mode 100644
index 0000000000000000000000000000000000000000..5a2ea752fede866a1cb3e5844d439262f9b9e9f2
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/nut
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      nut;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [ 0 2 -1 0 0 0 0 ];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    bottom
+    {
+        type            nutkWallFunction;
+        value           $internalField;
+    }
+
+    top
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    left
+    {
+        type            nutkWallFunction;
+        value           $internalField;
+    }
+
+    right
+    {
+        type            nutkWallFunction;
+        value           $internalField;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/p b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/p
new file mode 100644
index 0000000000000000000000000000000000000000..224e5de4c6f78158f0f64c82f094ee6c20cb7d68
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/p
@@ -0,0 +1,54 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [ 1 -1 -2 0 0 0 0 ];
+
+internalField       uniform 1e5;
+
+boundaryField
+{
+    bottom
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    top
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    left
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    right
+    {
+        type            calculated;
+        value           $internalField;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/p_rgh b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/p_rgh
new file mode 100644
index 0000000000000000000000000000000000000000..f986ac4ee8ec5b4df90b6b6c7c3089fed08fd151
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/p_rgh
@@ -0,0 +1,55 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      p_rgh;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions          [ 1 -1 -2 0 0 0 0 ];
+
+internalField       uniform 1e5;
+
+boundaryField
+{
+    bottom
+    {
+        type            fixedFluxPressure;
+        value           $internalField;
+    }
+
+    top
+    {
+        type            totalPressure;
+        p0              $internalField;
+        value           uniform 100000;
+    }
+
+    left
+    {
+        type            fixedFluxPressure;
+        value           $internalField;
+    }
+
+    right
+    {
+        type            fixedFluxPressure;
+        value           $internalField;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/vapour.gas b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/vapour.gas
new file mode 100644
index 0000000000000000000000000000000000000000..287156032bc6c43c1b1c4aacf59c8df17146ff71
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/0.orig/vapour.gas
@@ -0,0 +1,52 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       volScalarField;
+    object      vapour.gas;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 0 0 0 0 0 0];
+
+internalField   uniform 0;
+
+boundaryField
+{
+    bottom
+    {
+        type            zeroGradient;
+    }
+
+    top
+    {
+        type            inletOutlet;
+        inletValue      $internalField;
+        value           $internalField;
+    }
+
+    left
+    {
+        type            zeroGradient;
+    }
+
+    right
+    {
+        type            zeroGradient;
+    }
+
+    frontAndBack
+    {
+        type            empty;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/Allclean b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/Allclean
new file mode 100755
index 0000000000000000000000000000000000000000..fb1f3847301c377e02e12439ba58cbf303af3ef9
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/Allclean
@@ -0,0 +1,8 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions      # Tutorial clean functions
+#------------------------------------------------------------------------------
+
+cleanCase0
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/Allrun b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/Allrun
new file mode 100755
index 0000000000000000000000000000000000000000..1732ca92f9d372fb433414d3cad46ede4149e255
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/Allrun
@@ -0,0 +1,18 @@
+#!/bin/sh
+cd "${0%/*}" || exit                                # Run from this directory
+. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions        # Tutorial run functions
+#------------------------------------------------------------------------------
+
+restore0Dir
+
+runApplication blockMesh
+
+runApplication setFields
+
+runApplication decomposePar
+
+runParallel $(getApplication)
+
+runApplication reconstructPar
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/g b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/g
new file mode 100644
index 0000000000000000000000000000000000000000..74e8297361048f164af012680564ae800774bc02
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/g
@@ -0,0 +1,21 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       uniformDimensionedVectorField;
+    object      g;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+dimensions      [0 1 -2 0 0 0 0];
+value           (0 -9.81 0);
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/phaseProperties b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/phaseProperties
new file mode 100644
index 0000000000000000000000000000000000000000..b85dc934232dfa932f24b29977400357fb27cd64
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/phaseProperties
@@ -0,0 +1,61 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      phaseProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+type    massTransferMultiphaseSystem;
+
+phases  (liquid gas);
+
+liquid
+{
+    type            pureMovingPhaseModel;
+}
+
+gas
+{
+    type            multiComponentMovingPhaseModel;
+}
+
+surfaceTension
+(
+    (gas and liquid)
+    {
+        type            constant;
+        sigma           0.07;
+    }
+);
+
+massTransferModel
+(
+    (liquid to gas)
+    {
+        type                diffusionGasEvaporation;
+        species             vapour.gas;
+        isoAlpha            0.2;
+        includeVolChange    false;
+        saturationPressure
+        {
+            type    Antoine;
+            A       3.55;
+            B       643;
+            C       -198;
+        }
+        C                   1;
+        Tactivate           0;
+    }
+);
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/thermophysicalProperties.gas b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/thermophysicalProperties.gas
new file mode 100644
index 0000000000000000000000000000000000000000..7b5b0415525cbce5f4c6d8900adbb9ae8a2caff5
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/thermophysicalProperties.gas
@@ -0,0 +1,85 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      thermophysicalProperties.gas;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            heRhoThermo;
+    mixture         multiComponentMixture;
+    transport       const;
+    thermo          hConst;
+    equationOfState incompressiblePerfectGas;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
+
+species
+(
+    air
+    vapour
+);
+
+inertSpecie air;
+
+addDiffusion true;
+
+vapour
+{
+    specie
+    {
+        nMoles      1;
+        molWeight   18.9;
+    }
+    equationOfState
+    {
+        pRef         1e5;
+    }
+    thermodynamics
+    {
+        Hf          0;
+        Cp          1900;
+    }
+    transport
+    {
+        mu          1.8e-05;
+        Pr          0.7;
+    }
+}
+
+air
+{
+    specie
+    {
+        nMoles      1;
+        molWeight   28.9;
+    }
+    equationOfState
+    {
+        pRef         1e5;
+    }
+    thermodynamics
+    {
+        Hf          0;
+        Cp          900;
+    }
+    transport
+    {
+        mu          1.8e-05;
+        Pr          0.7;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/thermophysicalProperties.liquid b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/thermophysicalProperties.liquid
new file mode 100644
index 0000000000000000000000000000000000000000..a12acc2ec7857d9525e5e47b2295590438fe2ac5
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/thermophysicalProperties.liquid
@@ -0,0 +1,52 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      thermophysicalProperties.liquid;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+thermoType
+{
+    type            heRhoThermo;
+    mixture         pureMixture;
+    transport       const;
+    thermo          hConst;
+    equationOfState rhoConst;
+    specie          specie;
+    energy          sensibleEnthalpy;
+}
+
+mixture
+{
+    specie
+    {
+        nMoles          1;
+        molWeight       18.9;
+    }
+    equationOfState
+    {
+        rho             1000;
+    }
+    thermodynamics
+    {
+        Cp              4181;
+        Hf              -2.45e6; //[J/Kg]
+    }
+    transport
+    {
+        mu              959e-6;
+        Pr              6.62;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/turbulenceProperties b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/turbulenceProperties
new file mode 100644
index 0000000000000000000000000000000000000000..4547a3eecd8e151b6b001262fa56843705c83f38
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/constant/turbulenceProperties
@@ -0,0 +1,25 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      turbulenceProperties.air;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+simulationType      RAS;
+
+RAS
+{
+    RASModel        kEpsilon;
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/blockMeshDict b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/blockMeshDict
new file mode 100644
index 0000000000000000000000000000000000000000..40b93df73d4a9135c01328cda376533aac08a1b8
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/blockMeshDict
@@ -0,0 +1,83 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      blockMeshDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+scale   0.20;
+
+vertices
+(
+    (0 0 0)
+    (0.1 0 0)
+    (0.1 0.2 0)
+    (0 0.2 0)
+    (0 0 0.1)
+    (0.1 0 0.1)
+    (0.1 0.2 0.1)
+    (0 0.2 0.1)
+);
+
+blocks
+(
+    hex (0 1 2 3 4 5 6 7) (100 200 1) simpleGrading (1 1 1)
+);
+
+
+boundary
+(
+    bottom
+    {
+        type    wall;
+        faces
+        (
+            (1 5 4 0)
+        );
+    }
+    top
+    {
+        type    patch;
+        faces
+        (
+            (3 7 6 2)
+        );
+    }
+    left
+    {
+        type    wall;
+        faces
+        (
+            (0 4 7 3)
+        );
+    }
+    right
+    {
+        type    wall;
+        faces
+        (
+            (2 6 5 1)
+        );
+    }
+    frontAndBack
+    {
+        type    empty;
+        faces
+        (
+            (4 5 6 7)
+            (0 1 2 3)
+        );
+    }
+);
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/controlDict b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/controlDict
new file mode 100644
index 0000000000000000000000000000000000000000..dcd55a85fb18e1062390921f1c4a58e225d6a1dc
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/controlDict
@@ -0,0 +1,58 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      controlDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+application     icoReactingMultiphaseInterFoam;
+
+startFrom       startTime;
+
+startTime       0;
+
+stopAt          endTime;
+
+endTime         2;
+
+deltaT          1e-3;
+
+writeControl    adjustable;
+
+writeInterval   0.05;
+
+purgeWrite      0;
+
+writeFormat     ascii;
+
+writePrecision  6;
+
+writeCompression off;
+
+timeFormat      general;
+
+timePrecision   6;
+
+runTimeModifiable yes;
+
+adjustTimeStep  yes;
+
+maxDeltaT       1e-1;
+
+maxCo           1.5;
+
+maxAlphaCo      1.5;
+
+maxAlphaDdt     1;
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/decomposeParDict b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/decomposeParDict
new file mode 100644
index 0000000000000000000000000000000000000000..38dfaed125b6f7c4315b4b6e23f04317d6f6b97e
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/decomposeParDict
@@ -0,0 +1,27 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      decomposeParDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+numberOfSubdomains 4;
+
+method          simple;
+
+coeffs
+{
+    n           (2 2 1);
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/fvSchemes b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/fvSchemes
new file mode 100644
index 0000000000000000000000000000000000000000..fb2986e0f4cbfd4908e9da14455f07a80d829093
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/fvSchemes
@@ -0,0 +1,68 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      fvSchemes;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+ddtSchemes
+{
+    default         Euler;
+}
+
+gradSchemes
+{
+    default         Gauss linear;
+}
+
+divSchemes
+{
+    div(rhoPhi,U)           Gauss linearUpwind grad(U);
+    "div\(phi,alpha.*\)"    Gauss vanLeer;
+    "div\(phir,alpha.*\)"   Gauss linear;
+
+    "div\(Yiphir,alpha.*\)" Gauss linear;
+    "div\(phi,.*\.gas.*\)"  Gauss vanLeer;
+
+    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
+
+    div(phi,T)              Gauss linearUpwind grad(T);
+
+    div(rhoPhi,epsilon)     Gauss upwind;
+    div(rhoPhi,k)           Gauss upwind;
+}
+
+laplacianSchemes
+{
+    default         Gauss linear orthogonal;
+}
+
+interpolationSchemes
+{
+    default         linear;
+}
+
+snGradSchemes
+{
+    default         orthogonal;
+}
+
+fluxRequired
+{
+    default         no;
+    p_rgh             ;
+    Xvapour.gas;
+    "alpha.*";
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/fvSolution b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/fvSolution
new file mode 100644
index 0000000000000000000000000000000000000000..f623ab49c15f421ff8fc148ec3719d23ccdc5ae3
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/fvSolution
@@ -0,0 +1,122 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      fvSolution;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+solvers
+{
+    ".*(rho|rhoFinal)"
+    {
+        solver          diagonal;
+    }
+
+    "alpha.*"
+    {
+        solver          PBiCG;
+        preconditioner  DILU;
+        tolerance       1e-08;
+        relTol          0.0;
+
+        cAlphas          ((liquid and gas) 1);
+
+        nAlphaCorr      2;
+        nAlphaSubCycles 2;
+
+        // Compressiion factor for species in each alpha phase
+        // NOTE: It should be similar to cAlpha
+        cYi             1;
+    }
+
+    "pcorr.*"
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-5;
+        relTol          0;
+    }
+
+    "(U.*|epsilon.*|k.*)"
+    {
+        solver          smoothSolver;
+        smoother        symGaussSeidel;
+        tolerance       1e-8;
+        relTol          0;
+    };
+
+    "T.*"
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       1e-08;
+        relTol          0.01;
+    }
+
+    p_rgh
+    {
+        solver          PCG;
+        preconditioner  DIC;
+        tolerance       1e-8;
+        relTol          0.01;
+        nPreSweeps      0;
+        nPostSweeps     2;
+        cacheAgglomeration true;
+        nCellsInCoarsestLevel 10;
+        agglomerator    faceAreaPair;
+        mergeLevels     1;
+    };
+
+    p_rghFinal
+    {
+        $p_rgh;
+        relTol          0;
+    };
+
+    "Xvapour.gas.*"
+    {
+        solver          PBiCGStab;
+        preconditioner  DILU;
+        tolerance       1e-08;
+        relTol          0.0;
+    }
+
+    "diffusionXvapour.gas.*"
+    {
+        solver          PBiCGStab;
+        preconditioner  DIC;
+        tolerance       1e-08;
+        relTol          0.01;
+    }
+}
+
+PIMPLE
+{
+    momentumPredictor   false;
+    nOuterCorrectors    1;
+    nCorrectors         3;
+    nNonOrthogonalCorrectors 0;
+}
+
+relaxationFactors
+{
+    fields
+    {
+    }
+    equations
+    {
+        ".*"            1;
+    }
+}
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/setFieldsDict b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/setFieldsDict
new file mode 100644
index 0000000000000000000000000000000000000000..ec75e9d577dfb55fc487aed782007f52cb559ddc
--- /dev/null
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/poolEvaporationMultiComponent/system/setFieldsDict
@@ -0,0 +1,37 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  v2112                                 |
+|   \\  /    A nd           | Website:  www.openfoam.com                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      setFieldsDict;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+defaultFieldValues
+(
+    volScalarFieldValue alpha.gas   1
+    volScalarFieldValue alpha.liquid 0
+);
+
+regions
+(
+    boxToCell
+    {
+        box (0 0 0) (1 0.02 1);
+        fieldValues
+        (
+            volScalarFieldValue alpha.liquid 1
+            volScalarFieldValue alpha.gas    0
+        );
+    }
+);
+
+
+// ************************************************************************* //
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/solidMelting2D/constant/thermophysicalProperties.liquid b/tutorials/multiphase/icoReactingMultiphaseInterFoam/solidMelting2D/constant/thermophysicalProperties.liquid
index 6f12cd4b91b4bd071ad130244ecc635d7d810936..2de7a9a9bab3640974018077fe24965b788b5940 100644
--- a/tutorials/multiphase/icoReactingMultiphaseInterFoam/solidMelting2D/constant/thermophysicalProperties.liquid
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/solidMelting2D/constant/thermophysicalProperties.liquid
@@ -41,7 +41,7 @@ mixture
     thermodynamics
     {
         Cp              381;
-        Hf              0;
+        Hf              8.016e4;
     }
     transport
     {
diff --git a/tutorials/multiphase/icoReactingMultiphaseInterFoam/solidMelting2D/constant/thermophysicalProperties.solid b/tutorials/multiphase/icoReactingMultiphaseInterFoam/solidMelting2D/constant/thermophysicalProperties.solid
index 590032365eb7a0220b10924404b79134004f3627..2c6e5a5e93bfe1ad0e943fe0e7c463e3a10e5fd0 100644
--- a/tutorials/multiphase/icoReactingMultiphaseInterFoam/solidMelting2D/constant/thermophysicalProperties.solid
+++ b/tutorials/multiphase/icoReactingMultiphaseInterFoam/solidMelting2D/constant/thermophysicalProperties.solid
@@ -39,7 +39,7 @@ mixture
     thermodynamics
     {
         Cp              381;
-        Hf              8.016e4;//[J/Kg];
+        Hf              0; //[J/Kg];
     }
     transport
     {
@@ -48,4 +48,4 @@ mixture
 }
 
 
-// ************************************************************************* //
\ No newline at end of file
+// ************************************************************************* //
diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/0.orig/alpha.air b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/0.orig/alpha.air
index bf6831fe126aa3f787a4fc06aff21ed5944c8c70..9c831802beae97cc60b32ac2535c045f807190b3 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/0.orig/alpha.air
+++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phase/0.orig/alpha.air
@@ -22,7 +22,7 @@ boundaryField
 {
     leftWall
     {
-        type            alphaContactAngle;
+        type            multiphaseEuler::alphaContactAngle;
         thetaProperties
         (
             ( water air ) 90 0 0 0
@@ -37,7 +37,7 @@ boundaryField
 
     rightWall
     {
-        type            alphaContactAngle;
+        type            multiphaseEuler::alphaContactAngle;
         thetaProperties
         (
             ( water air ) 90 0 0 0
@@ -52,7 +52,7 @@ boundaryField
 
     lowerWall
     {
-        type            alphaContactAngle;
+        type            multiphaseEuler::alphaContactAngle;
         thetaProperties
         (
             ( water air ) 90 0 0 0
diff --git a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/0.orig/alpha.air b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/0.orig/alpha.air
index bf6831fe126aa3f787a4fc06aff21ed5944c8c70..9c831802beae97cc60b32ac2535c045f807190b3 100644
--- a/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/0.orig/alpha.air
+++ b/tutorials/multiphase/multiphaseEulerFoam/damBreak4phaseFine/0.orig/alpha.air
@@ -22,7 +22,7 @@ boundaryField
 {
     leftWall
     {
-        type            alphaContactAngle;
+        type            multiphaseEuler::alphaContactAngle;
         thetaProperties
         (
             ( water air ) 90 0 0 0
@@ -37,7 +37,7 @@ boundaryField
 
     rightWall
     {
-        type            alphaContactAngle;
+        type            multiphaseEuler::alphaContactAngle;
         thetaProperties
         (
             ( water air ) 90 0 0 0
@@ -52,7 +52,7 @@ boundaryField
 
     lowerWall
     {
-        type            alphaContactAngle;
+        type            multiphaseEuler::alphaContactAngle;
         thetaProperties
         (
             ( water air ) 90 0 0 0