mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
STYLE: use 'cloudObjects' instead of 'sprayObjects'
This commit is contained in:
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
@ -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
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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>());
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user