diff --git a/applications/test/FixedList/Test-FixedList.C b/applications/test/FixedList/Test-FixedList.C
index 9fd0fde37a..b057b43f27 100644
--- a/applications/test/FixedList/Test-FixedList.C
+++ b/applications/test/FixedList/Test-FixedList.C
@@ -34,8 +34,7 @@ See also
#include "argList.H"
#include "FixedList.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "IPstream.H"
#include "OPstream.H"
diff --git a/applications/test/argList/Make/files b/applications/test/argList/Make/files
new file mode 100644
index 0000000000..f1d558cc1c
--- /dev/null
+++ b/applications/test/argList/Make/files
@@ -0,0 +1,3 @@
+Test-argList.C
+
+EXE = $(FOAM_USER_APPBIN)/Test-argList
diff --git a/applications/test/argList/Make/options b/applications/test/argList/Make/options
new file mode 100644
index 0000000000..6a9e9810b3
--- /dev/null
+++ b/applications/test/argList/Make/options
@@ -0,0 +1,2 @@
+/* EXE_INC = -I$(LIB_SRC)/cfdTools/include */
+/* EXE_LIBS = -lfiniteVolume */
diff --git a/applications/test/argList/Test-argList.C b/applications/test/argList/Test-argList.C
new file mode 100644
index 0000000000..50763f15af
--- /dev/null
+++ b/applications/test/argList/Test-argList.C
@@ -0,0 +1,80 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2017 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 .
+
+Description
+
+\*---------------------------------------------------------------------------*/
+
+#include "argList.H"
+#include "IOstreams.H"
+#include "StringStream.H"
+
+using namespace Foam;
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// Main program:
+
+int main(int argc, char *argv[])
+{
+ argList::noBanner();
+ argList::noParallel();
+ argList::noFunctionObjects();
+ argList::removeOption("case");
+
+ argList::addOption("label", "value", "Test parsing of label");
+ argList::addOption("scalar", "value", "Test parsing of scalar");
+
+ argList args(argc, argv);
+
+ label ival;
+ scalar sval;
+
+ Info<< nl;
+
+ Info<< "-label = " << flush;
+ if (args.optionReadIfPresent("label", ival))
+ {
+ Info<< ival << endl;
+ }
+ else
+ {
+ Info<< "not specified" << endl;
+ }
+
+ Info<< "-scalar = " << flush;
+ if (args.optionReadIfPresent("scalar", sval))
+ {
+ Info<< sval << endl;
+ }
+ else
+ {
+ Info<< "not specified" << endl;
+ }
+
+ Info<< "\nEnd\n" << endl;
+
+ return 0;
+}
+
+
+// ************************************************************************* //
diff --git a/applications/test/primitivePatch/Test-PrimitivePatch.C b/applications/test/primitivePatch/Test-PrimitivePatch.C
index 97b3c0cc93..9fa8e4709b 100644
--- a/applications/test/primitivePatch/Test-PrimitivePatch.C
+++ b/applications/test/primitivePatch/Test-PrimitivePatch.C
@@ -31,8 +31,7 @@ Description
#include "Time.H"
#include "polyMesh.H"
#include "primitivePatch.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
using namespace Foam;
diff --git a/applications/test/primitives/Make/files b/applications/test/primitives/Make/files
new file mode 100644
index 0000000000..44e878cb04
--- /dev/null
+++ b/applications/test/primitives/Make/files
@@ -0,0 +1,3 @@
+Test-primitives.C
+
+EXE = $(FOAM_USER_APPBIN)/Test-primitives
diff --git a/applications/test/primitives/Make/options b/applications/test/primitives/Make/options
new file mode 100644
index 0000000000..7ce182425d
--- /dev/null
+++ b/applications/test/primitives/Make/options
@@ -0,0 +1,5 @@
+EXE_INC = \
+ -I$(LIB_SRC)/fileFormats/lnInclude
+
+EXE_LIBS = \
+ -lfileFormats
diff --git a/applications/test/primitives/Test-primitives.C b/applications/test/primitives/Test-primitives.C
new file mode 100644
index 0000000000..72017bfee9
--- /dev/null
+++ b/applications/test/primitives/Test-primitives.C
@@ -0,0 +1,198 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2017 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-primitives
+
+Description
+ Parsing etc for primitives.
+
+\*---------------------------------------------------------------------------*/
+
+#include "scalar.H"
+#include "label.H"
+#include "StringStream.H"
+#include "NASCore.H"
+#include "parsing.H"
+#include "Tuple2.H"
+
+using namespace Foam;
+
+// Shadow fileFormats::NASCore::readNasScalar
+inline scalar readNasScalar(const std::string& str)
+{
+ return fileFormats::NASCore::readNasScalar(str);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+template
+unsigned testParsing
+(
+ TYPE (*function)(const std::string&),
+ const List>& tests
+)
+{
+ unsigned nFail = 0;
+
+ // Expect some failures
+ const bool prev = FatalIOError.throwExceptions();
+
+ for (const Tuple2& test : tests)
+ {
+ const std::string& str = test.first();
+ const bool expected = test.second();
+
+ bool parsed = true;
+
+ TYPE val;
+ try
+ {
+ val = function (str);
+ }
+ catch (Foam::error& err)
+ {
+ parsed = false;
+ }
+
+ if (parsed)
+ {
+ if (expected)
+ {
+ Info<< "(pass) parsed " << str << " = " << val << nl;
+ }
+ else
+ {
+ ++nFail;
+ Info<< "(fail) unexpected success for " << str << nl;
+ }
+ }
+ else
+ {
+ if (expected)
+ {
+ ++nFail;
+ Info<< "(fail) unexpected failure " << str << nl;
+ }
+ else
+ {
+ Info<< "(pass) expected failure " << str << nl;
+ }
+ }
+ }
+
+ FatalIOError.throwExceptions(prev);
+
+ return nFail;
+}
+
+
+int main(int argc, char *argv[])
+{
+ unsigned nFail = 0;
+
+ {
+ Info<< nl << "Test readDouble:" << nl;
+ nFail += testParsing
+ (
+ &readDouble,
+ {
+ { "", false },
+ { " ", false },
+ { " xxx ", false },
+ { " 1234E-", false },
+ { " 1234E junk", false },
+ { " 3.14159 ", true },
+ { " 31.4159E-1 " , true },
+ }
+ );
+ }
+
+ {
+ Info<< nl << "Test readFloat:" << nl;
+ nFail += testParsing
+ (
+ &readFloat,
+ {
+ { " 3.14159 ", true },
+ { " 31.4159E-1 " , true },
+ { " 31.4159E200 " , false },
+ { " 31.4159E20 " , true },
+ }
+ );
+ }
+
+ {
+ Info<< nl << "Test readNasScalar:" << nl;
+ nFail += testParsing
+ (
+ &readNasScalar,
+ {
+ { " 3.14159 ", true },
+ { " 31.4159E-1 " , true },
+ { " 314.159-2 " , true },
+ { " 31.4159E200 " , true },
+ { " 31.4159E20 " , true },
+ }
+ );
+ }
+
+ {
+ Info<< nl << "Test readInt32 (max= " << INT32_MAX << "):" << nl;
+ nFail += testParsing
+ (
+ &readInt32,
+ {
+ { " 3.14159 ", false },
+ { " 31.4159E-1 " , false },
+ { "100" , true },
+ { " 2147483644" , true },
+ { " 2147483700 " , false },
+ }
+ );
+ }
+
+ {
+ Info<< nl << "Test readUint32 (max= " << INT32_MAX << "):" << nl;
+ nFail += testParsing
+ (
+ &readUint32,
+ {
+ { " 2147483644" , true },
+ { " 2147483700 " , true },
+ }
+ );
+ }
+
+ if (nFail)
+ {
+ Info<< nl << "failed " << nFail << " tests" << nl;
+ return 1;
+ }
+
+ Info<< nl << "passed all tests" << nl;
+ return 0;
+}
+
+// ************************************************************************* //
diff --git a/applications/test/rigidBodyDynamics/pendulumAndSpring/pendulumAndSpring.C b/applications/test/rigidBodyDynamics/pendulumAndSpring/pendulumAndSpring.C
index 94e151f69c..f222e9c2c1 100644
--- a/applications/test/rigidBodyDynamics/pendulumAndSpring/pendulumAndSpring.C
+++ b/applications/test/rigidBodyDynamics/pendulumAndSpring/pendulumAndSpring.C
@@ -35,8 +35,7 @@ Description
#include "joints.H"
#include "rigidBodyRestraint.H"
#include "rigidBodyModelState.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "constants.H"
using namespace Foam;
diff --git a/applications/test/rigidBodyDynamics/sphericalJoint/sphericalJoint.C b/applications/test/rigidBodyDynamics/sphericalJoint/sphericalJoint.C
index 91a59104ed..1ec432613b 100644
--- a/applications/test/rigidBodyDynamics/sphericalJoint/sphericalJoint.C
+++ b/applications/test/rigidBodyDynamics/sphericalJoint/sphericalJoint.C
@@ -35,8 +35,7 @@ Description
#include "joints.H"
#include "rigidBodyRestraint.H"
#include "rigidBodyModelState.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
using namespace Foam;
using namespace RBD;
diff --git a/applications/test/rigidBodyDynamics/spring/spring.C b/applications/test/rigidBodyDynamics/spring/spring.C
index 15e9034b30..bec262ec1b 100644
--- a/applications/test/rigidBodyDynamics/spring/spring.C
+++ b/applications/test/rigidBodyDynamics/spring/spring.C
@@ -35,8 +35,7 @@ Description
#include "joints.H"
#include "rigidBodyRestraint.H"
#include "rigidBodyModelState.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
using namespace Foam;
using namespace RBD;
diff --git a/applications/test/router/Test-processorRouter.C b/applications/test/router/Test-processorRouter.C
index 48fc4ab61b..4f47c80b63 100644
--- a/applications/test/router/Test-processorRouter.C
+++ b/applications/test/router/Test-processorRouter.C
@@ -28,8 +28,7 @@ Description
#include "argList.H"
#include "label.H"
#include "labelList.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "point.H"
#include "Time.H"
#include "fvMesh.H"
diff --git a/applications/utilities/mesh/advanced/refineHexMesh/refineHexMesh.C b/applications/utilities/mesh/advanced/refineHexMesh/refineHexMesh.C
index 3a6cdfe11a..613c0133b8 100644
--- a/applications/utilities/mesh/advanced/refineHexMesh/refineHexMesh.C
+++ b/applications/utilities/mesh/advanced/refineHexMesh/refineHexMesh.C
@@ -38,9 +38,8 @@ Description
#include "Time.H"
#include "hexRef8.H"
#include "cellSet.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "meshTools.H"
-#include "IFstream.H"
#include "polyTopoChange.H"
#include "mapPolyMesh.H"
#include "volMesh.H"
diff --git a/applications/utilities/mesh/conversion/datToFoam/datToFoam.C b/applications/utilities/mesh/conversion/datToFoam/datToFoam.C
index 7cc4fbffb8..e296171310 100644
--- a/applications/utilities/mesh/conversion/datToFoam/datToFoam.C
+++ b/applications/utilities/mesh/conversion/datToFoam/datToFoam.C
@@ -35,8 +35,7 @@ Description
#include "argList.H"
#include "Time.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "pointField.H"
#include "unitConversion.H"
diff --git a/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C b/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C
index 56653cc921..c88defe702 100644
--- a/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C
+++ b/applications/utilities/mesh/conversion/kivaToFoam/kivaToFoam.C
@@ -35,8 +35,7 @@ Description
#include "argList.H"
#include "Time.H"
#include "polyMesh.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "cellShape.H"
#include "cellModeller.H"
#include "preservePatchTypes.H"
diff --git a/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C b/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C
index e4b5e8b4e8..cc24941602 100644
--- a/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C
+++ b/applications/utilities/mesh/conversion/plot3dToFoam/plot3dToFoam.C
@@ -93,8 +93,8 @@ int main(int argc, char *argv[])
const scalar scaleFactor = args.optionLookupOrDefault("scale", 1.0);
- bool readBlank = !args.optionFound("noBlank");
- bool singleBlock = args.optionFound("singleBlock");
+ const bool readBlank = !args.optionFound("noBlank");
+ const bool singleBlock = args.optionFound("singleBlock");
scalar twoDThickness = -1;
if (args.optionReadIfPresent("2D", twoDThickness))
{
diff --git a/applications/utilities/mesh/manipulation/setSet/setSet.C b/applications/utilities/mesh/manipulation/setSet/setSet.C
index 3a7b554ee2..a290259e62 100644
--- a/applications/utilities/mesh/manipulation/setSet/setSet.C
+++ b/applications/utilities/mesh/manipulation/setSet/setSet.C
@@ -41,8 +41,7 @@ Description
#include "faceSet.H"
#include "pointSet.H"
#include "topoSetSource.H"
-#include "OFstream.H"
-#include "IFstream.H"
+#include "Fstream.H"
#include "demandDrivenData.H"
#include "foamVtkWriteCellSetFaces.H"
#include "foamVtkWriteFaceSet.H"
diff --git a/applications/utilities/miscellaneous/foamDictionary/foamDictionary.C b/applications/utilities/miscellaneous/foamDictionary/foamDictionary.C
index 6d6dca2c76..e4c3186261 100644
--- a/applications/utilities/miscellaneous/foamDictionary/foamDictionary.C
+++ b/applications/utilities/miscellaneous/foamDictionary/foamDictionary.C
@@ -114,8 +114,7 @@ Usage
#include "argList.H"
#include "profiling.H"
#include "Time.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "includeEntry.H"
using namespace Foam;
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index 004af363fb..b1d04b6d9b 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -275,6 +275,7 @@ int main(int argc, char *argv[])
#include "setRootCase.H"
+ bool region = args.optionFound("region");
bool allRegions = args.optionFound("allRegions");
bool writeCellDist = args.optionFound("cellDist");
bool copyZero = args.optionFound("copyZero");
@@ -392,7 +393,7 @@ int main(int argc, char *argv[])
Info<< "Using existing processor directories" << nl;
}
- if (args.optionFound("region"))
+ if (region || allRegions)
{
procDirsProblem = false;
forceOverwrite = false;
diff --git a/applications/utilities/parallelProcessing/redistributePar/Make/files b/applications/utilities/parallelProcessing/redistributePar/Make/files
index 1dfb53f307..3447baa3d8 100644
--- a/applications/utilities/parallelProcessing/redistributePar/Make/files
+++ b/applications/utilities/parallelProcessing/redistributePar/Make/files
@@ -1,3 +1,4 @@
+passivePositionParticleCloud.C
parLagrangianRedistributor.C
parFvFieldReconstructor.C
loadOrCreateMesh.C
diff --git a/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.C b/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.C
index 73cfda6582..e35562b695 100644
--- a/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.C
+++ b/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.C
@@ -25,7 +25,7 @@ License
#include "ListOps.H"
#include "parLagrangianRedistributor.H"
-#include "passiveParticleCloud.H"
+#include "passivePositionParticleCloud.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
@@ -133,7 +133,7 @@ void Foam::parLagrangianRedistributor::findClouds
Foam::autoPtr
Foam::parLagrangianRedistributor::redistributeLagrangianPositions
(
- passiveParticleCloud& lpi
+ passivePositionParticleCloud& lpi
) const
{
//Debug(lpi.size());
@@ -147,7 +147,7 @@ Foam::parLagrangianRedistributor::redistributeLagrangianPositions
{
// List of lists of particles to be transferred for all of the
// neighbour processors
- List> particleTransferLists
+ List> particleTransferLists
(
Pstream::nProcs()
);
@@ -156,17 +156,15 @@ Foam::parLagrangianRedistributor::redistributeLagrangianPositions
labelList destProc(lpi.size());
label particleI = 0;
- forAllIter(passiveParticleCloud, lpi, iter)
+ forAllIter(passivePositionParticleCloud, lpi, iter)
{
- passiveParticle& ppi = iter();
+ passivePositionParticle& ppi = iter();
label destProcI = destinationProcID_[ppi.cell()];
label destCellI = destinationCell_[ppi.cell()];
ppi.cell() = destCellI;
destProc[particleI++] = destProcI;
- //Pout<< "Sending particle:" << ppi << " to processor " << destProcI
- // << " to cell " << destCellI << endl;
particleTransferLists[destProcI].append(lpi.remove(&ppi));
}
@@ -202,11 +200,11 @@ Foam::parLagrangianRedistributor::redistributeLagrangianPositions
lpi.rename(cloudName + "_old");
// New cloud on tgtMesh
- passiveParticleCloud lagrangianPositions
+ passivePositionParticleCloud lagrangianPositions
(
tgtMesh_,
cloudName,
- IDLList()
+ IDLList()
);
@@ -222,32 +220,28 @@ Foam::parLagrangianRedistributor::redistributeLagrangianPositions
{
UIPstream particleStream(procI, pBufs);
- IDLList newParticles
+ // Receive particles and locate them
+ IDLList newParticles
(
particleStream,
- passiveParticle::iNew(tgtMesh_)
+ passivePositionParticle::iNew(tgtMesh_)
);
forAllIter
(
- IDLList,
+ IDLList,
newParticles,
newpIter
)
{
- passiveParticle& newp = newpIter();
- newp.relocate();
-
+ passivePositionParticle& newp = newpIter();
lagrangianPositions.addParticle(newParticles.remove(&newp));
}
}
}
- //OFstream::debug = 1;
- //Debug(lagrangianPositions.size());
- IOPosition(lagrangianPositions).write();
- //OFstream::debug = 0;
+ IOPosition(lagrangianPositions).write();
// Restore cloud name
lpi.rename(cloudName);
@@ -300,7 +294,7 @@ Foam::parLagrangianRedistributor::redistributeLagrangianPositions
) const
{
// Load cloud and send particle
- passiveParticleCloud lpi(srcMesh_, cloudName, false);
+ passivePositionParticleCloud lpi(srcMesh_, cloudName, false);
return redistributeLagrangianPositions(lpi);
}
diff --git a/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.H b/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.H
index 411864ebf1..f7d1c226cb 100644
--- a/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.H
+++ b/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributor.H
@@ -49,7 +49,7 @@ namespace Foam
class mapDistributePolyMesh;
class mapDistributeBase;
class IOobjectList;
-class passiveParticleCloud;
+class passivePositionParticleCloud;
/*---------------------------------------------------------------------------*\
Class parLagrangianRedistributor Declaration
@@ -112,7 +112,7 @@ public:
//- Redistribute and write lagrangian positions
autoPtr redistributeLagrangianPositions
(
- passiveParticleCloud& cloud
+ passivePositionParticleCloud& cloud
) const;
//- Read, redistribute and write lagrangian positions
@@ -153,7 +153,7 @@ public:
template
static void readLagrangianFields
(
- const passiveParticleCloud& cloud,
+ const passivePositionParticleCloud& cloud,
const IOobjectList& objects,
const HashSet& selectedFields
);
@@ -163,7 +163,7 @@ public:
void redistributeStoredLagrangianFields
(
const mapDistributeBase& map,
- passiveParticleCloud& cloud
+ passivePositionParticleCloud& cloud
) const;
};
diff --git a/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributorRedistributeFields.C b/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributorRedistributeFields.C
index 1eca70bd1e..c53514fc83 100644
--- a/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributorRedistributeFields.C
+++ b/applications/utilities/parallelProcessing/redistributePar/parLagrangianRedistributorRedistributeFields.C
@@ -29,7 +29,7 @@ License
#include "mapDistributePolyMesh.H"
#include "cloud.H"
#include "CompactIOField.H"
-#include "passiveParticleCloud.H"
+#include "passivePositionParticleCloud.H"
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
@@ -223,7 +223,7 @@ void Foam::parLagrangianRedistributor::redistributeLagrangianFieldFields
template
void Foam::parLagrangianRedistributor::readLagrangianFields
(
- const passiveParticleCloud& cloud,
+ const passivePositionParticleCloud& cloud,
const IOobjectList& objects,
const HashSet& selectedFields
)
@@ -272,7 +272,7 @@ template
void Foam::parLagrangianRedistributor::redistributeStoredLagrangianFields
(
const mapDistributeBase& map,
- passiveParticleCloud& cloud
+ passivePositionParticleCloud& cloud
) const
{
HashTable fields
diff --git a/applications/utilities/parallelProcessing/redistributePar/passivePositionParticle.H b/applications/utilities/parallelProcessing/redistributePar/passivePositionParticle.H
new file mode 100644
index 0000000000..41cc7c16ed
--- /dev/null
+++ b/applications/utilities/parallelProcessing/redistributePar/passivePositionParticle.H
@@ -0,0 +1,183 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2017 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::passivePositionParticle
+
+Description
+ Passive particle, transferring in old format (i.e. position instead of
+ coordinates). Used for e.g. redistributePar.
+
+SourceFiles
+ passivePositionParticle.H
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef passivePositionParticle_H
+#define passivePositionParticle_H
+
+#include "passiveParticle.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Class passivePositionParticle Declaration
+\*---------------------------------------------------------------------------*/
+
+class passivePositionParticle
+:
+ public passiveParticle
+{
+ // Private member data
+
+ //- Cached position
+ point position_;
+
+
+public:
+
+ // Constructors
+
+ //- Construct from Istream in old format
+ passivePositionParticle
+ (
+ const polyMesh& mesh,
+ Istream& is,
+ bool readFields,
+ bool newFormat
+ )
+ :
+ passiveParticle(mesh, is, readFields, newFormat),
+ position_(position())
+ {}
+
+ //- Construct as copy
+ passivePositionParticle(const passivePositionParticle& p)
+ :
+ passiveParticle(p),
+ position_(p.position_)
+ {}
+
+ //- Construct and return a clone
+ virtual autoPtr clone() const
+ {
+ return autoPtr(new passivePositionParticle(*this));
+ }
+
+
+ //- Factory class to read-construct particles used for
+ // parallel transfer
+ class iNew
+ {
+ const polyMesh& mesh_;
+
+ public:
+
+ iNew(const polyMesh& mesh)
+ :
+ mesh_(mesh)
+ {}
+
+ autoPtr operator()(Istream& is) const
+ {
+ return autoPtr
+ (
+ // Read in old format
+ new passivePositionParticle(mesh_, is, true, false)
+ );
+ }
+ };
+
+
+ // Friend Operators
+
+ friend Ostream& operator<<
+ (
+ Ostream& os,
+ const passivePositionParticle& ppi
+ )
+ {
+ // Copy data into old format structure. Exact opposite of
+ // particleIO.C reading old format.
+ struct oldParticle
+ {
+ vector position;
+ label celli;
+ label facei;
+ scalar stepFraction;
+ label tetFacei;
+ label tetPti;
+ label origProc;
+ label origId;
+ } p;
+
+ p.position = ppi.position_;
+ p.celli = ppi.cell();
+ p.facei = ppi.face();
+ p.stepFraction = ppi.stepFraction();
+ p.tetFacei = ppi.tetFace();
+ p.tetPti = ppi.tetPt();
+ p.origProc = ppi.origProc();
+ p.origId = ppi.origId();
+
+ if (os.format() == IOstream::ASCII)
+ {
+ os << p.position
+ << token::SPACE << p.celli
+ << token::SPACE << p.facei
+ << token::SPACE << p.stepFraction
+ << token::SPACE << p.tetFacei
+ << token::SPACE << p.tetPti
+ << token::SPACE << p.origProc
+ << token::SPACE << p.origId;
+ }
+ else
+ {
+ const std::size_t sizeofFields
+ (
+ sizeof(oldParticle) - offsetof(oldParticle, position)
+ );
+
+ os.write
+ (
+ reinterpret_cast(&p.position),
+ sizeofFields
+ );
+ }
+ return os;
+ }
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/parallelProcessing/redistributePar/passivePositionParticleCloud.C b/applications/utilities/parallelProcessing/redistributePar/passivePositionParticleCloud.C
new file mode 100644
index 0000000000..edd5c3916f
--- /dev/null
+++ b/applications/utilities/parallelProcessing/redistributePar/passivePositionParticleCloud.C
@@ -0,0 +1,64 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2017 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 "passivePositionParticleCloud.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ defineTemplateTypeNameAndDebug(Cloud, 0);
+}
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::passivePositionParticleCloud::passivePositionParticleCloud
+(
+ const polyMesh& mesh,
+ const word& cloudName,
+ bool readFields
+)
+:
+ Cloud(mesh, cloudName, false)
+{
+ if (readFields)
+ {
+ passivePositionParticle::readFields(*this);
+ }
+}
+
+
+Foam::passivePositionParticleCloud::passivePositionParticleCloud
+(
+ const polyMesh& mesh,
+ const word& cloudName,
+ const IDLList& particles
+)
+:
+ Cloud(mesh, cloudName, particles)
+{}
+
+
+// ************************************************************************* //
diff --git a/applications/utilities/parallelProcessing/redistributePar/passivePositionParticleCloud.H b/applications/utilities/parallelProcessing/redistributePar/passivePositionParticleCloud.H
new file mode 100644
index 0000000000..f9a91d0f42
--- /dev/null
+++ b/applications/utilities/parallelProcessing/redistributePar/passivePositionParticleCloud.H
@@ -0,0 +1,93 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2017 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::passivePositionParticleCloud
+
+Description
+ A Cloud of passive position particles
+
+SourceFiles
+ passivePositionParticleCloud.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef passivePositionParticleCloud_H
+#define passivePositionParticleCloud_H
+
+#include "Cloud.H"
+#include "passivePositionParticle.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Class passivePositionParticleCloud Declaration
+\*---------------------------------------------------------------------------*/
+
+class passivePositionParticleCloud
+:
+ public Cloud
+{
+ // Private Member Functions
+
+ //- Disallow default bitwise copy construct
+ passivePositionParticleCloud(const passivePositionParticleCloud&);
+
+ //- Disallow default bitwise assignment
+ void operator=(const passivePositionParticleCloud&);
+
+
+public:
+
+ // Constructors
+
+ //- Construct given mesh
+ passivePositionParticleCloud
+ (
+ const polyMesh&,
+ const word& cloudName = "defaultCloud",
+ bool readFields = true
+ );
+
+ //- Construct from mesh, cloud name, and a list of particles
+ passivePositionParticleCloud
+ (
+ const polyMesh& mesh,
+ const word& cloudName,
+ const IDLList& particles
+ );
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/applications/utilities/parallelProcessing/redistributePar/redistributePar.C b/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
index 798d91bf10..ca116ce38e 100644
--- a/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
+++ b/applications/utilities/parallelProcessing/redistributePar/redistributePar.C
@@ -80,7 +80,7 @@ Usage
#include "parFvFieldReconstructor.H"
#include "parLagrangianRedistributor.H"
-#include "unmappedPassiveParticleCloud.H"
+#include "unmappedPassivePositionParticleCloud.H"
#include "hexRef8Data.H"
#include "meshRefinement.H"
#include "pointFields.H"
@@ -1908,7 +1908,7 @@ void readLagrangian
const fvMesh& mesh,
const wordList& cloudNames,
const HashSet& selectedLagrangianFields,
- PtrList& clouds
+ PtrList& clouds
)
{
(void)mesh.tetBasePtIs();
@@ -1919,13 +1919,13 @@ void readLagrangian
clouds.set
(
i,
- new unmappedPassiveParticleCloud(mesh, cloudNames[i], false)
+ new unmappedPassivePositionParticleCloud(mesh, cloudNames[i], false)
);
//forAllConstIter
//(
- // unmappedPassiveParticleCloud,
+ // unmappedPassivePositionParticleCloud,
// clouds[i],
// iter
//)
@@ -2087,7 +2087,7 @@ void redistributeLagrangian
const fvMesh& mesh,
const label nOldCells,
const mapDistributePolyMesh& distMap,
- PtrList& clouds
+ PtrList& clouds
)
{
if (clouds.size())
@@ -2958,7 +2958,7 @@ int main(int argc, char *argv[])
);
// Read lagrangian fields and store on cloud (objectRegistry)
- PtrList clouds(cloudNames.size());
+ PtrList clouds(cloudNames.size());
readLagrangian
(
mesh,
diff --git a/applications/utilities/parallelProcessing/redistributePar/unmappedPassiveParticleCloud.H b/applications/utilities/parallelProcessing/redistributePar/unmappedPassivePositionParticleCloud.H
similarity index 77%
rename from applications/utilities/parallelProcessing/redistributePar/unmappedPassiveParticleCloud.H
rename to applications/utilities/parallelProcessing/redistributePar/unmappedPassivePositionParticleCloud.H
index c1b6d6a208..c036ac2114 100644
--- a/applications/utilities/parallelProcessing/redistributePar/unmappedPassiveParticleCloud.H
+++ b/applications/utilities/parallelProcessing/redistributePar/unmappedPassivePositionParticleCloud.H
@@ -22,21 +22,21 @@ License
along with OpenFOAM. If not, see .
Class
- Foam::unmappedPassiveParticleCloud
+ Foam::unmappedPassivePositionParticleCloud
Description
- passiveParticleCloud but with autoMap and writing disabled. Only used
- for its objectRegistry to store lagrangian fields
+ passivePositionParticleCloud but with autoMap and writing disabled.
+ Only used for its objectRegistry to store lagrangian fields
SourceFiles
- unmappedPassiveParticleCloud.C
+ unmappedPassivePositionParticleCloud.C
\*---------------------------------------------------------------------------*/
-#ifndef unmappedPassiveParticleCloud_H
-#define unmappedPassiveParticleCloud_H
+#ifndef unmappedPassivePositionParticleCloud_H
+#define unmappedPassivePositionParticleCloud_H
-#include "passiveParticleCloud.H"
+#include "passivePositionParticleCloud.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -47,9 +47,9 @@ namespace Foam
Class unmappedPassiveParticleCloud Declaration
\*---------------------------------------------------------------------------*/
-class unmappedPassiveParticleCloud
+class unmappedPassivePositionParticleCloud
:
- public passiveParticleCloud
+ public passivePositionParticleCloud
{
public:
@@ -57,29 +57,29 @@ public:
// Constructors
//- Construct given mesh
- unmappedPassiveParticleCloud
+ unmappedPassivePositionParticleCloud
(
const polyMesh& mesh,
const word& cloudName = "defaultCloud",
bool readFields = true
)
:
- passiveParticleCloud(mesh, cloudName, readFields)
+ passivePositionParticleCloud(mesh, cloudName, readFields)
{}
//- Construct from mesh, cloud name, and a list of particles
- unmappedPassiveParticleCloud
+ unmappedPassivePositionParticleCloud
(
const polyMesh& mesh,
const word& cloudName,
- const IDLList& particles
+ const IDLList& particles
)
:
- passiveParticleCloud(mesh, cloudName, particles)
+ passivePositionParticleCloud(mesh, cloudName, particles)
{}
//- Destructor
- virtual ~unmappedPassiveParticleCloud()
+ virtual ~unmappedPassivePositionParticleCloud()
{}
//- Switch off remapping of cells of particles when
@@ -98,7 +98,6 @@ public:
{
return true;
}
-
};
diff --git a/applications/utilities/surface/surfaceAdd/surfaceAdd.C b/applications/utilities/surface/surfaceAdd/surfaceAdd.C
index 0be9024ebd..fa964380d9 100644
--- a/applications/utilities/surface/surfaceAdd/surfaceAdd.C
+++ b/applications/utilities/surface/surfaceAdd/surfaceAdd.C
@@ -38,8 +38,7 @@ Description
#include "argList.H"
#include "fileName.H"
#include "triSurface.H"
-#include "OFstream.H"
-#include "IFstream.H"
+#include "Fstream.H"
#include "triFace.H"
#include "triFaceList.H"
diff --git a/applications/utilities/surface/surfaceSubset/surfaceSubset.C b/applications/utilities/surface/surfaceSubset/surfaceSubset.C
index 8a02cd9a1c..f97e840812 100644
--- a/applications/utilities/surface/surfaceSubset/surfaceSubset.C
+++ b/applications/utilities/surface/surfaceSubset/surfaceSubset.C
@@ -36,8 +36,7 @@ Description
#include "triSurface.H"
#include "triSurfaceSearch.H"
#include "argList.H"
-#include "OFstream.H"
-#include "IFstream.H"
+#include "Fstream.H"
#include "Switch.H"
#include "IOdictionary.H"
#include "boundBox.H"
diff --git a/applications/utilities/surface/surfaceTransformPoints/surfaceTransformPoints.C b/applications/utilities/surface/surfaceTransformPoints/surfaceTransformPoints.C
index 36ae2631c4..173bbf2e3a 100644
--- a/applications/utilities/surface/surfaceTransformPoints/surfaceTransformPoints.C
+++ b/applications/utilities/surface/surfaceTransformPoints/surfaceTransformPoints.C
@@ -41,8 +41,7 @@ Description
\*---------------------------------------------------------------------------*/
#include "argList.H"
-#include "OFstream.H"
-#include "IFstream.H"
+#include "Fstream.H"
#include "boundBox.H"
#include "transformField.H"
#include "Pair.H"
diff --git a/bin/paraFoam b/bin/paraFoam
index f0b583409b..01e47e3066 100755
--- a/bin/paraFoam
+++ b/bin/paraFoam
@@ -44,7 +44,7 @@ options:
-region specify alternative mesh region
-touch create the file (eg, .blockMesh, .OpenFOAM, .foam, ...)
-touch-all | -touchAll
- create .blockMesh, .OpenFOAM files (and for all regions)
+ create .blockMesh, .foam, .OpenFOAM files (for all regions)
-touch-proc same as '-touch' but for each processor
-vtk | -builtin use VTK builtin OpenFOAM reader (uses .foam extension)
-help print the usage
@@ -59,6 +59,21 @@ USAGE
exit 1
}
+# Report error and exit
+die()
+{
+ exec 1>&2
+ echo
+ echo "Error encountered:"
+ while [ "$#" -ge 1 ]; do echo " $1"; shift; done
+ echo
+ echo "See '${0##*/} -help' for usage"
+ echo
+ exit 1
+}
+
+#-------------------------------------------------------------------------------
+
# Do a nice exit to give paraview an opportunity to clean up
unset FOAM_ABORT
@@ -90,12 +105,12 @@ do
shift
;;
-case)
- [ "$#" -ge 2 ] || usage "'$1' option requires an argument"
- cd "$2" 2>/dev/null || usage "directory does not exist: '$2'"
+ [ "$#" -ge 2 ] || die "'$1' option requires an argument"
+ cd "$2" 2>/dev/null || die "directory does not exist: '$2'"
shift 2
;;
-region)
- [ "$#" -ge 2 ] || usage "'$1' option requires an argument"
+ [ "$#" -ge 2 ] || die "'$1' option requires an argument"
regionName=$2
shift 2
;;
@@ -127,7 +142,7 @@ do
break # Stop here, treat this and balance as paraview options
;;
*)
- usage "unknown option/argument: '$1'"
+ die "unknown option/argument: '$1'"
;;
esac
done
@@ -198,8 +213,8 @@ all)
touch "$caseName.blockMesh"
echo "Created '$caseName.blockMesh'" 1>&2
fi
- touch "$caseName.$extension"
- echo "Created '$caseName.$extension'" 1>&2
+ touch "$caseName.$extension" "$caseName.foam"
+ echo "Created '$caseName.$extension' '$caseName.foam'" 1>&2
# Discover probable regions
for region in constant/*
do
diff --git a/doc/Doxygen/Allwmake b/doc/Doxygen/Allwmake
index 726c5fbbe7..21d606a9ab 100755
--- a/doc/Doxygen/Allwmake
+++ b/doc/Doxygen/Allwmake
@@ -12,7 +12,7 @@ usage() {
while [ "$#" -ge 1 ]; do echo "$1"; shift; done
cat<&2
- exit 1
- }
shift
+ if [ -d "$1" ]
+ then
+ dirNames="$dirNames $1"
+ else
+ echo "Could not resolve input directory: $1" 1>&2
+ exit 1
+ fi
;;
-online)
defineURL
;;
+ -*)
+ usage "unknown option: '$1'"
+ ;;
+
+ *) # dirName
+ if [ -d "$1" ]
+ then
+ dirNames="$dirNames $1"
+ else
+ echo "Could not resolve input directory: $1" 1>&2
+ fi
+ ;;
*)
usage "unknown option/argument: '$1'"
;;
@@ -102,14 +119,12 @@ rm -rf html-stagedRemove$$ >/dev/null 2>&1 &
# Ensure that created files are readable by everyone
umask 22
-if [ -n "$dirName" ]
+if [ -n "$dirNames" ]
then
- # Create a temporary with only the specified directory
- tmpConfig="${TMPDIR:-/tmp}/Doxyfile.$$"
- trap 'rm -f $tmpConfig 2>/dev/null; exit 0' EXIT TERM INT
- cat $PWD/Doxyfile > $tmpConfig
- echo "INPUT = $dirName" >> $tmpConfig
- doxygen $tmpConfig
+ (
+ cat ${configName:-Doxyfile}
+ echo "INPUT = $dirNames"
+ ) | doxygen -
else
doxygen $configName
fi
diff --git a/etc/config.sh/completion_cache b/etc/config.sh/completion_cache
index 0456a7e824..965a53f8da 100644
--- a/etc/config.sh/completion_cache
+++ b/etc/config.sh/completion_cache
@@ -11,248 +11,249 @@ declare -gA _of_complete_cache_;
_of_complete_cache_=()
#------------------------------------------------------------------------------
-_of_complete_cache_[adiabaticFlameT]="-case | -srcDoc -doc -help"
-_of_complete_cache_[adjointShapeOptimizationFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[ansysToFoam]="-case -scale | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[applyBoundaryLayer]="-case -decomposeParDict -region -roots -ybl | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[attachMesh]="-case | -noFunctionObjects -overwrite -srcDoc -doc -help"
-_of_complete_cache_[autoPatch]="-case | -noFunctionObjects -overwrite -srcDoc -doc -help"
-_of_complete_cache_[blockMesh]="-case -dict -region | -blockTopology -noClean -noFunctionObjects -sets -srcDoc -doc -help"
-_of_complete_cache_[boundaryFoam]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[boxTurb]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[buoyantBoussinesqPimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[buoyantBoussinesqSimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[buoyantPimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[buoyantSimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[cavitatingDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[cavitatingFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[cfx4ToFoam]="-case -scale | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[changeDictionary]="-case -decomposeParDict -dict -instance -region -roots -subDict -time | -constant -disablePatchGroups -enableFunctionEntries -latestTime -literalRE -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[checkMesh]="-case -decomposeParDict -region -roots -time -writeFields -writeSets | -allGeometry -allTopology -constant -latestTime -meshQuality -newTimes -noFunctionObjects -noTopology -noZero -parallel -writeAllFields -srcDoc -doc -help"
-_of_complete_cache_[chemFoam]="-case | -noFunctionObjects -postProcess -srcDoc -doc -help"
-_of_complete_cache_[chemkinToFoam]="-case | -newFormat -srcDoc -doc -help"
-_of_complete_cache_[chtMultiRegionFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[chtMultiRegionSimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[coalChemistryFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[coldEngineFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[collapseEdges]="-case -collapseFaceSet -decomposeParDict -dict -roots -time | -collapseFaces -constant -latestTime -newTimes -noFunctionObjects -noZero -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[combinePatchFaces]="-case -concaveAngle -decomposeParDict -roots | -meshQuality -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[compressibleInterDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[compressibleInterFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[compressibleMultiphaseInterFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[createBaffles]="-case -decomposeParDict -dict -region -roots | -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[createExternalCoupledPatchGeometry]="-case -commsDir -decomposeParDict -region -regions -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[createPatch]="-case -decomposeParDict -dict -region -roots | -noFunctionObjects -overwrite -parallel -writeObj -srcDoc -doc -help"
-_of_complete_cache_[createZeroDirectory]="-case -decomposeParDict -roots -templateDir | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[datToFoam]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[decomposePar]="-case -decomposeParDict -region -time | -allRegions -cellDist -constant -copyUniform -copyZero -fields -force -ifRequired -latestTime -newTimes -noFunctionObjects -noSets -noZero -srcDoc -doc -help"
-_of_complete_cache_[deformedGeom]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[dnsFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[DPMDyMFoam]="-case -cloudName -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[DPMFoam]="-case -cloud -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[driftFluxFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[dsmcFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[dsmcInitialise]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[electrostaticFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[engineCompRatio]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[engineFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[engineSwirl]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[equilibriumCO]="-case | -srcDoc -doc -help"
-_of_complete_cache_[equilibriumFlameT]="-case | -srcDoc -doc -help"
-_of_complete_cache_[extrude2DMesh]="-case -decomposeParDict -roots | -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[extrudeMesh]="-case -decomposeParDict -region -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[extrudeToRegionMesh]="-case -decomposeParDict -dict -region -roots | -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[faceAgglomerate]="-case -decomposeParDict -dict -region -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[financialFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[fireFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[fireToFoam]="-case -scale | -ascii -check -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[flattenMesh]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[fluent3DMeshToFoam]="-case -ignoreCellGroups -ignoreFaceGroups -scale | -cubit -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[fluentMeshToFoam]="-case -scale | -noFunctionObjects -writeSets -writeZones -srcDoc -doc -help"
-_of_complete_cache_[foamDataToFluent]="-case -time | -latestTime -newTimes -noFunctionObjects -noZero -srcDoc -doc -help"
-_of_complete_cache_[foamDictionary]="-add -case -decomposeParDict -diff -entry -roots -set | -disableFunctionEntries -expand -includes -keywords -noFunctionObjects -parallel -remove -value -srcDoc -doc -help"
-_of_complete_cache_[foamFormatConvert]="-case -decomposeParDict -region -roots -time | -constant -enableFunctionEntries -latestTime -newTimes -noConstant -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[foamHelp]="-case -decomposeParDict -region -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[foamList]="-case -scalarBCs -vectorBCs | -compressibleTurbulenceModels -functionObjects -fvOptions -incompressibleTurbulenceModels -noFunctionObjects -registeredSwitches -switches -unset -srcDoc -doc -help"
-_of_complete_cache_[foamListTimes]="-case -time | -constant -latestTime -newTimes -noFunctionObjects -noZero -processor -rm -withZero -srcDoc -doc -help"
-_of_complete_cache_[foamMeshToFluent]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[foamToEnsight]="-case -cellZone -decomposeParDict -faceZones -fields -name -patches -region -roots -time -width | -ascii -constant -latestTime -newTimes -noFunctionObjects -noLagrangian -noPatches -noZero -nodeValues -parallel -srcDoc -doc -help"
-_of_complete_cache_[foamToEnsightParts]="-case -index -name -time -width | -ascii -constant -latestTime -newTimes -noFunctionObjects -noLagrangian -noMesh -noZero -srcDoc -doc -help"
-_of_complete_cache_[foamToFireMesh]="-case -scale -time | -ascii -constant -latestTime -newTimes -noFunctionObjects -noZero -srcDoc -doc -help"
-_of_complete_cache_[foamToGMV]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[foamToStarMesh]="-case -scale -time | -constant -latestTime -newTimes -noBnd -noFunctionObjects -noZero -srcDoc -doc -help"
-_of_complete_cache_[foamToSurface]="-case -scale -time | -constant -latestTime -newTimes -noFunctionObjects -noZero -tri -srcDoc -doc -help"
-_of_complete_cache_[foamToTecplot360]="-case -cellSet -decomposeParDict -excludePatches -faceSet -fields -region -roots -time | -constant -latestTime -nearCellValue -newTimes -noFaceZones -noFunctionObjects -noInternal -noPointValues -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[foamToTetDualMesh]="-case -decomposeParDict -roots -time | -constant -latestTime -noFunctionObjects -noZero -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[foamToVTK]="-case -cellSet -decomposeParDict -excludePatches -faceSet -fields -name -pointSet -region -roots -time | -allPatches -ascii -constant -latestTime -nearCellValue -newTimes -noFaceZones -noFunctionObjects -noInternal -noLagrangian -noLinks -noPointValues -noZero -parallel -poly -surfaceFields -useTimeName -xml -srcDoc -doc -help"
-_of_complete_cache_[foamUpgradeCyclics]="-case -decomposeParDict -region -roots -time | -constant -enableFunctionEntries -latestTime -newTimes -noFunctionObjects -noZero -parallel -test -srcDoc -doc -help"
-_of_complete_cache_[foamyHexMesh]="-case -decomposeParDict -roots | -checkGeometry -conformationOnly -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[foamyQuadMesh]="-case -pointsFile | -noFunctionObjects -overwrite -srcDoc -doc -help"
-_of_complete_cache_[gambitToFoam]="-case -scale | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[gmshToFoam]="-case -region | -keepOrientation -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[icoFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[icoUncoupledKinematicParcelDyMFoam]="-case -cloud -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[icoUncoupledKinematicParcelFoam]="-case -cloud -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[ideasUnvToFoam]="-case | -dump -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[insideCells]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[interCondensatingEvaporatingFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[interDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[interFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[interIsoFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[interMixingFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[interPhaseChangeDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[interPhaseChangeFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[kivaToFoam]="-case -file -version -zHeadMin | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[laplacianFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[lumpedPointForces]="-case -decomposeParDict -region -roots -time | -constant -latestTime -newTimes -noZero -parallel -vtk -srcDoc -doc -help"
-_of_complete_cache_[lumpedPointMovement]="-case -max -scale -span | -removeLock -slave -srcDoc -doc -help"
-_of_complete_cache_[lumpedPointZones]="-case -region | -verbose -srcDoc -doc -help"
-_of_complete_cache_[magneticFoam]="-case -decomposeParDict -roots | -noB -noFunctionObjects -noH -parallel -srcDoc -doc -help"
-_of_complete_cache_[mapFields]="-case -mapMethod -sourceDecomposeParDict -sourceRegion -sourceTime -targetDecomposeParDict -targetRegion | -consistent -noFunctionObjects -parallelSource -parallelTarget -subtract -srcDoc -doc -help"
-_of_complete_cache_[mapFieldsPar]="-case -decomposeParDict -fields -mapMethod -patchMapMethod -roots -sourceRegion -sourceTime -targetRegion | -consistent -noFunctionObjects -noLagrangian -parallel -subtract -srcDoc -doc -help"
-_of_complete_cache_[mdEquilibrationFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[mdFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[mdInitialise]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[mergeMeshes]="-addRegion -case -decomposeParDict -masterRegion -roots | -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[mergeOrSplitBaffles]="-case -decomposeParDict -dict -region -roots | -detectOnly -noFunctionObjects -overwrite -parallel -split -srcDoc -doc -help"
-_of_complete_cache_[mhdFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[mirrorMesh]="-case -decomposeParDict -roots | -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[mixtureAdiabaticFlameT]="-case | -srcDoc -doc -help"
-_of_complete_cache_[modifyMesh]="-case -decomposeParDict -roots | -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[moveDynamicMesh]="-case -decomposeParDict -region -roots | -checkAMI -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[moveEngineMesh]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[moveMesh]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[MPPICDyMFoam]="-case -cloudName -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[MPPICFoam]="-case -cloud -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[MPPICInterFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[mshToFoam]="-case | -hex -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[multiphaseEulerFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[multiphaseInterDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[multiphaseInterFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[netgenNeutralToFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[noise]="-case -decomposeParDict -dict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[nonNewtonianIcoFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[objToVTK]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[orientFaceZone]="-case -decomposeParDict -region -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[overInterDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[overLaplacianDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[overPimpleDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[overRhoPimpleDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[overSimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[particleTracks]="-case -decomposeParDict -region -roots -time | -constant -latestTime -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[patchSummary]="-case -decomposeParDict -region -roots -time | -constant -expand -latestTime -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[pdfPlot]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[PDRFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[PDRMesh]="-case -decomposeParDict -roots | -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[pimpleDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[pimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[pisoFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[plot3dToFoam]="-case -scale | -noBlank -noFunctionObjects -singleBlock -srcDoc -doc -help"
-_of_complete_cache_[polyDualMesh]="-case | -concaveMultiCells -doNotPreserveFaceZones -noFunctionObjects -overwrite -splitAllFaces -srcDoc -doc -help"
-_of_complete_cache_[porousSimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[postChannel]="-case -time | -constant -latestTime -newTimes -noFunctionObjects -noZero -srcDoc -doc -help"
-_of_complete_cache_[postProcess]="-case -decomposeParDict -dict -field -fields -func -funcs -region -roots -time | -constant -latestTime -list -newTimes -noFunctionObjects -noZero -parallel -profiling -srcDoc -doc -help"
-_of_complete_cache_[potentialFoam]="-case -decomposeParDict -pName -roots | -initialiseUBCs -noFunctionObjects -parallel -withFunctionObjects -writePhi -writep -srcDoc -doc -help"
-_of_complete_cache_[potentialFreeSurfaceDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[potentialFreeSurfaceFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[reactingFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[reactingMultiphaseEulerFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[reactingParcelFilmFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[reactingParcelFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[reactingTwoPhaseEulerFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[reconstructPar]="-case -fields -lagrangianFields -region -time | -allRegions -constant -latestTime -newTimes -noFields -noFunctionObjects -noLagrangian -noSets -noZero -withZero -srcDoc -doc -help"
-_of_complete_cache_[reconstructParMesh]="-case -mergeTol -region -time | -cellDist -constant -fullMatch -latestTime -newTimes -noFunctionObjects -noZero -withZero -srcDoc -doc -help"
-_of_complete_cache_[redistributePar]="-case -decomposeParDict -mergeTol -region -roots -time | -cellDist -constant -decompose -latestTime -newTimes -noFunctionObjects -noZero -overwrite -parallel -reconstruct -withZero -srcDoc -doc -help"
-_of_complete_cache_[refineHexMesh]="-case -decomposeParDict -region -roots | -minSet -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[refinementLevel]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -readLevel -srcDoc -doc -help"
-_of_complete_cache_[refineMesh]="-case -decomposeParDict -dict -region -roots | -all -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[refineWallLayer]="-case -decomposeParDict -roots -useSet | -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[removeFaces]="-case -decomposeParDict -roots | -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[renumberMesh]="-case -decomposeParDict -dict -region -roots -time | -constant -frontWidth -latestTime -noFunctionObjects -noZero -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[rhoCentralDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[rhoCentralFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[rhoPimpleAdiabaticFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[rhoPimpleDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[rhoPimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[rhoPorousSimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[rhoReactingBuoyantFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[rhoReactingFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[rhoSimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[rotateMesh]="-case -decomposeParDict -roots -time | -constant -latestTime -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[scalarTransportFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[selectCells]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[setAlphaField]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[setFields]="-case -decomposeParDict -dict -region -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[setSet]="-batch -case -decomposeParDict -region -roots -time | -constant -latestTime -loop -newTimes -noFunctionObjects -noSync -noVTK -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[setsToZones]="-case -decomposeParDict -region -roots -time | -constant -latestTime -newTimes -noFlipMap -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[shallowWaterFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[simpleCoalParcelFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[simpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[simpleReactingParcelFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[singleCellMesh]="-case -decomposeParDict -roots -time | -constant -latestTime -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[smapToFoam]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[snappyHexMesh]="-case -decomposeParDict -dict -outFile -patches -region -roots -surfaceSimplify | -checkGeometry -noFunctionObjects -overwrite -parallel -profiling -srcDoc -doc -help"
-_of_complete_cache_[snappyRefineMesh]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[solidDisplacementFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[solidEquilibriumDisplacementFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[sonicDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[sonicFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[sonicLiquidFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[splitCells]="-case -set -tol | -geometry -noFunctionObjects -overwrite -srcDoc -doc -help"
-_of_complete_cache_[splitMesh]="-case | -noFunctionObjects -overwrite -srcDoc -doc -help"
-_of_complete_cache_[splitMeshRegions]="-blockedFaces -case -cellZonesFileOnly -decomposeParDict -insidePoint -region -roots | -cellZones -cellZonesOnly -detectOnly -largestOnly -makeCellZones -noFunctionObjects -overwrite -parallel -prefixRegion -sloppyCellZones -useFaceZones -srcDoc -doc -help"
-_of_complete_cache_[sprayDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[sprayEngineFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[sprayFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[SRFPimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[SRFSimpleFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[star4ToFoam]="-case -scale | -ascii -noFunctionObjects -solids -srcDoc -doc -help"
-_of_complete_cache_[steadyParticleTracks]="-case -dict -region -time | -constant -latestTime -newTimes -noFunctionObjects -noZero -srcDoc -doc -help"
-_of_complete_cache_[stitchMesh]="-case -region -toleranceDict | -noFunctionObjects -overwrite -partial -perfect -srcDoc -doc -help"
-_of_complete_cache_[subsetMesh]="-case -decomposeParDict -patch -patches -region -resultTime -roots | -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
-_of_complete_cache_[surfaceAdd]="-case -points | -mergeRegions -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceBooleanFeatures]="-case -trim | -invertedSpace -noFunctionObjects -perturb -surf1Baffle -surf2Baffle -srcDoc -doc -help"
-_of_complete_cache_[surfaceCheck]="-case -outputThreshold | -blockMesh -checkSelfIntersection -noFunctionObjects -splitNonManifold -verbose -srcDoc -doc -help"
-_of_complete_cache_[surfaceClean]="-case | -noClean -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceCoarsen]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceConvert]="-case -scale -writePrecision | -clean -group -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceFeatureConvert]="-case -scale | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceFeatureExtract]="-case -dict | -srcDoc -doc -help"
-_of_complete_cache_[surfaceFind]="-case -x -y -z | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceHookUp]="-case -dict | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceInertia]="-case -density -referencePoint | -noFunctionObjects -shellProperties -srcDoc -doc -help"
-_of_complete_cache_[surfaceInflate]="-case -featureAngle -nSmooth | -checkSelfIntersection -debug -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[adiabaticFlameT]="-case -fileHandler | -srcDoc -doc -help"
+_of_complete_cache_[adjointShapeOptimizationFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[ansysToFoam]="-case -fileHandler -scale | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[applyBoundaryLayer]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -roots -ybl | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[attachMesh]="-case -fileHandler | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -srcDoc -doc -help"
+_of_complete_cache_[autoPatch]="-case -fileHandler | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -srcDoc -doc -help"
+_of_complete_cache_[blockMesh]="-case -dict -fileHandler -region | -blockTopology -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noClean -noFunctionObjects -sets -srcDoc -doc -help"
+_of_complete_cache_[boundaryFoam]="-case -fileHandler -listScalarBCs -listVectorBCs | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[boxTurb]="-case -fileHandler -listScalarBCs -listVectorBCs | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[buoyantBoussinesqPimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[buoyantBoussinesqSimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[buoyantPimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[buoyantSimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[cavitatingDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[cavitatingFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[cfx4ToFoam]="-case -fileHandler -scale | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[changeDictionary]="-case -decomposeParDict -dict -fileHandler -instance -listScalarBCs -listVectorBCs -region -roots -subDict -time | -constant -disablePatchGroups -enableFunctionEntries -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -literalRE -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
+_of_complete_cache_[checkMesh]="-case -decomposeParDict -fileHandler -region -roots -time -writeFields -writeSets | -allGeometry -allTopology -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -meshQuality -newTimes -noFunctionObjects -noTopology -noZero -parallel -writeAllFields -srcDoc -doc -help"
+_of_complete_cache_[chemFoam]="-case -fileHandler -listScalarBCs -listVectorBCs | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -postProcess -srcDoc -doc -help"
+_of_complete_cache_[chemkinToFoam]="-case -fileHandler | -newFormat -srcDoc -doc -help"
+_of_complete_cache_[chtMultiRegionFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[chtMultiRegionSimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[coalChemistryFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[coldEngineFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[collapseEdges]="-case -collapseFaceSet -decomposeParDict -dict -fileHandler -roots -time | -collapseFaces -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[combinePatchFaces]="-case -concaveAngle -decomposeParDict -fileHandler -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -meshQuality -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[compressibleInterDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[compressibleInterFilmFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[compressibleInterFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[compressibleMultiphaseInterFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[createBaffles]="-case -decomposeParDict -dict -fileHandler -listScalarBCs -listVectorBCs -region -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[createExternalCoupledPatchGeometry]="-case -commsDir -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -regions -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[createPatch]="-case -decomposeParDict -dict -fileHandler -region -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -writeObj -srcDoc -doc -help"
+_of_complete_cache_[createZeroDirectory]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots -templateDir | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[datToFoam]="-case -fileHandler | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[decomposePar]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -time | -allRegions -cellDist -constant -copyUniform -copyZero -fields -force -ifRequired -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noSets -noZero -srcDoc -doc -help"
+_of_complete_cache_[deformedGeom]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[dnsFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[DPMDyMFoam]="-case -cloudName -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[DPMFoam]="-case -cloud -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[driftFluxFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[dsmcFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[dsmcInitialise]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[electrostaticFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[engineCompRatio]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[engineFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[engineSwirl]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[equilibriumCO]="-case -fileHandler | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -srcDoc -doc -help"
+_of_complete_cache_[equilibriumFlameT]="-case -fileHandler | -srcDoc -doc -help"
+_of_complete_cache_[extrude2DMesh]="-case -decomposeParDict -fileHandler -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[extrudeMesh]="-case -decomposeParDict -fileHandler -region -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[extrudeToRegionMesh]="-case -decomposeParDict -dict -fileHandler -listScalarBCs -listVectorBCs -region -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[faceAgglomerate]="-case -decomposeParDict -dict -fileHandler -listScalarBCs -listVectorBCs -region -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[financialFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[fireFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[fireToFoam]="-case -fileHandler -scale | -ascii -check -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[flattenMesh]="-case -decomposeParDict -fileHandler -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[fluent3DMeshToFoam]="-case -fileHandler -ignoreCellGroups -ignoreFaceGroups -scale | -cubit -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[fluentMeshToFoam]="-case -fileHandler -scale | -noFunctionObjects -writeSets -writeZones -srcDoc -doc -help"
+_of_complete_cache_[foamDataToFluent]="-case -fileHandler -listScalarBCs -listVectorBCs -time | -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -srcDoc -doc -help"
+_of_complete_cache_[foamDictionary]="-add -case -decomposeParDict -diff -entry -fileHandler -roots -set | -disableFunctionEntries -expand -includes -keywords -noFunctionObjects -parallel -remove -value -srcDoc -doc -help"
+_of_complete_cache_[foamFormatConvert]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -roots -time | -constant -enableFunctionEntries -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noConstant -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
+_of_complete_cache_[foamHelp]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[foamList]="-case -fileHandler -scalarBCs -vectorBCs | -compressibleTurbulenceModels -functionObjects -fvOptions -incompressibleTurbulenceModels -noFunctionObjects -registeredSwitches -switches -unset -srcDoc -doc -help"
+_of_complete_cache_[foamListTimes]="-case -fileHandler -time | -constant -latestTime -newTimes -noFunctionObjects -noZero -processor -rm -withZero -srcDoc -doc -help"
+_of_complete_cache_[foamMeshToFluent]="-case -fileHandler | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[foamToEnsight]="-case -cellZone -decomposeParDict -faceZones -fields -fileHandler -listScalarBCs -listVectorBCs -name -patches -region -roots -time -width | -ascii -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noLagrangian -noPatches -noZero -nodeValues -parallel -srcDoc -doc -help"
+_of_complete_cache_[foamToEnsightParts]="-case -fileHandler -index -listScalarBCs -listVectorBCs -name -time -width | -ascii -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noLagrangian -noMesh -noZero -srcDoc -doc -help"
+_of_complete_cache_[foamToFireMesh]="-case -fileHandler -scale -time | -ascii -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -srcDoc -doc -help"
+_of_complete_cache_[foamToGMV]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[foamToStarMesh]="-case -fileHandler -scale -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noBnd -noFunctionObjects -noZero -srcDoc -doc -help"
+_of_complete_cache_[foamToSurface]="-case -fileHandler -scale -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -tri -srcDoc -doc -help"
+_of_complete_cache_[foamToTetDualMesh]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -noZero -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[foamToVTK]="-case -cellSet -cellZone -decomposeParDict -excludePatches -faceSet -fields -fileHandler -listScalarBCs -listVectorBCs -name -pointSet -region -roots -time | -allPatches -ascii -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -nearCellValue -newTimes -noFaceZones -noFunctionObjects -noInternal -noLagrangian -noLinks -noPointValues -noZero -parallel -poly -surfaceFields -useTimeName -xml -srcDoc -doc -help"
+_of_complete_cache_[foamUpgradeCyclics]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -roots -time | -constant -enableFunctionEntries -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -parallel -test -srcDoc -doc -help"
+_of_complete_cache_[foamyHexMesh]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -checkGeometry -conformationOnly -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[foamyQuadMesh]="-case -fileHandler -pointsFile | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -srcDoc -doc -help"
+_of_complete_cache_[gambitToFoam]="-case -fileHandler -scale | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[gmshToFoam]="-case -fileHandler -region | -keepOrientation -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[icoFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[icoUncoupledKinematicParcelDyMFoam]="-case -cloud -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[icoUncoupledKinematicParcelFoam]="-case -cloud -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[ideasUnvToFoam]="-case -fileHandler | -dump -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[insideCells]="-case -decomposeParDict -fileHandler -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[interCondensatingEvaporatingFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[interDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[interFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[interIsoFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[interMixingFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[interPhaseChangeDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[interPhaseChangeFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[kivaToFoam]="-case -file -fileHandler -version -zHeadMin | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[laplacianFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[lumpedPointForces]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -roots -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noZero -parallel -vtk -srcDoc -doc -help"
+_of_complete_cache_[lumpedPointMovement]="-case -fileHandler -max -scale -span | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -removeLock -slave -srcDoc -doc -help"
+_of_complete_cache_[lumpedPointZones]="-case -fileHandler -region | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -verbose -srcDoc -doc -help"
+_of_complete_cache_[magneticFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noB -noFunctionObjects -noH -parallel -srcDoc -doc -help"
+_of_complete_cache_[mapFields]="-case -fileHandler -mapMethod -sourceDecomposeParDict -sourceRegion -sourceTime -targetDecomposeParDict -targetRegion | -consistent -noFunctionObjects -parallelSource -parallelTarget -subtract -srcDoc -doc -help"
+_of_complete_cache_[mapFieldsPar]="-case -decomposeParDict -fields -fileHandler -mapMethod -patchMapMethod -roots -sourceRegion -sourceTime -targetRegion | -consistent -noFunctionObjects -noLagrangian -parallel -subtract -srcDoc -doc -help"
+_of_complete_cache_[mdEquilibrationFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[mdFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[mdInitialise]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[mergeMeshes]="-addRegion -case -decomposeParDict -fileHandler -masterRegion -roots | -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[mergeOrSplitBaffles]="-case -decomposeParDict -dict -fileHandler -listScalarBCs -listVectorBCs -region -roots | -detectOnly -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -split -srcDoc -doc -help"
+_of_complete_cache_[mhdFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[mirrorMesh]="-case -decomposeParDict -fileHandler -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[mixtureAdiabaticFlameT]="-case -fileHandler | -srcDoc -doc -help"
+_of_complete_cache_[modifyMesh]="-case -decomposeParDict -dict -fileHandler -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[moveDynamicMesh]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -roots | -checkAMI -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[moveEngineMesh]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[moveMesh]="-case -decomposeParDict -fileHandler -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[MPPICDyMFoam]="-case -cloudName -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[MPPICFoam]="-case -cloud -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[MPPICInterFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[mshToFoam]="-case -fileHandler | -hex -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[multiphaseEulerFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[multiphaseInterDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[multiphaseInterFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[netgenNeutralToFoam]="-case -decomposeParDict -fileHandler -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[noise]="-case -decomposeParDict -dict -fileHandler -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[nonNewtonianIcoFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[objToVTK]="-case -fileHandler | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[orientFaceZone]="-case -decomposeParDict -fileHandler -region -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[overInterDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[overLaplacianDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[overPimpleDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[overRhoPimpleDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[overSimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[particleTracks]="-case -decomposeParDict -fileHandler -region -roots -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
+_of_complete_cache_[patchSummary]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -roots -time | -constant -expand -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
+_of_complete_cache_[pdfPlot]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[PDRFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[PDRMesh]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[pimpleDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[pimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[pisoFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[plot3dToFoam]="-case -fileHandler -scale | -noBlank -noFunctionObjects -singleBlock -srcDoc -doc -help"
+_of_complete_cache_[polyDualMesh]="-case -fileHandler -listScalarBCs -listVectorBCs | -concaveMultiCells -doNotPreserveFaceZones -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -splitAllFaces -srcDoc -doc -help"
+_of_complete_cache_[porousSimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[postChannel]="-case -fileHandler -listScalarBCs -listVectorBCs -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -srcDoc -doc -help"
+_of_complete_cache_[postProcess]="-case -decomposeParDict -dict -field -fields -fileHandler -func -funcs -listScalarBCs -listVectorBCs -region -roots -time | -constant -latestTime -list -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -parallel -profiling -srcDoc -doc -help"
+_of_complete_cache_[potentialFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -pName -roots | -initialiseUBCs -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -withFunctionObjects -writePhi -writep -srcDoc -doc -help"
+_of_complete_cache_[potentialFreeSurfaceDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[potentialFreeSurfaceFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[reactingFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[reactingMultiphaseEulerFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[reactingParcelFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[reactingTwoPhaseEulerFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[reconstructPar]="-case -fields -fileHandler -lagrangianFields -listScalarBCs -listVectorBCs -region -time | -allRegions -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFields -noFunctionObjects -noLagrangian -noSets -noZero -withZero -srcDoc -doc -help"
+_of_complete_cache_[reconstructParMesh]="-case -fileHandler -listScalarBCs -listVectorBCs -mergeTol -region -time | -cellDist -constant -fullMatch -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -withZero -srcDoc -doc -help"
+_of_complete_cache_[redistributePar]="-case -decomposeParDict -fileHandler -mergeTol -region -roots -time | -cellDist -constant -decompose -latestTime -newTimes -noFunctionObjects -noZero -overwrite -parallel -reconstruct -withZero -srcDoc -doc -help"
+_of_complete_cache_[refineHexMesh]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -minSet -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[refinementLevel]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -readLevel -srcDoc -doc -help"
+_of_complete_cache_[refineMesh]="-case -decomposeParDict -dict -fileHandler -region -roots | -all -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[refineWallLayer]="-case -decomposeParDict -fileHandler -roots -useSet | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[removeFaces]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[renumberMesh]="-case -decomposeParDict -dict -fileHandler -listScalarBCs -listVectorBCs -region -roots -time | -constant -frontWidth -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -noZero -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[rhoCentralDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[rhoCentralFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[rhoPimpleAdiabaticFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[rhoPimpleDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[rhoPimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[rhoPorousSimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[rhoReactingBuoyantFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[rhoReactingFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[rhoSimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[rotateMesh]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
+_of_complete_cache_[scalarTransportFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[selectCells]="-case -fileHandler | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[setAlphaField]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[setFields]="-case -decomposeParDict -dict -fileHandler -listScalarBCs -listVectorBCs -region -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[setSet]="-batch -case -decomposeParDict -fileHandler -region -roots -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -loop -newTimes -noFunctionObjects -noSync -noVTK -noZero -parallel -srcDoc -doc -help"
+_of_complete_cache_[setsToZones]="-case -decomposeParDict -fileHandler -region -roots -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFlipMap -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
+_of_complete_cache_[shallowWaterFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[simpleCoalParcelFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[simpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[simpleReactingParcelFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[singleCellMesh]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
+_of_complete_cache_[smapToFoam]="-case -fileHandler | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[snappyHexMesh]="-case -decomposeParDict -dict -fileHandler -listScalarBCs -listVectorBCs -outFile -patches -region -roots -surfaceSimplify | -checkGeometry -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -profiling -srcDoc -doc -help"
+_of_complete_cache_[snappyRefineMesh]="-case -fileHandler | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[solidDisplacementFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[solidEquilibriumDisplacementFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[sonicDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[sonicFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[sonicLiquidFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[splitCells]="-case -fileHandler -set -tol | -geometry -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -srcDoc -doc -help"
+_of_complete_cache_[splitMesh]="-case -fileHandler | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -srcDoc -doc -help"
+_of_complete_cache_[splitMeshRegions]="-blockedFaces -case -cellZonesFileOnly -decomposeParDict -fileHandler -insidePoint -listScalarBCs -listVectorBCs -region -roots | -cellZones -cellZonesOnly -detectOnly -largestOnly -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -makeCellZones -noFunctionObjects -overwrite -parallel -prefixRegion -sloppyCellZones -useFaceZones -srcDoc -doc -help"
+_of_complete_cache_[sprayDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[sprayEngineFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[sprayFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[SRFPimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[SRFSimpleFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[star4ToFoam]="-case -fileHandler -scale | -ascii -noFunctionObjects -solids -srcDoc -doc -help"
+_of_complete_cache_[steadyParticleTracks]="-case -dict -fileHandler -region -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -srcDoc -doc -help"
+_of_complete_cache_[stitchMesh]="-case -fileHandler -listScalarBCs -listVectorBCs -region -toleranceDict | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -partial -perfect -srcDoc -doc -help"
+_of_complete_cache_[subsetMesh]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -patch -patches -region -resultTime -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -overwrite -parallel -srcDoc -doc -help"
+_of_complete_cache_[surfaceAdd]="-case -fileHandler -points -scale | -mergeRegions -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceBooleanFeatures]="-case -fileHandler -scale -trim | -invertedSpace -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -perturb -surf1Baffle -surf2Baffle -srcDoc -doc -help"
+_of_complete_cache_[surfaceCheck]="-case -fileHandler -outputThreshold | -blockMesh -checkSelfIntersection -noFunctionObjects -splitNonManifold -verbose -srcDoc -doc -help"
+_of_complete_cache_[surfaceClean]="-case -fileHandler -scale | -noClean -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceCoarsen]="-case -fileHandler -scale | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceConvert]="-case -fileHandler -scale -writePrecision | -clean -group -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceFeatureConvert]="-case -fileHandler -scale | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceFeatureExtract]="-case -dict -fileHandler | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -srcDoc -doc -help"
+_of_complete_cache_[surfaceFind]="-case -fileHandler -x -y -z | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceHookUp]="-case -dict -fileHandler | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceInertia]="-case -density -fileHandler -referencePoint | -noFunctionObjects -shellProperties -srcDoc -doc -help"
+_of_complete_cache_[surfaceInflate]="-case -featureAngle -fileHandler -nSmooth | -checkSelfIntersection -debug -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
_of_complete_cache_[surfaceLambdaMuSmooth]="-featureFile | -srcDoc -doc -help"
-_of_complete_cache_[surfaceMeshConvert]="-case -dict -from -scaleIn -scaleOut -to | -clean -noFunctionObjects -tri -srcDoc -doc -help"
-_of_complete_cache_[surfaceMeshExport]="-case -dict -from -name -scaleIn -scaleOut -to | -clean -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceMeshImport]="-case -dict -from -name -scaleIn -scaleOut -to | -clean -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceMeshInfo]="-case -scale | -areas -noFunctionObjects -xml -srcDoc -doc -help"
-_of_complete_cache_[surfaceMeshTriangulate]="-case -decomposeParDict -faceZones -patches -region -roots -time | -constant -excludeProcPatches -latestTime -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[surfaceOrient]="-case | -inside -noFunctionObjects -usePierceTest -srcDoc -doc -help"
-_of_complete_cache_[surfacePatch]="-case -dict | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfacePointMerge]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceRedistributePar]="-case -decomposeParDict -roots | -keepNonMapped -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[surfaceRefineRedGreen]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceSplitByPatch]="-case | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceMeshConvert]="-case -dict -fileHandler -from -scaleIn -scaleOut -to | -clean -noFunctionObjects -tri -srcDoc -doc -help"
+_of_complete_cache_[surfaceMeshConvertTesting]="-case -fileHandler -scale | -clean -noFunctionObjects -orient -stdout -surfMesh -testModify -triFace -triSurface -unsorted -srcDoc -doc -help"
+_of_complete_cache_[surfaceMeshExport]="-case -dict -fileHandler -from -name -scaleIn -scaleOut -to | -clean -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceMeshImport]="-case -dict -fileHandler -from -name -scaleIn -scaleOut -to | -clean -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceMeshInfo]="-case -fileHandler -scale | -areas -noFunctionObjects -xml -srcDoc -doc -help"
+_of_complete_cache_[surfaceMeshTriangulate]="-case -decomposeParDict -faceZones -fileHandler -patches -region -roots -time | -constant -excludeProcPatches -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
+_of_complete_cache_[surfaceOrient]="-case -fileHandler -scale | -inside -noFunctionObjects -usePierceTest -srcDoc -doc -help"
+_of_complete_cache_[surfacePatch]="-case -dict -fileHandler | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfacePointMerge]="-case -fileHandler -scale | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceRedistributePar]="-case -decomposeParDict -fileHandler -roots | -keepNonMapped -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[surfaceRefineRedGreen]="-case -fileHandler | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceSplitByPatch]="-case -fileHandler | -noFunctionObjects -srcDoc -doc -help"
_of_complete_cache_[surfaceSplitByTopology]=" | -srcDoc -doc -help"
-_of_complete_cache_[surfaceSplitNonManifolds]="-case | -debug -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceSubset]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceToPatch]="-case -faceSet -tol | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[surfaceTransformPoints]="-case -rollPitchYaw -rotate -scale -translate -yawPitchRoll | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[temporalInterpolate]="-case -decomposeParDict -divisions -fields -interpolationType -region -roots -time | -constant -latestTime -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[tetgenToFoam]="-case -decomposeParDict -roots | -noFaceFile -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[thermoFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[topoSet]="-case -decomposeParDict -dict -region -roots -time | -constant -latestTime -newTimes -noFunctionObjects -noSync -noZero -parallel -srcDoc -doc -help"
-_of_complete_cache_[transformPoints]="-case -decomposeParDict -region -rollPitchYaw -roots -rotate -scale -translate -yawPitchRoll | -noFunctionObjects -parallel -rotateFields -srcDoc -doc -help"
-_of_complete_cache_[twoLiquidMixingFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[twoPhaseEulerFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[uncoupledKinematicParcelFoam]="-case -cloud -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[viewFactorsGen]="-case -decomposeParDict -region -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[vtkUnstructuredToFoam]="-case | -noFunctionObjects -srcDoc -doc -help"
-_of_complete_cache_[wallFunctionTable]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
-_of_complete_cache_[writeMeshObj]="-case -cell -cellSet -decomposeParDict -face -faceSet -point -region -roots -time | -constant -latestTime -newTimes -noFunctionObjects -noZero -parallel -patchEdges -patchFaces -srcDoc -doc -help"
-_of_complete_cache_[XiDyMFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[XiFoam]="-case -decomposeParDict -roots | -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
-_of_complete_cache_[zipUpMesh]="-case -decomposeParDict -region -roots | -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[surfaceSplitNonManifolds]="-case -fileHandler | -debug -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceSubset]="-case -fileHandler | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceToPatch]="-case -faceSet -fileHandler -tol | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[surfaceTransformPoints]="-case -fileHandler -rollPitchYaw -rotate -scale -translate -yawPitchRoll | -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[temporalInterpolate]="-case -decomposeParDict -divisions -fields -fileHandler -interpolationType -listScalarBCs -listVectorBCs -region -roots -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -parallel -srcDoc -doc -help"
+_of_complete_cache_[tetgenToFoam]="-case -decomposeParDict -fileHandler -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFaceFile -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[thermoFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[topoSet]="-case -decomposeParDict -dict -fileHandler -region -roots -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noSync -noZero -parallel -srcDoc -doc -help"
+_of_complete_cache_[transformPoints]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -rollPitchYaw -roots -rotate -scale -translate -yawPitchRoll | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -rotateFields -srcDoc -doc -help"
+_of_complete_cache_[twoLiquidMixingFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[twoPhaseEulerFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[uncoupledKinematicParcelDyMFoam]="-case -cloudName -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[uncoupledKinematicParcelFoam]="-case -cloud -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[viewFactorsGen]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -region -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[vtkUnstructuredToFoam]="-case -fileHandler | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -srcDoc -doc -help"
+_of_complete_cache_[wallFunctionTable]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
+_of_complete_cache_[writeMeshObj]="-case -cell -cellSet -decomposeParDict -face -faceSet -fileHandler -point -region -roots -time | -constant -latestTime -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -newTimes -noFunctionObjects -noZero -parallel -patchEdges -patchFaces -srcDoc -doc -help"
+_of_complete_cache_[XiDyMFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[XiFoam]="-case -decomposeParDict -fileHandler -listScalarBCs -listVectorBCs -roots | -listFunctionObjects -listFvOptions -listRegisteredSwitches -listSwitches -listTurbulenceModels -listUnsetSwitches -noFunctionObjects -parallel -postProcess -srcDoc -doc -help"
+_of_complete_cache_[zipUpMesh]="-case -decomposeParDict -fileHandler -region -roots | -listFunctionObjects -listRegisteredSwitches -listSwitches -listUnsetSwitches -noFunctionObjects -parallel -srcDoc -doc -help"
#------------------------------------------------------------------------------
diff --git a/src/ODE/ODESolvers/RKDP45/RKDP45.H b/src/ODE/ODESolvers/RKDP45/RKDP45.H
index f09c894e04..62ec247c67 100644
--- a/src/ODE/ODESolvers/RKDP45/RKDP45.H
+++ b/src/ODE/ODESolvers/RKDP45/RKDP45.H
@@ -28,7 +28,7 @@ Group
grpODESolvers
Description
- 4/5th Order Dormand–Prince Runge-Kutta ODE solver.
+ 4/5th Order Dormand-Prince Runge-Kutta ODE solver.
References:
\verbatim
diff --git a/src/OSspecific/POSIX/printStack.C b/src/OSspecific/POSIX/printStack.C
index 4031b91d77..51978a66a7 100644
--- a/src/OSspecific/POSIX/printStack.C
+++ b/src/OSspecific/POSIX/printStack.C
@@ -28,7 +28,7 @@ License
#include "IFstream.H"
#include "StringStream.H"
-#include
+#include
#include
#include
#include
diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files
index ac475a06fe..cc59794bae 100644
--- a/src/OpenFOAM/Make/files
+++ b/src/OpenFOAM/Make/files
@@ -114,6 +114,7 @@ $(strings)/wordRe/wordRe.C
$(strings)/wordRes/wordRes.C
$(strings)/lists/hashedWordList.C
$(strings)/stringOps/stringOps.C
+$(strings)/parsing/parsing.C
ops = primitives/ops
$(ops)/flipOp.C
diff --git a/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C b/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C
index 15809004dc..d5a9336338 100644
--- a/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C
+++ b/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C
@@ -27,9 +27,8 @@ License
#include "OPstream.H"
#include "IPstream.H"
#include "PstreamBuffers.H"
-#include "OFstream.H"
-#include "IFstream.H"
-#include "IStringStream.H"
+#include "Fstream.H"
+#include "StringStream.H"
#include "dictionary.H"
#include
#include "objectRegistry.H"
diff --git a/src/OpenFOAM/db/IOstreams/Fstreams/OFstream.C b/src/OpenFOAM/db/IOstreams/Fstreams/OFstream.C
index 17a2b7d1e4..8c005c4a31 100644
--- a/src/OpenFOAM/db/IOstreams/Fstreams/OFstream.C
+++ b/src/OpenFOAM/db/IOstreams/Fstreams/OFstream.C
@@ -53,10 +53,11 @@ Foam::OFstreamAllocator::OFstreamAllocator
InfoInFunction << "Cannot open null file " << endl;
}
}
- ofstream::openmode mode(ofstream::out);
+
+ std::ios_base::openmode mode(std::ios_base::out);
if (append)
{
- mode |= ofstream::app;
+ mode |= std::ios_base::app;
}
if (compression == IOstream::COMPRESSED)
@@ -130,7 +131,7 @@ Foam::OFstream::OFstream
OSstream
(
*allocatedPtr_,
- "OFstream.sinkFile_",
+ pathname,
format,
version,
compression
diff --git a/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.H b/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.H
index 6bc595d692..c619ad8ac0 100644
--- a/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.H
+++ b/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.H
@@ -35,7 +35,7 @@ SourceFiles
#ifndef masterOFstream_H
#define masterOFstream_H
-#include "OStringStream.H"
+#include "StringStream.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/db/IOstreams/dummyISstream/dummyISstream.H b/src/OpenFOAM/db/IOstreams/dummyISstream/dummyISstream.H
index a774271a11..9477b08791 100644
--- a/src/OpenFOAM/db/IOstreams/dummyISstream/dummyISstream.H
+++ b/src/OpenFOAM/db/IOstreams/dummyISstream/dummyISstream.H
@@ -34,7 +34,7 @@ SourceFiles
#ifndef dummyISstream_H
#define dummyISstream_H
-#include "IStringStream.H"
+#include "StringStream.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCode.C b/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCode.C
index 836f47500e..1371c17300 100644
--- a/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCode.C
+++ b/src/OpenFOAM/db/dynamicLibrary/dynamicCode/dynamicCode.C
@@ -26,8 +26,7 @@ License
#include "dynamicCode.H"
#include "dynamicCodeContext.H"
#include "stringOps.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "OSspecific.H"
#include "etcFiles.H"
#include "dictionary.H"
diff --git a/src/OpenFOAM/dimensionSet/dimensionSetIO.C b/src/OpenFOAM/dimensionSet/dimensionSetIO.C
index 3977383160..9fcfd9ee20 100644
--- a/src/OpenFOAM/dimensionSet/dimensionSetIO.C
+++ b/src/OpenFOAM/dimensionSet/dimensionSetIO.C
@@ -143,7 +143,7 @@ void Foam::dimensionSet::tokeniser::splitWord(const word& w)
const word subWord = w.substr(start, i-start);
if (isdigit(subWord[0]) || subWord[0] == token::SUBTRACT)
{
- push(token(readScalar(IStringStream(subWord)())));
+ push(token(readScalar(subWord)));
}
else
{
@@ -154,7 +154,9 @@ void Foam::dimensionSet::tokeniser::splitWord(const word& w)
{
if (isdigit(w[i]))
{
- push(token(readScalar(IStringStream(w[i])())));
+ // Single digit: as scalar value
+ const scalar val = (w[i] - '0');
+ push(token(val));
}
else
{
@@ -169,7 +171,7 @@ void Foam::dimensionSet::tokeniser::splitWord(const word& w)
const word subWord = w.substr(start);
if (isdigit(subWord[0]) || subWord[0] == token::SUBTRACT)
{
- push(token(readScalar(IStringStream(subWord)())));
+ push(token(readScalar(subWord)));
}
else
{
@@ -539,7 +541,7 @@ Foam::Istream& Foam::dimensionSet::read
{
const word symbol = symbolPow.substr(0, index);
const word exp = symbolPow.substr(index+1);
- scalar exponent = readScalar(IStringStream(exp)());
+ scalar exponent = readScalar(exp);
dimensionedScalar s;
s.read(readSet[symbol], readSet);
diff --git a/src/OpenFOAM/global/argList/argList.H b/src/OpenFOAM/global/argList/argList.H
index b60cd9fa13..cba9bb009f 100644
--- a/src/OpenFOAM/global/argList/argList.H
+++ b/src/OpenFOAM/global/argList/argList.H
@@ -281,10 +281,10 @@ public:
inline T argRead(const label index) const;
//- Return options
- inline const Foam::HashTable& options() const;
+ inline const HashTable& options() const;
//- Return non-const access to options
- inline Foam::HashTable& options();
+ inline HashTable& options();
//- Return the argument string associated with the named option
inline const string& option(const word& opt) const;
@@ -302,7 +302,7 @@ public:
//- Read a value from the named option if present.
// Return true if the named option was found.
template
- inline bool optionReadIfPresent(const word& opt, T&) const;
+ inline bool optionReadIfPresent(const word& opt, T& val) const;
//- Read a value from the named option if present.
// Return true if the named option was found, otherwise
@@ -311,7 +311,7 @@ public:
inline bool optionReadIfPresent
(
const word& opt,
- T&,
+ T& val,
const T& deflt
) const;
@@ -328,7 +328,7 @@ public:
template
List optionReadList(const word& opt) const
{
- return readList(optionLookup(opt)());
+ return Foam::readList(optionLookup(opt)());
}
@@ -369,7 +369,7 @@ public:
//- Add extra notes for the usage information
// This string is used "as-is" without additional formatting
- static void addNote(const string&);
+ static void addNote(const string& note);
//- Remove option from validOptions and from optionUsage
static void removeOption(const word& opt);
diff --git a/src/OpenFOAM/global/argList/argListI.H b/src/OpenFOAM/global/argList/argListI.H
index 28caff6acb..4f1b5fdf8d 100644
--- a/src/OpenFOAM/global/argList/argListI.H
+++ b/src/OpenFOAM/global/argList/argListI.H
@@ -127,53 +127,84 @@ inline Foam::IStringStream Foam::argList::optionLookup(const word& opt) const
namespace Foam
{
- // Template specialization for string
+ //
+ // Specializations for argRead
+ //
+
template<>
inline Foam::string
- Foam::argList::argRead(const label index) const
+ argList::argRead(const label index) const
{
return args_[index];
}
- // Template specialization for word
template<>
inline Foam::word
- Foam::argList::argRead(const label index) const
+ argList::argRead(const label index) const
{
return args_[index];
}
- // Template specialization for fileName
template<>
inline Foam::fileName
- Foam::argList::argRead(const label index) const
+ argList::argRead(const label index) const
{
return args_[index];
}
- // Template specialization for string
+ template<>
+ inline Foam::label
+ argList::argRead(const label index) const
+ {
+ return Foam::readLabel(args_[index]);
+ }
+
+ template<>
+ inline Foam::scalar
+ argList::argRead(const label index) const
+ {
+ return Foam::readScalar(args_[index]);
+ }
+
+ //
+ // Specializations for optionRead
+ //
+
template<>
inline Foam::string
- Foam::argList::optionRead(const word& opt) const
+ argList::optionRead(const word& opt) const
{
return options_[opt];
}
- // Template specialization for word
template<>
inline Foam::word
- Foam::argList::optionRead(const word& opt) const
+ argList::optionRead(const word& opt) const
{
return options_[opt];
}
- // Template specialization for fileName
template<>
inline Foam::fileName
- Foam::argList::optionRead(const word& opt) const
+ argList::optionRead(const word& opt) const
{
return options_[opt];
}
+
+ template<>
+ inline Foam::label
+ argList::optionRead(const word& opt) const
+ {
+ return Foam::readLabel(options_[opt]);
+ }
+
+ template<>
+ inline Foam::scalar
+ argList::optionRead(const word& opt) const
+ {
+ return Foam::readScalar(options_[opt]);
+ }
+
}
diff --git a/src/OpenFOAM/global/fileOperations/collatedFileOperation/threadedCollatedOFstream.H b/src/OpenFOAM/global/fileOperations/collatedFileOperation/threadedCollatedOFstream.H
index e296e1132c..7efd8d0daf 100644
--- a/src/OpenFOAM/global/fileOperations/collatedFileOperation/threadedCollatedOFstream.H
+++ b/src/OpenFOAM/global/fileOperations/collatedFileOperation/threadedCollatedOFstream.H
@@ -35,7 +35,7 @@ SourceFiles
#ifndef threadedCollatedOFstream_H
#define threadedCollatedOFstream_H
-#include "OStringStream.H"
+#include "StringStream.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C b/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C
index 2ee8ad8b61..e6a509e74c 100644
--- a/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C
+++ b/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C
@@ -25,8 +25,7 @@ License
#include "uncollatedFileOperation.H"
#include "Time.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "addToRunTimeSelectionTable.H"
#include "masterUncollatedFileOperation.H"
#include "decomposedBlockData.H"
diff --git a/src/OpenFOAM/interpolations/interpolationTable/tableReaders/csv/csvTableReader.C b/src/OpenFOAM/interpolations/interpolationTable/tableReaders/csv/csvTableReader.C
index ae2c0cb5e0..51adcb3381 100644
--- a/src/OpenFOAM/interpolations/interpolationTable/tableReaders/csv/csvTableReader.C
+++ b/src/OpenFOAM/interpolations/interpolationTable/tableReaders/csv/csvTableReader.C
@@ -71,7 +71,7 @@ namespace Foam
<< exit(FatalError);
}
- return readScalar(IStringStream(splitted[componentColumns_[0]])());
+ return readScalar(splitted[componentColumns_[0]]);
}
@@ -80,7 +80,7 @@ namespace Foam
{
Type result;
- for(label i = 0;i < pTraits::nComponents; i++)
+ for (label i = 0; i < pTraits::nComponents; ++i)
{
if (componentColumns_[i] >= splitted.size())
{
@@ -90,10 +90,7 @@ namespace Foam
<< exit(FatalError);
}
- result[i] = readScalar
- (
- IStringStream(splitted[componentColumns_[i]])()
- );
+ result[i] = readScalar(splitted[componentColumns_[i]]);
}
return result;
@@ -150,7 +147,7 @@ void Foam::csvTableReader::operator()
break;
}
- scalar time = readScalar(IStringStream(splitted[timeColumn_])());
+ scalar time = readScalar(splitted[timeColumn_]);
Type value = readValue(splitted);
values.append(Tuple2(time, value));
diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
index a0e3cffead..98a1f6104d 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
@@ -656,7 +656,11 @@ Foam::label Foam::polyBoundaryMesh::findIndex(const keyType& key) const
}
-Foam::label Foam::polyBoundaryMesh::findPatchID(const word& patchName) const
+Foam::label Foam::polyBoundaryMesh::findPatchID
+(
+ const word& patchName,
+ bool allowNotFound
+) const
{
const polyPatchList& patches = *this;
@@ -668,6 +672,20 @@ Foam::label Foam::polyBoundaryMesh::findPatchID(const word& patchName) const
}
}
+ if (!allowNotFound)
+ {
+ string regionStr("");
+ if (mesh_.name() != polyMesh::defaultRegion)
+ {
+ regionStr = "in region '" + mesh_.name() + "' ";
+ }
+
+ FatalErrorInFunction
+ << "Patch '" << patchName << "' not found. "
+ << "Available patch names " << regionStr << "include: " << names()
+ << exit(FatalError);
+ }
+
// Patch not found
if (debug)
{
diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H
index 61ed872fa6..32ad8ee634 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H
+++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H
@@ -171,7 +171,11 @@ public:
label findIndex(const keyType&) const;
//- Find patch index given a name
- label findPatchID(const word& patchName) const;
+ label findPatchID
+ (
+ const word& patchName,
+ const bool allowNotFound = true
+ ) const;
//- Find patch indices for a given polyPatch type
template
diff --git a/src/OpenFOAM/primitives/Scalar/Scalar.C b/src/OpenFOAM/primitives/Scalar/Scalar.C
index 941349cce6..d8eb7e06fc 100644
--- a/src/OpenFOAM/primitives/Scalar/Scalar.C
+++ b/src/OpenFOAM/primitives/Scalar/Scalar.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
- \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
+ \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -42,9 +42,9 @@ const Scalar pTraits::rootMax = ScalarROOTVGREAT;
const char* const pTraits::componentNames[] = { "" };
-pTraits::pTraits(const Scalar& p)
+pTraits::pTraits(const Scalar& val)
:
- p_(p)
+ p_(val)
{}
@@ -54,7 +54,7 @@ pTraits::pTraits(Istream& is)
}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * * IO/Conversion * * * * * * * * * * * * * * * //
word name(const Scalar val)
{
@@ -76,18 +76,59 @@ word name(const std::string& fmt, const Scalar val)
}
-// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-
-Scalar readScalar(Istream& is)
+Scalar ScalarRead(const char* buf)
{
- Scalar rs;
- is >> rs;
+ char* endptr = nullptr;
+ errno = 0;
- return rs;
+ const Scalar val = ScalarConvert(buf, &endptr);
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ FatalIOErrorInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << exit(FatalIOError);
+ }
+
+ return val;
}
-Istream& operator>>(Istream& is, Scalar& s)
+bool readScalar(const char* buf, Scalar& val)
+{
+ char* endptr = nullptr;
+ errno = 0;
+
+ val = ScalarConvert(buf, &endptr);
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ #ifdef FULLDEBUG
+ IOWarningInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << endl;
+ #endif
+ return false;
+ }
+
+ return true;
+}
+
+
+// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
+
+Scalar ScalarRead(Istream& is)
+{
+ Scalar val;
+ is >> val;
+
+ return val;
+}
+
+
+Istream& operator>>(Istream& is, Scalar& val)
{
token t(is);
@@ -99,7 +140,7 @@ Istream& operator>>(Istream& is, Scalar& s)
if (t.isNumber())
{
- s = t.number();
+ val = t.number();
}
else
{
@@ -116,9 +157,9 @@ Istream& operator>>(Istream& is, Scalar& s)
}
-Ostream& operator<<(Ostream& os, const Scalar s)
+Ostream& operator<<(Ostream& os, const Scalar val)
{
- os.write(s);
+ os.write(val);
os.check(FUNCTION_NAME);
return os;
}
diff --git a/src/OpenFOAM/primitives/Scalar/Scalar.H b/src/OpenFOAM/primitives/Scalar/Scalar.H
index ea5c5239da..798ca75a23 100644
--- a/src/OpenFOAM/primitives/Scalar/Scalar.H
+++ b/src/OpenFOAM/primitives/Scalar/Scalar.H
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
- \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
+ \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -25,7 +25,7 @@ Typedef
Foam::Scalar
Description
- Single floating point number (float or double)
+ Floating-point number (float or double)
SourceFiles
Scalar.C
@@ -81,10 +81,10 @@ public:
// Constructors
//- Construct from primitive
- explicit pTraits(const Scalar&);
+ explicit pTraits(const Scalar& val);
//- Construct from Istream
- pTraits(Istream&);
+ pTraits(Istream& is);
// Member Functions
@@ -103,21 +103,47 @@ public:
};
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * * IO/Conversion * * * * * * * * * * * * * * * //
//- Return a string representation of a Scalar
-word name(const Scalar);
-
+word name(const Scalar val);
//- Return a word representation of a Scalar, using printf-style formatter.
// The representation is not checked for valid word characters.
-word name(const char* fmt, const Scalar);
-
+word name(const char* fmt, const Scalar val);
//- Return a word representation of a Scalar, using printf-style formatter.
// The representation is not checked for valid word characters.
-word name(const std::string& fmt, const Scalar);
+word name(const std::string& fmt, const Scalar val);
+//- Parse entire buffer as a float/double, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+Scalar ScalarRead(const char* buf);
+
+//- Parse entire string as a float/double, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+inline Scalar ScalarRead(const std::string& str)
+{
+ return ScalarRead(str.c_str());
+}
+
+//- Parse entire buffer as a float/double, skipping leading/trailing whitespace.
+// \return True if successful.
+bool readScalar(const char* buf, Scalar& val);
+
+//- Parse entire string as a float/double, skipping leading/trailing whitespace.
+// \return True if successful.
+inline bool readScalar(const std::string& str, Scalar& val)
+{
+ return readScalar(str.c_str(), val);
+}
+
+Scalar ScalarRead(Istream& is);
+Istream& operator>>(Istream& is, Scalar& val);
+Ostream& operator<<(Ostream& os, const Scalar val);
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Standard C++ transcendental functions
transFunc(sqrt)
@@ -344,8 +370,8 @@ inline Scalar cmptMag(const Scalar s)
inline Scalar sqrtSumSqr(const Scalar a, const Scalar b)
{
- Scalar maga = mag(a);
- Scalar magb = mag(b);
+ const Scalar maga = mag(a);
+ const Scalar magb = mag(b);
if (maga > magb)
{
@@ -372,12 +398,6 @@ inline Scalar stabilise(const Scalar s, const Scalar small)
}
-// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-
-Scalar readScalar(Istream&);
-Istream& operator>>(Istream&, Scalar&);
-Ostream& operator<<(Ostream&, const Scalar);
-
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
diff --git a/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.C b/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.C
index 378b7d592a..da73874c63 100644
--- a/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.C
+++ b/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,24 +24,32 @@ License
\*---------------------------------------------------------------------------*/
#include "doubleScalar.H"
+#include "error.H"
+#include "parsing.H"
#include "IOstreams.H"
#include
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// Scalar.C is used for template-like substitution
+
#define Scalar doubleScalar
#define ScalarVGREAT doubleScalarVGREAT
#define ScalarVSMALL doubleScalarVSMALL
#define ScalarROOTVGREAT doubleScalarROOTVGREAT
#define ScalarROOTVSMALL doubleScalarROOTVSMALL
-#define readScalar readDoubleScalar
+#define ScalarRead readDouble
+#define ScalarConvert ::strtod
+
#include "Scalar.C"
+
#undef Scalar
#undef ScalarVGREAT
#undef ScalarVSMALL
#undef ScalarROOTVGREAT
#undef ScalarROOTVSMALL
-#undef readScalar
+#undef ScalarRead
+#undef ScalarConvert
// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.H b/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.H
index 3089947853..b7a0b8fd56 100644
--- a/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.H
+++ b/src/OpenFOAM/primitives/Scalar/doubleScalar/doubleScalar.H
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -25,7 +25,7 @@ Typedef
Foam::doubleScalar
Description
- Double precision floating point scalar type.
+ Floating-point double precision scalar type.
SourceFiles
doubleScalar.C
@@ -59,48 +59,20 @@ static const doubleScalar doubleScalarROOTSMALL = 3.0e-8;
static const doubleScalar doubleScalarVSMALL = 1.0e-300;
static const doubleScalar doubleScalarROOTVSMALL = 1.0e-150;
-//- Read whole of buf as a scalar. Return true if succesful.
-inline bool readScalar(const char* buf, doubleScalar& s)
-{
- char* endPtr;
- s = strtod(buf, &endPtr);
-
- return (*endPtr == '\0');
-}
#define Scalar doubleScalar
#define ScalarVGREAT doubleScalarVGREAT
#define ScalarVSMALL doubleScalarVSMALL
#define ScalarROOTVGREAT doubleScalarROOTVGREAT
#define ScalarROOTVSMALL doubleScalarROOTVSMALL
-#define readScalar readDoubleScalar
+#define ScalarRead readDouble
+
inline Scalar mag(const Scalar s)
{
return ::fabs(s);
}
-#define transFunc(func) \
-inline Scalar func(const Scalar s) \
-{ \
- return ::func(s); \
-}
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "Scalar.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
inline Scalar hypot(const Scalar x, const Scalar y)
{
return ::hypot(x, y);
@@ -121,19 +93,30 @@ inline Scalar yn(const int n, const Scalar s)
return ::yn(n, s);
}
-#undef Scalar
-#undef ScalarVGREAT
-#undef ScalarVSMALL
-#undef ScalarROOTVGREAT
-#undef ScalarROOTVSMALL
-#undef readScalar
-#undef transFunc
-
+// Normal (double-precision) transcendental functions
+#define transFunc(func) \
+inline Scalar func(const Scalar s) \
+{ \
+ return ::func(s); \
+}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "Scalar.H"
+
+#undef Scalar
+#undef ScalarVGREAT
+#undef ScalarVSMALL
+#undef ScalarROOTVGREAT
+#undef ScalarROOTVSMALL
+#undef ScalarRead
+#undef transFunc
+
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
diff --git a/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.C b/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.C
index dec0b215d3..94d40441f7 100644
--- a/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.C
+++ b/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,24 +24,32 @@ License
\*---------------------------------------------------------------------------*/
#include "floatScalar.H"
+#include "error.H"
+#include "parsing.H"
#include "IOstreams.H"
#include
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// Scalar.C is used for template-like substitution
+
#define Scalar floatScalar
#define ScalarVGREAT floatScalarVGREAT
#define ScalarVSMALL floatScalarVSMALL
#define ScalarROOTVGREAT floatScalarROOTVGREAT
#define ScalarROOTVSMALL floatScalarROOTVSMALL
-#define readScalar readFloatScalar
+#define ScalarRead readFloat
+#define ScalarConvert ::strtof
+
#include "Scalar.C"
+
#undef Scalar
-#undef ScalarVSMALL
+#undef ScalarVGREAT
#undef ScalarVSMALL
#undef ScalarROOTVGREAT
#undef ScalarROOTVSMALL
-#undef readScalar
+#undef ScalarRead
+#undef ScalarConvert
// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.H b/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.H
index 1cfb728a23..07c8a4aa66 100644
--- a/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.H
+++ b/src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.H
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -25,7 +25,7 @@ Typedef
Foam::floatScalar
Description
- Float precision floating point scalar type.
+ Floating-point single precision scalar type.
SourceFiles
floatScalar.C
@@ -48,7 +48,7 @@ namespace Foam
typedef float floatScalar;
-// Largest and smallest scalar values allowed in certain parts of the code
+// Largest and smallest scalar values allowed in certain parts of the code.
// (6 is the number of significant figures in an
// IEEE single precision number. See limits.h or float.h)
static const floatScalar floatScalarGREAT = 1.0e+6;
@@ -59,48 +59,20 @@ static const floatScalar floatScalarROOTSMALL = 1.0e-3;
static const floatScalar floatScalarVSMALL = 1.0e-37;
static const floatScalar floatScalarROOTVSMALL = 1.0e-18;
-//- Read whole of buf as a scalar. Return true if succesful.
-inline bool readScalar(const char* buf, floatScalar& s)
-{
- char* endPtr;
- s = strtof(buf, &endPtr);
-
- return (*endPtr == '\0');
-}
#define Scalar floatScalar
#define ScalarVGREAT floatScalarVGREAT
#define ScalarVSMALL floatScalarVSMALL
#define ScalarROOTVGREAT floatScalarROOTVGREAT
#define ScalarROOTVSMALL floatScalarROOTVSMALL
-#define readScalar readFloatScalar
+#define ScalarRead readFloat
+
inline Scalar mag(const Scalar s)
{
return ::fabsf(s);
}
-#define transFunc(func) \
-inline Scalar func(const Scalar s) \
-{ \
- return ::func##f(s); \
-}
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#include "Scalar.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
inline Scalar hypot(const Scalar x, const Scalar y)
{
return ::hypotf(x, y);
@@ -121,19 +93,30 @@ inline Scalar yn(const int n, const Scalar s)
return ::ynf(n, s);
}
-#undef Scalar
-#undef ScalarVGREAT
-#undef ScalarVSMALL
-#undef ScalarROOTVGREAT
-#undef ScalarROOTVSMALL
-#undef readScalar
-#undef transFunc
-
+// Single-precision transcendental functions (with 'f' appended to the name)
+#define transFunc(func) \
+inline Scalar func(const Scalar s) \
+{ \
+ return ::func##f(s); \
+}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "Scalar.H"
+
+#undef Scalar
+#undef ScalarVGREAT
+#undef ScalarVSMALL
+#undef ScalarROOTVGREAT
+#undef ScalarROOTVSMALL
+#undef ScalarRead
+#undef transFunc
+
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
diff --git a/src/OpenFOAM/primitives/Scalar/scalar/scalar.C b/src/OpenFOAM/primitives/Scalar/scalar/scalar.C
index 4b9748979a..a863db21e2 100644
--- a/src/OpenFOAM/primitives/Scalar/scalar/scalar.C
+++ b/src/OpenFOAM/primitives/Scalar/scalar/scalar.C
@@ -24,24 +24,17 @@ License
\*---------------------------------------------------------------------------*/
#include "scalar.H"
+#include "IOstreams.H"
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-namespace Foam
+Foam::scalar Foam::readScalar(Istream& is)
{
+ scalar val;
+ is >> val;
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-scalar readScalar(Istream& is)
-{
- scalar rs;
- is >> rs;
-
- return rs;
+ return val;
}
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/Scalar/scalar/scalar.H b/src/OpenFOAM/primitives/Scalar/scalar/scalar.H
index 7c7c00cefc..e705dc8550 100644
--- a/src/OpenFOAM/primitives/Scalar/scalar/scalar.H
+++ b/src/OpenFOAM/primitives/Scalar/scalar/scalar.H
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -25,7 +25,7 @@ Typedef
Foam::scalar
Description
- Single floating point number identical to float or double depending on
+ A floating-point number identical to float or double depending on
whether WM_SP or WM_DP is defined.
SourceFiles
@@ -58,6 +58,11 @@ namespace Foam
static const scalar ROOTVSMALL = floatScalarROOTVSMALL;
scalar readScalar(Istream& is);
+
+ inline scalar readScalar(const std::string& str)
+ {
+ return readFloat(str);
+ }
}
#elif defined(WM_DP)
@@ -77,6 +82,11 @@ namespace Foam
static const scalar ROOTVSMALL = doubleScalarROOTVSMALL;
scalar readScalar(Istream& is);
+
+ inline scalar readScalar(const std::string& str)
+ {
+ return readDouble(str);
+ }
}
#endif
diff --git a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
index 1ddf2cc1ca..4ddc9123dc 100644
--- a/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
+++ b/src/OpenFOAM/primitives/functions/Function1/CSV/CSV.C
@@ -43,7 +43,7 @@ Foam::label Foam::Function1Types::CSV::readValue
<< exit(FatalError);
}
- return readLabel(IStringStream(splitted[componentColumns_[0]])());
+ return readLabel(splitted[componentColumns_[0]]);
}
@@ -61,7 +61,7 @@ Foam::scalar Foam::Function1Types::CSV::readValue
<< exit(FatalError);
}
- return readScalar(IStringStream(splitted[componentColumns_[0]])());
+ return readScalar(splitted[componentColumns_[0]]);
}
@@ -70,18 +70,17 @@ Type Foam::Function1Types::CSV::readValue(const List& splitted)
{
Type result;
- for (label i = 0; i < pTraits::nComponents; i++)
+ for (label i = 0; i < pTraits::nComponents; ++i)
{
if (componentColumns_[i] >= splitted.size())
{
FatalErrorInFunction
- << "No column " << componentColumns_[i] << " in "
+ << "No column " << componentColumns_[i] << " in "
<< splitted << endl
<< exit(FatalError);
}
- result[i] =
- readScalar(IStringStream(splitted[componentColumns_[i]])());
+ result[i] = readScalar(splitted[componentColumns_[i]]);
}
return result;
@@ -189,7 +188,7 @@ void Foam::Function1Types::CSV::read()
break;
}
- scalar x = readScalar(IStringStream(splitted[refColumn_])());
+ scalar x = readScalar(splitted[refColumn_]);
Type value = readValue(splitted);
values.append(Tuple2(x, value));
diff --git a/src/OpenFOAM/primitives/ints/int/int.H b/src/OpenFOAM/primitives/ints/int/int.H
index a3ab4b5ac1..aa865c3f39 100644
--- a/src/OpenFOAM/primitives/ints/int/int.H
+++ b/src/OpenFOAM/primitives/ints/int/int.H
@@ -25,7 +25,7 @@ Primitive
int
Description
- System integer
+ System signed integer
SourceFiles
intIO.C
@@ -67,7 +67,30 @@ MAXMIN(int64_t, int64_t, int64_t)
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-int readInt(Istream&);
+//- Read int from stream
+int readInt(Istream& is);
+
+//- Parse entire buffer as an int, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+int readInt(const char* buf);
+
+//- Parse entire string as an int, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+inline int readInt(const std::string& str)
+{
+ return readInt(str.c_str());
+}
+
+//- Read entire buffer as an int, skipping leading/trailing whitespace.
+// \return True if successful.
+bool readInt(const char* buf, int& val);
+
+//- Read entire string as an int32_t, skipping leading/trailing whitespace.
+// \return True if successful.
+inline bool readInt(const std::string& str, int& val)
+{
+ return readInt(str.c_str(), val);
+}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/primitives/ints/int/intIO.C b/src/OpenFOAM/primitives/ints/int/intIO.C
index 9250e37313..6a2901aefb 100644
--- a/src/OpenFOAM/primitives/ints/int/intIO.C
+++ b/src/OpenFOAM/primitives/ints/int/intIO.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,10 +24,68 @@ License
\*---------------------------------------------------------------------------*/
#include "int.H"
+#include "error.H"
+#include "parsing.H"
#include "IOstreams.H"
+#include
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
+int Foam::readInt(const char* buf)
+{
+ char *endptr = nullptr;
+ errno = 0;
+ const intmax_t parsed = ::strtoimax(buf, &endptr, 10);
+
+ const int val = int(parsed);
+
+ if (parsed < INT_MIN || parsed > INT_MAX)
+ {
+ // Range error
+ errno = ERANGE;
+ }
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ FatalIOErrorInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << exit(FatalIOError);
+ }
+
+ return val;
+}
+
+
+bool Foam::readInt(const char* buf, int& val)
+{
+ char *endptr = nullptr;
+ errno = 0;
+ const intmax_t parsed = ::strtoimax(buf, &endptr, 10);
+
+ val = int(parsed);
+
+ if (parsed < INT_MIN || parsed > INT_MAX)
+ {
+ // Range error
+ errno = ERANGE;
+ }
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ #ifdef FULLDEBUG
+ IOWarningInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << endl;
+ #endif
+ return false;
+ }
+
+ return true;
+}
+
+
int Foam::readInt(Istream& is)
{
int val;
diff --git a/src/OpenFOAM/primitives/ints/int32/int32.C b/src/OpenFOAM/primitives/ints/int32/int32.C
index 4a209fc50b..daa14a004e 100644
--- a/src/OpenFOAM/primitives/ints/int32/int32.C
+++ b/src/OpenFOAM/primitives/ints/int32/int32.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,6 +24,21 @@ License
\*---------------------------------------------------------------------------*/
#include "int32.H"
+#include "stringOps.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Foam::word Foam::name(const char* fmt, const int32_t val)
+{
+ return stringOps::name(fmt, val);
+}
+
+
+Foam::word Foam::name(const std::string& fmt, const int32_t val)
+{
+ return stringOps::name(fmt, val);
+}
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -36,9 +51,9 @@ const int32_t Foam::pTraits::rootMax = pTraits::max;
const char* const Foam::pTraits::componentNames[] = { "" };
-Foam::pTraits::pTraits(const int32_t& p)
+Foam::pTraits::pTraits(const int32_t& val)
:
- p_(p)
+ p_(val)
{}
Foam::pTraits::pTraits(Istream& is)
diff --git a/src/OpenFOAM/primitives/ints/int32/int32.H b/src/OpenFOAM/primitives/ints/int32/int32.H
index 62ae4b7af7..3e883827fb 100644
--- a/src/OpenFOAM/primitives/ints/int32/int32.H
+++ b/src/OpenFOAM/primitives/ints/int32/int32.H
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
+ \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -22,10 +22,10 @@ License
along with OpenFOAM. If not, see .
Primitive
- int32
+ int32_t
Description
- 32bit integer
+ 32bit signed integer
SourceFiles
int32.C
@@ -57,34 +57,72 @@ class Ostream;
//- Return a word representation of an int32
inline word name(const int32_t val)
{
- // no stripping required
+ // No stripping required
return word(std::to_string(val), false);
}
//- Return a word representation of an int32, using printf-style formatter.
// The representation is not checked for valid word characters.
-word name(const char* fmt, const int32_t);
+word name(const char* fmt, const int32_t val);
//- Return a word representation of an int32, using printf-style formatter.
// The representation is not checked for valid word characters.
-word name(const std::string&, const int32_t);
+word name(const std::string&, const int32_t val);
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-int32_t readInt32(Istream&);
-bool read(const char*, int32_t&);
-Istream& operator>>(Istream&, int32_t&);
-Ostream& operator<<(Ostream&, const int32_t);
+//- Read int32_t from stream
+int32_t readInt32(Istream& is);
+
+//- Parse entire buffer as a int32_t, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+int32_t readInt32(const char* buf);
+
+//- Parse entire string as a int32_t, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+inline int32_t readInt32(const std::string& str)
+{
+ return readInt32(str.c_str());
+}
+
+//- Read entire buffer as a int32_t, skipping leading/trailing whitespace.
+// \return True if successful.
+bool readInt32(const char* buf, int32_t& val);
+
+//- Read entire string as a int32_t, skipping leading/trailing whitespace.
+// \return True if successful.
+inline bool readInt32(const std::string& str, int32_t& val)
+{
+ return readInt32(str.c_str(), val);
+}
+
+//- Same as readInt32
+// \return True if successful.
+inline bool read(const char* buf, int32_t& val)
+{
+ return readInt32(buf, val);
+}
+
+//- Same as readInt32
+// \return True if successful.
+inline bool read(const std::string& str, int32_t& val)
+{
+ return readInt32(str, val);
+}
+
+
+Istream& operator>>(Istream& is, int32_t& val);
+Ostream& operator<<(Ostream& os, const int32_t val);
// On 32bit OSs long is not unambiguously int32_t (or int64_t) causing problems
// for IO operator resolution.
// This problem is avoided by explicitly defining the following operators:
#if WM_ARCH_OPTION == 32
- Istream& operator>>(Istream&, long&);
- Ostream& operator<<(Ostream&, const long);
+ Istream& operator>>(Istream& is, long& val);
+ Ostream& operator<<(Ostream& os, const long val);
#endif
@@ -127,10 +165,10 @@ public:
// Constructors
//- Construct from primitive
- explicit pTraits(const int32_t&);
+ explicit pTraits(const int32_t& val);
//- Construct from Istream
- pTraits(Istream&);
+ pTraits(Istream& is);
// Member Functions
@@ -149,9 +187,9 @@ public:
};
-inline int32_t mag(const int32_t l)
+inline int32_t mag(const int32_t val)
{
- return ::abs(l);
+ return ::abs(val);
}
diff --git a/src/OpenFOAM/primitives/ints/int32/int32IO.C b/src/OpenFOAM/primitives/ints/int32/int32IO.C
index 0a7f18b6f2..f1b4f23fb0 100644
--- a/src/OpenFOAM/primitives/ints/int32/int32IO.C
+++ b/src/OpenFOAM/primitives/ints/int32/int32IO.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
+ \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,29 +24,69 @@ License
\*---------------------------------------------------------------------------*/
#include "int32.H"
-#include "stringOps.H"
+#include "error.H"
+#include "parsing.H"
#include "IOstreams.H"
-
-#include
-#include
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-Foam::word Foam::name(const char* fmt, const int32_t val)
-{
- return stringOps::name(fmt, val);
-}
-
-
-Foam::word Foam::name(const std::string& fmt, const int32_t val)
-{
- return stringOps::name(fmt, val);
-}
-
+#include
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-Foam::Istream& Foam::operator>>(Istream& is, int32_t& i)
+int32_t Foam::readInt32(const char* buf)
+{
+ char *endptr = nullptr;
+ errno = 0;
+ const intmax_t parsed = ::strtoimax(buf, &endptr, 10);
+
+ const int32_t val = int32_t(parsed);
+
+ if (parsed < INT32_MIN || parsed > INT32_MAX)
+ {
+ // Range error
+ errno = ERANGE;
+ }
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ FatalIOErrorInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << exit(FatalIOError);
+ }
+
+ return val;
+}
+
+
+bool Foam::readInt32(const char* buf, int32_t& val)
+{
+ char *endptr = nullptr;
+ errno = 0;
+ const intmax_t parsed = ::strtoimax(buf, &endptr, 10);
+
+ val = int32_t(parsed);
+
+ if (parsed < INT32_MIN || parsed > INT32_MAX)
+ {
+ // Range error
+ errno = ERANGE;
+ }
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ #ifdef FULLDEBUG
+ IOWarningInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << endl;
+ #endif
+ return false;
+ }
+
+ return true;
+}
+
+
+Foam::Istream& Foam::operator>>(Istream& is, int32_t& val)
{
token t(is);
@@ -58,7 +98,7 @@ Foam::Istream& Foam::operator>>(Istream& is, int32_t& i)
if (t.isLabel())
{
- i = int32_t(t.labelToken());
+ val = int32_t(t.labelToken());
}
else
{
@@ -84,35 +124,23 @@ int32_t Foam::readInt32(Istream& is)
}
-bool Foam::read(const char* buf, int32_t& s)
+Foam::Ostream& Foam::operator<<(Ostream& os, const int32_t val)
{
- char *endptr = nullptr;
- errno = 0;
- intmax_t l = strtoimax(buf, &endptr, 10);
- s = int32_t(l);
- return
- (*endptr == 0) && (errno == 0)
- && (l >= INT32_MIN) && (l <= INT32_MAX);
-}
-
-
-Foam::Ostream& Foam::operator<<(Ostream& os, const int32_t i)
-{
- os.write(label(i));
+ os.write(label(val));
os.check(FUNCTION_NAME);
return os;
}
#if WM_ARCH_OPTION == 32
-Foam::Istream& Foam::operator>>(Istream& is, long& i)
+Foam::Istream& Foam::operator>>(Istream& is, long& val)
{
- return operator>>(is, reinterpret_cast(i));
+ return operator>>(is, reinterpret_cast(val));
}
-Foam::Ostream& Foam::operator<<(Ostream& os, const long i)
+Foam::Ostream& Foam::operator<<(Ostream& os, const long val)
{
- os << int32_t(i);
+ os << int32_t(val);
return os;
}
#endif
diff --git a/src/OpenFOAM/primitives/ints/int64/int64.C b/src/OpenFOAM/primitives/ints/int64/int64.C
index f182c9d276..ecc1eb3731 100644
--- a/src/OpenFOAM/primitives/ints/int64/int64.C
+++ b/src/OpenFOAM/primitives/ints/int64/int64.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,6 +24,21 @@ License
\*---------------------------------------------------------------------------*/
#include "int64.H"
+#include "stringOps.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Foam::word Foam::name(const char* fmt, const int64_t val)
+{
+ return stringOps::name(fmt, val);
+}
+
+
+Foam::word Foam::name(const std::string& fmt, const int64_t val)
+{
+ return stringOps::name(fmt, val);
+}
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -36,9 +51,9 @@ const int64_t Foam::pTraits::rootMax = pTraits::max;
const char* const Foam::pTraits::componentNames[] = { "" };
-Foam::pTraits::pTraits(const int64_t& p)
+Foam::pTraits::pTraits(const int64_t& val)
:
- p_(p)
+ p_(val)
{}
Foam::pTraits::pTraits(Istream& is)
diff --git a/src/OpenFOAM/primitives/ints/int64/int64.H b/src/OpenFOAM/primitives/ints/int64/int64.H
index addb637a77..8c53bbe443 100644
--- a/src/OpenFOAM/primitives/ints/int64/int64.H
+++ b/src/OpenFOAM/primitives/ints/int64/int64.H
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
+ \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -22,10 +22,10 @@ License
along with OpenFOAM. If not, see .
Primitive
- int64
+ int64_t
Description
- 64bit integer
+ 64bit signed integer
SourceFiles
int64.C
@@ -58,7 +58,7 @@ class Ostream;
//- Return a word representation of an int64
inline word name(const int64_t val)
{
- // no stripping required
+ // No stripping required
return word(std::to_string(val), false);
}
@@ -75,10 +75,48 @@ word name(const std::string& fmt, const int64_t);
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-int64_t readInt64(Istream&);
-bool read(const char*, int64_t&);
-Istream& operator>>(Istream&, int64_t&);
-Ostream& operator<<(Ostream&, const int64_t);
+//- Read int64_t from stream
+int64_t readInt64(Istream& is);
+
+//- Parse entire buffer as a int64_t, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+int64_t readInt64(const char* buf);
+
+//- Parse entire string as a int64_t, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+inline int64_t readInt64(const std::string& str)
+{
+ return readInt64(str.c_str());
+}
+
+//- Read entire buffer as a int64_t, skipping leading/trailing whitespace.
+// \return True if successful.
+bool readInt64(const char* buf, int64_t& val);
+
+//- Read entire string as a int64_t, skipping leading/trailing whitespace.
+// \return True if successful.
+inline bool readInt64(const std::string& str, int64_t& val)
+{
+ return readInt64(str.c_str(), val);
+}
+
+//- Same as readInt64
+// \return True if successful.
+inline bool read(const char* buf, int64_t& val)
+{
+ return readInt64(buf, val);
+}
+
+//- Same as readInt64
+// \return True if successful.
+inline bool read(const std::string& str, int64_t& val)
+{
+ return readInt64(str, val);
+}
+
+
+Istream& operator>>(Istream& is, int64_t& val);
+Ostream& operator<<(Ostream& os, const int64_t val);
//- Template specialization for pTraits
template<>
@@ -119,10 +157,10 @@ public:
// Constructors
//- Construct from primitive
- explicit pTraits(const int64_t&);
+ explicit pTraits(const int64_t& val);
//- Construct from Istream
- pTraits(Istream&);
+ pTraits(Istream& is);
// Member Functions
@@ -141,9 +179,9 @@ public:
};
-inline int64_t mag(const int64_t l)
+inline int64_t mag(const int64_t val)
{
- return ::labs(l);
+ return ::labs(val);
}
diff --git a/src/OpenFOAM/primitives/ints/int64/int64IO.C b/src/OpenFOAM/primitives/ints/int64/int64IO.C
index 19d93bf8a8..d16d979d6f 100644
--- a/src/OpenFOAM/primitives/ints/int64/int64IO.C
+++ b/src/OpenFOAM/primitives/ints/int64/int64IO.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,29 +24,69 @@ License
\*---------------------------------------------------------------------------*/
#include "int64.H"
-#include "stringOps.H"
+#include "error.H"
+#include "parsing.H"
#include "IOstreams.H"
-
-#include
-#include
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-Foam::word Foam::name(const char* fmt, const int64_t val)
-{
- return stringOps::name(fmt, val);
-}
-
-
-Foam::word Foam::name(const std::string& fmt, const int64_t val)
-{
- return stringOps::name(fmt, val);
-}
-
+#include
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-Foam::Istream& Foam::operator>>(Istream& is, int64_t& i)
+int64_t Foam::readInt64(const char* buf)
+{
+ char *endptr = nullptr;
+ errno = 0;
+ const intmax_t parsed = ::strtoimax(buf, &endptr, 10);
+
+ const int64_t val = int64_t(parsed);
+
+ if (parsed < INT64_MIN || parsed > INT64_MAX)
+ {
+ // Range error
+ errno = ERANGE;
+ }
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ FatalIOErrorInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << exit(FatalIOError);
+ }
+
+ return val;
+}
+
+
+bool Foam::readInt64(const char* buf, int64_t& val)
+{
+ char *endptr = nullptr;
+ errno = 0;
+ const intmax_t parsed = ::strtoimax(buf, &endptr, 10);
+
+ val = int64_t(parsed);
+
+ if (parsed < INT64_MIN || parsed > INT64_MAX)
+ {
+ // Range error
+ errno = ERANGE;
+ }
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ #ifdef FULLDEBUG
+ IOWarningInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << endl;
+ #endif
+ return false;
+ }
+
+ return true;
+}
+
+
+Foam::Istream& Foam::operator>>(Istream& is, int64_t& val)
{
token t(is);
@@ -58,7 +98,7 @@ Foam::Istream& Foam::operator>>(Istream& is, int64_t& i)
if (t.isLabel())
{
- i = int64_t(t.labelToken());
+ val = int64_t(t.labelToken());
}
else
{
@@ -84,19 +124,9 @@ int64_t Foam::readInt64(Istream& is)
}
-bool Foam::read(const char* buf, int64_t& s)
+Foam::Ostream& Foam::operator<<(Ostream& os, const int64_t val)
{
- char *endptr = nullptr;
- errno = 0;
- intmax_t l = strtoimax(buf, &endptr, 10);
- s = int64_t(l);
- return (*endptr == 0) && (errno == 0);
-}
-
-
-Foam::Ostream& Foam::operator<<(Ostream& os, const int64_t i)
-{
- os.write(label(i));
+ os.write(label(val));
os.check(FUNCTION_NAME);
return os;
}
diff --git a/src/OpenFOAM/primitives/ints/label/label.H b/src/OpenFOAM/primitives/ints/label/label.H
index 846803d081..08b4d1ff39 100644
--- a/src/OpenFOAM/primitives/ints/label/label.H
+++ b/src/OpenFOAM/primitives/ints/label/label.H
@@ -61,11 +61,45 @@ typedef INT_SIZE(int, _t) label;
static const label labelMin = INT_SIZE(INT, _MIN);
static const label labelMax = INT_SIZE(INT, _MAX);
+//- Read label from stream.
+// Uses readInt32 or readInt64 according to WM_LABEL_SIZE
inline label readLabel(Istream& is)
{
return INT_SIZE(readInt,) (is);
}
+//- Parse entire buffer as a label, skipping leading/trailing whitespace.
+// Uses readInt32 or readInt64 according to WM_LABEL_SIZE
+// \return Parsed value or FatalIOError on any problem
+inline label readLabel(const char* buf)
+{
+ return INT_SIZE(readInt,) (buf);
+}
+
+//- Parse entire string as a label, skipping leading/trailing whitespace.
+// Uses readInt32 or readInt64 according to WM_LABEL_SIZE
+// \return Parsed value or FatalIOError on any problem
+inline label readLabel(const std::string& str)
+{
+ return INT_SIZE(readInt,) (str);
+}
+
+//- Parse entire buffer as a label, skipping leading/trailing whitespace.
+// Uses readInt32 or readInt64 according to WM_LABEL_SIZE
+// \return True if successful.
+inline bool readLabel(const char* buf, label& val)
+{
+ return INT_SIZE(readInt,) (buf, val);
+}
+
+//- Parse entire string as a label, skipping leading/trailing whitespace.
+// Uses readInt32 or readInt64 according to WM_LABEL_SIZE
+// \return True if successful.
+inline bool readLabel(const std::string& str, label& val)
+{
+ return INT_SIZE(readInt,) (str, val);
+}
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/primitives/ints/uLabel/uLabel.H b/src/OpenFOAM/primitives/ints/uLabel/uLabel.H
index 0c712fa376..9a8713f733 100644
--- a/src/OpenFOAM/primitives/ints/uLabel/uLabel.H
+++ b/src/OpenFOAM/primitives/ints/uLabel/uLabel.H
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -28,7 +28,7 @@ Description
A uLabel is an uint32_t or uint64_t as specified by the pre-processor macro
WM_LABEL_SIZE.
- A readLabel function is defined so that uLabel can be constructed from
+ A readULabel function is defined so that uLabel can be constructed from
Istream.
\*---------------------------------------------------------------------------*/
@@ -60,11 +60,46 @@ typedef UINT_SIZE(uint, _t) uLabel;
static const uLabel uLabelMax = UINT_SIZE(UINT, _MAX);
+//- Read uLabel from stream.
+// Uses readUint32 or readUint64 according to WM_LABEL_SIZE
inline uLabel readULabel(Istream& is)
{
return UINT_SIZE(readUint,) (is);
}
+//- Parse entire buffer as a uLabel, skipping leading/trailing whitespace.
+// Uses readUint32 or readUint64 according to WM_LABEL_SIZE
+// \return Parsed value or FatalIOError on any problem
+inline uLabel readULabel(const char* buf)
+{
+ return UINT_SIZE(readUint,) (buf);
+}
+
+//- Parse entire string as a uLabel, skipping leading/trailing whitespace.
+// Uses readUint32 or readUint64 according to WM_LABEL_SIZE
+// \return Parsed value or FatalIOError on any problem
+inline uLabel readULabel(const std::string& str)
+{
+ return UINT_SIZE(readUint,) (str);
+}
+
+//- Parse entire buffer as a uLabel, skipping leading/trailing whitespace.
+// Uses readUint32 or readUint64 according to WM_LABEL_SIZE
+// \return True if successful.
+inline bool readULabel(const char* buf, uLabel& val)
+{
+ return UINT_SIZE(readUint,) (buf, val);
+}
+
+
+//- Parse entire string as a uLabel, skipping leading/trailing whitespace.
+// Uses readUint32 or readUint64 according to WM_LABEL_SIZE
+// \return True if successful.
+inline bool readULabel(const std::string& str, uLabel& val)
+{
+ return UINT_SIZE(readUint,) (str, val);
+}
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/primitives/ints/uint/uint.H b/src/OpenFOAM/primitives/ints/uint/uint.H
index ea2430dc35..8234ed996a 100644
--- a/src/OpenFOAM/primitives/ints/uint/uint.H
+++ b/src/OpenFOAM/primitives/ints/uint/uint.H
@@ -25,7 +25,7 @@ Primitive
uint
Description
- System uinteger
+ System unsigned integer
SourceFiles
uintIO.C
@@ -67,7 +67,8 @@ MAXMIN(uint64_t, uint64_t, uint64_t)
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-unsigned int readUint(Istream&);
+//- Read unsigned int from stream
+unsigned int readUint(Istream& is);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/OpenFOAM/primitives/ints/uint32/uint32.C b/src/OpenFOAM/primitives/ints/uint32/uint32.C
index 2fec72846d..16fd477ea6 100644
--- a/src/OpenFOAM/primitives/ints/uint32/uint32.C
+++ b/src/OpenFOAM/primitives/ints/uint32/uint32.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,6 +24,21 @@ License
\*---------------------------------------------------------------------------*/
#include "uint32.H"
+#include "stringOps.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Foam::word Foam::name(const char* fmt, const uint32_t val)
+{
+ return stringOps::name(fmt, val);
+}
+
+
+Foam::word Foam::name(const std::string& fmt, const uint32_t val)
+{
+ return stringOps::name(fmt, val);
+}
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -36,9 +51,9 @@ const uint32_t Foam::pTraits::rootMax = pTraits::max;
const char* const Foam::pTraits::componentNames[] = { "" };
-Foam::pTraits::pTraits(const uint32_t& p)
+Foam::pTraits::pTraits(const uint32_t& val)
:
- p_(p)
+ p_(val)
{}
Foam::pTraits::pTraits(Istream& is)
diff --git a/src/OpenFOAM/primitives/ints/uint32/uint32.H b/src/OpenFOAM/primitives/ints/uint32/uint32.H
index 72707d30da..d7b7c1b41d 100644
--- a/src/OpenFOAM/primitives/ints/uint32/uint32.H
+++ b/src/OpenFOAM/primitives/ints/uint32/uint32.H
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
+ \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -22,10 +22,10 @@ License
along with OpenFOAM. If not, see .
Primitive
- uint32
+ uint32_t
Description
- 32bit uinteger
+ 32bit unsigned integer
SourceFiles
uint32.C
@@ -57,7 +57,7 @@ class Ostream;
//- Return a word representation of a uint32
inline word name(const uint32_t val)
{
- // no stripping required
+ // No stripping required
return word(std::to_string(val), false);
}
@@ -74,10 +74,48 @@ word name(const std::string& fmt, const uint32_t);
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-uint32_t readUint32(Istream&);
-bool read(const char*, uint32_t&);
-Istream& operator>>(Istream&, uint32_t&);
-Ostream& operator<<(Ostream&, const uint32_t);
+//- Read uint32_t from stream
+uint32_t readUint32(Istream& is);
+
+//- Parse entire buffer as a uint32_t, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+uint32_t readUint32(const char* buf);
+
+//- Parse entire string as a uint32_t, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+inline uint32_t readUint32(const std::string& str)
+{
+ return readUint32(str.c_str());
+}
+
+//- Read entire buffer as a uint32_t, skipping leading/trailing whitespace.
+// \return True if successful.
+bool readUint32(const char* buf, uint32_t& val);
+
+//- Read entire string as a uint32_t, skipping leading/trailing whitespace.
+// \return True if successful.
+inline bool readUint32(const std::string& str, uint32_t& val)
+{
+ return readUint32(str.c_str(), val);
+}
+
+//- Same as readUint32
+// \return True if successful.
+inline bool read(const char* buf, uint32_t& val)
+{
+ return readUint32(buf, val);
+}
+
+//- Same as readUint32
+// \return True if successful.
+inline bool read(const std::string& str, uint32_t& val)
+{
+ return readUint32(str, val);
+}
+
+
+Istream& operator>>(Istream& is, uint32_t& val);
+Ostream& operator<<(Ostream& os, const uint32_t val);
//- Template specialization for pTraits
template<>
@@ -118,10 +156,10 @@ public:
// Constructors
//- Construct from primitive
- explicit pTraits(const uint32_t&);
+ explicit pTraits(const uint32_t& val);
//- Construct from Istream
- pTraits(Istream&);
+ pTraits(Istream& is);
// Member Functions
diff --git a/src/OpenFOAM/primitives/ints/uint32/uint32IO.C b/src/OpenFOAM/primitives/ints/uint32/uint32IO.C
index 240c1029a8..bf4e6fb8a0 100644
--- a/src/OpenFOAM/primitives/ints/uint32/uint32IO.C
+++ b/src/OpenFOAM/primitives/ints/uint32/uint32IO.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,26 +24,68 @@ License
\*---------------------------------------------------------------------------*/
#include "uint32.H"
-#include "stringOps.H"
+#include "parsing.H"
#include "IOstreams.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-Foam::word Foam::name(const char* fmt, const uint32_t val)
-{
- return stringOps::name(fmt, val);
-}
-
-
-Foam::word Foam::name(const std::string& fmt, const uint32_t val)
-{
- return stringOps::name(fmt, val);
-}
-
+#include
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-Foam::Istream& Foam::operator>>(Istream& is, uint32_t& i)
+uint32_t Foam::readUint32(const char* buf)
+{
+ char *endptr = nullptr;
+ errno = 0;
+ const uintmax_t parsed = ::strtoumax(buf, &endptr, 10);
+
+ const uint32_t val = uint32_t(parsed);
+
+ if (parsed > UINT32_MAX)
+ {
+ // Range error
+ errno = ERANGE;
+ }
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ FatalIOErrorInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << exit(FatalIOError);
+ }
+
+ return val;
+}
+
+
+bool Foam::readUint32(const char* buf, uint32_t& val)
+{
+ char *endptr = nullptr;
+ errno = 0;
+ const uintmax_t parsed = ::strtoumax(buf, &endptr, 10);
+
+ val = uint32_t(parsed);
+
+ if (parsed > UINT32_MAX)
+ {
+ // Range error
+ errno = ERANGE;
+ }
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ #ifdef FULLDEBUG
+ IOWarningInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << endl;
+ #endif
+ return false;
+ }
+
+ return true;
+}
+
+
+Foam::Istream& Foam::operator>>(Istream& is, uint32_t& val)
{
token t(is);
@@ -55,7 +97,7 @@ Foam::Istream& Foam::operator>>(Istream& is, uint32_t& i)
if (t.isLabel())
{
- i = uint32_t(t.labelToken());
+ val = uint32_t(t.labelToken());
}
else
{
@@ -81,18 +123,9 @@ uint32_t Foam::readUint32(Istream& is)
}
-bool Foam::read(const char* buf, uint32_t& s)
+Foam::Ostream& Foam::operator<<(Ostream& os, const uint32_t val)
{
- char *endptr = nullptr;
- long l = strtol(buf, &endptr, 10);
- s = uint32_t(l);
- return (*endptr == 0);
-}
-
-
-Foam::Ostream& Foam::operator<<(Ostream& os, const uint32_t i)
-{
- os.write(label(i));
+ os.write(label(val));
os.check(FUNCTION_NAME);
return os;
}
diff --git a/src/OpenFOAM/primitives/ints/uint64/uint64.C b/src/OpenFOAM/primitives/ints/uint64/uint64.C
index b4ca245d25..c154a7f917 100644
--- a/src/OpenFOAM/primitives/ints/uint64/uint64.C
+++ b/src/OpenFOAM/primitives/ints/uint64/uint64.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,6 +24,21 @@ License
\*---------------------------------------------------------------------------*/
#include "uint64.H"
+#include "stringOps.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+Foam::word Foam::name(const char* fmt, const uint64_t val)
+{
+ return stringOps::name(fmt, val);
+}
+
+
+Foam::word Foam::name(const std::string& fmt, const uint64_t val)
+{
+ return stringOps::name(fmt, val);
+}
+
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -36,9 +51,9 @@ const uint64_t Foam::pTraits::rootMax = pTraits::max;
const char* const Foam::pTraits::componentNames[] = { "" };
-Foam::pTraits::pTraits(const uint64_t& p)
+Foam::pTraits::pTraits(const uint64_t& val)
:
- p_(p)
+ p_(val)
{}
Foam::pTraits::pTraits(Istream& is)
diff --git a/src/OpenFOAM/primitives/ints/uint64/uint64.H b/src/OpenFOAM/primitives/ints/uint64/uint64.H
index af79433e3f..fa803f5f54 100644
--- a/src/OpenFOAM/primitives/ints/uint64/uint64.H
+++ b/src/OpenFOAM/primitives/ints/uint64/uint64.H
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
+ \\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -22,10 +22,10 @@ License
along with OpenFOAM. If not, see .
Primitive
- uint64
+ uint64_t
Description
- 64bit uinteger
+ 64bit unsigned integer
SourceFiles
uint64.C
@@ -44,7 +44,6 @@ SourceFiles
#include "pTraits.H"
#include "direction.H"
-
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
@@ -58,7 +57,7 @@ class Ostream;
//- Return a word representation of a uint64
inline word name(const uint64_t val)
{
- // no stripping required
+ // No stripping required
return word(std::to_string(val), false);
}
@@ -75,10 +74,48 @@ word name(const std::string& fmt, const uint64_t);
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-uint64_t readUint64(Istream&);
-bool read(const char*, uint64_t&);
-Istream& operator>>(Istream&, uint64_t&);
-Ostream& operator<<(Ostream&, const uint64_t);
+//- Read uint64_t from stream.
+uint64_t readUint64(Istream& is);
+
+//- Parse entire buffer as uint64_t, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+uint64_t readUint64(const char* buf);
+
+//- Parse entire string as uint64_t, skipping leading/trailing whitespace.
+// \return Parsed value or FatalIOError on any problem
+inline uint64_t readUint64(const std::string& str)
+{
+ return readUint64(str.c_str());
+}
+
+//- Parse entire buffer as uint64_t, skipping leading/trailing whitespace.
+// \return True if successful.
+bool readUint64(const char* buf, uint64_t& val);
+
+//- Parse entire string as uint64_t, skipping leading/trailing whitespace.
+// \return True if successful.
+inline bool readUint64(const std::string& str, uint64_t& val)
+{
+ return readUint64(str.c_str(), val);
+}
+
+//- Same as readUint64
+// \return True if successful.
+inline bool read(const char* buf, uint64_t& val)
+{
+ return readUint64(buf, val);
+}
+
+//- Same as readUint64
+// \return True if successful.
+inline bool read(const std::string& str, uint64_t& val)
+{
+ return readUint64(str, val);
+}
+
+
+Istream& operator>>(Istream& is, uint64_t& val);
+Ostream& operator<<(Ostream& os, const uint64_t val);
//- Template specialization for pTraits
template<>
@@ -119,10 +156,10 @@ public:
// Constructors
//- Construct from primitive
- explicit pTraits(const uint64_t&);
+ explicit pTraits(const uint64_t& val);
//- Construct from Istream
- pTraits(Istream&);
+ pTraits(Istream& is);
// Member Functions
diff --git a/src/OpenFOAM/primitives/ints/uint64/uint64IO.C b/src/OpenFOAM/primitives/ints/uint64/uint64IO.C
index 18eb5ab5f4..2f23b89ddd 100644
--- a/src/OpenFOAM/primitives/ints/uint64/uint64IO.C
+++ b/src/OpenFOAM/primitives/ints/uint64/uint64IO.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,26 +24,68 @@ License
\*---------------------------------------------------------------------------*/
#include "uint64.H"
-#include "stringOps.H"
+#include "parsing.H"
#include "IOstreams.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-Foam::word Foam::name(const char* fmt, const uint64_t val)
-{
- return stringOps::name(fmt, val);
-}
-
-
-Foam::word Foam::name(const std::string& fmt, const uint64_t val)
-{
- return stringOps::name(fmt, val);
-}
-
+#include
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-Foam::Istream& Foam::operator>>(Istream& is, uint64_t& i)
+uint64_t Foam::readUint64(const char* buf)
+{
+ char *endptr = nullptr;
+ errno = 0;
+ const uintmax_t parsed = ::strtoumax(buf, &endptr, 10);
+
+ const uint64_t val = uint64_t(parsed);
+
+ if (parsed > UINT64_MAX)
+ {
+ // Range error
+ errno = ERANGE;
+ }
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ FatalIOErrorInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << exit(FatalIOError);
+ }
+
+ return val;
+}
+
+
+bool Foam::readUint64(const char* buf, uint64_t& val)
+{
+ char *endptr = nullptr;
+ errno = 0;
+ const uintmax_t parsed = ::strtoumax(buf, &endptr, 10);
+
+ val = uint64_t(parsed);
+
+ if (parsed > UINT64_MAX)
+ {
+ // Range error
+ errno = ERANGE;
+ }
+
+ const parsing::errorType err = parsing::checkConversion(buf, endptr);
+ if (err != parsing::errorType::NONE)
+ {
+ #ifdef FULLDEBUG
+ IOWarningInFunction("unknown")
+ << parsing::errorNames[err] << " '" << buf << "'"
+ << endl;
+ #endif
+ return false;
+ }
+
+ return true;
+}
+
+
+Foam::Istream& Foam::operator>>(Istream& is, uint64_t& val)
{
token t(is);
@@ -55,7 +97,7 @@ Foam::Istream& Foam::operator>>(Istream& is, uint64_t& i)
if (t.isLabel())
{
- i = uint64_t(t.labelToken());
+ val = uint64_t(t.labelToken());
}
else
{
@@ -81,18 +123,9 @@ uint64_t Foam::readUint64(Istream& is)
}
-bool Foam::read(const char* buf, uint64_t& s)
+Foam::Ostream& Foam::operator<<(Ostream& os, const uint64_t val)
{
- char *endptr = nullptr;
- long l = strtol(buf, &endptr, 10);
- s = uint64_t(l);
- return (*endptr == 0);
-}
-
-
-Foam::Ostream& Foam::operator<<(Ostream& os, const uint64_t i)
-{
- os.write(label(i));
+ os.write(label(val));
os.check(FUNCTION_NAME);
return os;
}
diff --git a/src/OpenFOAM/primitives/predicates/predicates.H b/src/OpenFOAM/primitives/predicates/predicates.H
index e751c7e957..0d7d8539fa 100644
--- a/src/OpenFOAM/primitives/predicates/predicates.H
+++ b/src/OpenFOAM/primitives/predicates/predicates.H
@@ -72,7 +72,7 @@ public:
return true;
}
- //- Binary predicate returning false
+ //- Binary predicate returning true
template
inline bool operator()(const T1&, const T2&) const
{
diff --git a/src/OpenFOAM/primitives/strings/parsing/parsing.C b/src/OpenFOAM/primitives/strings/parsing/parsing.C
new file mode 100644
index 0000000000..2b81829528
--- /dev/null
+++ b/src/OpenFOAM/primitives/strings/parsing/parsing.C
@@ -0,0 +1,38 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2017 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 "parsing.H"
+
+// * * * * * * * * * * * * * * * * Global Data * * * * * * * * * * * * * * * //
+
+const Foam::Enum
+Foam::parsing::errorNames
+{
+ { errorType::GENERAL, "General error parsing" },
+ { errorType::TRAILING, "Trailing content found parsing" },
+};
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/strings/parsing/parsing.H b/src/OpenFOAM/primitives/strings/parsing/parsing.H
new file mode 100644
index 0000000000..bef3d34f9c
--- /dev/null
+++ b/src/OpenFOAM/primitives/strings/parsing/parsing.H
@@ -0,0 +1,85 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2017 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 .
+
+Namespace
+ Foam::parsing
+
+Description
+ Collection of static functions and data related to parsing
+
+SourceFiles
+ parsing.C
+ parsingI.H
+
+\*---------------------------------------------------------------------------*/
+#ifndef parsing_H
+#define parsing_H
+
+#include "Enum.H"
+#include
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Namespace parsing Declaration
+\*---------------------------------------------------------------------------*/
+
+namespace parsing
+{
+ // Enumerations
+
+ //- Enumeration for possible parsing error
+ enum class errorType
+ {
+ NONE = 0, //!< No error encountered
+ GENERAL = 1, //!< General parsing error
+ TRAILING = 2, //!< Trailing content detected
+ };
+
+
+ //- Strings corresponding to the errorType
+ extern const Foam::Enum errorNames;
+
+ //- Sanity check after strtof, strtod, etc.
+ // Should set errno = 0 prior to the conversion.
+ inline errorType checkConversion(const char* buf, char* endptr);
+
+
+} // End namespace parsing
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "parsingI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/strings/parsing/parsingI.H b/src/OpenFOAM/primitives/strings/parsing/parsingI.H
new file mode 100644
index 0000000000..7f6a4087a1
--- /dev/null
+++ b/src/OpenFOAM/primitives/strings/parsing/parsingI.H
@@ -0,0 +1,55 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2017 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 .
+
+\*---------------------------------------------------------------------------*/
+
+inline Foam::parsing::errorType Foam::parsing::checkConversion
+(
+ const char* buf,
+ char* endptr
+)
+{
+ if (errno || endptr == buf)
+ {
+ // Some type of error OR no conversion
+ return errorType::GENERAL;
+ }
+
+ // Trailing spaces are permitted
+ while (isspace(*endptr))
+ {
+ ++endptr;
+ }
+
+ if (*endptr != '\0')
+ {
+ // Trailing content
+ return errorType::TRAILING;
+ }
+
+ // Valid conversion
+ return errorType::NONE;
+}
+
+
+// ************************************************************************* //
diff --git a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C
index 253b1a0cb0..69e347ecdc 100644
--- a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C
+++ b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C
@@ -118,8 +118,7 @@ Foam::IncompressibleTurbulenceModel::divDevReff
template
Foam::tmp
-Foam::IncompressibleTurbulenceModel::
-devRhoReff() const
+Foam::IncompressibleTurbulenceModel::devRhoReff() const
{
NotImplemented;
@@ -129,8 +128,7 @@ devRhoReff() const
template
Foam::tmp
-Foam::IncompressibleTurbulenceModel::
-divDevRhoReff
+Foam::IncompressibleTurbulenceModel::divDevRhoReff
(
volVectorField& U
) const
@@ -143,8 +141,7 @@ divDevRhoReff
template
Foam::tmp
-Foam::IncompressibleTurbulenceModel::
-divDevRhoReff
+Foam::IncompressibleTurbulenceModel::divDevRhoReff
(
const volScalarField& rho,
volVectorField& U
diff --git a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C
index e281b04d69..fb67a8560a 100644
--- a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C
+++ b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C
@@ -54,7 +54,7 @@ tmp nutUWallFunctionFvPatchScalarField::calcNut() const
const scalarField& nuw = tnuw();
tmp tyPlus = calcYPlus(magUp);
- scalarField& yPlus = tyPlus.ref();
+ const scalarField& yPlus = tyPlus();
tmp tnutw(new scalarField(patch().size(), 0.0));
scalarField& nutw = tnutw.ref();
diff --git a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C
index c88e12919e..7716c66908 100644
--- a/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C
+++ b/src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C
@@ -151,8 +151,7 @@ tmp nutkWallFunctionFvPatchScalarField::yPlus() const
const tmp tk = turbModel.k();
const volScalarField& k = tk();
tmp kwc = k.boundaryField()[patchi].patchInternalField();
- const tmp tnuw = turbModel.nu(patchi);
- const scalarField& nuw = tnuw();
+ tmp nuw = turbModel.nu(patchi);
return pow025(Cmu_)*y*sqrt(kwc)/nuw;
}
diff --git a/src/conversion/ccm/reader/ccmReader.C b/src/conversion/ccm/reader/ccmReader.C
index 78495c4ba5..4db674ed2e 100644
--- a/src/conversion/ccm/reader/ccmReader.C
+++ b/src/conversion/ccm/reader/ccmReader.C
@@ -587,7 +587,8 @@ void Foam::ccm::reader::writeMesh
(
fmt,
IOstream::currentVersion,
- IOstream::UNCOMPRESSED
+ IOstream::UNCOMPRESSED,
+ true
);
writeAux(mesh);
}
diff --git a/src/conversion/ccm/reader/ccmReaderAux.C b/src/conversion/ccm/reader/ccmReaderAux.C
index 717cdd20e8..eead7bb1c9 100644
--- a/src/conversion/ccm/reader/ccmReaderAux.C
+++ b/src/conversion/ccm/reader/ccmReaderAux.C
@@ -174,7 +174,8 @@ void Foam::ccm::reader::writeMeshLabelList
(
fmt,
IOstream::currentVersion,
- IOstream::UNCOMPRESSED
+ IOstream::UNCOMPRESSED,
+ true
);
}
diff --git a/src/conversion/ccm/reader/ccmReaderMesh.C b/src/conversion/ccm/reader/ccmReaderMesh.C
index cd696c8619..089b3f65bb 100644
--- a/src/conversion/ccm/reader/ccmReaderMesh.C
+++ b/src/conversion/ccm/reader/ccmReaderMesh.C
@@ -28,8 +28,7 @@ License
#include "emptyPolyPatch.H"
#include "symmetryPolyPatch.H"
#include "wallPolyPatch.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "IOdictionary.H"
#include "ccmBoundaryInfo.H"
diff --git a/src/fileFormats/coordSet/coordSet.C b/src/fileFormats/coordSet/coordSet.C
index bb311a62ed..56a398131c 100644
--- a/src/fileFormats/coordSet/coordSet.C
+++ b/src/fileFormats/coordSet/coordSet.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -41,6 +41,21 @@ Foam::coordSet::coordFormatNames_
};
+// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
+
+void Foam::coordSet::checkDimensions() const
+{
+ if (size() != curveDist_.size())
+ {
+ FatalErrorInFunction
+ << "Size of points and curve distance must be the same" << nl
+ << " points size : " << size()
+ << " curve size : " << curveDist_.size()
+ << abort(FatalError);
+ }
+}
+
+
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::coordSet::coordSet
@@ -68,49 +83,61 @@ Foam::coordSet::coordSet
name_(name),
axis_(coordFormatNames_[axis]),
curveDist_(curveDist)
-{}
+{
+ checkDimensions();
+}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
bool Foam::coordSet::hasVectorAxis() const
{
- return axis_ == XYZ;
+ return axis_ == coordFormat::XYZ;
}
-Foam::scalar Foam::coordSet::scalarCoord
-(
- const label index
-) const
+Foam::scalar Foam::coordSet::scalarCoord(const label index) const
{
const point& p = operator[](index);
- if (axis_ == X)
+ switch (axis_)
{
- return p.x();
- }
- else if (axis_ == Y)
- {
- return p.y();
- }
- else if (axis_ == Z)
- {
- return p.z();
- }
- else if (axis_ == DISTANCE)
- {
- // Use distance to reference point
- return curveDist_[index];
- }
- else
- {
- FatalErrorInFunction
- << "Illegal axis specification " << axis_
- << " for sampling line " << name_
- << exit(FatalError);
+ case coordFormat::X:
+ {
+ return p.x();
+ }
+ case coordFormat::Y:
+ {
+ return p.y();
+ }
+ case coordFormat::Z:
+ {
+ return p.z();
+ }
+ case coordFormat::DISTANCE:
+ {
+ // Note: If this has been constructed from the 'name' and 'axis'
+ // constructor the curveDist list will not have been set
- return 0;
+ if (curveDist_.empty())
+ {
+ FatalErrorInFunction
+ << "Axis type '" << coordFormatNames_[axis_]
+ << "' requested but curve distance has not been set"
+ << abort(FatalError);
+ }
+
+ return curveDist_[index];
+ }
+ default:
+ {
+ FatalErrorInFunction
+ << "Illegal axis specification '" << coordFormatNames_[axis_]
+ << "' for sampling line " << name_
+ << exit(FatalError);
+
+ return 0;
+ }
}
}
@@ -125,14 +152,14 @@ Foam::point Foam::coordSet::vectorCoord(const label index) const
Foam::Ostream& Foam::coordSet::write(Ostream& os) const
{
- os << "name:" << name_ << " axis:" << axis_
- << endl
- << endl << "\t(coord)"
+ os << "name:" << name_ << " axis:" << coordFormatNames_[axis_]
+ << nl
+ << nl << "\t(coord)"
<< endl;
- forAll(*this, sampleI)
+ for (const point& pt : *this)
{
- os << '\t' << operator[](sampleI) << endl;
+ os << '\t' << pt << endl;
}
return os;
diff --git a/src/fileFormats/coordSet/coordSet.H b/src/fileFormats/coordSet/coordSet.H
index bf764cc143..179e4f2adc 100644
--- a/src/fileFormats/coordSet/coordSet.H
+++ b/src/fileFormats/coordSet/coordSet.H
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -45,7 +45,7 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
- Class coordSet Declaration
+ Class coordSet Declaration
\*---------------------------------------------------------------------------*/
class coordSet
@@ -58,7 +58,7 @@ public:
// Public data types
//- Enumeration defining the output format for coordinates
- enum coordFormat
+ enum class coordFormat
{
XYZ,
X,
@@ -73,6 +73,9 @@ private:
//- String representation of coordFormat enums
static const Enum coordFormatNames_;
+ //- Check for consistent dimensions of points and curve distance
+ void checkDimensions() const;
+
protected:
@@ -91,11 +94,8 @@ public:
// Constructors
//- Construct from components
- coordSet
- (
- const word& name,
- const word& axis
- );
+ // Note: curveDist will be empty
+ coordSet(const word& name, const word& axis);
//- Construct from components
@@ -126,6 +126,13 @@ public:
return curveDist_;
}
+ //- Set cumulative distance
+ void setCurveDist(const scalarList& curveDist)
+ {
+ curveDist_ = curveDist;
+ checkDimensions();
+ }
+
//- Is axis specification a vector
bool hasVectorAxis() const;
@@ -136,6 +143,7 @@ public:
//- Get point according to axis="xyz" specification
vector vectorCoord(const label index) const;
+ //- Write to stream
Ostream& write(Ostream& os) const;
};
diff --git a/src/fileFormats/nas/NASCore.C b/src/fileFormats/nas/NASCore.C
index 705f3e62c0..45fe1f30cc 100644
--- a/src/fileFormats/nas/NASCore.C
+++ b/src/fileFormats/nas/NASCore.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -24,7 +24,55 @@ License
\*---------------------------------------------------------------------------*/
#include "NASCore.H"
-#include "StringStream.H"
+#include "parsing.H"
+
+// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
+
+Foam::scalar Foam::fileFormats::NASCore::readNasScalar(const string& str)
+{
+ const auto signPos = str.find_last_of("+-");
+
+ if
+ (
+ signPos == std::string::npos
+ || signPos == 0
+ || str[signPos-1] == 'E' || str[signPos-1] == 'e'
+ || isspace(str[signPos-1])
+ )
+ {
+ // A normal number format
+ return readScalar(str);
+ }
+
+
+ // Nastran compact number format.
+ // Eg, "1234-2" instead of "1234E-2"
+
+ scalar value = 0;
+ int exponent = 0; // Any integer
+
+ if
+ (
+ readScalar(str.substr(0, signPos), value) // Mantissa
+ && readInt(str.substr(signPos), exponent) // Exponent (with sign)
+ )
+ {
+ // Note: this does not catch underflow/overflow
+ // (especially when scalar is a float)
+ value *= ::pow(10, exponent);
+ }
+ else
+ {
+ FatalIOErrorInFunction("unknown")
+ << parsing::errorNames[parsing::errorType::GENERAL] << str
+ << exit(FatalIOError);
+
+ value = 0;
+ }
+
+ return value;
+}
+
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
@@ -32,36 +80,4 @@ Foam::fileFormats::NASCore::NASCore()
{}
-// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
-
-Foam::scalar Foam::fileFormats::NASCore::parseNASCoord(const string& s)
-{
- scalar value = 0;
-
- const size_t expSign = s.find_last_of("+-");
-
- if (expSign != std::string::npos && expSign > 0 && !isspace(s[expSign-1]))
- {
- scalar exponent = 0;
-
- // Parse as per strtod/strtof - allowing trailing space or [Ee]
- readScalar(s.substr(0, expSign).c_str(), value); // mantissa
- readScalar(s.substr(expSign+1).c_str(), exponent);
-
- if (s[expSign] == '-')
- {
- exponent = -exponent;
- }
-
- value *= ::pow(10, exponent);
- }
- else
- {
- readScalar(s.c_str(), value);
- }
-
- return value;
-}
-
-
// ************************************************************************* //
diff --git a/src/fileFormats/nas/NASCore.H b/src/fileFormats/nas/NASCore.H
index ebe3dabb97..41c6f466cc 100644
--- a/src/fileFormats/nas/NASCore.H
+++ b/src/fileFormats/nas/NASCore.H
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -56,7 +56,14 @@ public:
// Public Member Functions
//- Extract numbers from things like "-2.358-8" (same as "-2.358e-8")
- static scalar parseNASCoord(const string& s);
+ static scalar readNasScalar(const string& str);
+
+ //- Extract numbers from things like "-2.358-8" (same as "-2.358e-8")
+ // \deprecated use readNasScalar instead (deprecated Sep 2017)
+ inline static scalar parseNASCoord(const string& str)
+ {
+ return readNasScalar(str);
+ }
// Constructors
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalInletOutletVelocity/fixedNormalInletOutletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalInletOutletVelocity/fixedNormalInletOutletVelocityFvPatchVectorField.H
index 99d8d4c213..758300a21a 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalInletOutletVelocity/fixedNormalInletOutletVelocityFvPatchVectorField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalInletOutletVelocity/fixedNormalInletOutletVelocityFvPatchVectorField.H
@@ -104,7 +104,9 @@ class fixedNormalInletOutletVelocityFvPatchVectorField
:
public directionMixedFvPatchVectorField
{
- // Private data
+protected:
+
+ // Protected data
//- Flux field name
word phiName_;
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C
index 1f81e6fb63..5d1bce0674 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.C
@@ -29,8 +29,7 @@ License
#include "fvPatchFieldMapper.H"
#include "momentOfInertia.H"
#include "cartesianCS.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "globalIndex.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
diff --git a/src/functionObjects/field/externalCoupled/externalCoupled.C b/src/functionObjects/field/externalCoupled/externalCoupled.C
index 17a2be571d..5f710e3318 100644
--- a/src/functionObjects/field/externalCoupled/externalCoupled.C
+++ b/src/functionObjects/field/externalCoupled/externalCoupled.C
@@ -26,8 +26,7 @@ License
#include "externalCoupled.H"
#include "addToRunTimeSelectionTable.H"
#include "OSspecific.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "volFields.H"
#include "globalIndex.H"
#include "fvMesh.H"
diff --git a/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C b/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C
index 3a4a3633c4..77373bb37e 100644
--- a/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C
+++ b/src/functionObjects/field/externalCoupled/externalCoupledTemplates.C
@@ -26,8 +26,7 @@ License
#include "externalCoupled.H"
//#include "fvMesh.H"
#include "OSspecific.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "volFields.H"
#include "externalCoupledMixedFvPatchFields.H"
#include "mixedFvPatchFields.H"
diff --git a/src/functionObjects/field/wallShearStress/wallShearStress.C b/src/functionObjects/field/wallShearStress/wallShearStress.C
index c90a02ea03..ce8281fa10 100644
--- a/src/functionObjects/field/wallShearStress/wallShearStress.C
+++ b/src/functionObjects/field/wallShearStress/wallShearStress.C
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
- \\/ M anipulation |
+ \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@@ -188,29 +188,22 @@ bool Foam::functionObjects::wallShearStress::read(const dictionary& dict)
bool Foam::functionObjects::wallShearStress::execute()
{
- typedef compressible::turbulenceModel cmpModel;
- typedef incompressible::turbulenceModel icoModel;
-
volVectorField& wallShearStress =
- const_cast
- (
- mesh_.lookupObject(type())
- );
+ mesh_.lookupObjectRef(type());
- tmp Reff;
- if (mesh_.foundObject(turbulenceModel::propertiesName))
+ const word& turbModelName = turbulenceModel::propertiesName;
+ auto cmpModelPtr =
+ mesh_.lookupObjectPtr(turbModelName);
+ auto icoModelPtr =
+ mesh_.lookupObjectPtr(turbModelName);
+
+ if (cmpModelPtr)
{
- const cmpModel& model =
- mesh_.lookupObject(turbulenceModel::propertiesName);
-
- Reff = model.devRhoReff();
+ calcShearStress(cmpModelPtr->devRhoReff(), wallShearStress);
}
- else if (mesh_.foundObject(turbulenceModel::propertiesName))
+ else if (icoModelPtr)
{
- const icoModel& model =
- mesh_.lookupObject(turbulenceModel::propertiesName);
-
- Reff = model.devReff();
+ calcShearStress(icoModelPtr->devReff(), wallShearStress);
}
else
{
@@ -219,8 +212,6 @@ bool Foam::functionObjects::wallShearStress::execute()
<< "database" << exit(FatalError);
}
- calcShearStress(Reff(), wallShearStress);
-
return true;
}
diff --git a/src/fvOptions/sources/interRegion/interRegionHeatTransfer/tabulatedNTUHeatTransfer/tabulatedNTUHeatTransfer.C b/src/fvOptions/sources/interRegion/interRegionHeatTransfer/tabulatedNTUHeatTransfer/tabulatedNTUHeatTransfer.C
index fe7fa6a32a..2ba95833c1 100644
--- a/src/fvOptions/sources/interRegion/interRegionHeatTransfer/tabulatedNTUHeatTransfer/tabulatedNTUHeatTransfer.C
+++ b/src/fvOptions/sources/interRegion/interRegionHeatTransfer/tabulatedNTUHeatTransfer/tabulatedNTUHeatTransfer.C
@@ -73,15 +73,15 @@ const Foam::basicThermo& Foam::fv::tabulatedNTUHeatTransfer::thermo
const fvMesh& mesh
) const
{
- if (!mesh.foundObject("thermophysicalProperties"))
+ if (!mesh.foundObject(basicThermo::dictName))
{
FatalErrorInFunction
<< " on mesh " << mesh.name()
- << " could not find thermophysicalProperties "
+ << " could not find " << basicThermo::dictName
<< exit(FatalError);
}
- return mesh.lookupObject("thermophysicalProperties");
+ return mesh.lookupObject(basicThermo::dictName);
}
diff --git a/src/lagrangian/basic/particle/particle.C b/src/lagrangian/basic/particle/particle.C
index 904f4c5723..9725ba4358 100644
--- a/src/lagrangian/basic/particle/particle.C
+++ b/src/lagrangian/basic/particle/particle.C
@@ -512,7 +512,10 @@ void Foam::particle::locate
// We hit a boundary ...
if (boundaryFail)
{
- FatalErrorInFunction << boundaryMsg << exit(FatalError);
+ FatalErrorInFunction << boundaryMsg
+ << " when tracking from centre " << mesh_.cellCentres()[celli_]
+ << " of cell " << celli_ << " to position " << position
+ << exit(FatalError);
}
else
{
@@ -1210,11 +1213,11 @@ void Foam::particle::autoMap
}
-void Foam::particle::relocate()
+void Foam::particle::relocate(const point& position)
{
locate
(
- position(),
+ position,
nullptr,
celli_,
true,
diff --git a/src/lagrangian/basic/particle/particle.H b/src/lagrangian/basic/particle/particle.H
index 67c4dc393d..50e7e2755e 100644
--- a/src/lagrangian/basic/particle/particle.H
+++ b/src/lagrangian/basic/particle/particle.H
@@ -662,9 +662,9 @@ public:
//- Map after a topology change
void autoMap(const vector& position, const mapPolyMesh& mapper);
- //- Set the addressing based on the current position and cell
+ //- Set the addressing based on the provided position and current cell
// Used for e.g. redistributePar
- void relocate();
+ void relocate(const point& position);
// I-O
diff --git a/src/lagrangian/basic/particle/particleIO.C b/src/lagrangian/basic/particle/particleIO.C
index 15ab90ff9e..5ed13963da 100644
--- a/src/lagrangian/basic/particle/particleIO.C
+++ b/src/lagrangian/basic/particle/particleIO.C
@@ -114,17 +114,20 @@ Foam::particle::particle
}
else
{
- const size_t s =
- offsetof(oldParticle, facei) - offsetof(oldParticle, position);
-
- is.read(reinterpret_cast(&p.position), s);
-
if (readFields)
{
+ // Read whole struct
const size_t s =
- sizeof(oldParticle) - offsetof(oldParticle, facei);
-
- is.read(reinterpret_cast(&p.facei), s);
+ sizeof(oldParticle) - offsetof(oldParticle, position);
+ is.read(reinterpret_cast(&p.position), s);
+ }
+ else
+ {
+ // Read only position and cell
+ const size_t s =
+ offsetof(oldParticle, facei)
+ - offsetof(oldParticle, position);
+ is.read(reinterpret_cast(&p.position), s);
}
}
diff --git a/src/lumpedPointMotion/lumpedPointMovement.C b/src/lumpedPointMotion/lumpedPointMovement.C
index 7683ab5fd9..21cd34dc33 100644
--- a/src/lumpedPointMotion/lumpedPointMovement.C
+++ b/src/lumpedPointMotion/lumpedPointMovement.C
@@ -27,8 +27,7 @@ License
#include "lumpedPointIOMovement.H"
#include "demandDrivenData.H"
#include "linearInterpolationWeights.H"
-#include "IFstream.H"
-#include "OFstream.H"
+#include "Fstream.H"
#include "volFields.H"
#include "surfaceFields.H"
#include "PtrMap.H"
diff --git a/src/meshTools/AABBTree/AABBTree.C b/src/meshTools/AABBTree/AABBTree.C
index a8f02d3aa2..3ebd4805d1 100644
--- a/src/meshTools/AABBTree/AABBTree.C
+++ b/src/meshTools/AABBTree/AABBTree.C
@@ -43,29 +43,26 @@ void Foam::AABBTree::writeOBJ
) const
{
const pointField pts(bb.points());
- forAll(pts, i)
+ for (const point& pt : pts)
{
- meshTools::writeOBJ(os, pts[i]);
+ meshTools::writeOBJ(os, pt);
}
if (writeLinesOnly)
{
- forAll(bb.edges, i)
+ for (const edge& e : bb.edges)
{
- const edge& e = bb.edges[i];
os << "l " << e[0] + vertI + 1 << ' ' << e[1] + vertI + 1 << nl;
}
}
else
{
- forAll(bb.faces, i)
+ for (const face& f : bb.faces)
{
- const face& f = bb.faces[i];
-
os << 'f';
- forAll(f, fp)
+ for (const label fpi : f)
{
- os << ' ' << f[fp] + vertI + 1;
+ os << ' ' << fpi + vertI + 1;
}
os << nl;
}
@@ -144,7 +141,7 @@ void Foam::AABBTree::createBoxes
direction maxDir = 0;
scalar maxSpan = span[maxDir];
- for (label dirI = 1; dirI < 3; dirI++)
+ for (label dirI = 1; dirI < 3; ++dirI)
{
if (span[dirI] > maxSpan)
{
@@ -163,14 +160,12 @@ void Foam::AABBTree::createBoxes
PackedBoolList isUsedPoint(points.size());
DynamicList component(points.size());
- forAll(objectIDs, i)
+ for (const label objI : objectIDs)
{
- const label objI = objectIDs[i];
const Type& obj = objects[objI];
- forAll(obj, pI)
+ for (const label pointI : obj)
{
- const label pointI = obj[pI];
if (isUsedPoint.set(pointI))
{
component.append(points[pointI][maxDir]);
@@ -203,17 +198,15 @@ void Foam::AABBTree::createBoxes
DynamicList