diff --git a/applications/utilities/postProcessing/postProcess/postProcess.C b/applications/utilities/postProcessing/postProcess/postProcess.C
index 884fe1d39839dfa8035e8c07e5859de7d7ec46df..d95e3c49a769e2a352488489ee5472fc900a51e5 100644
--- a/applications/utilities/postProcessing/postProcess/postProcess.C
+++ b/applications/utilities/postProcessing/postProcess/postProcess.C
@@ -176,7 +176,7 @@ int main(int argc, char *argv[])
             args,
             runTime,
             functionsDict,
-            fields.selection()
+            fields
         )
     );
 
@@ -196,7 +196,7 @@ int main(int argc, char *argv[])
                 args,
                 runTime,
                 functionsDict,
-                fields.selection()
+                fields
             );
         }
 
diff --git a/src/OpenFOAM/db/dictionary/functionEntries/includeFuncEntry/includeFuncEntry.C b/src/OpenFOAM/db/dictionary/functionEntries/includeFuncEntry/includeFuncEntry.C
index 288c1889044eaf3c10d7240f2eb51117c7767e80..381c1d244f31a14fe07358475bc61db6ce8e707c 100644
--- a/src/OpenFOAM/db/dictionary/functionEntries/includeFuncEntry/includeFuncEntry.C
+++ b/src/OpenFOAM/db/dictionary/functionEntries/includeFuncEntry/includeFuncEntry.C
@@ -54,7 +54,7 @@ bool Foam::functionEntries::includeFuncEntry::execute
 )
 {
     const word fNameArgs(is);
-    HashSet<word> selectedFields;
+    HashSet<wordRe> selectedFields;
 
     return functionObjectList::readFunctionObject
     (
diff --git a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
index 98174a669e72bb39c6272e7e6f9537062074f3b4..bb1d7c7e9bfc3df6a2e672e599f595a2e27dbfbd 100644
--- a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
+++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.C
@@ -176,7 +176,7 @@ bool Foam::functionObjectList::readFunctionObject
 (
     const string& funcNameArgs,
     dictionary& functionsDict,
-    HashSet<word>& requiredFields,
+    HashSet<wordRe>& requiredFields,
     const word& region
 )
 {
@@ -190,7 +190,7 @@ bool Foam::functionObjectList::readFunctionObject
     word funcName(funcNameArgs);
 
     int argLevel = 0;
-    wordList args;
+    wordReList args;
 
     List<Tuple2<word, string>> namedArgs;
     bool namedArg = false;
@@ -237,9 +237,12 @@ bool Foam::functionObjectList::readFunctionObject
                 {
                     args.append
                     (
-                        word::validate
+                        wordRe
                         (
-                            funcNameArgs.substr(start, i - start)
+                            word::validate
+                            (
+                                funcNameArgs.substr(start, i - start)
+                            )
                         )
                     );
                 }
@@ -310,11 +313,11 @@ bool Foam::functionObjectList::readFunctionObject
     }
     else if (funcDict.found("field"))
     {
-        requiredFields.insert(word(funcDict.lookup("field")));
+        requiredFields.insert(wordRe(funcDict.lookup("field")));
     }
     else if (funcDict.found("fields"))
     {
-        requiredFields.insert(wordList(funcDict.lookup("fields")));
+        requiredFields.insert(wordReList(funcDict.lookup("fields")));
     }
 
     // Insert named arguments
@@ -384,7 +387,7 @@ Foam::autoPtr<Foam::functionObjectList> Foam::functionObjectList::New
     const argList& args,
     const Time& runTime,
     dictionary& controlDict,
-    HashSet<word>& requiredFields
+    HashSet<wordRe>& requiredFields
 )
 {
     autoPtr<functionObjectList> functionsPtr;
diff --git a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
index e32b01e25b0adfd46addf6d0dcd1fcf87ea9787f..ad81a3cf60cd7b866aac9f34b16947c1bd229dde 100644
--- a/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
+++ b/src/OpenFOAM/db/functionObjects/functionObjectList/functionObjectList.H
@@ -155,7 +155,7 @@ public:
             const argList& args,
             const Time& runTime,
             dictionary& controlDict,
-            HashSet<word>& requiredFields
+            HashSet<wordRe>& requiredFields
         );
 
 
@@ -236,7 +236,7 @@ public:
         (
             const string& funcNameArgs0,
             dictionary& functionsDict,
-            HashSet<word>& requiredFields,
+            HashSet<wordRe>& requiredFields,
             const word& region = word::null
         );
 
diff --git a/src/finiteVolume/functionObjects/fieldSelection/fieldSelection.H b/src/finiteVolume/functionObjects/fieldSelection/fieldSelection.H
index 9d874f8322ffa467d42cec5a16b4e0b224c50e48..1ff154ec3b92d1115cc3ec7c88d77bded99e2551 100644
--- a/src/finiteVolume/functionObjects/fieldSelection/fieldSelection.H
+++ b/src/finiteVolume/functionObjects/fieldSelection/fieldSelection.H
@@ -101,12 +101,6 @@ public:
             return selection_;
         }
 
