diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.C
index 8e9e3bcdf6e455b58c9144719764155de8e5c28c..9513a64a1518238da3436e08102bb7c1533ded15 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.C
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.C
@@ -54,20 +54,13 @@ Foam::functionObjects::writeVTK::writeVTK
     obr_(obr),
     objectNames_()
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::writeVTK::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.H
index dad936a9e42f380c1bb8084b38834ae3678ff45a..d230d7726d3b36aedc58e2c76b85df350306c6e8 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.H
@@ -131,16 +131,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~writeVTK();
diff --git a/etc/codeTemplates/dynamicCode/functionObjectTemplate.C b/etc/codeTemplates/dynamicCode/functionObjectTemplate.C
index cb256b9b93ece0ac874a1b7d8868c19413f8c7ae..fae5975f59537e083d89be4bdecef79434ce9ede 100644
--- a/etc/codeTemplates/dynamicCode/functionObjectTemplate.C
+++ b/etc/codeTemplates/dynamicCode/functionObjectTemplate.C
@@ -76,18 +76,6 @@ ${typeName}FunctionObject::${typeName}FunctionObject
 }
 
 
-bool ${typeName}FunctionObject::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool
-)
-{
-    return true;
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 ${typeName}FunctionObject::~${typeName}FunctionObject()
diff --git a/etc/codeTemplates/dynamicCode/functionObjectTemplate.H b/etc/codeTemplates/dynamicCode/functionObjectTemplate.H
index b1f7e7af8e78f2e08a61099480eb1828a11bb419..60f04091a6f7c39700fdb99a6f8118381af6d33a 100644
--- a/etc/codeTemplates/dynamicCode/functionObjectTemplate.H
+++ b/etc/codeTemplates/dynamicCode/functionObjectTemplate.H
@@ -102,16 +102,6 @@ public:
             const bool loadFromFilesUnused = false
         );
 
-        //- Construct for given objectRegistry and dictionary.
-        //  Allow the possibility to load fields from files
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry& unused,
-            const dictionary&,
-            const bool loadFromFilesUnused = false
-        );
-
 
     //- Destructor
     virtual ~${typeName}FunctionObject();
diff --git a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C
index 5c480baee4bd7fdbef7d91dd2371dc47754d3403..4cdaf575bcdf6e786dfac67ed8c948defb4bf10b 100644
--- a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C
+++ b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.C
@@ -30,7 +30,7 @@ License
 
 namespace Foam
 {
-defineTypeNameAndDebug(FUNCTIONOBJECT, 0);
+    defineTypeNameAndDebug(FUNCTIONOBJECT, 0);
 }
 
 
@@ -83,8 +83,7 @@ void Foam::FUNCTIONOBJECT::timeSet()
 
 
 void Foam::FUNCTIONOBJECT::write()
-{
-}
+{}
 
 
 // ************************************************************************* //
diff --git a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H
index b3bd373e4c822239658e6ae57c68372526ae0ae0..ad45ba61b4b1380fdf74d8cb5a844501a04fa5e3 100644
--- a/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H
+++ b/etc/codeTemplates/functionObject/FUNCTIONOBJECT.H
@@ -134,7 +134,7 @@ public:
     // Member Functions
 
         //- Return name of the FUNCTIONOBJECT
-        virtual const word& name() const
+        const word& name() const
         {
             return name_;
         }
diff --git a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C
index e70e55a1bc88dd79e064d54e7c43b366e4fc5cb9..3816c7e9f3431395e771917c616c5c09cf61be11 100644
--- a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C
+++ b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.C
@@ -66,32 +66,6 @@ Foam::IOOutputFilter<OutputFilter>::IOOutputFilter
 {}
 
 
-template<class OutputFilter>
-bool Foam::IOOutputFilter<OutputFilter>::viable
-(
-    const word& outputFilterName,
-    const objectRegistry& obr,
-    const word& dictName,
-    const IOobject::readOption rOpt,
-    const bool readFromFiles
-)
-{
-    IOdictionary dict
-    (
-        IOobject
-        (
-            dictName,
-            obr.time().system(),
-            obr,
-            rOpt,
-            IOobject::NO_WRITE
-        )
-    );
-
-    return OutputFilter::viable(outputFilterName, obr, dict, readFromFiles);
-}
-
-
 template<class OutputFilter>
 Foam::IOOutputFilter<OutputFilter>::IOOutputFilter
 (
diff --git a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H
index 6950b523f8fd5bfb1d39214c6294ab2028d5533d..a16d91a2cce38d8f2049e3634519b382e8a3f240 100644
--- a/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H
+++ b/src/OpenFOAM/db/functionObjects/IOOutputFilter/IOOutputFilter.H
@@ -94,16 +94,6 @@ public:
             const bool loadFromFile = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        static bool viable
-        (
-            const word& outputFilterName,
-            const objectRegistry&,
-            const word& dictName = OutputFilter::typeName() + "Dict",
-            const IOobject::readOption rOpt = IOobject::MUST_READ_IF_MODIFIED,
-            const bool loadFromFiles = false
-        );
-
         //- Construct for given objectRegistry and dictionary
         //  Dictionary read from full path.
         //  Allow the possibility to load fields from files
diff --git a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
index 316e128fc107f11fc9af96490343636075f89e06..c4f5249af02aa1f30deb0c11a6a0e672e191b4b0 100644
--- a/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
+++ b/src/OpenFOAM/db/functionObjects/OutputFilterFunctionObject/OutputFilterFunctionObject.C
@@ -56,49 +56,27 @@ bool Foam::OutputFilterFunctionObject<OutputFilter>::allocateFilter()
 {
     if (dictName_.size())
     {
-        if
+        ptr_.reset
         (
-            IOOutputFilter<OutputFilter>::viable
+            new IOOutputFilter<OutputFilter>
             (
                 name(),
                 time_.lookupObject<objectRegistry>(regionName_),
                 dictName_
             )
-        )
-        {
-            ptr_.reset
-            (
-                new IOOutputFilter<OutputFilter>
-                (
-                    name(),
-                    time_.lookupObject<objectRegistry>(regionName_),
-                    dictName_
-                )
-            );
-        }
+        );
     }
     else
     {
-        if
+        ptr_.reset
         (
-            OutputFilter::viable
+            new OutputFilter
             (
                 name(),
                 time_.lookupObject<objectRegistry>(regionName_),
                 dict_
             )
-        )
-        {
-            ptr_.reset
-            (
-                new OutputFilter
-                (
-                    name(),
-                    time_.lookupObject<objectRegistry>(regionName_),
-                    dict_
-                )
-            );
-        }
+        );
     }
 
     return ptr_.valid();
