diff --git a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C
index c521cc49ce51b1ff2d8d090ea1a886ee9cef58fd..0cac4dce5fd407f7639e17a7080948683baddf2c 100644
--- a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C
+++ b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C
@@ -31,6 +31,20 @@ License
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
+template<class SourcePatch, class TargetPatch>
+const Foam::Enum
+<
+    typename Foam::AMIInterpolation<SourcePatch, TargetPatch>::
+    interpolationMethod
+>
+Foam::AMIInterpolation<SourcePatch, TargetPatch>::interpolationMethodNames_
+{
+    { interpolationMethod::imDirect, "directAMI" },
+    { interpolationMethod::imMapNearest, "mapNearestAMI" },
+    { interpolationMethod::imFaceAreaWeight, "faceAreaWeightAMI" },
+    { interpolationMethod::imPartialFaceAreaWeight, "partialFaceAreaWeightAMI" }
+};
+
 template<class SourcePatch, class TargetPatch>
 Foam::word
 Foam::AMIInterpolation<SourcePatch, TargetPatch>::interpolationMethodToWord
@@ -38,39 +52,7 @@ Foam::AMIInterpolation<SourcePatch, TargetPatch>::interpolationMethodToWord
     const interpolationMethod& im
 )
 {
-    word method = "unknown-interpolationMethod";
-
-    switch (im)
-    {
-        case imDirect:
-        {
-            method = "directAMI";
-            break;
-        }
-        case imMapNearest:
-        {
-            method = "mapNearestAMI";
-            break;
-        }
-        case imFaceAreaWeight:
-        {
-            method = "faceAreaWeightAMI";
-            break;
-        }
-        case imPartialFaceAreaWeight:
-        {
-            method = "partialFaceAreaWeightAMI";
-            break;
-        }
-        default:
-        {
-            FatalErrorInFunction
-                << "Unhandled interpolationMethod enumeration " << method
-                << abort(FatalError);
-        }
-    }
-
-    return method;
+    return interpolationMethodNames_[im];
 }
 
 
@@ -81,41 +63,7 @@ Foam::AMIInterpolation<SourcePatch, TargetPatch>::wordTointerpolationMethod
     const word& im
 )
 {
-    interpolationMethod method = imDirect;
-
-    const wordList methods
-    {
-        "directAMI",
-        "mapNearestAMI",
-        "faceAreaWeightAMI",
-        "partialFaceAreaWeightAMI"
-    };
-
-    if (im == "directAMI")
-    {
-        method = imDirect;
-    }
-    else if (im == "mapNearestAMI")
-    {
-        method = imMapNearest;
-    }
-    else if (im == "faceAreaWeightAMI")
-    {
-        method = imFaceAreaWeight;
-    }
-    else if (im == "partialFaceAreaWeightAMI")
-    {
-        method = imPartialFaceAreaWeight;
-    }
-    else
-    {
-        FatalErrorInFunction
-            << "Invalid interpolationMethod " << im
-            << ".  Valid methods are:" << methods
-            << exit(FatalError);
-    }
-
-    return method;
+    return interpolationMethodNames_[im];
 }
 
 
@@ -910,11 +858,8 @@ void Foam::AMIInterpolation<SourcePatch, TargetPatch>::update
 
     if (srcTotalSize == 0)
     {
-        if (debug)
-        {
-            Info<< "AMI: no source faces present - no addressing constructed"
-                << endl;
-        }
+        DebugInfo<< "AMI: no source faces present - no addressing constructed"
+            << endl;
 
         return;
     }
diff --git a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.H b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.H
index 866ed29aac55dfeb7dc3410e3a1510a60b3fad02..f455885421b3ede7792049a59ff23edc1e6b1e7e 100644
--- a/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.H
+++ b/src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.H
@@ -57,6 +57,7 @@ SourceFiles
 #include "faceAreaIntersect.H"
 #include "globalIndex.H"
 #include "ops.H"
+#include "Enum.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -92,6 +93,8 @@ public:
             imPartialFaceAreaWeight
         };
 
+        static const Enum<interpolationMethod> interpolationMethodNames_;
+
         //- Convert interpolationMethod to word representation
         static word interpolationMethodToWord
         (