diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
index 7b998241d65bb686f7e2f22cfc751aca95b86587..ed0e635787ad1906f4c0c230423caf2943fd8008 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
+++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
@@ -901,33 +901,42 @@ int main(int argc, char *argv[])
 
     // Read decomposePar dictionary
     dictionary decomposeDict;
+    if (Pstream::parRun())
     {
-        if (Pstream::parRun())
-        {
-            fileName decompDictFile;
-            args.optionReadIfPresent("decomposeParDict", decompDictFile);
+        fileName decompDictFile;
+        args.optionReadIfPresent("decomposeParDict", decompDictFile);
+
+        // A demand-driven decompositionMethod can have issues finding
+        // an alternative decomposeParDict location.
 
-            decomposeDict = IOdictionary
+        IOdictionary* dictPtr = new IOdictionary
+        (
+            decompositionModel::selectIO
             (
-                decompositionModel::selectIO
+                IOobject
                 (
-                    IOobject
-                    (
-                        "decomposeParDict",
-                        runTime.system(),
-                        mesh,
-                        IOobject::MUST_READ_IF_MODIFIED,
-                        IOobject::NO_WRITE
-                    ),
-                    decompDictFile
-                )
-            );
-        }
-        else
-        {
-            decomposeDict.add("method", "none");
-            decomposeDict.add("numberOfSubdomains", 1);
-        }
+                    "decomposeParDict",
+                    runTime.system(),
+                    runTime,
+                    IOobject::MUST_READ,
+                    IOobject::NO_WRITE
+                ),
+                decompDictFile
+            )
+        );
+
+        // Store it on the object registry, but to be found it must also
+        // have the expected "decomposeParDict" name.
+
+        dictPtr->rename("decomposeParDict");
+        runTime.store(dictPtr);
+
+        decomposeDict = *dictPtr;
+    }
+    else
+    {
+        decomposeDict.add("method", "none");
+        decomposeDict.add("numberOfSubdomains", 1);
     }
 
 
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index 4eea56f1c0fa6290bfeffe8adbee281307b3353a..48cfbac21f09cf45ae823b0ecf214e9a80fc93ee 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -347,7 +347,7 @@ int main(int argc, char *argv[])
                         runTime.time().system(),
                         regionDir,          // use region if non-standard
                         runTime,
-                        IOobject::MUST_READ_IF_MODIFIED,
+                        IOobject::MUST_READ,
                         IOobject::NO_WRITE,
                         false
                     ),
diff --git a/applications/utilities/preProcessing/mapFields/mapFields.C b/applications/utilities/preProcessing/mapFields/mapFields.C
index 35d4faccc6072e7ccd93e5ae55ec8f59a2587ebc..8e9f95352237af642e43b1985b8601652f4e2fb9 100644
--- a/applications/utilities/preProcessing/mapFields/mapFields.C
+++ b/applications/utilities/preProcessing/mapFields/mapFields.C
@@ -69,7 +69,7 @@ int readNumProcs
                     dictName,
                     runTime.system(),
                     runTime,
-                    IOobject::MUST_READ_IF_MODIFIED,
+                    IOobject::MUST_READ,
                     IOobject::NO_WRITE,
                     false
                 ),
diff --git a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options
index 424f89a8aba98e7eae709757dcc68d0a3471ec1e..367e9e2e3cfd19e541ae01dd4f6845665ffd157e 100644
--- a/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options
+++ b/applications/utilities/surface/surfaceBooleanFeatures/PolyhedronReader/Make/options
@@ -20,5 +20,6 @@ EXE_INC = \
     -I/usr/include/Qt
 
 LIB_LIBS = \
+    -L$(CGAL_ARCH_PATH)/lib \
     -L$(CGAL_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
     -ltriSurface
diff --git a/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C b/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C
index d478f8ab4071577eec16612442e90937e956eca9..219a4552090ae138d363cffc6d64b4faeca9e336 100644
--- a/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C
+++ b/applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C
@@ -161,7 +161,10 @@ int main(int argc, char *argv[])
         fileName decompDictFile;
         args.optionReadIfPresent("decomposeParDict", decompDictFile);
 
-        IOdictionary* dict = new IOdictionary
+        // A demand-driven decompositionMethod can have issues finding
+        // an alternative decomposeParDict location.
+
+        IOdictionary* dictPtr = new IOdictionary
         (
             decompositionModel::selectIO
             (
@@ -170,18 +173,18 @@ int main(int argc, char *argv[])
                     "decomposeParDict",
                     runTime.system(),
                     runTime,
-                    IOobject::MUST_READ_IF_MODIFIED,
+                    IOobject::MUST_READ,
                     IOobject::NO_WRITE
                 ),
                 decompDictFile
             )
         );
 