diff --git a/src/postProcessing/functionObjects/field/div/div.C b/src/postProcessing/functionObjects/field/div/div.C
index cf5405659ac38362ec563738974b3c27012b98c9..599bb1946252c67e74e0f028cf83f16f3f678bac 100644
--- a/src/postProcessing/functionObjects/field/div/div.C
+++ b/src/postProcessing/functionObjects/field/div/div.C
@@ -92,20 +92,13 @@ Foam::functionObjects::div::div
     fieldName_("undefined-fieldName"),
     resultName_("undefined-resultName")
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::div::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/div/div.H b/src/postProcessing/functionObjects/field/div/div.H
index e371ee84a87c425beb307bd311558cb2880288eb..4f7bed7ae4e9d7fbad13e6a4ab8b591f79e64116 100644
--- a/src/postProcessing/functionObjects/field/div/div.H
+++ b/src/postProcessing/functionObjects/field/div/div.H
@@ -125,16 +125,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~div();
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
index d6829f16c98a2db0b40287122c6fcc1a1090f583..adfad58cba01ab87a2d2637c28684cf582287e6a 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C
@@ -277,20 +277,13 @@ Foam::functionObjects::fieldAverage::fieldAverage
     totalTime_(),
     periodIndex_(1)
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::fieldAverage::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
index 2fbbe0e2ea28fe981e46f2aed00ddc46cc66614d..cec06ebcfd9624cb4cf34b4179000814310d34ce 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H
@@ -301,16 +301,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~fieldAverage();
diff --git a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
index 97a366a517d0105593b9edf8edd7af59917d6269..7359bea3830ffa12c97dd71d7ba4efaa9bb47e58 100644
--- a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
+++ b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.C
@@ -53,6 +53,12 @@ fieldCoordinateSystemTransform
     fieldSet_(),
     coordSys_(obr, dict)
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     read(dict);
 
     Info<< type() << " " << name_ << ":" << nl
@@ -61,19 +67,6 @@ fieldCoordinateSystemTransform
 }
 
 
-bool Foam::functionObjects::fieldCoordinateSystemTransform::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::fieldCoordinateSystemTransform::
diff --git a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
index f850e83451230b1dcc0208d4e8116371d0e4b1ca..4995caea3bec29350978b4bbe01053647dde18d5 100644
--- a/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
+++ b/src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransform.H
@@ -155,16 +155,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~fieldCoordinateSystemTransform();
diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C
index ad80d03c3127c6fdbc1253e16ea68e5c1d50517a..a0ab4def64fe8b46f4dd44a4313acabb3dd531be 100644
--- a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C
+++ b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.C
@@ -68,20 +68,13 @@ Foam::functionObjects::fieldMinMax::fieldMinMax
     mode_(mdMag),
     fieldSet_()
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::fieldMinMax::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
index 437b4595ab68058ba246818deb6dd81f6faef1fb..2f47d58c9d00dd600299ea2d3d5ef67530c09f24 100644
--- a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
+++ b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMax.H
@@ -181,16 +181,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~fieldMinMax();
diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C
index 8d9b291db2957aeeb329bc285c113e3aad3ebee3..62e689185ffa45736d147e1ac66707d86b3f0f8a 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C
@@ -218,20 +218,13 @@ Foam::functionObjects::fieldValues::cellSource::cellSource
     weightFieldName_("none"),
     writeVolume_(dict.lookupOrDefault("writeVolume", false))
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::fieldValues::cellSource::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H
index 15bf465e62762ab7ffcf0cbcbd7a0a3f2896ead1..20f984d2c0ce36a5f5e2cee060676d8749ede167 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.H
@@ -250,16 +250,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~cellSource();
diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
index 6cf89971d0085c27629823e63d4fd00a80752f0f..48b8d37a476c11d65d4ca88df6c1d62c505ad4a6 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.C
@@ -660,20 +660,13 @@ Foam::functionObjects::fieldValues::faceSource::faceSource
     facePatchId_(),
     faceSign_()
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::fieldValues::faceSource::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H
index ec7c6a96d798aa6eb88cfc4eead4734121f8cba9..774fa516ff02ee95ce2e0903d0211717a4c030d9 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/faceSource/faceSource.H
@@ -350,16 +350,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~faceSource();
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C
index c8c8186279102d649abc6e6712156fa67ecf6710..1c4bda54245e4bbe9ddeedd3a72b4d98b3fddb40 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C
@@ -118,20 +118,13 @@ Foam::functionObjects::fieldValues::fieldValueDelta::fieldValueDelta
     source1Ptr_(NULL),
     source2Ptr_(NULL)
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::fieldValues::fieldValueDelta::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H
index abaf609c7fd3d2f19e380bc52a7fafccbe730d3a..dcb09c00c7c67d948653b04c528d55efa3bd9f09 100644
--- a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H
+++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H
@@ -174,16 +174,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~fieldValueDelta();
diff --git a/src/postProcessing/functionObjects/field/grad/grad.C b/src/postProcessing/functionObjects/field/grad/grad.C
index d304ee53f4bd509eb329ca32e03213b8e50f7e16..0fc2c755189106a7a1b145ffd581a0b96460bbb6 100644
--- a/src/postProcessing/functionObjects/field/grad/grad.C
+++ b/src/postProcessing/functionObjects/field/grad/grad.C
@@ -54,20 +54,13 @@ Foam::functionObjects::grad::grad
     fieldName_("undefined-fieldName"),
     resultName_("undefined-resultName")
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::grad::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/grad/grad.H b/src/postProcessing/functionObjects/field/grad/grad.H
index 1c0119ffa16a29bfc4cb331b0b21ed84eb30a099..b7f3b60223bf5a29d0a55cf445655ef08c8b77dd 100644
--- a/src/postProcessing/functionObjects/field/grad/grad.H
+++ b/src/postProcessing/functionObjects/field/grad/grad.H
@@ -128,16 +128,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~grad();
diff --git a/src/postProcessing/functionObjects/field/histogram/histogram.C b/src/postProcessing/functionObjects/field/histogram/histogram.C
index 68fef256388872e667fd6122ea34c231eeafd469..d797d06f40da41f9815d9cdf81a592a238baecb0 100644
--- a/src/postProcessing/functionObjects/field/histogram/histogram.C
+++ b/src/postProcessing/functionObjects/field/histogram/histogram.C
@@ -77,20 +77,13 @@ Foam::functionObjects::histogram::histogram
     functionObjectFile(obr, typeName),
     name_(name)
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::histogram::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/histogram/histogram.H b/src/postProcessing/functionObjects/field/histogram/histogram.H
index db23fc1bce988f31b5f4462be6cce04c17b66c4c..f1201bd37d7b0625e705455e7cf59645408ad433 100644
--- a/src/postProcessing/functionObjects/field/histogram/histogram.H
+++ b/src/postProcessing/functionObjects/field/histogram/histogram.H
@@ -149,16 +149,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     // Destructor
 
