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