-        // The object must have the expected "decomposeParDict" name.
-        // This also implies that it cannot be changed during the run.
-        dict->rename("decomposeParDict");
+        // Store it on the object registry, but to be found it must also
+        // have the expected "decomposeParDict" name.
 
-        runTime.store(dict);
+        dictPtr->rename("decomposeParDict");
+        runTime.store(dictPtr);
     }
 
     // Determine mesh bounding boxes:
diff --git a/bin/tools/RunFunctions b/bin/tools/RunFunctions
index f99ab370b509b491ab5e957b153386c1e481ceb4..c3c6be894831806843952b5562a15d0feb0b0326 100755
--- a/bin/tools/RunFunctions
+++ b/bin/tools/RunFunctions
@@ -56,15 +56,17 @@ isTest()
 #
 getNumberOfProcessors()
 {
+    local dict="${1:-system/decomposeParDict}"
+
     # Re-use positional parameters for automatic whitespace elimination
-    set -- $(foamDictionary -entry numberOfSubdomains -value "${1:-system/decomposeParDict}")
+    set -- $(foamDictionary -entry numberOfSubdomains -value "$dict" 2>/dev/null)
 
     if [ "$#" -eq 1 ]
     then
         echo "$1"
     else
-        echo "Error retrieving 'numberOfSubdomains' from decomposeParDict" 1>&2
-        echo 1
+        echo "Warning no 'numberOfSubdomains' in '$dict'" 1>&2
+        echo 1 # serial as fallback
         return 1
     fi
 }
diff --git a/etc/config.csh/CGAL b/etc/config.csh/CGAL
index 84bc71bda6099e176d517c47763a95398a6d51d4..0caa0c51d7099635dee75c5a4b7731e4d9112096 100644
--- a/etc/config.csh/CGAL
+++ b/etc/config.csh/CGAL
@@ -50,8 +50,8 @@
 #
 #------------------------------------------------------------------------------
 
-set boost_version=boost_1_61_0
-set cgal_version=CGAL-4.8
+set boost_version=boost_1_62_0
+set cgal_version=CGAL-4.9
 
 setenv BOOST_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$boost_version
 setenv CGAL_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cgal_version
diff --git a/etc/config.csh/FFTW b/etc/config.csh/FFTW
index 78d24e17b10babd88ffaa80f18a058c0dd157a8a..515c429e66c7e619ce90142892ddde2d17bf8052 100644
--- a/etc/config.csh/FFTW
+++ b/etc/config.csh/FFTW
@@ -22,7 +22,7 @@
 #     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 #
 # File
-#     etc/config.sh/FFTW
+#     etc/config.csh/FFTW
 #
 # Description
 #     Setup file for FFTW include/libraries.
@@ -48,7 +48,7 @@
 #
 #------------------------------------------------------------------------------
 
-set fftw_version=fftw-3.3.4
+set fftw_version=fftw-3.3.5
 
 setenv FFTW_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$fftw_version
 
diff --git a/etc/config.csh/mpi b/etc/config.csh/mpi
index 974555857aacd833c58b40f6f453b8cb7d307077..876357d43572a2f3b87d5aa8be0d981227b134ee 100644
--- a/etc/config.csh/mpi
+++ b/etc/config.csh/mpi
@@ -51,7 +51,7 @@ case SYSTEMOPENMPI:
     breaksw
 
 case OPENMPI:
-    setenv FOAM_MPI openmpi-1.10.2
+    setenv FOAM_MPI openmpi-1.10.4
     # Optional configuration tweaks:
     _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/openmpi`
 
diff --git a/etc/config.csh/paraview b/etc/config.csh/paraview
index 0fea6e0c07a1ff1fde18e450095c8452cf37a6cd..50973a93d47b1e90eb7c7370c9091938102d81bb 100644
--- a/etc/config.csh/paraview
+++ b/etc/config.csh/paraview
@@ -51,7 +51,7 @@
 #
 #------------------------------------------------------------------------------
 
-setenv ParaView_VERSION 5.1.2
+setenv ParaView_VERSION 5.2.0
 setenv ParaView_MAJOR detect            # Automatically determine major version
 
 set cmake_version=cmake-system
@@ -63,12 +63,10 @@ if ( ! $?ParaView_DIR ) setenv ParaView_DIR
 set cleaned=`$WM_PROJECT_DIR/bin/foamCleanPath "$PATH" "$ParaView_DIR $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/cmake- $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/paraview-"`
 if ( $status == 0 ) setenv PATH $cleaned
 
-# Environment for ThirdParty cmake
-unsetenv CMAKE_HOME
+# ThirdParty cmake
 set cmake=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cmake_version
-if ( -r $cmake ) then
-    setenv CMAKE_HOME $cmake
-    setenv PATH ${CMAKE_HOME}/bin:${PATH}
+if ( -r $cmake/bin/cmake ) then
+    _foamAddPath $cmake/bin
 endif
 
 # Evaluate command-line parameters for ParaView
@@ -112,9 +110,9 @@ if ( $?ParaView_VERSION ) then
         set pvLibDir=${ParaView_DIR}/lib/$pvMajor
         set pvPython=$ParaView_DIR/Utilities/VTKPythonWrapping
 
+        setenv PATH ${ParaView_DIR}/bin:${PATH}
         setenv ParaView_INCLUDE_DIR $ParaView_DIR/include/$pvMajor
         setenv PV_PLUGIN_PATH $FOAM_LIBBIN/$pvMajor
-        setenv PATH ${ParaView_DIR}/bin:${PATH}
         setenv LD_LIBRARY_PATH "${pvLibDir}:${LD_LIBRARY_PATH}"
 
         # Add in python libraries if required
diff --git a/etc/config.csh/unset b/etc/config.csh/unset
index a1ef724b3c07f964219176f6d040f0fc8d332caa..88bdd3454eff250015cf83b34161849ee94dded9 100644
--- a/etc/config.csh/unset
+++ b/etc/config.csh/unset
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-#    \\/     M anipulation  |
+#    \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
@@ -119,7 +119,6 @@ unsetenv OPAL_PREFIX
 # Unset Ensight/ParaView-related environment variables
 
 unsetenv ENSIGHT9_READER
-unsetenv CMAKE_HOME
 unsetenv ParaView_DIR
 unsetenv ParaView_INCLUDE_DIR
 unsetenv ParaView_MAJOR
@@ -129,12 +128,15 @@ unsetenv PV_PLUGIN_PATH
 #------------------------------------------------------------------------------
 # unset other ThirdParty environment variables
 
+unsetenv ADIOS_ARCH_PATH
 unsetenv BOOST_ARCH_PATH
 unsetenv CCMIO_ARCH_PATH
 unsetenv CGAL_ARCH_PATH
 unsetenv FFTW_ARCH_PATH
+unsetenv GPERFTOOLS_ARCH_PATH
 unsetenv GMP_ARCH_PATH
 unsetenv MPFR_ARCH_PATH
+unsetenv METIS_ARCH_PATH
 unsetenv SCOTCH_ARCH_PATH
 
 #------------------------------------------------------------------------------
@@ -174,7 +176,6 @@ unalias wm32
 unalias wmSP
 unalias wmDP
 
-unalias wmRefresh
 unalias wmUnset
 
 unalias wmSchedOn
@@ -191,6 +192,7 @@ unalias util
 unalias tut
 unalias run
 
+unalias wmRefresh
 unalias foamVersion
 unalias foamPV
 
diff --git a/etc/config.sh/CGAL b/etc/config.sh/CGAL
index 044327109f64ec5c4762546ff1214e3c04b2c2fb..5f9c64b1b9f534b96c5ee4655be63507e2bd5eb2 100644
--- a/etc/config.sh/CGAL
+++ b/etc/config.sh/CGAL
@@ -49,8 +49,8 @@
 #         - the LD_LIBRARY_PATH is not adjusted.
 #------------------------------------------------------------------------------
 
-boost_version=boost_1_61_0
-cgal_version=CGAL-4.8
+boost_version=boost_1_62_0
+cgal_version=CGAL-4.9
 
 export BOOST_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$boost_version
 export CGAL_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cgal_version
diff --git a/etc/config.sh/FFTW b/etc/config.sh/FFTW
index f3cb4ea70ee775ef7e4da0f1800c00833e099f6a..e3a6fee2fd6e03ed01cf605766ede045d27abdc0 100644
--- a/etc/config.sh/FFTW
+++ b/etc/config.sh/FFTW
@@ -47,7 +47,7 @@
 #         - the LD_LIBRARY_PATH is not adjusted.
 #------------------------------------------------------------------------------
 
-fftw_version=fftw-3.3.4
+fftw_version=fftw-3.3.5
 
 export FFTW_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$fftw_version
 
diff --git a/etc/config.sh/gperftools b/etc/config.sh/gperftools
index 06604630377dc675a9b858168757c2a7e7c05581..d42b46df21576f006843b555a39f3ab46e9ece54 100644
--- a/etc/config.sh/gperftools
+++ b/etc/config.sh/gperftools
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2012-2016 OpenFOAM Foundation
-#    \\/     M anipulation  |
+#    \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
@@ -25,17 +25,54 @@
 #     etc/config.sh/gperftools
 #
 # Description
-#     Setup file for gperftools binaries libraries.
+#     Setup file for gperftools binaries and libraries.
+#     Sourced from OpenFOAM-<VERSION>/etc/bashrc
 #
+#     If using system-wide installations, use the following settings:
+#
+#         gperftools_version=gperftools-system
+#
+#     If the system gperftools is unusable (eg, too old) and you don't
+#     have or want a ThirdParty installation:
+#
+#         gperftools_version=gperftools-none
+#
+#     If using a central installation, but not located under ThirdParty:
+#         - specify gperftools-system
+#         - provide full paths for GPERFTOOLS_ARCH_PATH
+#
+# Note
+#     When _foamAddLib is unset (eg, called from makeGperftools):
+#         - gperftools_version variable are retained.
+#         - the LD_LIBRARY_PATH and PATH are not adjusted.
 #------------------------------------------------------------------------------
 
-version=svn
-gperftools_install=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
+gperftools_version=gperftools-2.5
+
+GPERFTOOLS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$gperftools_version
+
+#------------------------------------------------------------------------------
+if [ "$FOAM_VERBOSE" -a "$PS1" ]
+then
+    echo "Using gperftools ($gperftools_version)  ->  $GPERFTOOLS_ARCH_PATH" 1>&2
+fi
+
+if type _foamAddLib > /dev/null 2>&1    # normal sourcing
+then
+
+    # If GPERFTOOLS_ARCH_PATH does not end with '-system' or '-none',
+    # it is located within ThirdParty, or a central installation
+    # outside of ThirdParty and must be added to the lib-path.
+
+    ending="${GPERFTOOLS_ARCH_PATH##*-}"
+    if [ "$ending" != none -a "$ending" != system ]
+    then
+        _foamAddLib     $GPERFTOOLS_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH
+        _foamAddPath    $GPERFTOOLS_ARCH_PATH/bin
+    fi
 
-GPERFTOOLS_VERSION=gperftools-$version
-GPERFTOOLS_ARCH_PATH=$gperftools_install/$GPERFTOOLS_VERSION
+    unset gperftools_version ending
 
-export PATH=$GPERFTOOLS_ARCH_PATH/bin:$PATH
-export LD_LIBRARY_PATH=$GPERFTOOLS_ARCH_PATH/lib:$LD_LIBRARY_PATH
+fi
 
 #------------------------------------------------------------------------------
diff --git a/etc/config.sh/mpi b/etc/config.sh/mpi
index d41751432e1d24aad15ed3ac3b3fa33d7dda0692..d8872685888d5b9c90b127a243d55038757e59d3 100644
--- a/etc/config.sh/mpi
+++ b/etc/config.sh/mpi
@@ -54,7 +54,7 @@ SYSTEMOPENMPI)
     ;;
 
 OPENMPI)
-    export FOAM_MPI=openmpi-1.10.2
+    export FOAM_MPI=openmpi-1.10.4
     # Optional configuration tweaks:
     _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.sh/openmpi`
 
