STYLE: use 'cloudObjects' instead of 'sprayObjects'

This commit is contained in:
Mark Olesen
2018-07-30 13:15:38 +02:00
parent dd775c6e68
commit ff26b96a80
8 changed files with 113 additions and 107 deletions

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2016-2018 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -461,13 +461,15 @@ int main(int argc, char *argv[])
// Do local scan for valid cloud objects // Do local scan for valid cloud objects
IOobjectList sprayObjs(runTime, runTime.timeName(), dir); wordList cloudFields
(
IOobjectList(runTime, runTime.timeName(), dir).sortedNames()
);
// Combine with all other cloud objects // Combine with all other cloud objects
wordList sprayFields(sprayObjs.sortedToc()); combineReduce(cloudFields, uniqueEqOp<word>());
combineReduce(sprayFields, uniqueEqOp<word>());
for (const word& name : sprayFields) for (const word& name : cloudFields)
{ {
// Note: try the various field types. Make sure to // Note: try the various field types. Make sure to
// exit once successful conversion to avoid re-read // exit once successful conversion to avoid re-read

View File

@ -807,7 +807,7 @@ int main(int argc, char *argv[])
for (const fileName& cloudDir : cloudDirs) for (const fileName& cloudDir : cloudDirs)
{ {
IOobjectList sprayObjs IOobjectList cloudObjects
( (
mesh, mesh,
runTime.timeName(), runTime.timeName(),
@ -817,12 +817,12 @@ int main(int argc, char *argv[])
false false
); );
// Note: looking up "positions" for backwards compatibility // Note: look up "positions" for backwards compatibility
IOobject* positionsPtr = if
sprayObjs.lookup(word("positions")); (
IOobject* coordsPtr = sprayObjs.lookup(word("coordinates")); cloudObjects.found("coordinates")
|| cloudObjects.found("positions")
if (positionsPtr || coordsPtr) )
{ {
// Read lagrangian particles // Read lagrangian particles
// ~~~~~~~~~~~~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -538,7 +538,7 @@ int main(int argc, char *argv[])
if (!noLagrangian) if (!noLagrangian)
{ {
HashTable<IOobjectList> cloudObjects; HashTable<IOobjectList> allCloudObjects;
forAll(databases, proci) forAll(databases, proci)
{ {
@ -566,39 +566,38 @@ int main(int argc, char *argv[])
{ {
// Check if we already have cloud objects for this // Check if we already have cloud objects for this
// cloudname // cloudname
if (!cloudObjects.found(cloudDir)) if (!allCloudObjects.found(cloudDir))
{ {
// Do local scan for valid cloud objects // Do local scan for valid cloud objects
IOobjectList sprayObjs IOobjectList localObjs
( (
procMeshes.meshes()[proci], procMeshes.meshes()[proci],
databases[proci].timeName(), databases[proci].timeName(),
cloud::prefix/cloudDir cloud::prefix/cloudDir
); );
IOobject* positionsPtr = if
sprayObjs.lookup(word("positions")); (
IOobject* coordsPtr = localObjs.found("coordinates")
sprayObjs.lookup(word("coordinates")); || localObjs.found("positions")
)
if (coordsPtr || positionsPtr)
{ {
cloudObjects.insert(cloudDir, sprayObjs); allCloudObjects.insert(cloudDir, localObjs);
} }
} }
} }
} }
if (cloudObjects.size()) if (allCloudObjects.size())
{ {
// Pass2: reconstruct the cloud // Pass2: reconstruct the cloud
forAllConstIter(HashTable<IOobjectList>, cloudObjects, iter) forAllConstIters(allCloudObjects, iter)
{ {
const word cloudName = word::validate(iter.key()); const word cloudName = word::validate(iter.key());
// Objects (on arbitrary processor) // Objects (on arbitrary processor)
const IOobjectList& sprayObjs = iter.object(); const IOobjectList& cloudObjs = iter.object();
Info<< "Reconstructing lagrangian fields for cloud " Info<< "Reconstructing lagrangian fields for cloud "
<< cloudName << nl << endl; << cloudName << nl << endl;
@ -616,7 +615,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
reconstructLagrangianFieldFields<label> reconstructLagrangianFieldFields<label>
@ -624,7 +623,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
reconstructLagrangianFields<scalar> reconstructLagrangianFields<scalar>
@ -632,7 +631,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
reconstructLagrangianFieldFields<scalar> reconstructLagrangianFieldFields<scalar>
@ -640,7 +639,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
reconstructLagrangianFields<vector> reconstructLagrangianFields<vector>
@ -648,7 +647,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
reconstructLagrangianFieldFields<vector> reconstructLagrangianFieldFields<vector>
@ -656,7 +655,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
reconstructLagrangianFields<sphericalTensor> reconstructLagrangianFields<sphericalTensor>
@ -664,7 +663,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
reconstructLagrangianFieldFields<sphericalTensor> reconstructLagrangianFieldFields<sphericalTensor>
@ -672,7 +671,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
reconstructLagrangianFields<symmTensor> reconstructLagrangianFields<symmTensor>
@ -680,7 +679,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
reconstructLagrangianFieldFields<symmTensor> reconstructLagrangianFieldFields<symmTensor>
@ -688,7 +687,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
reconstructLagrangianFields<tensor> reconstructLagrangianFields<tensor>
@ -696,7 +695,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
reconstructLagrangianFieldFields<tensor> reconstructLagrangianFieldFields<tensor>
@ -704,7 +703,7 @@ int main(int argc, char *argv[])
cloudName, cloudName,
mesh, mesh,
procMeshes.meshes(), procMeshes.meshes(),
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
} }

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015-2017 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2018 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -89,30 +89,30 @@ void Foam::parLagrangianRedistributor::findClouds
for (const fileName& localCloudName : localCloudDirs) for (const fileName& localCloudName : localCloudDirs)
{ {
// Do local scan for valid cloud objects // Do local scan for valid cloud objects
IOobjectList sprayObjs IOobjectList localObjs
( (
mesh, mesh,
mesh.time().timeName(), mesh.time().timeName(),
cloud::prefix/localCloudName cloud::prefix/localCloudName
); );
if (sprayObjs.found("coordinates") || sprayObjs.found("positions")) bool isCloud = false;
if (localObjs.erase("coordinates"))
{
isCloud = true;
}
if (localObjs.erase("positions"))
{
isCloud = true;
}
if (isCloud)
{ {
// Has coordinates/positions - so must be a valid cloud // Has coordinates/positions - so must be a valid cloud
const label cloudI = cloudNames.find(localCloudName); const label cloudi = cloudNames.find(localCloudName);
objectNames[cloudI].setSize(sprayObjs.size()); objectNames[cloudi] = localObjs.sortedNames();
label objectI = 0;
forAllConstIters(sprayObjs, iter)
{
const word& name = iter.key();
if (name != "coordinates" && name != "positions")
{
objectNames[cloudI][objectI++] = name;
}
}
objectNames[cloudI].setSize(objectI);
} }
} }

View File

@ -1807,13 +1807,14 @@ void reconstructLagrangian
<< cloudName << nl << endl; << cloudName << nl << endl;
autoPtr<mapDistributeBase> lagrangianMapPtr = autoPtr<mapDistributeBase> lagrangianMapPtr =
lagrangianReconstructor.redistributeLagrangianPositions lagrangianReconstructor.redistributeLagrangianPositions
( (
cloudName cloudName
); );
const mapDistributeBase& lagrangianMap = *lagrangianMapPtr; const mapDistributeBase& lagrangianMap = *lagrangianMapPtr;
IOobjectList sprayObjs IOobjectList cloudObjs
( (
mesh, mesh,
mesh.time().timeName(), mesh.time().timeName(),
@ -1824,42 +1825,42 @@ void reconstructLagrangian
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
lagrangianReconstructor.redistributeLagrangianFieldFields<label> lagrangianReconstructor.redistributeLagrangianFieldFields<label>
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
lagrangianReconstructor.redistributeLagrangianFields<scalar> lagrangianReconstructor.redistributeLagrangianFields<scalar>
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
lagrangianReconstructor.redistributeLagrangianFieldFields<scalar> lagrangianReconstructor.redistributeLagrangianFieldFields<scalar>
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
lagrangianReconstructor.redistributeLagrangianFields<vector> lagrangianReconstructor.redistributeLagrangianFields<vector>
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
lagrangianReconstructor.redistributeLagrangianFieldFields<vector> lagrangianReconstructor.redistributeLagrangianFieldFields<vector>
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
lagrangianReconstructor.redistributeLagrangianFields lagrangianReconstructor.redistributeLagrangianFields
@ -1867,7 +1868,7 @@ void reconstructLagrangian
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
lagrangianReconstructor.redistributeLagrangianFieldFields lagrangianReconstructor.redistributeLagrangianFieldFields
@ -1875,14 +1876,14 @@ void reconstructLagrangian
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
lagrangianReconstructor.redistributeLagrangianFields<symmTensor> lagrangianReconstructor.redistributeLagrangianFields<symmTensor>
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
lagrangianReconstructor.redistributeLagrangianFieldFields lagrangianReconstructor.redistributeLagrangianFieldFields
@ -1890,21 +1891,21 @@ void reconstructLagrangian
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
lagrangianReconstructor.redistributeLagrangianFields<tensor> lagrangianReconstructor.redistributeLagrangianFields<tensor>
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
lagrangianReconstructor.redistributeLagrangianFieldFields<tensor> lagrangianReconstructor.redistributeLagrangianFieldFields<tensor>
( (
lagrangianMap, lagrangianMap,
cloudName, cloudName,
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
} }
@ -1947,29 +1948,29 @@ void readLagrangian
//} //}
IOobjectList sprayObjs(clouds[i], clouds[i].time().timeName()); IOobjectList cloudObjs(clouds[i], clouds[i].time().timeName());
//Pout<< "Found clould objects:" << sprayObjs.names() << endl; //Pout<< "Found clould objects:" << cloudObjs.names() << endl;
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<IOField<label>> <IOField<label>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<IOField<Field<label>>> <IOField<Field<label>>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<CompactIOField<Field<label>, label>> <CompactIOField<Field<label>, label>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
@ -1978,21 +1979,21 @@ void readLagrangian
<IOField<scalar>> <IOField<scalar>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<IOField<Field<scalar>>> <IOField<Field<scalar>>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<CompactIOField<Field<scalar>, scalar>> <CompactIOField<Field<scalar>, scalar>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
@ -2001,21 +2002,21 @@ void readLagrangian
<IOField<vector>> <IOField<vector>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<IOField<Field<vector>>> <IOField<Field<vector>>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<CompactIOField<Field<vector>, vector>> <CompactIOField<Field<vector>, vector>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
@ -2024,21 +2025,21 @@ void readLagrangian
<IOField<sphericalTensor>> <IOField<sphericalTensor>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<IOField<Field<sphericalTensor>>> <IOField<Field<sphericalTensor>>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<CompactIOField<Field<sphericalTensor>, sphericalTensor>> <CompactIOField<Field<sphericalTensor>, sphericalTensor>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
@ -2047,21 +2048,21 @@ void readLagrangian
<IOField<symmTensor>> <IOField<symmTensor>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<IOField<Field<symmTensor>>> <IOField<Field<symmTensor>>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<CompactIOField<Field<symmTensor>, symmTensor>> <CompactIOField<Field<symmTensor>, symmTensor>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
@ -2070,21 +2071,21 @@ void readLagrangian
<IOField<tensor>> <IOField<tensor>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<IOField<Field<tensor>>> <IOField<Field<tensor>>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
parLagrangianRedistributor::readLagrangianFields parLagrangianRedistributor::readLagrangianFields
<CompactIOField<Field<tensor>, tensor>> <CompactIOField<Field<tensor>, tensor>>
( (
clouds[i], clouds[i],
sprayObjs, cloudObjs,
selectedLagrangianFields selectedLagrangianFields
); );
} }

View File

@ -37,7 +37,19 @@ if (timeDirs.size() && !noLagrangian)
// Clouds require "coordinates". // Clouds require "coordinates".
// The "positions" are for v1706 and lower. // The "positions" are for v1706 and lower.
if (cloudObjs.found("coordinates") || cloudObjs.found("positions")) // - detect and remove since these are treated specially
bool isCloud = false;
if (cloudObjs.erase("coordinates"))
{
isCloud = true;
}
if (cloudObjs.erase("positions"))
{
isCloud = true;
}
if (isCloud)
{ {
// Save the cloud fields on a per cloud basis // Save the cloud fields on a per cloud basis
auto& fieldsPerCloud = cloudFields(cloudName); auto& fieldsPerCloud = cloudFields(cloudName);
@ -53,13 +65,6 @@ if (timeDirs.size() && !noLagrangian)
} }
} }
// Prune out geometry again since it gets treated specially
forAllIters(cloudFields, cloudIter)
{
cloudIter().erase("coordinates");
cloudIter().erase("positions");
}
if (Pstream::parRun()) if (Pstream::parRun())
{ {
Pstream::mapCombineGather(cloudFields, HashTableOps::plusEqOp<word>()); Pstream::mapCombineGather(cloudFields, HashTableOps::plusEqOp<word>());

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2017-2018 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -55,17 +55,19 @@ vtkSmartPointer<vtkPolyData> Foam::vtkPVFoam::lagrangianVTKMesh
} }
// the region name is already in the mesh db // The region name is already in the mesh db
IOobjectList sprayObjs IOobjectList cloudObjects
( (
mesh, mesh,
mesh.time().timeName(), mesh.time().timeName(),
cloud::prefix/cloudName cloud::prefix/cloudName
); );
IOobject* positionsPtr = sprayObjs.lookup(word("positions")); if
IOobject* coordinatesPtr = sprayObjs.lookup(word("coordinates")); (
if (positionsPtr || coordinatesPtr) cloudObjects.found("positions")
|| cloudObjects.found("coordinates")
)
{ {
Cloud<passiveParticle> parcels(mesh, cloudName, false); Cloud<passiveParticle> parcels(mesh, cloudName, false);

View File

@ -119,10 +119,7 @@ void mapLagrangian(const meshToMesh0& meshToMesh0Interp)
cloud::prefix/cloudDirs[cloudI] cloud::prefix/cloudDirs[cloudI]
); );
IOobject* positionsPtr = objects.lookup("positions"); if (objects.found("coordinates") || objects.found("positions"))
IOobject* coordinatesPtr = objects.lookup("coordinates");
if (positionsPtr || coordinatesPtr)
{ {
Info<< nl << " processing cloud " << cloudDirs[cloudI] << endl; Info<< nl << " processing cloud " << cloudDirs[cloudI] << endl;