diff --git a/src/postProcessing/functionObjects/field/mag/mag.C b/src/postProcessing/functionObjects/field/mag/mag.C
index fa0fa725e1f85fc729d6be1813254c6fe5230a4f..9816f50df209e5c7785273399e39c7f225aaeacc 100644
--- a/src/postProcessing/functionObjects/field/mag/mag.C
+++ b/src/postProcessing/functionObjects/field/mag/mag.C
@@ -54,20 +54,13 @@ Foam::functionObjects::mag::mag
     fieldName_("undefined-fieldName"),
     resultName_("undefined-resultName")
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::mag::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/mag/mag.H b/src/postProcessing/functionObjects/field/mag/mag.H
index a687095391924bae5e00f3ad7f254bf045220237..215b3c7ae3df7f3c4a6d848a0bd8e803189f0566 100644
--- a/src/postProcessing/functionObjects/field/mag/mag.H
+++ b/src/postProcessing/functionObjects/field/mag/mag.H
@@ -122,16 +122,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~mag();
diff --git a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C
index e9d78673111b8918c4d8f96621a1ccccd410caff..a0549bfe66c82d8a9de285e458a3cf3e238cf4ac 100644
--- a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C
+++ b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C
@@ -233,20 +233,13 @@ Foam::functionObjects::nearWallFields::nearWallFields
     obr_(obr),
     fieldSet_()
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::nearWallFields::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H
index e2fde8f2886f948aa10f1c9a2d851ff3d08c951b..f6638756e47a119763a743440f534066ddffc0fa 100644
--- a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H
+++ b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H
@@ -196,16 +196,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~nearWallFields();
diff --git a/src/postProcessing/functionObjects/field/processorField/processorField.C b/src/postProcessing/functionObjects/field/processorField/processorField.C
index aef6d4ba8e626ee75c64485cfe747c63410b6109..1647afa2e8ba6a8f061cdecca163af0bb0e1bc55 100644
--- a/src/postProcessing/functionObjects/field/processorField/processorField.C
+++ b/src/postProcessing/functionObjects/field/processorField/processorField.C
@@ -51,6 +51,12 @@ Foam::functionObjects::processorField::processorField
     name_(name),
     obr_(obr)
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     read(dict);
 
     const fvMesh& mesh = refCast<const fvMesh>(obr_);
@@ -76,20 +82,6 @@ Foam::functionObjects::processorField::processorField
 }
 
 
-bool Foam::functionObjects::processorField::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::processorField::~processorField()
diff --git a/src/postProcessing/functionObjects/field/processorField/processorField.H b/src/postProcessing/functionObjects/field/processorField/processorField.H
index 4df52b11eaaf87d306f33e7c988b12c5b1bbe6af..478a47184e2e1617217bc1e40431e8d09786db03 100644
--- a/src/postProcessing/functionObjects/field/processorField/processorField.H
+++ b/src/postProcessing/functionObjects/field/processorField/processorField.H
@@ -124,16 +124,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~processorField();
diff --git a/src/postProcessing/functionObjects/field/readFields/readFields.C b/src/postProcessing/functionObjects/field/readFields/readFields.C
index d9c49519633a065f62c9a8818045cdf69373ff11..4648c252bd36eaad092102419f42ac7dfce0fab8 100644
--- a/src/postProcessing/functionObjects/field/readFields/readFields.C
+++ b/src/postProcessing/functionObjects/field/readFields/readFields.C
@@ -51,20 +51,13 @@ Foam::functionObjects::readFields::readFields
     obr_(obr),
     fieldSet_()
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::readFields::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/readFields/readFields.H b/src/postProcessing/functionObjects/field/readFields/readFields.H
index 4b72bd958aae8a5d4e55c297fca30a0f19243a93..ed6b0489fd60f8161f37f538b92f3d5b81627846 100644
--- a/src/postProcessing/functionObjects/field/readFields/readFields.H
+++ b/src/postProcessing/functionObjects/field/readFields/readFields.H
@@ -155,16 +155,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~readFields();
diff --git a/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C b/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
index 418afc3ecf7e7ce46041a9a3a1d1fa63823da26f..7987c141b621f13d10995392d2bae12a2ec56774 100644
--- a/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
+++ b/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.C
@@ -333,20 +333,13 @@ Foam::functionObjects::regionSizeDistribution::regionSizeDistribution
     alphaName_(dict.lookup("field")),
     patchNames_(dict.lookup("patches"))
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::regionSizeDistribution::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H b/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H
index 0a686dacaf7576f168b640d4c59c3fd63e612078..18b4e36e21f9a8fd6933916237dccc08b213ef3b 100644
--- a/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H
+++ b/src/postProcessing/functionObjects/field/regionSizeDistribution/regionSizeDistribution.H
@@ -255,16 +255,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     // Destructor
 
diff --git a/src/postProcessing/functionObjects/field/streamLine/streamLine.C b/src/postProcessing/functionObjects/field/streamLine/streamLine.C
index a5015e795002fdef832ac98070cf7e9b1ccb1c4a..308a27bb4460a096478cd87062d84bf2adf1bcad 100644
--- a/src/postProcessing/functionObjects/field/streamLine/streamLine.C
+++ b/src/postProcessing/functionObjects/field/streamLine/streamLine.C
@@ -337,20 +337,13 @@ Foam::functionObjects::streamLine::streamLine
     loadFromFiles_(loadFromFiles),
     nSubCycle_(0)
 {
-    read(dict_);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::streamLine::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict_);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/streamLine/streamLine.H b/src/postProcessing/functionObjects/field/streamLine/streamLine.H
index ede9683fafbc0e62e29cbce03e3ca65d42d43212..c47bb9f8cde33391848756c51811a26a236a7932 100644
--- a/src/postProcessing/functionObjects/field/streamLine/streamLine.H
+++ b/src/postProcessing/functionObjects/field/streamLine/streamLine.H
@@ -243,16 +243,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~streamLine();
diff --git a/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.C b/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.C
index d5ba38787942b5c98d6aaed789789011bdb9a81f..5093b9056f6c5fb61137407dbbd75255addd41e2 100644
--- a/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.C
+++ b/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.C
@@ -50,20 +50,13 @@ Foam::functionObjects::surfaceInterpolateFields::surfaceInterpolateFields
     obr_(obr),
     fieldSet_()
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::surfaceInterpolateFields::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H b/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H
index 7121237a3bca5e19744f41a2b584d638f88f4248..d86d5b5ae77036c09561d0d625732fa2dc19d518 100644
--- a/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H
+++ b/src/postProcessing/functionObjects/field/surfaceInterpolateFields/surfaceInterpolateFields.H
@@ -151,16 +151,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~surfaceInterpolateFields();
diff --git a/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C b/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
index f110a8845514a5691cc773a5f75a9cb44995a83d..1b02584b20c6e25b99dad95aef7f273fa88e4a52 100644
--- a/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
+++ b/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.C
@@ -448,20 +448,13 @@ Foam::functionObjects::wallBoundedStreamLine::wallBoundedStreamLine
     obr_(obr),
     loadFromFiles_(loadFromFiles)
 {
-    read(dict_);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::wallBoundedStreamLine::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict_);
 }
 
 