-        //- Return the current field selection
-        wordHashSet& selection()
-        {
-            return selection_;
-        }
-
         //- Read the fieldSelection data from dictionary
         virtual bool read(const dictionary& dict);
 
diff --git a/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelection.C b/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelection.C
index 9d55a55393916ba8f7cbd7dd5fee2b3d3555dbe3..0456be0dc1e34a6a23b3c766704da0f513d632c8 100644
--- a/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelection.C
+++ b/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelection.C
@@ -29,6 +29,43 @@ License
 #include "fvPatchField.H"
 #include "surfaceMesh.H"
 #include "fvsPatchField.H"
+#include "pointMesh.H"
+#include "pointPatchField.H"
+#include "UniformDimensionedField.H"
+
+void Foam::functionObjects::fileFieldSelection::addInternalFieldTypes
+(
+    wordHashSet& set
+) const
+{
+    const fvMesh& mesh = static_cast<const fvMesh&>(obr_);
+
+    const IOobjectList allObjects(mesh, mesh.time().timeName());
+
+    addFromFile<DimensionedField<scalar, volMesh>>(allObjects, set);
+    addFromFile<DimensionedField<vector, volMesh>>(allObjects, set);
+    addFromFile<DimensionedField<sphericalTensor, volMesh>>(allObjects, set);
+    addFromFile<DimensionedField<symmTensor, volMesh>>(allObjects, set);
+    addFromFile<DimensionedField<tensor, volMesh>>(allObjects, set);
+}
+
+
+void Foam::functionObjects::fileFieldSelection::addUniformFieldTypes
+(
+    wordHashSet& set
+) const
+{
+    const fvMesh& mesh = static_cast<const fvMesh&>(obr_);
+
+    const IOobjectList allObjects(mesh, mesh.time().timeName());
+
+    addFromFile<UniformDimensionedField<scalar>>(allObjects, set);
+    addFromFile<UniformDimensionedField<vector>>(allObjects, set);
+    addFromFile<UniformDimensionedField<sphericalTensor>>(allObjects, set);
+    addFromFile<UniformDimensionedField<symmTensor>>(allObjects, set);
+    addFromFile<UniformDimensionedField<tensor>>(allObjects, set);
+}
+
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
@@ -54,8 +91,16 @@ bool Foam::functionObjects::fileFieldSelection::updateSelection()
     wordHashSet oldSet;
     oldSet.swap(selection_);
 
-    addFileGeoFields<fvPatchField, volMesh>(selection_);
-    addFileGeoFields<fvsPatchField, surfaceMesh>(selection_);
+    // Geometric fields
+    addGeoFieldTypes<fvPatchField, volMesh>(selection_);
+    addGeoFieldTypes<fvsPatchField, surfaceMesh>(selection_);
+    addGeoFieldTypes<pointPatchField, pointMesh>(selection_);
+
+    // Internal fields
+    addInternalFieldTypes(selection_);
+
+    // Uniform fields
+    addUniformFieldTypes(selection_);
 
     return selection_ != oldSet;
 }
diff --git a/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelection.H b/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelection.H
index d1d3a986c70718c3eeec4c877f9001b59bf96590..8a3f1160a12f378a3bcab85bee1d1ae14592e7d8 100644
--- a/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelection.H
+++ b/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelection.H
@@ -69,7 +69,13 @@ protected:
 
         //- Add registered GeometricField types to selection
         template<template<class> class PatchType, class MeshType>
-        void addFileGeoFields(wordHashSet& set) const;
+        void addGeoFieldTypes(wordHashSet& set) const;
+
+        //- Add registered Internal types to selection
+        void addInternalFieldTypes(wordHashSet& set) const;
+
+        //- Add registered uniform types to selection
+        void addUniformFieldTypes(wordHashSet& set) const;
 
         //- Add objects of a given type
         template<class Type>
diff --git a/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelectionTemplates.C b/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelectionTemplates.C
index f915d0499714358b4a5d835022dd53c2080e6100..ecfa95bdb4a2e4f6b2e52ec3c2541be779e37750 100644
--- a/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelectionTemplates.C
+++ b/src/finiteVolume/functionObjects/fieldSelection/fileFieldSelectionTemplates.C
@@ -37,7 +37,7 @@ void Foam::functionObjects::fileFieldSelection::addFromFile
     wordHashSet& set
 ) const
 {
-    DynamicList<word> names;
+    DynamicList<word> names(this->size());
 
     for (const wordRe& fieldName : *this)
     {
@@ -49,7 +49,7 @@ void Foam::functionObjects::fileFieldSelection::addFromFile
 
 
 template<template<class> class PatchType, class MeshType>
-void Foam::functionObjects::fileFieldSelection::addFileGeoFields
+void Foam::functionObjects::fileFieldSelection::addGeoFieldTypes
 (
     wordHashSet& set
 ) const