diff --git a/src/meshTools/Make/files b/src/meshTools/Make/files
index 1beec64e85..d9a73c1254 100644
--- a/src/meshTools/Make/files
+++ b/src/meshTools/Make/files
@@ -76,6 +76,7 @@ meshSearch/meshSearch.C
meshSearch/meshSearchFACE_CENTRE_TRISMeshObject.C
meshSearch/meshSearchMeshObject.C
+fields/polyFields.C
meshTools/meshTools.C
algorithms = algorithms
diff --git a/src/meshTools/fields/polyFields.C b/src/meshTools/fields/polyFields.C
new file mode 100644
index 0000000000..06ed0dce52
--- /dev/null
+++ b/src/meshTools/fields/polyFields.C
@@ -0,0 +1,71 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "polyFields.H"
+
+namespace Foam
+{
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+// Naming to shadow volScalarField::Internal etc.
+// keep synchronized with finiteVolume volFields.C
+
+template<>
+const word DimensionedField::typeName
+(
+ "volScalarField::Internal"
+);
+
+template<>
+const word DimensionedField::typeName
+(
+ "volVectorField::Internal"
+);
+
+template<>
+const word DimensionedField::typeName
+(
+ "volSphericalTensorField::Internal"
+);
+
+template<>
+const word DimensionedField::typeName
+(
+ "volSymmTensorField::Internal"
+);
+
+template<>
+const word DimensionedField::typeName
+(
+ "volTensorField::Internal"
+);
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/meshTools/fields/polyFields.H b/src/meshTools/fields/polyFields.H
new file mode 100644
index 0000000000..0222a075a0
--- /dev/null
+++ b/src/meshTools/fields/polyFields.H
@@ -0,0 +1,63 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+InClass
+ Foam::polyFields
+
+Description
+ A polyMesh-based naming and storage for internal volume fields when a
+ Foam::fvMesh is unavailable. Use sparingly.
+
+SourceFields
+ polyFields.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef polyFields_H
+#define polyFields_H
+
+#include "DimensionedField.H"
+#include "polyGeoMesh.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+typedef DimensionedField polyScalarField;
+typedef DimensionedField polyVectorField;
+typedef DimensionedField polySphericalTensorField;
+typedef DimensionedField polySymmTensorField;
+typedef DimensionedField polyTensorField;
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/meshTools/fields/polyGeoMesh.H b/src/meshTools/fields/polyGeoMesh.H
new file mode 100644
index 0000000000..57596d873c
--- /dev/null
+++ b/src/meshTools/fields/polyGeoMesh.H
@@ -0,0 +1,86 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::polyGeoMesh
+
+Description
+ The polyMesh GeoMesh for holding internal fields without an fvMesh.
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef polyGeoMesh_H
+#define polyGeoMesh_H
+
+#include "GeoMesh.H"
+#include "polyMesh.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Class polyGeoMesh Declaration
+\*---------------------------------------------------------------------------*/
+
+class polyGeoMesh
+:
+ public GeoMesh
+{
+public:
+
+ // Constructors
+
+ //- Construct from polyMesh reference
+ explicit polyGeoMesh(const polyMesh& mesh)
+ :
+ GeoMesh(mesh)
+ {}
+
+
+ // Member Functions
+
+ //- Return size
+ static label size(const polyMesh& mesh)
+ {
+ return mesh.nCells();
+ }
+
+ //- Return size
+ label size() const
+ {
+ return size(mesh_);
+ }
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //