diff --git a/etc/tools/vtkFunctions b/etc/tools/vtkFunctions
new file mode 100644
index 0000000..a87e4e0
--- /dev/null
+++ b/etc/tools/vtkFunctions
@@ -0,0 +1,204 @@
+#---------------------------------*- sh -*-------------------------------------
+# ========= |
+# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+# \\ / O peration |
+# \\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
+# \\/ M anipulation |
+#------------------------------------------------------------------------------
+# 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 .
+#
+# File
+# etc/tools/vtkFunctions
+#
+# Description
+# VTK (library) make/install helper functions.
+# To be loaded *after* etc/tools/ParaViewFunctions
+#
+#------------------------------------------------------------------------------
+
+# buildBASE, installBASE defined from tools/ThirdPartyFunctions
+
+#
+# Where things are or should be put
+# VTK_VERSION and VTK_MAJOR should already have been set
+#
+# VTK_SOURCE_DIR : location of the original sources
+# VTK_BINARY_DIR : location of the build
+# VTK_DIR : location of the installed program
+#
+setVtkDirs()
+{
+ VTK_SOURCE_DIR=$WM_THIRD_PARTY_DIR/VTK-$VTK_VERSION
+
+ [ -d "$VTK_SOURCE_DIR" ] || {
+ echo "did not find VTK-$VTK_VERSION in these directories:"
+ echo " WM_THIRD_PARTY_DIR=$WM_THIRD_PARTY_DIR"
+ echo
+ echo "abort build"
+ exit 1
+ }
+
+ # VTK_BINARY_DIR=$buildBASE/VTK-$VTK_VERSION${OBJ_ADD:+-$OBJ_ADD}
+ VTK_BINARY_DIR=$buildBASE/VTK-$VTK_VERSION
+
+ # VTK_DIR=$installBASE/VTK-$VTK_VERSION${OBJ_ADD:+-$OBJ_ADD}
+ VTK_DIR=$installBASE/VTK-$VTK_VERSION
+
+ export VTK_SOURCE_DIR VTK_BINARY_DIR VTK_DIR
+
+ echo
+ echo "VTK_SOURCE_DIR=$VTK_SOURCE_DIR"
+ echo "VTK_BINARY_DIR=$VTK_BINARY_DIR"
+ echo "VTK_DIR=$VTK_DIR"
+
+ # Forcefully override the .git path for the VTK source code directory
+ export GIT_DIR=$ParaView_SOURCE_DIR/.git
+}
+
+
+#
+# Set VTK_VERSION and adjust VTK_MAJOR accordingly
+#
+# $1 can contain something something like 4.4.0, vtk-4.4.0, VTK-4.0.0
+#
+setVtkVersion()
+{
+ [ $# -gt 0 ] || {
+ echo "Error: function setVtkVersion() called without an argument"
+ exit 1
+ }
+
+ VTK_VERSION="${1##*-}"
+
+ # The major version is "."
+ VTK_MAJOR=$(echo $VTK_VERSION | \
+ sed -e 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/')
+
+ export VTK_VERSION VTK_MAJOR
+}
+
+
+#------------------------------------------------------------------------------
+
+#
+# Apply source-code patch if possible
+#
+patchVTK()
+{
+ applyPatch "vtk-$VTK_VERSION" "$VTK_SOURCE_DIR"
+}
+
+
+#
+# Configure via cmake, but don't actually build anything
+#
+configVTK()
+{
+ local cmake=$(findCMake)
+
+ # Remove any existing build folder and recreate
+ if [ -d $VTK_BINARY_DIR ]
+ then
+ echo "removing old build directory"
+ echo " $VTK_BINARY_DIR"
+ rm -rf $VTK_BINARY_DIR
+ fi
+ mkdir -p $VTK_BINARY_DIR
+
+ addCMakeVariable "CMAKE_BUILD_TYPE:STRING=$buildType"
+
+ cd $VTK_BINARY_DIR || exit 1 # change to build folder
+
+ echo "----"
+ echo "Configuring VTK-$VTK_VERSION"
+ echo " MESA support : ${withMESA:-false}"
+ echo " Source : $VTK_SOURCE_DIR"
+ echo " Build : $VTK_BINARY_DIR"
+ echo " Target : $VTK_DIR"
+ echo " Build type : $buildType"
+ echo " Cmake : $cmake"
+ echo "----"
+ echo
+ echo "$cmake" \
+ -DCMAKE_INSTALL_PREFIX:PATH=$VTK_DIR \
+ $CMAKE_VARIABLES \
+ $VTK_SOURCE_DIR
+ echo
+ echo "----"
+ echo
+
+ # Run cmake to create Makefiles
+ $cmake \
+ -DCMAKE_INSTALL_PREFIX:PATH=$VTK_DIR \
+ $CMAKE_VARIABLES \
+ $VTK_SOURCE_DIR
+}
+
+
+#
+# Invoke make
+# also link bin/ to lib/paraview-* for development without installation
+#
+makeVTK()
+{
+ cd $VTK_BINARY_DIR || exit 1 # change to build folder
+ echo " Starting make"
+ time make -j $WM_NCOMPPROCS
+ echo " Done make"
+
+ # Remove lib if it is a link
+ # (how this was previously handled before 'make install' worked)
+ if [ -L lib ]
+ then
+ rm lib 2>/dev/null
+ fi
+}
+
+
+#
+# Install the program
+#
+installVTK()
+{
+ cd $VTK_BINARY_DIR || exit 1 # Change to build folder
+ echo " Installing VTK to $VTK_DIR"
+
+ make install
+
+cat<< INFO
+
+ ---
+ Installation complete for vtk-$VTK_VERSION
+ VTK_DIR=$VTK_DIR
+ ---
+INFO
+}
+
+
+#------------------------------------------------------------------------------
+
+# Clear the referenced variables before using any of the functions
+unset CMAKE_VARIABLES
+
+# Start with these general settings
+addCMakeVariable "BUILD_SHARED_LIBS:BOOL=ON VTK_USE_RPATH:BOOL=OFF"
+
+# Don't build test tree
+addCMakeVariable "BUILD_TESTING:BOOL=OFF"
+
+
+#------------------------------------------------------------------------------