diff --git a/applications/test/fieldTypes/Make/files b/applications/test/fieldTypes/Make/files
new file mode 100644
index 0000000000..03262d28e4
--- /dev/null
+++ b/applications/test/fieldTypes/Make/files
@@ -0,0 +1,3 @@
+Test-fieldTypes.C
+
+EXE = $(FOAM_USER_APPBIN)/Test-fieldTypes
diff --git a/applications/test/fieldTypes/Make/options b/applications/test/fieldTypes/Make/options
new file mode 100644
index 0000000000..3a7088aeea
--- /dev/null
+++ b/applications/test/fieldTypes/Make/options
@@ -0,0 +1,9 @@
+EXE_INC = \
+ -I$(LIB_SRC)/finiteArea/lnInclude \
+ -I${LIB_SRC}/finiteVolume/lnInclude \
+ -I${LIB_SRC}/meshTools/lnInclude \
+
+EXE_LIBS = \
+ -lfiniteArea \
+ -lfiniteVolume \
+ -lmeshTools
diff --git a/applications/test/fieldTypes/Test-fieldTypes.C b/applications/test/fieldTypes/Test-fieldTypes.C
new file mode 100644
index 0000000000..f46f936c56
--- /dev/null
+++ b/applications/test/fieldTypes/Test-fieldTypes.C
@@ -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 .
+
+Application
+ Test-fieldTypes
+
+Description
+ Print fieldTypes
+
+\*---------------------------------------------------------------------------*/
+
+#include "fvCFD.H"
+#include "argList.H"
+#include "IOobject.H"
+#include "IOstreams.H"
+
+#include "areaFields.H"
+#include "fieldTypes.H"
+#include "pointFields.H"
+#include "volFields.H"
+
+using namespace Foam;
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// Main program:
+
+int main(int argc, char *argv[])
+{
+ argList::noParallel();
+
+ Info<< "basic: " << flatOutput(fieldTypes::basic) << nl
+ << "area: " << flatOutput(fieldTypes::area) << nl
+ << "volume: " << flatOutput(fieldTypes::volume) << nl
+ << "internal: " << flatOutput(fieldTypes::internal) << nl
+ << "point: " << flatOutput(fieldTypes::point) << nl
+ << endl;
+
+ Info<< "\nEnd\n" << endl;
+ return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/fields/Fields/fieldTypes.C b/src/OpenFOAM/fields/Fields/fieldTypes.C
index 9c1a8a5546..207aff1af0 100644
--- a/src/OpenFOAM/fields/Fields/fieldTypes.C
+++ b/src/OpenFOAM/fields/Fields/fieldTypes.C
@@ -24,23 +24,19 @@ License
\*---------------------------------------------------------------------------*/
#include "fieldTypes.H"
-#include "labelIOField.H"
-#include "scalarIOField.H"
-#include "vectorIOField.H"
-#include "sphericalTensorIOField.H"
-#include "symmTensorIOField.H"
-#include "tensorIOField.H"
// * * * * * * * * * * * * * * * * Global Data * * * * * * * * * * * * * * * //
+// Note hard-coded values are more reliable than other alternatives
+
const Foam::wordList Foam::fieldTypes::basic
({
- Foam::labelIOField::typeName_(),
- Foam::scalarIOField::typeName_(),
- Foam::vectorIOField::typeName_(),
- Foam::sphericalTensorIOField::typeName_(),
- Foam::symmTensorIOField::typeName_(),
- Foam::tensorIOField::typeName_()
+ "labelField", //< labelIOField
+ "scalarField", //< scalarIOField
+ "vectorField", //< vectorOField
+ "sphericalTensorField", //< sphericalTensorIOField
+ "symmTensorField", //< symmTensorIOField
+ "tensorField" //< tensorIOField
});
diff --git a/src/OpenFOAM/fields/GeometricFields/pointFields/pointFields.C b/src/OpenFOAM/fields/GeometricFields/pointFields/pointFields.C
index c115a066fc..16e0dabef5 100644
--- a/src/OpenFOAM/fields/GeometricFields/pointFields/pointFields.C
+++ b/src/OpenFOAM/fields/GeometricFields/pointFields/pointFields.C
@@ -56,13 +56,15 @@ namespace Foam
// * * * * * * * * * * * * * * * * Global Data * * * * * * * * * * * * * * * //
+// Note hard-coded values are more reliable than other alternatives
+
const Foam::wordList Foam::fieldTypes::point
({
- Foam::pointScalarField::typeName_(),
- Foam::pointVectorField::typeName_(),
- Foam::pointSphericalTensorField::typeName_(),
- Foam::pointSymmTensorField::typeName_(),
- Foam::pointTensorField::typeName_()
+ "pointScalarField",
+ "pointVectorField",
+ "pointSphericalTensorField",
+ "pointSymmTensorField",
+ "pointTensorField"
});
diff --git a/src/finiteArea/fields/areaFields/areaFields.C b/src/finiteArea/fields/areaFields/areaFields.C
index 2090d7bb46..4f4705c2d2 100644
--- a/src/finiteArea/fields/areaFields/areaFields.C
+++ b/src/finiteArea/fields/areaFields/areaFields.C
@@ -79,13 +79,15 @@ void GeometricField::replace
// * * * * * * * * * * * * * * * * Global Data * * * * * * * * * * * * * * * //
+// Note hard-coded values are more reliable than other alternatives
+
const Foam::wordList Foam::fieldTypes::area
({
- Foam::areaScalarField::typeName_(),
- Foam::areaVectorField::typeName_(),
- Foam::areaSphericalTensorField::typeName_(),
- Foam::areaSymmTensorField::typeName_(),
- Foam::areaTensorField::typeName_()
+ "areaScalarField",
+ "areaVectorField",
+ "areaSphericalTensorField",
+ "areaSymmTensorField",
+ "areaTensorField"
});
diff --git a/src/finiteVolume/fields/volFields/volFields.C b/src/finiteVolume/fields/volFields/volFields.C
index 30b1de4c45..3ee98c4de7 100644
--- a/src/finiteVolume/fields/volFields/volFields.C
+++ b/src/finiteVolume/fields/volFields/volFields.C
@@ -85,23 +85,25 @@ void GeometricField::replace
// * * * * * * * * * * * * * * * * Global Data * * * * * * * * * * * * * * * //
+// Note hard-coded values are more reliable than other alternatives
+
const Foam::wordList Foam::fieldTypes::internal
({
- Foam::volScalarField::Internal::typeName_(),
- Foam::volVectorField::Internal::typeName_(),
- Foam::volSphericalTensorField::Internal::typeName_(),
- Foam::volSymmTensorField::Internal::typeName_(),
- Foam::volTensorField::Internal::typeName_()
+ "volScalarField::Internal",
+ "volVectorField::Internal",
+ "volSphericalTensorField::Internal",
+ "volSymmTensorField::Internal",
+ "volTensorField::Internal"
});
const Foam::wordList Foam::fieldTypes::volume
({
- Foam::volScalarField::typeName_(),
- Foam::volVectorField::typeName_(),
- Foam::volSphericalTensorField::typeName_(),
- Foam::volSymmTensorField::typeName_(),
- Foam::volTensorField::typeName_()
+ "volScalarField",
+ "volVectorField",
+ "volSphericalTensorField",
+ "volSymmTensorField",
+ "volTensorField"
});