diff --git a/etc/config.sh/paraview b/etc/config.sh/paraview
index c9b8621d5251c93124f5882d38b12e87a33cc2f5..99a379422c78c39c09088c75f9ff8b0dead9be2b 100644
--- a/etc/config.sh/paraview
+++ b/etc/config.sh/paraview
@@ -51,7 +51,7 @@
 #
 #------------------------------------------------------------------------------
 
-ParaView_VERSION=5.1.2
+ParaView_VERSION=5.2.0
 ParaView_MAJOR=detect                   # Automatically determine major version
 
 cmake_version=cmake-system
@@ -66,14 +66,11 @@ cleaned=$($WM_PROJECT_DIR/bin/foamCleanPath "$PATH" \
         ) \
         && PATH="$cleaned"
 
-# Environment for ThirdParty cmake
-unset CMAKE_HOME
+# ThirdParty cmake
 cmake=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$cmake_version
-if [ -r $cmake ]
+if [ -r $cmake/bin/cmake ]
 then
-    export CMAKE_HOME=$cmake
-    export CMAKE_ROOT=$cmake
-    export PATH=$CMAKE_HOME/bin:$PATH
+    _foamAddPath $cmake/bin
 fi
 
 # Evaluate command-line parameters for ParaView
@@ -125,9 +122,9 @@ then
         pvLibDir=$ParaView_DIR/lib/$pvMajor
         pvPython=$ParaView_DIR/Utilities/VTKPythonWrapping
 
