diff --git a/applications/test/string/stringTest.C b/applications/test/string/stringTest.C index b8442102f395dd530b6a6e0a192ea7c9965ffeb6..2ed59bf88f7b4ab293a37bfe71b8251d51e38aea 100644 --- a/applications/test/string/stringTest.C +++ b/applications/test/string/stringTest.C @@ -70,6 +70,28 @@ int main(int argc, char *argv[]) string test2("~OpenFOAM/controlDict"); Info<< test2 << " => " << test2.expand() << endl; + // replace controlDict with "newName" + { + string::size_type i = test2.rfind('/'); + + if (i == string::npos) + { + test2 = "newName"; + } + else + { + // this uses the std::string::replace + test2.replace(i+1, string::npos, "newName"); + } + Info<< "after replace: " << test2 << endl; + + // do another replace + // this uses the Foam::string::replace + test2.replace("OpenFOAM", "openfoam"); + + Info<< "after replace: " << test2 << endl; + } + string s; Sin.getLine(s); @@ -78,8 +100,7 @@ int main(int argc, char *argv[]) cout<< "output string with " << s2.length() << " characters\n"; cout<< "ostream<< >" << s2 << "<\n"; Info<< "Ostream<< >" << s2 << "<\n"; - Info<< "hash:" << unsigned(string::hash()(s2)) << endl; - + Info<< "hash:" << hex << string::hash()(s2) << endl; Info << "End\n" << endl; diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C index fff19e006d6f36cc223b84fa36e98ae6493dd2ea..d011fe4a4b0094e6415c4c552bc04b824de33191 100644 --- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C +++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C @@ -312,7 +312,7 @@ int main(int argc, char *argv[]) fileNameList cloudDirs ( - readDir(runTime.timePath()/"lagrangian", fileName::DIRECTORY) + readDir(runTime.timePath()/cloud::subInstance, fileName::DIRECTORY) ); // Particles @@ -344,7 +344,7 @@ int main(int argc, char *argv[]) ( mesh, runTime.timeName(), - "lagrangian"/cloudDirs[i] + cloud::subInstance/cloudDirs[i] ); IOobject* positionsPtr = sprayObjs.lookup("positions"); @@ -418,7 +418,7 @@ int main(int argc, char *argv[]) ( mesh, runTime.timeName(), - "lagrangian"/cloudDirs[cloudI] + cloud::subInstance/cloudDirs[cloudI] ); lagrangianFieldDecomposer::readFields diff --git a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C index 4f11f4d53f54594a799ed0fc398869ba17318fab..0ed0071aaeb6550ae050d5b524567ea403905b58 100644 --- a/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C +++ b/applications/utilities/parallelProcessing/decomposePar/lagrangianFieldDecomposerDecomposeFields.C @@ -88,7 +88,7 @@ tmp<IOField<Type> > lagrangianFieldDecomposer::decomposeField ( field.name(), procMesh_.time().timeName(), - "lagrangian"/cloudName, + cloud::subInstance/cloudName, procMesh_, IOobject::NO_READ, IOobject::NO_WRITE diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangian.H b/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangian.H index 0cefe9e64153e1ea4c83322f6c037a7d9c2be678..18d282a90921c8acbec203bb61ca9e6fc527dfed 100644 --- a/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangian.H +++ b/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangian.H @@ -36,6 +36,7 @@ SourceFiles #ifndef reconstructLagrangian_H #define reconstructLagrangian_H +#include "cloud.H" #include "polyMesh.H" #include "IOobjectList.H" #include "fvMesh.H" diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianFields.C b/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianFields.C index 1f357fa64f5345da704f429154db31213bb555a6..705881be10b2d8f509ef302d37c095df4d002834 100644 --- a/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianFields.C +++ b/applications/utilities/parallelProcessing/reconstructPar/reconstructLagrangianFields.C @@ -47,7 +47,7 @@ Foam::tmp<Foam::IOField<Type> > Foam::reconstructLagrangianField ( fieldName, mesh.time().timeName(), - "lagrangian"/cloudName, + cloud::subInstance/cloudName, mesh, IOobject::NO_READ, IOobject::NO_WRITE @@ -61,10 +61,10 @@ Foam::tmp<Foam::IOField<Type> > Foam::reconstructLagrangianField { // Check object on local mesh IOobject localIOobject - ( + ( fieldName, meshes[i].time().timeName(), - "lagrangian"/cloudName, + cloud::subInstance/cloudName, meshes[i], IOobject::MUST_READ, IOobject::NO_WRITE diff --git a/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C b/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C index 20def06b9c9cae6f6b0f1b3d9d7b8c33ddf6a5da..fe43c44251ed6ccf9bc9ff9dbc82e69957663076 100644 --- a/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C +++ b/applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C @@ -277,7 +277,7 @@ int main(int argc, char *argv[]) ( readDir ( - databases[procI].timePath()/regionPrefix/"lagrangian", + databases[procI].timePath()/regionPrefix/cloud::subInstance, fileName::DIRECTORY ) ); @@ -295,7 +295,7 @@ int main(int argc, char *argv[]) ( procMeshes.meshes()[procI], databases[procI].timeName(), - "lagrangian"/cloudDirs[i] + cloud::subInstance/cloudDirs[i] ); IOobject* positionsPtr = sprayObjs.lookup("positions"); diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.H index 3e06a1674dbe9b1a286373a21e08fc3ff4379dbe..f6cd858dc69bda78f0f520d6ff96570a479c67f7 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.H +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloudField.H @@ -35,6 +35,7 @@ SourceFiles #ifndef ensightCloudField_H #define ensightCloudField_H +#include "Cloud.H" #include "IOobject.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C index bb7c1880f00cc7a8fd9d5a304c84100ac8924b75..06dd108985734b4303c7ced05f1e81e04bc0711b 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/foamToEnsight.C @@ -211,7 +211,7 @@ int main(int argc, char *argv[]) fileNameList cloudDirs = readDir ( - runTime.timePath()/regionPrefix/"lagrangian", + runTime.timePath()/regionPrefix/cloud::subInstance, fileName::DIRECTORY ); @@ -221,7 +221,7 @@ int main(int argc, char *argv[]) ( mesh, runTime.timeName(), - "lagrangian"/cloudDirs[cloudI] + cloud::subInstance/cloudDirs[cloudI] ); IOobject* positionsPtr = cloudObjs.lookup("positions"); @@ -266,7 +266,7 @@ int main(int argc, char *argv[]) ( mesh, runTime.timeName(), - "lagrangian"/cloudIter.key() + cloud::subInstance/cloudIter.key() ); forAllConstIter(IOobjectList, cloudObjs, fieldIter) @@ -426,7 +426,7 @@ int main(int argc, char *argv[]) fileNameList currentCloudDirs = readDir ( - runTime.timePath()/regionPrefix/"lagrangian", + runTime.timePath()/regionPrefix/cloud::subInstance, fileName::DIRECTORY ); @@ -449,7 +449,7 @@ int main(int argc, char *argv[]) ( fieldName, mesh.time().timeName(), - "lagrangian"/cloudName, + cloud::subInstance/cloudName, mesh, IOobject::MUST_READ ); diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H index d8f079ea6df347eeec1ae4e9d2795831699527a3..1ef4c550326d5e66f427a1d9835e1aa7968f41d8 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputCase.H @@ -42,7 +42,7 @@ forAllConstIter(HashTable<HashTable<word> >, cloudFields, cloudIter) caseFile << setw(16) << "measured: 2" - << fileName(dataMask/"lagrangian"/cloudName/"positions").c_str() + << fileName(dataMask/cloud::subInstance/cloudName/"positions").c_str() << nl; } caseFile @@ -122,7 +122,7 @@ forAllConstIter(HashTable<HashTable<word> >, cloudFields, cloudIter) ensightType, fieldName, dataMask, - "lagrangian"/cloudName, + cloud::subInstance/cloudName, cloudNo, 2 ); diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C index ca472e073cfec12cbffbb4f884db941c6c9411eb..7e1a992f88add6031abd14049946e10419397501 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.C @@ -27,7 +27,6 @@ License #include "ensightOutputFunctions.H" #include "passiveParticle.H" -#include "Cloud.H" #include "IOField.H" #include "volFields.H" #include "surfaceFields.H" @@ -101,7 +100,7 @@ void ensightParticlePositions { Cloud<passiveParticle> parcels(mesh, cloudName, false); - fileName cloudDir = subDir/"lagrangian"/cloudName; + fileName cloudDir = subDir/cloud::subInstance/cloudName; fileName postFileName = cloudDir/"positions"; // the ITER/lagrangian subdirectory must exist @@ -165,7 +164,7 @@ void ensightLagrangianField { Info<< " " << fieldObject.name() << flush; - fileName cloudDir = subDir/"lagrangian"/cloudName; + fileName cloudDir = subDir/cloud::subInstance/cloudName; fileName postFileName = cloudDir/fieldObject.name(); string title = diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.H index 7afc250fe31f103b4f19bf62a2fd0ae643a2b63f..75437c2d69fbdbd2e0b989614a85e92e3b983eb6 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.H +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/ensightOutputFunctions.H @@ -23,9 +23,7 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Description - - miscellaneous collection of functions and template related - to Ensight data + Miscellaneous collection of functions and template related to Ensight data SourceFiles ensightOutputFunctions.C @@ -36,6 +34,7 @@ SourceFiles #define ensightOutputFunctions_H #include "ensightFile.H" +#include "Cloud.H" #include "polyMesh.H" #include "IOobject.H" diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H index cca3fbbcd3fbc4375b5282f66cfd94146e22be6e..7170059b084f01c5736c36486674ba39e2641366 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/findFields.H @@ -36,7 +36,7 @@ if (timeDirs.size() > 1) runTime.path() / timeDirs[timeDirs.size() - 1].name() / regionPrefix - / "lagrangian", + / cloud::subInstance, fileName::DIRECTORY ); @@ -55,7 +55,7 @@ if (timeDirs.size() > 1) ( mesh, timeDirs[timeDirs.size() - 1].name(), - "lagrangian"/cloudName + cloud::subInstance/cloudName ); bool hasPositions = false; diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C index 329dda87f9ebbbb4f3821ee6b93f2125e7c288f4..1665550632b7a05623c803f4812b339bb3cd181d 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/foamToEnsightParts.C @@ -324,7 +324,14 @@ int main(int argc, char *argv[]) { const word& cloudName = cloudIter.key(); - if (!isDir(runTime.timePath()/regionPrefix/"lagrangian"/cloudName)) + if + ( + !isDir + ( + runTime.timePath()/regionPrefix/ + cloud::subInstance/cloudName + ) + ) { continue; } @@ -333,7 +340,7 @@ int main(int argc, char *argv[]) ( mesh, runTime.timeName(), - "lagrangian"/cloudName + cloud::subInstance/cloudName ); // check that the positions field is present for this time @@ -365,7 +372,8 @@ int main(int argc, char *argv[]) if (!fieldObject) { Info<< "missing " - << runTime.timeName()/"lagrangian"/cloudName/fieldName + << runTime.timeName()/cloud::subInstance/cloudName + / fieldName << endl; continue; } diff --git a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/createSprayFields.H b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/createSprayFields.H index e28a04b58cf30269fe19be2dbd544d7a72e9cb6e..f6ee45f1bb7268ecaff3c93e0bfc5f706e61a266 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/createSprayFields.H +++ b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/createSprayFields.H @@ -21,7 +21,7 @@ List<IOField<vector>* > sprayVectorFieldPtrs ( sprayScalarNames[fieldI], runTime.timeName(), - "lagrangian", + cloud::subInstance, mesh, IOobject::MUST_READ, IOobject::NO_WRITE @@ -53,7 +53,7 @@ List<IOField<vector>* > sprayVectorFieldPtrs ( sprayVectorNames[fieldI], runTime.timeName(), - "lagrangian", + cloud::subInstance, mesh, IOobject::MUST_READ, IOobject::NO_WRITE diff --git a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/getFieldNames.H b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/getFieldNames.H index 9a9789962588a06ff568dafdc9a5ed4f22fda430..4b39cf68bb01edd26a32f8932d8767ae21acf7c6 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToFieldview9/getFieldNames.H +++ b/applications/utilities/postProcessing/dataConversion/foamToFieldview9/getFieldNames.H @@ -42,7 +42,7 @@ forAll(Times, timeI) // Same for spray - IOobjectList sprayObjects(mesh, runTime.timeName(), "lagrangian"); + IOobjectList sprayObjects(mesh, runTime.timeName(), cloud::subInstance); { wordList fieldNames(sprayObjects.names(scalarIOField::typeName)); forAll(fieldNames, fieldI) diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C b/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C index b32952e9bba9b7939a20edee337c84609078a7c3..de0776df6c8a863bed84c089a9c84057370305a1 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C +++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/foamToGMV.C @@ -44,21 +44,21 @@ Description int main(int argc, char *argv[]) { const label nTypes = 4; - const word fieldTypes[] = - { - "volScalarField", - "volVectorField", + const word fieldTypes[] = + { + "volScalarField", + "volVectorField", "surfaceScalarField", - "lagrangian" + cloud::subInstance }; # include "setRootCase.H" - + # include "createTime.H" # include "createMesh.H" # include "readConversionProperties.H" - + // get the available time-steps instantList TimeList = runTime.times(); Info << TimeList << endl; @@ -73,7 +73,7 @@ int main(int argc, char *argv[]) // Set Time runTime.setTime(TimeList[n], n); word CurTime = runTime.timeName(); - + IOobjectList objects(mesh, runTime.timeName()); # include "moveMesh.H" @@ -81,7 +81,7 @@ int main(int argc, char *argv[]) // set the filename of the GMV file fileName gmvFileName = "plotGMV." + itoa(n); OFstream gmvFile(args.rootPath()/args.caseName()/gmvFileName); - + # include "gmvOutputHeader.H" # include "gmvOutput.H" # include "gmvOutputTail.H" diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H index 76f834c431c063ee2d2e3908d1e8ae6c000c602d..237c8765b8c974c60e5fdc3f94e98bbd024f9f8a 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H +++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutput.H @@ -2,13 +2,13 @@ for(label i=0; i < nTypes; i++) { wordList fieldNames = objects.names(fieldTypes[i]); - if ( fieldTypes[i] == "volScalarField" ) + if ( fieldTypes[i] == "volScalarField" ) { gmvFile << "variable" << nl; } for(label j=0; j < fieldNames.size(); j++) { - + word fieldName = fieldNames[j]; IOobject fieldObject @@ -19,8 +19,8 @@ for(label i=0; i < nTypes; i++) IOobject::MUST_READ, IOobject::NO_WRITE ); - - if ( fieldTypes[i] == "volScalarField" ) + + if ( fieldTypes[i] == "volScalarField" ) { volScalarField gmvScalarField(fieldObject, mesh); gmvFile << fieldName << " 0" << nl; @@ -30,8 +30,8 @@ for(label i=0; i < nTypes; i++) } gmvFile << nl; } - - if ( fieldTypes[i] == "volVectorField" ) + + if ( fieldTypes[i] == "volVectorField" ) { if (fieldName == vComp) { @@ -52,21 +52,21 @@ for(label i=0; i < nTypes; i++) gmvFile << nl; } } - - if ( fieldTypes[i] == "surfaceScalarField" ) + + if ( fieldTypes[i] == "surfaceScalarField" ) { // ... } - + } - if ( fieldTypes[i] == "lagrangian") + if ( fieldTypes[i] == cloud::subInstance ) { IOobject lagrangianHeader ( "positions", runTime.timeName(), - "lagrangian", + cloud::subInstance, mesh, IOobject::NO_READ ); @@ -74,9 +74,9 @@ for(label i=0; i < nTypes; i++) if (lagrangianHeader.headerOk()) { Cloud<passiveParticle> particles(mesh); - - IOobjectList objects(mesh, runTime.timeName(), "lagrangian"); - + + IOobjectList objects(mesh, runTime.timeName(), cloud::subInstance); + wordList lagrangianScalarNames = objects.names("scalarField"); wordList lagrangianVectorNames = objects.names("vectorField"); @@ -87,7 +87,7 @@ for(label i=0; i < nTypes; i++) } } - if ( fieldTypes[i] == "volScalarField" ) + if ( fieldTypes[i] == "volScalarField" ) { gmvFile << "endvars" << nl; } diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputLagrangian.H b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputLagrangian.H index 89c126c1e3ed50d4cbfb786483010bb95a6663f4..28104661de6753acee24da4731cc22dfc74c8f5c 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputLagrangian.H +++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputLagrangian.H @@ -42,7 +42,7 @@ forAll(lagrangianScalarNames, i) ( name, runTime.timeName(), - "lagrangian", + cloud::subInstance, mesh, IOobject::MUST_READ, IOobject::NO_WRITE @@ -73,7 +73,7 @@ forAll(lagrangianVectorNames, i) ( name, runTime.timeName(), - "lagrangian", + cloud::subInstance, mesh, IOobject::MUST_READ, IOobject::NO_WRITE diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputSpray.H b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputSpray.H index f5d5b3c8c6da8716330c851c546e3092696128dd..b0beea2274cc8915ea97928e3f3e0dec256ecba0 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputSpray.H +++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/gmvOutputSpray.H @@ -40,7 +40,7 @@ forAll(lagrangianScalarNames, i) ( name, runTime.timeName(), - "lagrangian", + cloud::subInstance, mesh, IOobject::MUST_READ, IOobject::NO_WRITE diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C index e03c76c05727a9f2ef596241372bb29c979e5eaa..c98088ff46793f6533b798a91a739d05f312b0ca 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK.C @@ -914,7 +914,7 @@ int main(int argc, char *argv[]) ( readDir ( - runTime.timePath()/regionPrefix/"lagrangian", + runTime.timePath()/regionPrefix/cloud::subInstance, fileName::DIRECTORY ) ); @@ -925,18 +925,18 @@ int main(int argc, char *argv[]) ( mesh, runTime.timeName(), - "lagrangian"/cloudDirs[i] + cloud::subInstance/cloudDirs[i] ); IOobject* positionsPtr = sprayObjs.lookup("positions"); if (positionsPtr) { - mkDir(fvPath/"lagrangian"/cloudDirs[i]); + mkDir(fvPath/cloud::subInstance/cloudDirs[i]); fileName lagrFileName ( - fvPath/"lagrangian"/cloudDirs[i]/cloudDirs[i] + fvPath/cloud::subInstance/cloudDirs[i]/cloudDirs[i] + "_" + name(timeI) + ".vtk" ); diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriter.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriter.H index 8923ba8590d8108880fb2dc37ad98c249417216a..bd13ec2571a7622d70e0c243098c8104348b48bb 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriter.H +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriter.H @@ -39,6 +39,7 @@ SourceFiles #include "globalPointPatch.H" #include "OFstream.H" +#include "Cloud.H" #include "volFields.H" #include "pointFields.H" #include "vtkMesh.H" diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriterTemplates.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriterTemplates.C index 37c8051383ad6870893b200f8bc7c86d850ba963..e558186e3936a778f3ef3f4ce11de3d329bfafba 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriterTemplates.C +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/lagrangianWriterTemplates.C @@ -41,7 +41,7 @@ void Foam::lagrangianWriter::writeIOField(const wordList& objects) ( object, vMesh_.mesh().time().timeName(), - "lagrangian"/cloudName_, + cloud::subInstance/cloudName_, vMesh_.mesh(), IOobject::MUST_READ, IOobject::NO_WRITE, diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H index 985f6a3d17fad143dfd1af0bbac4b617ac77abb9..9b339f6433552ea039c28e2103ad84f61d52161e 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3Foam.H @@ -58,6 +58,11 @@ SourceFiles #ifndef vtkPV3Foam_H #define vtkPV3Foam_H +// do not include legacy strstream headers +#ifndef VTK_EXCLUDE_STRSTREAM_HEADERS +# define VTK_EXCLUDE_STRSTREAM_HEADERS +#endif + #include "className.H" #include "fileName.H" #include "volPointInterpolation.H" diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C index 4da5f7de7e4bd35e533faaaafb7fb2e9b30d6363..6efa7e9bf7c79d6632d8c9f7baf6bcd71db54666 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamFields.C @@ -268,7 +268,7 @@ void Foam::vtkPV3Foam::convertLagrangianFields ( mesh, dbPtr_().timeName(), - "lagrangian"/cloudName + cloud::subInstance/cloudName ); pruneObjectList(objects, selectedFields); diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H index ade6112e61de1e5fe706ea99553bce50da8aa902..58422d69f49eb4a78b1db291d32df7a7596f6783 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamLagrangianFields.H @@ -30,6 +30,8 @@ InClass #ifndef vtkPV3FoamLagrangianFields_H #define vtkPV3FoamLagrangianFields_H +#include "Cloud.H" + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // template<class Type> diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C index bfcffeb7876843f36971e0139382b11652452362..b84194cd7b311296f8cae6f6110ad1a3f92fc262 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshLagrangian.C @@ -53,7 +53,7 @@ vtkPolyData* Foam::vtkPV3Foam::lagrangianVTKMesh if (debug) { Info<< "<beg> Foam::vtkPV3Foam::lagrangianVTKMesh - timePath " - << mesh.time().timePath()/"lagrangian"/cloudName << endl; + << mesh.time().timePath()/cloud::subInstance/cloudName << endl; printMemory(); } @@ -63,7 +63,7 @@ vtkPolyData* Foam::vtkPV3Foam::lagrangianVTKMesh ( mesh, mesh.time().timeName(), - "lagrangian"/cloudName + cloud::subInstance/cloudName ); IOobject* positionsPtr = sprayObjs.lookup("positions"); diff --git a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C index e587c0cb1f8d56f3be89fa53120a4b8a289c0885..0c8fd5bf2a7d20b7e05388e890e2739272b9f04b 100644 --- a/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C +++ b/applications/utilities/postProcessing/graphics/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C @@ -34,6 +34,7 @@ License #include "IOPtrList.H" #include "polyBoundaryMeshEntries.H" #include "entry.H" +#include "Cloud.H" #include "vtkPV3FoamReader.h" // local headers @@ -148,16 +149,16 @@ void Foam::vtkPV3Foam::updateInfoLagrangian() if (debug) { Info<< "<beg> Foam::vtkPV3Foam::updateInfoLagrangian" << nl - << " " << dbPtr_->timePath()/"lagrangian" << endl; + << " " << dbPtr_->timePath()/cloud::subInstance << endl; } // use the db directly since this might be called without a mesh, // but the region must get added back in - fileName lagrangianPrefix("lagrangian"); + fileName lagrangianPrefix(cloud::subInstance); if (meshRegion_ != polyMesh::defaultRegion) { - lagrangianPrefix = meshRegion_/"lagrangian"; + lagrangianPrefix = meshRegion_/cloud::subInstance; } // Search for list of lagrangian objects for this time @@ -463,10 +464,10 @@ void Foam::vtkPV3Foam::updateInfoLagrangianFields() // use the db directly since this might be called without a mesh, // but the region must get added back in - fileName lagrangianPrefix("lagrangian"); + fileName lagrangianPrefix(cloud::subInstance); if (meshRegion_ != polyMesh::defaultRegion) { - lagrangianPrefix = meshRegion_/"lagrangian"; + lagrangianPrefix = meshRegion_/cloud::subInstance; } IOobjectList objects diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H index 70d5c9f2a74bc11c1069b9e743e9caf67218a539..6eb8c22a8202fa6f8d26a1534af8c0a94ea501c0 100644 --- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H +++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_gold_part_build_info.H @@ -35,7 +35,7 @@ int USERD_get_gold_part_build_info for(label i=0; i<nPatches; i++) { word patchName(meshPtr->boundary()[i].name()); - strncpy(part_descriptions[i+1], patchName.c_str(), Z_BUFL); + strncpy(part_descriptions[i+1], patchName.c_str(), Z_BUFL); } label nHex08 = 0; @@ -101,7 +101,7 @@ int USERD_get_gold_part_build_info */ number_of_nodes[0] = meshPtr->nPoints(); - + const polyBoundaryMesh& bMesh = meshPtr->boundaryMesh(); for(label i=0; i<nPatches; i++) @@ -137,7 +137,12 @@ int USERD_get_gold_part_build_info if (Numparts_available > nPatches+1) { - strncpy(part_descriptions[nPatches+1], sprayName.c_str(), Z_BUFL); + strncpy + ( + part_descriptions[nPatches+1], + cloud::subInstance.c_str(), + Z_BUFL + ); number_of_elements[nPatches+1][Z_POINT] = sprayPtr->size(); number_of_nodes[nPatches+1] = sprayPtr->size(); } diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H index 90f2d3f415ab396b48720e58f20c9bb4f9f2b7ac..e1f655cecb7259ec865344ced250b754eab88590 100644 --- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H +++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H @@ -164,7 +164,7 @@ int USERD_set_filenames ( "positions", runTime.timeName(), - "lagrangian", + cloud::subInstance, runTime, IOobject::NO_READ, IOobject::NO_WRITE, @@ -179,7 +179,7 @@ int USERD_set_filenames sprayPtr = new Cloud<passiveParticle>(*meshPtr); - IOobjectList objects(*meshPtr, runTime.timeName(), "lagrangian"); + IOobjectList objects(*meshPtr, runTime.timeName(), cloud::subInstance); lagrangianScalarNames = (const wordList&)objects.names(sprayScalarFieldName); diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H index e9259e3cc78693babd080d7e841b55ab9867e096..2093fd05af348d581f1097a37d6584e1debc2609 100644 --- a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H +++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianScalar.H @@ -12,7 +12,7 @@ if (nVar >= 0) ( name, runTime.timeName(), - "lagrangian", + cloud::subInstance, mesh, IOobject::MUST_READ, IOobject::NO_WRITE diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H index 42fcc8560fd7067df52e8ee65832a8069028b7e3..9e41fe02c06c4ba60cf6bfdfb9cad35ce26c35c7 100644 --- a/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H +++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/getLagrangianVector.H @@ -14,7 +14,7 @@ if (nVar >= 0) ( name, runTime.timeName(), - "lagrangian", + cloud::subInstance, mesh, IOobject::MUST_READ, IOobject::NO_WRITE diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/globalFoam.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/globalFoam.H index 4606671860b8907e539a424f889b7b60e47f3293..d68861b138e6cb79159d94767c0206769c2baa5c 100644 --- a/applications/utilities/postProcessing/graphics/ensightFoamReader/globalFoam.H +++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/globalFoam.H @@ -32,7 +32,6 @@ static bool isSpray[maxNames]; static word scalarName = "volScalarField"; static word vectorName = "volVectorField"; static word tensorName = "volTensorField"; -static word sprayName = "lagrangian"; static word sprayScalarFieldName = "scalarField"; static word sprayVectorFieldName = "vectorField"; static word sprayTensorFieldName = "tensorField"; diff --git a/applications/utilities/preProcessing/mapFields/MapLagrangianFields.H b/applications/utilities/preProcessing/mapFields/MapLagrangianFields.H index 830d6d825defb5854368ea2328791a17450438dd..373b393eacdbe11332191646bf0e26627eed5522 100644 --- a/applications/utilities/preProcessing/mapFields/MapLagrangianFields.H +++ b/applications/utilities/preProcessing/mapFields/MapLagrangianFields.H @@ -34,6 +34,7 @@ Description #ifndef MapLagrangianFields_H #define MapLagrangianFields_H +#include "cloud.H" #include "GeometricField.H" #include "meshToMesh.H" #include "IOobjectList.H" @@ -60,8 +61,7 @@ void MapLagrangianFields forAllIter(IOobjectList, fields, fieldIter) { - Info<< " mapping lagrangian field " - << fieldIter()->name() << endl; + Info<< " mapping lagrangian field " << fieldIter()->name() << endl; // Read field (does not need mesh) IOField<Type> fieldSource(*fieldIter()); @@ -73,7 +73,7 @@ void MapLagrangianFields ( fieldIter()->name(), meshTarget.time().timeName(), - "lagrangian"/cloudName, + cloud::subInstance/cloudName, meshTarget, IOobject::NO_READ, IOobject::NO_WRITE, diff --git a/applications/utilities/preProcessing/mapFields/mapLagrangian.C b/applications/utilities/preProcessing/mapFields/mapLagrangian.C index e57aa9761c81370d6d20ab1dd8af1c00a53cb8c8..fe5e1c70ddbe53db73ae33ac8f04c78c72b5bf78 100644 --- a/applications/utilities/preProcessing/mapFields/mapLagrangian.C +++ b/applications/utilities/preProcessing/mapFields/mapLagrangian.C @@ -94,7 +94,7 @@ void mapLagrangian(const meshToMesh& meshToMeshInterp) ( readDir ( - meshSource.time().timePath()/"lagrangian", + meshSource.time().timePath()/cloud::subInstance, fileName::DIRECTORY ) ); @@ -106,7 +106,7 @@ void mapLagrangian(const meshToMesh& meshToMeshInterp) ( meshSource, meshSource.time().timeName(), - "lagrangian"/cloudDirs[cloudI] + cloud::subInstance/cloudDirs[cloudI] ); IOobject* positionsPtr = objects.lookup("positions"); diff --git a/src/OpenFOAM/db/IOstreams/Sstreams/readHexLabel.H b/src/OpenFOAM/db/IOstreams/Sstreams/readHexLabel.H index fffccc452590b74f942929e5ebb6ea33d0810da5..37811c0d6739039dc073d80c71cfe8a901eaa453 100644 --- a/src/OpenFOAM/db/IOstreams/Sstreams/readHexLabel.H +++ b/src/OpenFOAM/db/IOstreams/Sstreams/readHexLabel.H @@ -45,7 +45,7 @@ namespace Foam { //- Read a hex label from an input stream -label readHexLabel(ISstream& is); +label readHexLabel(ISstream&); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/db/objectRegistry/objectRegistry.C b/src/OpenFOAM/db/objectRegistry/objectRegistry.C index 1038ecffa10de97c47b2eb8c9b2a3ca273061113..b8324dd8a8f670bf674105a989da214d2eafa8e0 100644 --- a/src/OpenFOAM/db/objectRegistry/objectRegistry.C +++ b/src/OpenFOAM/db/objectRegistry/objectRegistry.C @@ -98,7 +98,7 @@ Foam::wordList Foam::objectRegistry::names() const wordList objectNames(size()); label count=0; - for (const_iterator iter = begin(); iter != end(); ++iter) + for (const_iterator iter = cbegin(); iter != cend(); ++iter) { objectNames[count++] = iter()->name(); } @@ -112,7 +112,7 @@ Foam::wordList Foam::objectRegistry::names(const word& ClassName) const wordList objectNames(size()); label count=0; - for (const_iterator iter = begin(); iter != end(); ++iter) + for (const_iterator iter = cbegin(); iter != cend(); ++iter) { if (iter()->type() == ClassName) { @@ -195,15 +195,33 @@ bool Foam::objectRegistry::checkOut(regIOobject& io) const << " in registry " << name() << endl; } + } + + return false; +} + + +void Foam::objectRegistry::rename(const word& newName) +{ + regIOobject::rename(newName); - return false; + // adjust dbDir_ as well + string::size_type i = dbDir_.rfind('/'); + + if (i == string::npos) + { + dbDir_ = newName; + } + else + { + dbDir_.replace(i+1, string::npos, newName); } } bool Foam::objectRegistry::modified() const { - for (const_iterator iter = begin(); iter != end(); ++iter) + for (const_iterator iter = cbegin(); iter != cend(); ++iter) { if (iter()->modified()) { @@ -248,7 +266,7 @@ bool Foam::objectRegistry::writeObject { bool ok = true; - for (const_iterator iter = begin(); iter != end(); ++iter) + for (const_iterator iter = cbegin(); iter != cend(); ++iter) { if (objectRegistry::debug) { diff --git a/src/OpenFOAM/db/objectRegistry/objectRegistry.H b/src/OpenFOAM/db/objectRegistry/objectRegistry.H index 6c701e1d855b1a2652ad2f813b1b59ba6281eeb1..98f3b4b1f5544130990baacc79d3fb76c5d331df 100644 --- a/src/OpenFOAM/db/objectRegistry/objectRegistry.H +++ b/src/OpenFOAM/db/objectRegistry/objectRegistry.H @@ -154,6 +154,9 @@ public: // Edit + //- Rename + virtual void rename(const word& newName); + //- Add an regIOobject to registry bool checkIn(regIOobject&) const; diff --git a/src/OpenFOAM/fields/cloud/cloud.C b/src/OpenFOAM/fields/cloud/cloud.C index 2dd30b5f3c22355b22672fe07510634fc8cb43d3..5dcb6f832834f4ff12006b3b66e0f1d1c6e4c4d0 100644 --- a/src/OpenFOAM/fields/cloud/cloud.C +++ b/src/OpenFOAM/fields/cloud/cloud.C @@ -29,10 +29,10 @@ License // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // -namespace Foam -{ - defineTypeNameAndDebug(cloud, 0); -} +defineTypeNameAndDebug(Foam::cloud, 0); + +const Foam::word Foam::cloud::subInstance("lagrangian"); +Foam::word Foam::cloud::defaultName("defaultCloud"); // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // @@ -42,9 +42,9 @@ Foam::cloud::cloud(const objectRegistry& obr, const word& cloudName) ( IOobject ( - cloudName, + ( cloudName.size() ? cloudName : defaultName ), obr.time().timeName(), - "lagrangian", + subInstance, obr, IOobject::NO_READ, IOobject::AUTO_WRITE diff --git a/src/OpenFOAM/fields/cloud/cloud.H b/src/OpenFOAM/fields/cloud/cloud.H index 68743e6e96ddfe6680cd84bc325223841112de27..0891255d14a6f901daf79c68a2e80d3b5c6128bc 100644 --- a/src/OpenFOAM/fields/cloud/cloud.H +++ b/src/OpenFOAM/fields/cloud/cloud.H @@ -47,7 +47,7 @@ namespace Foam class mapPolyMesh; /*---------------------------------------------------------------------------*\ - Class cloud Declaration + Class cloud Declaration \*---------------------------------------------------------------------------*/ class cloud @@ -69,15 +69,16 @@ public: //- Runtime type information TypeName("cloud"); + //- The subInstance (local) to prefix: %lagrangian + static const word subInstance; + + //- The default cloud name: %defaultCloud + static word defaultName; // Constructors //- Construct for the given objectRegistry and named cloud instance - cloud - ( - const objectRegistry& obr, - const word& cloudName = "defaultCloud" - ); + cloud(const objectRegistry&, const word& cloudName = ""); // Destructor diff --git a/src/OpenFOAM/primitives/strings/string/string.H b/src/OpenFOAM/primitives/strings/string/string.H index 247b031d6c65cc3ac998688653f0990f28bbb282..97c6dd4d4dd7e50a6670b27704e8a9b24b57e1fb 100644 --- a/src/OpenFOAM/primitives/strings/string/string.H +++ b/src/OpenFOAM/primitives/strings/string/string.H @@ -144,6 +144,9 @@ public: template<class String> static inline string quotemeta(const string&, const char quote='\\'); + //- Avoid masking the normal std::string replace + using std::string::replace; + //- Replace first occurence of sub-string oldStr with newStr // starting at start string& replace diff --git a/src/OpenFOAM/primitives/strings/wordRe/wordRe.H b/src/OpenFOAM/primitives/strings/wordRe/wordRe.H index aee6c3a883f60f390d8f8696c6522e2c6b65ebde..5ab07b0e668b039e0fe45550a5ea0c7a555ca27e 100644 --- a/src/OpenFOAM/primitives/strings/wordRe/wordRe.H +++ b/src/OpenFOAM/primitives/strings/wordRe/wordRe.H @@ -41,7 +41,7 @@ Description Note If the string contents are changed - eg, by the operator+=() or by string::replace(), etc - it will be necessary to use compile() or - recompile() to sychronize the regular expression. + recompile() to synchronize the regular expression. SourceFiles wordRe.C