diff --git a/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H b/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
index b8e2697178dc6e1d441e6d03d816c2d7716f6da6..1a2f7dc4e4ab79e0fdf4fb7b6a3c3fe55d5749d5 100644
--- a/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
+++ b/src/postProcessing/functionObjects/field/wallBoundedStreamLine/wallBoundedStreamLine.H
@@ -249,16 +249,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~wallBoundedStreamLine();
diff --git a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
index ea0efdd451385fc450bcc9661c1e9ba61bfd1356..18fec8f25c687254c94b94505463b43f2290d0aa 100644
--- a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
+++ b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C
@@ -139,21 +139,13 @@ Foam::functionObjects::forceCoeffs::forceCoeffs
     lRef_(0.0),
     Aref_(0.0)
 {
-    read(dict);
-    Info<< endl;
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::forceCoeffs::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
index a3eddb57e44c51b1b7d11b44cf9442f2702a7523..be1a3d385d810214f5eb1f86d05a295650f8d32a 100644
--- a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
+++ b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.H
@@ -171,16 +171,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~forceCoeffs();
diff --git a/src/postProcessing/functionObjects/forces/forces/forces.C b/src/postProcessing/functionObjects/forces/forces/forces.C
index c8e63db2d633be74d2f995ce4d7de380278d2531..5ff699f35356a971cddcd9c3d7c1ab3ebbff75c2 100644
--- a/src/postProcessing/functionObjects/forces/forces/forces.C
+++ b/src/postProcessing/functionObjects/forces/forces/forces.C
@@ -553,27 +553,19 @@ Foam::functionObjects::forces::forces
     binCumulative_(true),
     initialised_(false)
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     if (readFields)
     {
         read(dict);
-        Info<< endl;
     }
 }
 
 
-bool Foam::functionObjects::forces::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 Foam::functionObjects::forces::forces
 (
     const word& name,
diff --git a/src/postProcessing/functionObjects/forces/forces/forces.H b/src/postProcessing/functionObjects/forces/forces/forces.H
index 5899f62134f0254fa1ef8f8161d299cf5f8a3c2d..449f2f62008522abc5e8120f9925657042df65ff 100644
--- a/src/postProcessing/functionObjects/forces/forces/forces.H
+++ b/src/postProcessing/functionObjects/forces/forces/forces.H
@@ -292,16 +292,6 @@ public:
             const bool readFields = true
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
         //- Construct from components
         forces
         (
diff --git a/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.C b/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.C
index c4315511235ede30b331986fa80080e6ca3a65f0..b256dafe7bb7492e2dcc0ecb234dc6bb52e9066e 100644
--- a/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.C
+++ b/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.C
@@ -203,6 +203,12 @@ Foam::functionObjects::pressureTools::pressureTools
     UInf_(Zero),
     rhoInf_(0.0)
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     read(dict);
 
     dimensionSet pDims(dimPressure);
@@ -235,19 +241,6 @@ Foam::functionObjects::pressureTools::pressureTools
 }
 
 
-bool Foam::functionObjects::pressureTools::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::pressureTools::~pressureTools()
diff --git a/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.H b/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.H
index b42bf373aa2fc1ba6a9cd31ea604682de6a05a34..404c140c6407a3ff930f635da0eb0a4840e3afb2 100644
--- a/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.H
+++ b/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.H
@@ -218,16 +218,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~pressureTools();
diff --git a/src/postProcessing/functionObjects/forces/wallShearStress/wallShearStress.C b/src/postProcessing/functionObjects/forces/wallShearStress/wallShearStress.C
index e2160e34311dcb6adc6f2bca9ea2586955c0f4bd..85e605533a626208ce2cddce2656a2d842014dae 100644
--- a/src/postProcessing/functionObjects/forces/wallShearStress/wallShearStress.C
+++ b/src/postProcessing/functionObjects/forces/wallShearStress/wallShearStress.C
@@ -108,6 +108,12 @@ Foam::functionObjects::wallShearStress::wallShearStress
     log_(true),
     patchSet_()
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     const fvMesh& mesh = refCast<const fvMesh>(obr_);
 
     volVectorField* wallShearStressPtr
@@ -138,19 +144,6 @@ Foam::functionObjects::wallShearStress::wallShearStress
 }
 
 
-bool Foam::functionObjects::wallShearStress::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::wallShearStress::~wallShearStress()
diff --git a/src/postProcessing/functionObjects/forces/wallShearStress/wallShearStress.H b/src/postProcessing/functionObjects/forces/wallShearStress/wallShearStress.H
index 07665ce6573e93136b8521f2e8b3d1c860f3f05d..486351bffa657ac4264dcdabe25eb628513e0f18 100644
--- a/src/postProcessing/functionObjects/forces/wallShearStress/wallShearStress.H
+++ b/src/postProcessing/functionObjects/forces/wallShearStress/wallShearStress.H
@@ -159,16 +159,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~wallShearStress();
diff --git a/src/postProcessing/functionObjects/lagrangian/cloudInfo/cloudInfo.C b/src/postProcessing/functionObjects/lagrangian/cloudInfo/cloudInfo.C
index 7641bf5c01a596b848ce26c8553ef6648ab3a68f..369804dc948ec520f39e06211a670082ac64a6a9 100644
--- a/src/postProcessing/functionObjects/lagrangian/cloudInfo/cloudInfo.C
+++ b/src/postProcessing/functionObjects/lagrangian/cloudInfo/cloudInfo.C
@@ -68,18 +68,6 @@ Foam::functionObjects::cloudInfo::cloudInfo
 }
 
 
