diff --git a/etc/config.csh/FFTW b/etc/config.csh/FFTW
index 2ac3bbc736..44af026ac8 100644
--- a/etc/config.csh/FFTW
+++ b/etc/config.csh/FFTW
@@ -11,7 +11,7 @@
#
# File
# etc/config.csh/FFTW
-# - sourced by OpenFOAM-*/etc/bashrc
+# - sourced by OpenFOAM-*/etc/cshrc
#
# Description
# Setup for FFTW include/libraries (usually ThirdParty installation).
diff --git a/etc/config.csh/hypre b/etc/config.csh/hypre
new file mode 100644
index 0000000000..6efe0d499a
--- /dev/null
+++ b/etc/config.csh/hypre
@@ -0,0 +1,45 @@
+#----------------------------------*-sh-*--------------------------------------
+# ========= |
+# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+# \\ / O peration |
+# \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
+# \\/ M anipulation |
+#------------------------------------------------------------------------------
+# License
+# This file is part of OpenFOAM, licensed under GNU General Public License
+# .
+#
+# File
+# etc/config.csh/hypre
+# [optional/experimental: not sourced by OpenFOAM-*/etc/cshrc]
+#
+# Description
+# Setup for HYPRE include/libraries (usually ThirdParty installation).
+#
+# To disable its use: hypre_version=hypre-none
+# For system-wide installations: hypre_version=hypre-system
+#
+# For central installations not located under ThirdParty:
+# 1. use hypre-system
+# 2. and provide full path for HYPRE_ARCH_PATH
+#
+# Note
+# Changes made here MUST be made in the equivalent config.sh version too,
+# since that is the one used in the build process.
+#------------------------------------------------------------------------------
+# USER EDITABLE PART: Changes made here may be lost with the next upgrade
+
+set hypre_version=hypre-2.11.2
+setenv HYPRE_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$hypre_version
+
+# END OF (NORMAL) USER EDITABLE PART
+#------------------------------------------------------------------------------
+if ($?FOAM_VERBOSE && $?prompt) then
+ echo "Using hypre ($hypre_version) -> $HYPRE_ARCH_PATH"
+endif
+
+_foamAddLibAuto $HYPRE_ARCH_PATH
+
+unset hypre_version
+
+#------------------------------------------------------------------------------
diff --git a/etc/config.csh/petsc b/etc/config.csh/petsc
new file mode 100644
index 0000000000..de8a26cc2a
--- /dev/null
+++ b/etc/config.csh/petsc
@@ -0,0 +1,45 @@
+#----------------------------------*-sh-*--------------------------------------
+# ========= |
+# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+# \\ / O peration |
+# \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
+# \\/ M anipulation |
+#------------------------------------------------------------------------------
+# License
+# This file is part of OpenFOAM, licensed under GNU General Public License
+# .
+#
+# File
+# etc/config.csh/petsc
+# [optional/experimental: not sourced by OpenFOAM-*/etc/cshrc]
+#
+# Description
+# Setup for PETSC include/libraries (usually ThirdParty installation).
+#
+# To disable its use: petsc_version=petsc-none
+# For system-wide installations: petsc_version=petsc-system
+#
+# For central installations not located under ThirdParty:
+# 1. use petsc-system
+# 2. and provide full path for PETSC_ARCH_PATH
+#
+# Note
+# Changes made here MUST be made in the equivalent config.sh version too,
+# since that is the one used in the build process.
+#------------------------------------------------------------------------------
+# USER EDITABLE PART: Changes made here may be lost with the next upgrade
+
+set petsc_version=petsc-3.9.3
+setenv PETSC_ARCH_PATH $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$petsc_version
+
+# END OF (NORMAL) USER EDITABLE PART
+#------------------------------------------------------------------------------
+if ($?FOAM_VERBOSE && $?prompt) then
+ echo "Using petsc ($petsc_version) -> $PETSC_ARCH_PATH"
+endif
+
+_foamAddLibAuto $PETSC_ARCH_PATH
+
+unset petsc_version
+
+#------------------------------------------------------------------------------
diff --git a/etc/config.sh/hypre b/etc/config.sh/hypre
new file mode 100644
index 0000000000..79fc3a316e
--- /dev/null
+++ b/etc/config.sh/hypre
@@ -0,0 +1,48 @@
+#----------------------------------*-sh-*--------------------------------------
+# ========= |
+# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+# \\ / O peration |
+# \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
+# \\/ M anipulation |
+#------------------------------------------------------------------------------
+# License
+# This file is part of OpenFOAM, licensed under GNU General Public License
+# .
+#
+# File
+# etc/config.sh/hypre
+# [optional/experimental: not sourced by OpenFOAM-*/etc/bashrc]
+#
+# Description
+# Setup for HYPRE include/libraries (usually ThirdParty installation).
+#
+# To disable its use: hypre_version=hypre-none
+# For system-wide installations: hypre_version=hypre-system
+#
+# For central installations not located under ThirdParty:
+# 1. use hypre-system
+# 2. and provide full path for HYPRE_ARCH_PATH
+#
+#------------------------------------------------------------------------------
+# USER EDITABLE PART: Changes made here may be lost with the next upgrade
+
+hypre_version=hypre-2.11.2
+export HYPRE_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$hypre_version
+
+# END OF (NORMAL) USER EDITABLE PART
+#------------------------------------------------------------------------------
+if [ "$FOAM_VERBOSE" -a "$PS1" ]
+then
+ echo "Using hypre ($hypre_version) -> $HYPRE_ARCH_PATH" 1>&2
+fi
+
+if command -v _foamAddLibAuto > /dev/null 2>&1 # Normal sourcing (not makeHYPRE)
+then
+
+ _foamAddLibAuto $HYPRE_ARCH_PATH
+
+ unset hypre_version
+
+fi
+
+#------------------------------------------------------------------------------
diff --git a/etc/config.sh/petsc b/etc/config.sh/petsc
new file mode 100644
index 0000000000..25448b7977
--- /dev/null
+++ b/etc/config.sh/petsc
@@ -0,0 +1,48 @@
+#----------------------------------*-sh-*--------------------------------------
+# ========= |
+# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+# \\ / O peration |
+# \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
+# \\/ M anipulation |
+#------------------------------------------------------------------------------
+# License
+# This file is part of OpenFOAM, licensed under GNU General Public License
+# .
+#
+# File
+# etc/config.sh/petsc
+# [optional/experimental: not sourced by OpenFOAM-*/etc/bashrc]
+#
+# Description
+# Setup for PETSC include/libraries (usually ThirdParty installation).
+#
+# To disable its use: petsc_version=petsc-none
+# For system-wide installations: petsc_version=petsc-system
+#
+# For central installations not located under ThirdParty:
+# 1. use petsc-system
+# 2. and provide full path for PETSC_ARCH_PATH
+#
+#------------------------------------------------------------------------------
+# USER EDITABLE PART: Changes made here may be lost with the next upgrade
+
+petsc_version=petsc-3.9.3
+export PETSC_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$petsc_version
+
+# END OF (NORMAL) USER EDITABLE PART
+#------------------------------------------------------------------------------
+if [ "$FOAM_VERBOSE" -a "$PS1" ]
+then
+ echo "Using petsc ($petsc_version) -> $PETSC_ARCH_PATH" 1>&2
+fi
+
+if command -v _foamAddLibAuto > /dev/null 2>&1 # Normal sourcing (not makePETSC)
+then
+
+ _foamAddLibAuto $PETSC_ARCH_PATH
+
+ unset petsc_version
+
+fi
+
+#------------------------------------------------------------------------------
diff --git a/wmake/scripts/have_hypre b/wmake/scripts/have_hypre
new file mode 100644
index 0000000000..cc23eb753a
--- /dev/null
+++ b/wmake/scripts/have_hypre
@@ -0,0 +1,136 @@
+#----------------------------------*-sh-*--------------------------------------
+# ========= |
+# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+# \\ / O peration |
+# \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
+# \\/ M anipulation |
+#------------------------------------------------------------------------------
+# License
+# This file is part of OpenFOAM, licensed under GNU General Public License
+# .
+#
+# Script
+# have_hypre
+#
+# Description
+# Detection/setup of HYPRE
+#
+# Requires
+# HYPRE_ARCH_PATH
+#
+# Functions provided
+# have_hypre, no_hypre, echo_hypre
+#
+# Variables set on success
+# HAVE_HYPRE
+# HYPRE_ARCH_PATH
+# HYPRE_INC_DIR
+# HYPRE_LIB_DIR
+#
+#------------------------------------------------------------------------------
+. $WM_PROJECT_DIR/wmake/scripts/sysFunctions # General system functions
+
+#------------------------------------------------------------------------------
+
+# Reset variables
+no_hypre()
+{
+ unset HAVE_HYPRE HYPRE_INC_DIR HYPRE_LIB_DIR
+ return 0
+}
+
+
+# Reset variables
+echo_hypre()
+{
+ echo "hypre=${HAVE_HYPRE:-false}"
+ echo "root=$HYPRE_ARCH_PATH"
+ echo "include=$HYPRE_INC_DIR"
+ echo "library=$HYPRE_LIB_DIR"
+}
+
+
+# On success, return 0 and export variables
+# -> HAVE_HYPRE, HYPRE_INC_DIR, HYPRE_LIB_DIR
+have_hypre()
+{
+ local header library static label settings warn
+ # warn="==> skip hypre"
+
+ # Basic setup/checks
+ if isNone "$HYPRE_ARCH_PATH"
+ then
+ [ -n "$warn" ] && echo "$warn (not available)"
+ return 1
+ fi
+
+
+ # Header/library names
+ header="HYPRE.h"
+ library="libHYPRE$extLibso"
+
+
+ if hasAbsdir "$HYPRE_ARCH_PATH"
+ then
+ header=$(findFirstFile $HYPRE_ARCH_PATH/include/$header)
+
+ # FOAM_EXT_LIBBIN is allowed to be unset
+ library=$(findFirstFile \
+ $FOAM_EXT_LIBBIN/$library \
+ $HYPRE_ARCH_PATH/lib/$library \
+ $HYPRE_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$library \
+ )
+ elif isSystem "$HYPRE_ARCH_PATH"
+ then
+ header=$(findFirstFile /usr/local/include/$header /usr/include/$header)
+
+ case "$header" in
+ /usr/local/*)
+ library=$(findFirstFile \
+ /usr/local/lib/$library \
+ /usr/local/lib$WM_COMPILER_LIB_ARCH/$library \
+ )
+ ;;
+
+ *)
+ library=$(findFirstFile \
+ /usr/lib/$library \
+ /usr/lib$WM_COMPILER_LIB_ARCH/$library \
+ )
+ ;;
+ esac
+ else
+ unset header library
+ fi
+
+
+ # Header found?
+ [ -n "$header" ] || {
+ [ -n "$warn" ] && echo "$warn (no header)"
+ return 2
+ }
+
+ # Library found?
+ [ -n "$library" ] || {
+ [ -n "$warn" ] && echo "$warn (missing library)"
+ return 2
+ }
+
+ export HAVE_HYPRE=true
+ export HYPRE_ARCH_PATH
+ export HYPRE_INC_DIR="${header%/*}" # Basename
+ export HYPRE_LIB_DIR="${library%/*}" # Basename
+}
+
+
+# Force reset of old variables
+no_hypre
+
+# Testing
+if [ "$1" = "-test" ]
+then
+ have_hypre
+ echo_hypre
+fi
+
+#------------------------------------------------------------------------------
diff --git a/wmake/scripts/have_petsc b/wmake/scripts/have_petsc
new file mode 100644
index 0000000000..c4665c7322
--- /dev/null
+++ b/wmake/scripts/have_petsc
@@ -0,0 +1,136 @@
+#----------------------------------*-sh-*--------------------------------------
+# ========= |
+# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+# \\ / O peration |
+# \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
+# \\/ M anipulation |
+#------------------------------------------------------------------------------
+# License
+# This file is part of OpenFOAM, licensed under GNU General Public License
+# .
+#
+# Script
+# have_petsc
+#
+# Description
+# Detection/setup of PETSC
+#
+# Requires
+# PETSC_ARCH_PATH
+#
+# Functions provided
+# have_petsc, no_petsc, echo_petsc
+#
+# Variables set on success
+# HAVE_PETSC
+# PETSC_ARCH_PATH
+# PETSC_INC_DIR
+# PETSC_LIB_DIR
+#
+#------------------------------------------------------------------------------
+. $WM_PROJECT_DIR/wmake/scripts/sysFunctions # General system functions
+
+#------------------------------------------------------------------------------
+
+# Reset variables
+no_petsc()
+{
+ unset HAVE_PETSC PETSC_INC_DIR PETSC_LIB_DIR
+ return 0
+}
+
+
+# Reset variables
+echo_petsc()
+{
+ echo "petsc=${HAVE_PETSC:-false}"
+ echo "root=$PETSC_ARCH_PATH"
+ echo "include=$PETSC_INC_DIR"
+ echo "library=$PETSC_LIB_DIR"
+}
+
+
+# On success, return 0 and export variables
+# -> HAVE_PETSC, PETSC_INC_DIR, PETSC_LIB_DIR
+have_petsc()
+{
+ local header library static label settings warn
+ # warn="==> skip petsc"
+
+ # Basic setup/checks
+ if isNone "$PETSC_ARCH_PATH"
+ then
+ [ -n "$warn" ] && echo "$warn (not available)"
+ return 1
+ fi
+
+
+ # Header/library names
+ header="petsc.h"
+ library="libpetsc$extLibso"
+
+
+ if hasAbsdir "$PETSC_ARCH_PATH"
+ then
+ header=$(findFirstFile $PETSC_ARCH_PATH/include/$header)
+
+ # FOAM_EXT_LIBBIN is allowed to be unset
+ library=$(findFirstFile \
+ $FOAM_EXT_LIBBIN/$library \
+ $PETSC_ARCH_PATH/lib/$library \
+ $PETSC_ARCH_PATH/lib$WM_COMPILER_LIB_ARCH/$library \
+ )
+ elif isSystem "$PETSC_ARCH_PATH"
+ then
+ header=$(findFirstFile /usr/local/include/$header /usr/include/$header)
+
+ case "$header" in
+ /usr/local/*)
+ library=$(findFirstFile \
+ /usr/local/lib/$library \
+ /usr/local/lib$WM_COMPILER_LIB_ARCH/$library \
+ )
+ ;;
+
+ *)
+ library=$(findFirstFile \
+ /usr/lib/$library \
+ /usr/lib$WM_COMPILER_LIB_ARCH/$library \
+ )
+ ;;
+ esac
+ else
+ unset header library
+ fi
+
+
+ # Header found?
+ [ -n "$header" ] || {
+ [ -n "$warn" ] && echo "$warn (no header)"
+ return 2
+ }
+
+ # Library found?
+ [ -n "$library" ] || {
+ [ -n "$warn" ] && echo "$warn (missing library)"
+ return 2
+ }
+
+ export HAVE_PETSC=true
+ export PETSC_ARCH_PATH
+ export PETSC_INC_DIR="${header%/*}" # Basename
+ export PETSC_LIB_DIR="${library%/*}" # Basename
+}
+
+
+# Force reset of old variables
+no_petsc
+
+# Testing
+if [ "$1" = "-test" ]
+then
+ have_petsc
+ echo_petsc
+fi
+
+#------------------------------------------------------------------------------