+        export PATH=$ParaView_DIR/bin:$PATH
         export ParaView_INCLUDE_DIR=$ParaView_DIR/include/$pvMajor
         export PV_PLUGIN_PATH=$FOAM_LIBBIN/$pvMajor
-        export PATH=$ParaView_DIR/bin:$PATH
         export LD_LIBRARY_PATH=$pvLibDir:$LD_LIBRARY_PATH
 
         # Add in python libraries if required
diff --git a/etc/config.sh/unset b/etc/config.sh/unset
index 114f313a3995b51dd567ed16236075000384422e..e7b834baeb784621e7d34587249c79f1b2c91e7f 100644
--- a/etc/config.sh/unset
+++ b/etc/config.sh/unset
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-#    \\/     M anipulation  |
+#    \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
@@ -115,7 +115,6 @@ fi
 # Unset Ensight/ParaView-related environment variables
 
 unset ENSIGHT9_READER
-unset CMAKE_HOME
 unset ParaView_DIR
 unset ParaView_INCLUDE_DIR
 unset ParaView_MAJOR
@@ -125,12 +124,15 @@ unset PV_PLUGIN_PATH
 #------------------------------------------------------------------------------
 # unset other ThirdParty environment variables
 
+unset ADIOS_ARCH_PATH
 unset BOOST_ARCH_PATH
 unset CCMIO_ARCH_PATH
 unset CGAL_ARCH_PATH
 unset FFTW_ARCH_PATH
+unset GPERFTOOLS_ARCH_PATH
 unset GMP_ARCH_PATH
 unset MPFR_ARCH_PATH
+unset METIS_ARCH_PATH
 unset SCOTCH_ARCH_PATH
 
 #------------------------------------------------------------------------------
diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
index de5557bcb55d59a53b6c5dde4b659690e681aee8..38cb229c7dfbbdb3fbeeb7677f4b0f5c85c8e91b 100644
--- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
+++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
@@ -847,7 +847,7 @@ Foam::distributedTriSurfaceMesh::independentlyDistributedBbs
                             "decomposeParDict",
                             searchableSurface::time().system(),
                             searchableSurface::time(),
-                            IOobject::MUST_READ_IF_MODIFIED,
+                            IOobject::MUST_READ,
                             IOobject::NO_WRITE
                         )
                     )
diff --git a/src/randomProcesses/Make/options b/src/randomProcesses/Make/options
index 4d1c505daed6c9e5189349b734e2965e25eb785b..233247dccd568389de98af7e15c0f20939bc698d 100644
--- a/src/randomProcesses/Make/options
+++ b/src/randomProcesses/Make/options
@@ -5,6 +5,8 @@ EXE_INC = \
     -I$(LIB_SRC)/surfMesh/lnInclude
 
 LIB_LIBS = \