-bool Foam::functionObjects::cloudInfo::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    return true;
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::cloudInfo::~cloudInfo()
diff --git a/src/postProcessing/functionObjects/lagrangian/cloudInfo/cloudInfo.H b/src/postProcessing/functionObjects/lagrangian/cloudInfo/cloudInfo.H
index 36b064c362c3c1f9d5614e081fa2ffe951db69f5..5906215598b4b4fd3c982edbd614525bdf2807bb 100644
--- a/src/postProcessing/functionObjects/lagrangian/cloudInfo/cloudInfo.H
+++ b/src/postProcessing/functionObjects/lagrangian/cloudInfo/cloudInfo.H
@@ -144,16 +144,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~cloudInfo();
diff --git a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C
index 13a4e61c936747e17c76d169dd6470e1e2f45834..a7fc210de3887d50764cff3033a7f20c047495f5 100644
--- a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C
+++ b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C
@@ -73,6 +73,12 @@ Foam::functionObjects::CourantNo::CourantNo
     phiName_("phi"),
     rhoName_("rho")
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     read(dict);
 
     const fvMesh& mesh = refCast<const fvMesh>(obr_);
@@ -99,19 +105,6 @@ Foam::functionObjects::CourantNo::CourantNo
 }
 
 
-bool Foam::functionObjects::CourantNo::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::CourantNo::~CourantNo()
diff --git a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H
index dd249eb9c651d9b8edb7c4738e1348d67663af6a..ca377f1c88eeb8a048e1943bbe3a70a6fa7a715d 100644
--- a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H
+++ b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H
@@ -110,16 +110,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~CourantNo();
diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C
index 23345a25ae4e9ef2b7164c12846f70d68eb67fd4..e6c13e8bdf0e65beea8bc167853146bf21d00d1e 100644
--- a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C
+++ b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C
@@ -54,6 +54,12 @@ Foam::functionObjects::Lambda2::Lambda2
     obr_(obr),
     UName_("U")
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     read(dict);
 
     const fvMesh& mesh = refCast<const fvMesh>(obr_);
@@ -79,19 +85,6 @@ Foam::functionObjects::Lambda2::Lambda2
 }
 
 
-bool Foam::functionObjects::Lambda2::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::Lambda2::~Lambda2()
diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H
index 265e2dd2b7fae5416f0648873149a14df660e14e..804bb584fbbca855e6c259256439b478612ef36a 100644
--- a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H
+++ b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H
@@ -104,16 +104,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~Lambda2();
diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C
index ced9ace56d73be6749568af046b6f861b1b6dafa..9bc2a62e1530258f86e2f9131026bd20abcb632e 100644
--- a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C
+++ b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C
@@ -57,6 +57,12 @@ Foam::functionObjects::Peclet::Peclet
     phiName_("phi"),
     rhoName_("rho")
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     read(dict);
 
     const fvMesh& mesh = refCast<const fvMesh>(obr_);
@@ -82,19 +88,6 @@ Foam::functionObjects::Peclet::Peclet
 }
 
 
-bool Foam::functionObjects::Peclet::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::Peclet::~Peclet()
diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H
index e300a6814bc6392c8788c438787ed6691b60756d..4b500ec0dc798f311eb829acf92d5b38c628b814 100644
--- a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H
+++ b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H
@@ -106,16 +106,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~Peclet();
diff --git a/src/postProcessing/functionObjects/utilities/Q/Q.C b/src/postProcessing/functionObjects/utilities/Q/Q.C
index 7e4fb2ff31275971f0846d11f8998eaef8d920fa..cea5d053346aee9ffe73668b1f08d860121541a4 100644
--- a/src/postProcessing/functionObjects/utilities/Q/Q.C
+++ b/src/postProcessing/functionObjects/utilities/Q/Q.C
@@ -53,6 +53,12 @@ Foam::functionObjects::Q::Q
     obr_(obr),
     UName_("U")
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     read(dict);
 
     const fvMesh& mesh = refCast<const fvMesh>(obr_);
@@ -78,19 +84,6 @@ Foam::functionObjects::Q::Q
 }
 
 
-bool Foam::functionObjects::Q::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::Q::~Q()
diff --git a/src/postProcessing/functionObjects/utilities/Q/Q.H b/src/postProcessing/functionObjects/utilities/Q/Q.H
index 780cc1e45868aa88617b412bf326e848e54f0bde..e8395211c49162cc95e5b7b733c1248c667aa351 100644
--- a/src/postProcessing/functionObjects/utilities/Q/Q.H
+++ b/src/postProcessing/functionObjects/utilities/Q/Q.H
@@ -107,16 +107,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~Q();
diff --git a/src/postProcessing/functionObjects/utilities/abort/abort.C b/src/postProcessing/functionObjects/utilities/abort/abort.C
index d68fe939b3d12f3e90b17476cdc421d0ae8e425e..76e71d39a1fd144760473a2fc2ccca329f46889a 100644
--- a/src/postProcessing/functionObjects/utilities/abort/abort.C
+++ b/src/postProcessing/functionObjects/utilities/abort/abort.C
@@ -97,19 +97,6 @@ Foam::functionObjects::abort::abort
 }
 
 
-bool Foam::functionObjects::abort::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    return true;
-}
-
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::abort::~abort()
diff --git a/src/postProcessing/functionObjects/utilities/abort/abort.H b/src/postProcessing/functionObjects/utilities/abort/abort.H
index 3ab02cf1a9065b0be0a0b2bb4e93386c5e0eee80..b07ea5ee74b76cefea5c4c01bb4a325dc78f6e14 100644
--- a/src/postProcessing/functionObjects/utilities/abort/abort.H
+++ b/src/postProcessing/functionObjects/utilities/abort/abort.H
@@ -126,16 +126,6 @@ public:
             const bool loadFromFilesUnused = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~abort();
diff --git a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.C b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.C
index 64863bcfc657597086bd24aa0a5ada2473539aed..96c73367d545bb41e5d104ad10aed114bade27d6 100644
--- a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.C
+++ b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.C
@@ -52,20 +52,13 @@ Foam::functionObjects::blendingFactor::blendingFactor
     phiName_("unknown-phiName"),
     fieldName_("unknown-fieldName")
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::blendingFactor::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.H b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.H
index 92db53a8e6e91868af94ad35d3acae4448a1fef2..938449e3244e1bd4c0e4f0c66236c647f9aff72e 100644
--- a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.H
+++ b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.H
@@ -119,17 +119,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
-
 
     //- Destructor
     virtual ~blendingFactor();
diff --git a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C
index 33722637d657c14c9b11f75a74c266c01ee5d947..8b519877bf52bfd61fc06c279c0bcf39f1375a0d 100644
--- a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C
+++ b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.C
@@ -56,20 +56,13 @@ Foam::functionObjects::dsmcFields::dsmcFields
     name_(name),
     obr_(obr)
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::dsmcFields::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H
index 16e457f9246b12f40fd362df721b2cc57c727011..08c5cb7f0b1887d995cd06402f5bc6197d6a0d4c 100644
--- a/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H
+++ b/src/postProcessing/functionObjects/utilities/dsmcFields/dsmcFields.H
@@ -101,16 +101,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~dsmcFields();
diff --git a/src/postProcessing/functionObjects/utilities/partialWrite/partialWrite.C b/src/postProcessing/functionObjects/utilities/partialWrite/partialWrite.C
index 3d5faaf9647775b5a1d503b32bad5aa7aa14243e..4a4a801e4f63fd3ec404643e31c0ca1bc5572b20 100644
--- a/src/postProcessing/functionObjects/utilities/partialWrite/partialWrite.C
+++ b/src/postProcessing/functionObjects/utilities/partialWrite/partialWrite.C
@@ -58,19 +58,6 @@ Foam::functionObjects::partialWrite::partialWrite
 }
 
 
-bool Foam::functionObjects::partialWrite::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::partialWrite::~partialWrite()
diff --git a/src/postProcessing/functionObjects/utilities/partialWrite/partialWrite.H b/src/postProcessing/functionObjects/utilities/partialWrite/partialWrite.H
index a4f4e9bf2dd4bae0632d3fdaaed208ffee62662c..bfd55e89c01268426ca125e0be66d20f1038042f 100644
--- a/src/postProcessing/functionObjects/utilities/partialWrite/partialWrite.H
+++ b/src/postProcessing/functionObjects/utilities/partialWrite/partialWrite.H
@@ -170,16 +170,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~partialWrite();
diff --git a/src/postProcessing/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.C b/src/postProcessing/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.C
index 9bd09cd0b665633e07a46b21c47b7656841c615b..4ecd2a4fe076fffab5fda1357b271e415b87a735 100644
--- a/src/postProcessing/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.C
+++ b/src/postProcessing/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.C
@@ -56,18 +56,6 @@ Foam::functionObjects::removeRegisteredObject::removeRegisteredObject
 }
 
 
-bool Foam::functionObjects::removeRegisteredObject::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    return true;
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::removeRegisteredObject::~removeRegisteredObject()
diff --git a/src/postProcessing/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.H b/src/postProcessing/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.H
index d7ad03adfbbe2ff87500556e123b11dd3e2ebe26..e3fbe35193a78317d617e8c376037a96a8e5e728 100644
--- a/src/postProcessing/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.H
+++ b/src/postProcessing/functionObjects/utilities/removeRegisteredObject/removeRegisteredObject.H
@@ -127,16 +127,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~removeRegisteredObject();
diff --git a/src/postProcessing/functionObjects/utilities/residuals/residuals.C b/src/postProcessing/functionObjects/utilities/residuals/residuals.C
index d82b5120eabfbb3197c5fddbb602fcc36411a681..b7a8d52b9483b6f9a1daedcc85ada91dda579148 100644
--- a/src/postProcessing/functionObjects/utilities/residuals/residuals.C
+++ b/src/postProcessing/functionObjects/utilities/residuals/residuals.C
@@ -54,20 +54,13 @@ Foam::functionObjects::residuals::residuals
     obr_(obr),
     fieldSet_()
 {
-    read(dict);
-}
-
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
 
-bool Foam::functionObjects::residuals::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/residuals/residuals.H b/src/postProcessing/functionObjects/utilities/residuals/residuals.H
index 67672139923031905fdd249dea50d36f4277ec3b..5b8b52269449cb7ccbe2cbbe640056a1257c4f71 100644
--- a/src/postProcessing/functionObjects/utilities/residuals/residuals.H
+++ b/src/postProcessing/functionObjects/utilities/residuals/residuals.H
@@ -145,16 +145,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~residuals();
diff --git a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C
index a4bfb5bbbc02634c8c28456c74bd6a6721b347ea..1c3d02df283533abf3246d3e7ff590b60aabf8c1 100644
--- a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C
+++ b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C
@@ -176,6 +176,12 @@ Foam::functionObjects::scalarTransport::scalarTransport
         boundaryTypes()
     )
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     read(dict);
 
     if (resetOnStartUp_)
@@ -185,19 +191,6 @@ Foam::functionObjects::scalarTransport::scalarTransport
 }
 
 
-bool Foam::functionObjects::scalarTransport::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::scalarTransport::~scalarTransport()
diff --git a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H
index 166bc37b7f32a05138642e2a006d87be06615bad..29b5fb0e653fdc22cf03812909546d8ea47ce974 100644
--- a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H
+++ b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H
@@ -144,16 +144,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~scalarTransport();
diff --git a/src/postProcessing/functionObjects/utilities/systemCall/systemCall.C b/src/postProcessing/functionObjects/utilities/systemCall/systemCall.C
index 2462b526fedbfbd0967236210990ae33b5c937ea..1d1796af9af1817adab04b1835969e2e65b0de1e 100644
--- a/src/postProcessing/functionObjects/utilities/systemCall/systemCall.C
+++ b/src/postProcessing/functionObjects/utilities/systemCall/systemCall.C
@@ -57,18 +57,6 @@ Foam::functionObjects::systemCall::systemCall
 }
 
 
-bool Foam::functionObjects::systemCall::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    return true;
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::systemCall::~systemCall()
diff --git a/src/postProcessing/functionObjects/utilities/systemCall/systemCall.H b/src/postProcessing/functionObjects/utilities/systemCall/systemCall.H
index 5e44dae6d60f39c845f9c2b2de31dc63992ac9b6..e12da249701f67d875131b3698630dd869e3992f 100644
--- a/src/postProcessing/functionObjects/utilities/systemCall/systemCall.H
+++ b/src/postProcessing/functionObjects/utilities/systemCall/systemCall.H
@@ -154,16 +154,6 @@ public:
             const bool loadFromFilesUnused = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~systemCall();
diff --git a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
index acee1ecfb5a83bec56203b1384ccd76bd7ea2c89..f571185f1e30a43fecc24613d5c5d45ebaa59a16 100644
--- a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
+++ b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.C
@@ -84,18 +84,6 @@ Foam::functionObjects::timeActivatedFileUpdate::timeActivatedFileUpdate
 }
 
 