-    -L$(FFTW_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -lfftw3 \
+    -L$(FFTW_ARCH_PATH)/lib \
+    -L$(FFTW_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
+    -lfftw3 \
     -lfiniteVolume \
     -lsampling
diff --git a/src/renumber/SloanRenumber/Make/options b/src/renumber/SloanRenumber/Make/options
index 2c8f956a611718051304f5c066175e83e469ea3c..bf9567fef2bb19ea3d4d22470c56838adb5fa31f 100644
--- a/src/renumber/SloanRenumber/Make/options
+++ b/src/renumber/SloanRenumber/Make/options
@@ -5,7 +5,9 @@ EXE_INC = \
     -I$(LIB_SRC)/renumber/renumberMethods/lnInclude
 
 LIB_LIBS = \
-    -L$(BOOST_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -lboost_system \
+    -L$(BOOST_ARCH_PATH)/lib \
+    -L$(BOOST_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
+    -lboost_system \
     -lmeshTools \
     -ldecompositionMethods \
     -lrenumberMethods
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/0/U b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/0/U
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/0/U
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/0/U
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/0/k b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/0/k
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/0/k
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/0/k
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/0/nut b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/0/nut
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/0/nut
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/0/nut
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/0/p b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/0/p
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/0/p
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/0/p
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/Allrun b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/Allrun
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/Allrun
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/Allrun
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/README b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/README
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/README
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/README
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/L b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/boundaryData/inlet/0/L
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/L
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/boundaryData/inlet/0/L
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/R b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/boundaryData/inlet/0/R
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/R
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/boundaryData/inlet/0/R
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/U b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/boundaryData/inlet/0/U
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/0/U
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/boundaryData/inlet/0/U
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/points b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/boundaryData/inlet/points
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/boundaryData/inlet/points
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/boundaryData/inlet/points
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/transportProperties b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/transportProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/transportProperties
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/transportProperties
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/turbulenceProperties b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/turbulenceProperties
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/constant/turbulenceProperties
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/constant/turbulenceProperties
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/blockMeshDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/system/blockMeshDict
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/blockMeshDict
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/system/controlDict b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/controlDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/system/controlDict
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/controlDict
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/system/decomposeParDict b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/decomposeParDict
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/system/decomposeParDict
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/decomposeParDict
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/system/fvSchemes b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/fvSchemes
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/system/fvSchemes
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/fvSchemes
diff --git a/tutorials/incompressible/pimpleFoam/channel395DFSEM/system/fvSolution b/tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/fvSolution
similarity index 100%
rename from tutorials/incompressible/pimpleFoam/channel395DFSEM/system/fvSolution
rename to tutorials/incompressible/pimpleFoam/LES/channel395DFSEM/system/fvSolution
diff --git a/tutorials/incompressible/simpleFoam/motorBike/Allrun b/tutorials/incompressible/simpleFoam/motorBike/Allrun
index f2d7ed6bb0f4d12f52191115084a78f20adc688b..c110f083ecd737c4e8180e63f5a5b7df9368f9b7 100755
--- a/tutorials/incompressible/simpleFoam/motorBike/Allrun
+++ b/tutorials/incompressible/simpleFoam/motorBike/Allrun
@@ -4,7 +4,10 @@ cd ${0%/*} || exit 1    # Run from this directory
 # Source tutorial run functions
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
+# Alternative decomposeParDict name:
 decompDict="-decomposeParDict system/decomposeParDict.6"
+## Standard decomposeParDict name:
+# unset decompDict
 
 # copy motorbike surface from resources directory
 \cp $FOAM_TUTORIALS/resources/geometry/motorBike.obj.gz constant/triSurface/
@@ -13,6 +16,14 @@ runApplication surfaceFeatureExtract
 runApplication blockMesh
 
 runApplication decomposePar $decompDict
+
+# Using distributedTriSurfaceMesh?
+if foamDictionary -entry geometry -value system/snappyHexMeshDict | \
+   grep -q distributedTriSurfaceMesh
+then
+    runParallel $decompDict surfaceRedistributePar motorBike.obj independent
+fi
+
 runParallel $decompDict snappyHexMesh -overwrite
 
 #- For non-parallel running: - set the initial fields
diff --git a/tutorials/incompressible/simpleFoam/motorBike/system/decomposeParDict.6 b/tutorials/incompressible/simpleFoam/motorBike/system/decomposeParDict.6
index 82f0a4e81a972b7b9a398d5c3693750d6c0447cb..db5f0cd2c283170f048d8113451c047d7f062452 100644
--- a/tutorials/incompressible/simpleFoam/motorBike/system/decomposeParDict.6
+++ b/tutorials/incompressible/simpleFoam/motorBike/system/decomposeParDict.6
@@ -15,20 +15,20 @@ FoamFile
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-numberOfSubdomains 4;
+numberOfSubdomains 6;
 
 method          hierarchical;
 // method          ptscotch;
 
 simpleCoeffs
 {
-    n               (4 1 1);
+    n               (6 1 1);
     delta           0.001;
 }
 
 hierarchicalCoeffs
 {
-    n               (2 2 1);
+    n               (3 2 1);
     delta           0.001;
     order           xyz;
 }
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/0/T.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/0/T.gas
index dcc261ce40c68e44fe29a07dfa3dc9f82aba4652..9cf3c15e7a91500c4a9f303e170e31283c11996c 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/0/T.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/0/T.gas
@@ -40,7 +40,7 @@ boundaryField
     wall2
     {
         type            copiedFixedValue;
-        sourceFieldName T.liquid;
+        sourceField     T.liquid;
         value           uniform 368;
     }
     defaultFaces
diff --git a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/0/T.gas b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/0/T.gas
index 31f188e880bd1dbf3b39a6a18c99646f5bd46128..6046345c2709407170df9e3d088e9d65d1743436 100644
--- a/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/0/T.gas
+++ b/tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE/0/T.gas
@@ -40,7 +40,7 @@ boundaryField
     wall2
     {
         type            copiedFixedValue;
-        sourceFieldName T.liquid;
+        sourceField     T.liquid;
         value           uniform 368;
     }
     defaultFaces
diff --git a/wmake/rules/General/ADIOS b/wmake/rules/General/ADIOS
new file mode 100644
index 0000000000000000000000000000000000000000..f21af336bba3f3ff20400e1fde6c1e8d1742f8fe
--- /dev/null
+++ b/wmake/rules/General/ADIOS
@@ -0,0 +1,19 @@
+#-------------------------------*- makefile -*---------------------------------
+# ADIOS includes/libraries
+
+sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
+sinclude $(RULES)/mplib$(WM_MPLIB)
+
+ADIOS_INC = -I$(ADIOS_ARCH_PATH)/include
+
+ADIOS_LIBS := \
+    -L$(ADIOS_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
+    -ladios_$(FOAM_MPI)
+
+# ADIOS dependent libraries. Eg, after -L/usr/lib64 ...
+# Query as sequential to reduce mpi-dependencies
+
+ADIOS_LIBS +=
+    $(shell $(ADIOS_ARCH_PATH)/bin/adios_config -s -l | sed -e 's@^.*-L/usr/lib[^ ]*@@')
+
+#------------------------------------------------------------------------------
diff --git a/wmake/rules/General/CGAL b/wmake/rules/General/CGAL
index 83e8b1df1e9edcf44233b08cc898d79da5ff6797..2e7e3d5803a03aca10d5eb9007601c89cd930186 100644
--- a/wmake/rules/General/CGAL
+++ b/wmake/rules/General/CGAL
@@ -1,13 +1,15 @@
 CGAL_INC = \
-    -I$(CGAL_ARCH_PATH)/include \
-    -I$(MPFR_ARCH_PATH)/include \
     -I$(GMP_ARCH_PATH)/include \
+    -I$(MPFR_ARCH_PATH)/include \
     -I$(BOOST_ARCH_PATH)/include \
+    -I$(CGAL_ARCH_PATH)/include \
     -I/usr/include
 
 CGAL_LIBS = \
-    -L$(MPFR_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
     -L$(GMP_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
+    -L$(MPFR_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
+    -L$(BOOST_ARCH_PATH)/lib \
     -L$(BOOST_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
+    -L$(CGAL_ARCH_PATH)/lib \
     -L$(CGAL_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
     -lCGAL