-bool Foam::functionObjects::timeActivatedFileUpdate::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    return true;
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::timeActivatedFileUpdate::~timeActivatedFileUpdate()
diff --git a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H
index 2cbc81d506a78c418c80a85e7cf7873dec4ca0e8..89fd0e1ee581f05dd3a11114d530de9f2966fbfe 100644
--- a/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H
+++ b/src/postProcessing/functionObjects/utilities/timeActivatedFileUpdate/timeActivatedFileUpdate.H
@@ -129,16 +129,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~timeActivatedFileUpdate();
diff --git a/src/postProcessing/functionObjects/utilities/turbulenceFields/turbulenceFields.C b/src/postProcessing/functionObjects/utilities/turbulenceFields/turbulenceFields.C
index 158622444958f3b8d5aa8956d3ecc3ce53f5b6e6..41a1de210b39738d073ed6d80cf50e915579f7de 100644
--- a/src/postProcessing/functionObjects/utilities/turbulenceFields/turbulenceFields.C
+++ b/src/postProcessing/functionObjects/utilities/turbulenceFields/turbulenceFields.C
@@ -125,36 +125,24 @@ Foam::functionObjects::turbulenceFields::turbulenceFields
     obr_(obr),
     fieldSet_()
 {
-    read(dict);
-}
-
-
-bool Foam::functionObjects::turbulenceFields::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
     if (!isA<fvMesh>(obr))
     {
-        return false;
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
     }
 
     if
     (
-        obr.foundObject<compressible::turbulenceModel>(modelName)
-     || obr.foundObject<incompressible::turbulenceModel>(modelName)
+       !obr.foundObject<compressible::turbulenceModel>(modelName)
+    && !obr.foundObject<incompressible::turbulenceModel>(modelName)
     )
     {
-        return true;
-    }
-    else
-    {
-        return false;
+        FatalErrorInFunction
+            << "Cannot find turbulenceModel in objectRegistry"
+            << exit(FatalError);
     }
+
+    read(dict);
 }
 
 
diff --git a/src/postProcessing/functionObjects/utilities/turbulenceFields/turbulenceFields.H b/src/postProcessing/functionObjects/utilities/turbulenceFields/turbulenceFields.H
index a8dc7ae3ffe98440bbfd5299f24923d616b78601..f578022b86f68c71075e9d2ff7c85fd59a6b04fb 100644
--- a/src/postProcessing/functionObjects/utilities/turbulenceFields/turbulenceFields.H
+++ b/src/postProcessing/functionObjects/utilities/turbulenceFields/turbulenceFields.H
@@ -196,16 +196,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~turbulenceFields();
diff --git a/src/postProcessing/functionObjects/utilities/vorticity/vorticity.C b/src/postProcessing/functionObjects/utilities/vorticity/vorticity.C
index fd45701ecf2bcacb13f3fb3edc02e9b25365db48..89cb38d2c3076af8a9d132c124fe90439e820369 100644
--- a/src/postProcessing/functionObjects/utilities/vorticity/vorticity.C
+++ b/src/postProcessing/functionObjects/utilities/vorticity/vorticity.C
@@ -54,6 +54,12 @@ Foam::functionObjects::vorticity::vorticity
     UName_("U"),
     outputName_(typeName)
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     read(dict);
 
     const fvMesh& mesh = refCast<const fvMesh>(obr_);
@@ -79,19 +85,6 @@ Foam::functionObjects::vorticity::vorticity
 }
 
 
-bool Foam::functionObjects::vorticity::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::vorticity::~vorticity()
diff --git a/src/postProcessing/functionObjects/utilities/vorticity/vorticity.H b/src/postProcessing/functionObjects/utilities/vorticity/vorticity.H
index 3c24347d443608c761f350b37c3ea06a9637c410..e430924a1bf486ebb675612de45b238fbf74bb6a 100644
--- a/src/postProcessing/functionObjects/utilities/vorticity/vorticity.H
+++ b/src/postProcessing/functionObjects/utilities/vorticity/vorticity.H
@@ -102,16 +102,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~vorticity();
diff --git a/src/postProcessing/functionObjects/utilities/writeDictionary/writeDictionary.C b/src/postProcessing/functionObjects/utilities/writeDictionary/writeDictionary.C
index afe37cf4a34ce07ac3baf3a3452a4ba044a913cd..7fdc21fba108d0c81acf37ad2aca745238ed431c 100644
--- a/src/postProcessing/functionObjects/utilities/writeDictionary/writeDictionary.C
+++ b/src/postProcessing/functionObjects/utilities/writeDictionary/writeDictionary.C
@@ -107,18 +107,6 @@ Foam::functionObjects::writeDictionary::writeDictionary
 }
 
 
-bool Foam::functionObjects::writeDictionary::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    return true;
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::writeDictionary::~writeDictionary()
diff --git a/src/postProcessing/functionObjects/utilities/writeDictionary/writeDictionary.H b/src/postProcessing/functionObjects/utilities/writeDictionary/writeDictionary.H
index 89107494d791a601b912155b118338cb5ba6d4ef..5a3f81f9d8d23de532d978d9ad4a6e635bda6021 100644
--- a/src/postProcessing/functionObjects/utilities/writeDictionary/writeDictionary.H
+++ b/src/postProcessing/functionObjects/utilities/writeDictionary/writeDictionary.H
@@ -119,16 +119,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~writeDictionary();
diff --git a/src/postProcessing/functionObjects/utilities/writeRegisteredObject/writeRegisteredObject.C b/src/postProcessing/functionObjects/utilities/writeRegisteredObject/writeRegisteredObject.C
index 6385ad89b1f410d52d6fe87c10caa5d0128ee7e0..837ddd35fa66b3303b395f120cc9d706c6ea5ce2 100644
--- a/src/postProcessing/functionObjects/utilities/writeRegisteredObject/writeRegisteredObject.C
+++ b/src/postProcessing/functionObjects/utilities/writeRegisteredObject/writeRegisteredObject.C
@@ -57,18 +57,6 @@ Foam::functionObjects::writeRegisteredObject::writeRegisteredObject
 }
 
 
-bool Foam::functionObjects::writeRegisteredObject::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    return true;
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::writeRegisteredObject::~writeRegisteredObject()
diff --git a/src/postProcessing/functionObjects/utilities/writeRegisteredObject/writeRegisteredObject.H b/src/postProcessing/functionObjects/utilities/writeRegisteredObject/writeRegisteredObject.H
index 64c2dbe9eceb3400ac021ba4b797edd76117214e..adfe67752b594a466e4a5bb6821d6b7406c9b193 100644
--- a/src/postProcessing/functionObjects/utilities/writeRegisteredObject/writeRegisteredObject.H
+++ b/src/postProcessing/functionObjects/utilities/writeRegisteredObject/writeRegisteredObject.H
@@ -142,16 +142,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~writeRegisteredObject();
diff --git a/src/postProcessing/functionObjects/utilities/yPlus/yPlus.C b/src/postProcessing/functionObjects/utilities/yPlus/yPlus.C
index 9b6289a814f814fbd2ffa47dc9ca3a87fe3facb3..4384c47acfe88927cb27cd981dc3b6ac211cc166 100644
--- a/src/postProcessing/functionObjects/utilities/yPlus/yPlus.C
+++ b/src/postProcessing/functionObjects/utilities/yPlus/yPlus.C
@@ -70,6 +70,12 @@ Foam::functionObjects::yPlus::yPlus
     log_(true),
     phiName_("phi")
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     const fvMesh& mesh = refCast<const fvMesh>(obr_);
 
     volScalarField* yPlusPtr
@@ -93,19 +99,6 @@ Foam::functionObjects::yPlus::yPlus
 }
 
 
-bool Foam::functionObjects::yPlus::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::functionObjects::yPlus::~yPlus()
diff --git a/src/postProcessing/functionObjects/utilities/yPlus/yPlus.H b/src/postProcessing/functionObjects/utilities/yPlus/yPlus.H
index 74402e7246e8fd3f4dec7331b505c21bb128d75d..a40e3b3dbc704cf370c31cb532b7e6f26c493b1d 100644
--- a/src/postProcessing/functionObjects/utilities/yPlus/yPlus.H
+++ b/src/postProcessing/functionObjects/utilities/yPlus/yPlus.H
@@ -120,16 +120,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~yPlus();
diff --git a/src/sampling/probes/patchProbes.C b/src/sampling/probes/patchProbes.C
index 0541cd5c7e3ed7c112fac59fb280ea41c938b7a8..0d4acb2de6d6e189618858dc5d4003666d4e839c 100644
--- a/src/sampling/probes/patchProbes.C
+++ b/src/sampling/probes/patchProbes.C
@@ -202,18 +202,6 @@ Foam::patchProbes::patchProbes
 }
 
 
-bool Foam::patchProbes::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    return true;
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::patchProbes::~patchProbes()
diff --git a/src/sampling/probes/patchProbes.H b/src/sampling/probes/patchProbes.H
index 447463ebe97f4e443306848e55a87918719e98fc..a2758b469cce77a72657c3ba3ee30419bfc97bbe 100644
--- a/src/sampling/probes/patchProbes.H
+++ b/src/sampling/probes/patchProbes.H
@@ -138,20 +138,11 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~patchProbes();
 
+
     //- Public members
 
         //- Sample and write
diff --git a/src/sampling/probes/probes.C b/src/sampling/probes/probes.C
index 661bba6a4dd7ff391ed0d93ecf0b8268d840a113..f8874237cb90cf04b919ef4bdec713e1f357d4cc 100644
--- a/src/sampling/probes/probes.C
+++ b/src/sampling/probes/probes.C
@@ -287,18 +287,6 @@ Foam::probes::probes
 }
 
 
-bool Foam::probes::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    return true;
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::probes::~probes()
diff --git a/src/sampling/probes/probes.H b/src/sampling/probes/probes.H
index 55ffc62566481c28ca64a5353d507f50f7f7b720..c9c988cdf488f767273e33bb8da7b3dc683bb36f 100644
--- a/src/sampling/probes/probes.H
+++ b/src/sampling/probes/probes.H
@@ -210,16 +210,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~probes();
diff --git a/src/sampling/sampledSet/sampledSets/sampledSets.C b/src/sampling/sampledSet/sampledSets/sampledSets.C
index 1a0723762fd21b79db96fd9138b112f94fe7e122..6f57a96fb6c83e5616e0a00244b95212dc259af3 100644
--- a/src/sampling/sampledSet/sampledSets/sampledSets.C
+++ b/src/sampling/sampledSet/sampledSets/sampledSets.C
@@ -35,8 +35,9 @@ License
 
 namespace Foam
 {
-defineTypeNameAndDebug(sampledSets, 0);
-bool sampledSets::verbose_ = false;
+    defineTypeNameAndDebug(sampledSets, 0);
+
+    bool sampledSets::verbose_ = false;
 }
 
 
@@ -162,18 +163,6 @@ Foam::sampledSets::sampledSets
 }
 
 
-bool Foam::sampledSets::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    return true;
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::sampledSets::~sampledSets()
diff --git a/src/sampling/sampledSet/sampledSets/sampledSets.H b/src/sampling/sampledSet/sampledSets/sampledSets.H
index 332efc2e533a33275dfb9a5895580c3b5e979440..26e494c28d3b8da0f703c53be3337fc693a7e01e 100644
--- a/src/sampling/sampledSet/sampledSets/sampledSets.H
+++ b/src/sampling/sampledSet/sampledSets/sampledSets.H
@@ -266,16 +266,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~sampledSets();
diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
index 41ac7b56e1411202df6bc6f363dd32ac4bf97f05..701135b4025607f8a38dedce6dfece9d66e37073 100644
--- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
+++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C
@@ -115,19 +115,6 @@ Foam::sampledSurfaces::sampledSurfaces
 }
 
 
-bool Foam::sampledSurfaces::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    return true;
-}
-
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::sampledSurfaces::~sampledSurfaces()
diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
index 50b6f2710a8bbb4a73f91a20ecd138d16ccfb20b..f2c2430e5a693bb363e699b47637e5a98c3c0f1d 100644
--- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
+++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H
@@ -186,16 +186,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~sampledSurfaces();
diff --git a/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.C b/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.C
index f7d8bb51ab74f8ad314230a00ed8895610f9d4ad..fb7837cdd477fa1389be3af5388eb0c086d4ceba 100644
--- a/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.C
+++ b/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.C
@@ -60,6 +60,12 @@ Foam::moleFractions<ThermoType>::moleFractions
     name_(name),
     mesh_(refCast<const fvMesh>(obr))
 {
+    if (!isA<fvMesh>(obr))
+    {
+        FatalErrorInFunction
+            << "objectRegistry is not an fvMesh" << exit(FatalError);
+    }
+
     if (mesh_.foundObject<ThermoType>(basicThermo::dictName))
     {
         const ThermoType& thermo =
@@ -102,20 +108,6 @@ Foam::moleFractions<ThermoType>::moleFractions
 }
 
 
-template<class ThermoType>
-bool Foam::moleFractions<ThermoType>::viable
-(
-    const word& name,
-    const objectRegistry& obr,
-    const dictionary& dict,
-    const bool loadFromFiles
-)
-{
-    // Construction is viable if the available mesh is an fvMesh
-    return isA<fvMesh>(obr);
-}
-
-
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 template<class ThermoType>
diff --git a/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.H b/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.H
index 7e6beb8c19f2e127ebfff92b213decd7ad427662..05c7fa416a59a9f06cb72b1517f726bea36c15f4 100644
--- a/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.H
+++ b/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.H
@@ -119,16 +119,6 @@ public:
             const bool loadFromFiles = false
         );
 
-        //- Return true if the construction of this functionObject is viable
-        //  i.e. the prerequisites for construction are available
-        static bool viable
-        (
-            const word& name,
-            const objectRegistry&,
-            const dictionary&,
-            const bool loadFromFiles = false
-        );
-
 
     //- Destructor
     virtual ~moleFractions();