mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
reconstructPar: Added '-noFields' option
This commit is contained in:
@ -91,6 +91,11 @@ int main(int argc, char *argv[])
|
|||||||
"specify a list of fields to be reconstructed. Eg, '(U T p)' - "
|
"specify a list of fields to be reconstructed. Eg, '(U T p)' - "
|
||||||
"regular expressions not currently supported"
|
"regular expressions not currently supported"
|
||||||
);
|
);
|
||||||
|
argList::addBoolOption
|
||||||
|
(
|
||||||
|
"noFields",
|
||||||
|
"skip reconstructing fields"
|
||||||
|
);
|
||||||
argList::addOption
|
argList::addOption
|
||||||
(
|
(
|
||||||
"lagrangianFields",
|
"lagrangianFields",
|
||||||
@ -124,6 +129,14 @@ int main(int argc, char *argv[])
|
|||||||
args.optionLookup("fields")() >> selectedFields;
|
args.optionLookup("fields")() >> selectedFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const bool noFields = args.optionFound("noFields");
|
||||||
|
|
||||||
|
if (noFields)
|
||||||
|
{
|
||||||
|
Info<< "Skipping reconstructing fields"
|
||||||
|
<< nl << endl;
|
||||||
|
}
|
||||||
|
|
||||||
const bool noLagrangian = args.optionFound("noLagrangian");
|
const bool noLagrangian = args.optionFound("noLagrangian");
|
||||||
|
|
||||||
if (noLagrangian)
|
if (noLagrangian)
|
||||||
@ -368,6 +381,7 @@ int main(int argc, char *argv[])
|
|||||||
databases[0].timeName()
|
databases[0].timeName()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (!noFields)
|
||||||
{
|
{
|
||||||
// If there are any FV fields, reconstruct them
|
// If there are any FV fields, reconstruct them
|
||||||
Info<< "Reconstructing FV fields" << nl << endl;
|
Info<< "Reconstructing FV fields" << nl << endl;
|
||||||
@ -466,6 +480,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!noFields)
|
||||||
{
|
{
|
||||||
Info<< "Reconstructing point fields" << nl << endl;
|
Info<< "Reconstructing point fields" << nl << endl;
|
||||||
|
|
||||||
@ -744,130 +759,162 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Construct all sets
|
if (cSetNames.size() || fSetNames.size() || pSetNames.size())
|
||||||
PtrList<cellSet> cellSets(cSetNames.size());
|
|
||||||
PtrList<faceSet> faceSets(fSetNames.size());
|
|
||||||
PtrList<pointSet> pointSets(pSetNames.size());
|
|
||||||
|
|
||||||
Info<< "Reconstructing sets:" << endl;
|
|
||||||
if (cSetNames.size())
|
|
||||||
{
|
{
|
||||||
Info<< " cellSets " << cSetNames.sortedToc() << endl;
|
// Construct all sets
|
||||||
}
|
PtrList<cellSet> cellSets(cSetNames.size());
|
||||||
if (fSetNames.size())
|
PtrList<faceSet> faceSets(fSetNames.size());
|
||||||
{
|
PtrList<pointSet> pointSets(pSetNames.size());
|
||||||
Info<< " faceSets " << fSetNames.sortedToc() << endl;
|
|
||||||
}
|
|
||||||
if (pSetNames.size())
|
|
||||||
{
|
|
||||||
Info<< " pointSets " << pSetNames.sortedToc() << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load sets
|
Info<< "Reconstructing sets:" << endl;
|
||||||
forAll(procMeshes.meshes(), proci)
|
if (cSetNames.size())
|
||||||
{
|
|
||||||
const fvMesh& procMesh = procMeshes.meshes()[proci];
|
|
||||||
|
|
||||||
IOobjectList objects
|
|
||||||
(
|
|
||||||
procMesh,
|
|
||||||
databases[0].timeName(), //procMesh.facesInstance(),
|
|
||||||
polyMesh::meshSubDir/"sets"
|
|
||||||
);
|
|
||||||
|
|
||||||
// cellSets
|
|
||||||
const labelList& cellMap =
|
|
||||||
procMeshes.cellProcAddressing()[proci];
|
|
||||||
|
|
||||||
IOobjectList cSets(objects.lookupClass(cellSet::typeName));
|
|
||||||
forAllConstIter(IOobjectList, cSets, iter)
|
|
||||||
{
|
{
|
||||||
// Load cellSet
|
Info<< " cellSets "
|
||||||
const cellSet procSet(*iter());
|
<< cSetNames.sortedToc() << endl;
|
||||||
label setI = cSetNames[iter.key()];
|
}
|
||||||
if (!cellSets.set(setI))
|
if (fSetNames.size())
|
||||||
{
|
{
|
||||||
cellSets.set
|
Info<< " faceSets "
|
||||||
(
|
<< fSetNames.sortedToc() << endl;
|
||||||
setI,
|
}
|
||||||
new cellSet(mesh, iter.key(), procSet.size())
|
if (pSetNames.size())
|
||||||
);
|
{
|
||||||
}
|
Info<< " pointSets "
|
||||||
cellSet& cSet = cellSets[setI];
|
<< pSetNames.sortedToc() << endl;
|
||||||
cSet.instance() = runTime.timeName();
|
|
||||||
|
|
||||||
forAllConstIter(cellSet, procSet, iter)
|
|
||||||
{
|
|
||||||
cSet.insert(cellMap[iter.key()]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// faceSets
|
// Load sets
|
||||||
const labelList& faceMap =
|
forAll(procMeshes.meshes(), proci)
|
||||||
|
{
|
||||||
|
const fvMesh& procMesh = procMeshes.meshes()[proci];
|
||||||
|
|
||||||
|
IOobjectList objects
|
||||||
|
(
|
||||||
|
procMesh,
|
||||||
|
databases[0].timeName(),
|
||||||
|
polyMesh::meshSubDir/"sets"
|
||||||
|
);
|
||||||
|
|
||||||
|
// cellSets
|
||||||
|
const labelList& cellMap =
|
||||||
|
procMeshes.cellProcAddressing()[proci];
|
||||||
|
|
||||||
|
IOobjectList cSets
|
||||||
|
(
|
||||||
|
objects.lookupClass(cellSet::typeName)
|
||||||
|
);
|
||||||
|
|
||||||
|
forAllConstIter(IOobjectList, cSets, iter)
|
||||||
|
{
|
||||||
|
// Load cellSet
|
||||||
|
const cellSet procSet(*iter());
|
||||||
|
label setI = cSetNames[iter.key()];
|
||||||
|
if (!cellSets.set(setI))
|
||||||
|
{
|
||||||
|
cellSets.set
|
||||||
|
(
|
||||||
|
setI,
|
||||||
|
new cellSet
|
||||||
|
(
|
||||||
|
mesh,
|
||||||
|
iter.key(),
|
||||||
|
procSet.size()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
cellSet& cSet = cellSets[setI];
|
||||||
|
cSet.instance() = runTime.timeName();
|
||||||
|
|
||||||
|
forAllConstIter(cellSet, procSet, iter)
|
||||||
|
{
|
||||||
|
cSet.insert(cellMap[iter.key()]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// faceSets
|
||||||
|
const labelList& faceMap =
|
||||||
procMeshes.faceProcAddressing()[proci];
|
procMeshes.faceProcAddressing()[proci];
|
||||||
|
|
||||||
IOobjectList fSets(objects.lookupClass(faceSet::typeName));
|
IOobjectList fSets
|
||||||
forAllConstIter(IOobjectList, fSets, iter)
|
(
|
||||||
{
|
objects.lookupClass(faceSet::typeName)
|
||||||
// Load faceSet
|
);
|
||||||
const faceSet procSet(*iter());
|
|
||||||
label setI = fSetNames[iter.key()];
|
|
||||||
if (!faceSets.set(setI))
|
|
||||||
{
|
|
||||||
faceSets.set
|
|
||||||
(
|
|
||||||
setI,
|
|
||||||
new faceSet(mesh, iter.key(), procSet.size())
|
|
||||||
);
|
|
||||||
}
|
|
||||||
faceSet& fSet = faceSets[setI];
|
|
||||||
fSet.instance() = runTime.timeName();
|
|
||||||
|
|
||||||
forAllConstIter(faceSet, procSet, iter)
|
forAllConstIter(IOobjectList, fSets, iter)
|
||||||
{
|
{
|
||||||
fSet.insert(mag(faceMap[iter.key()])-1);
|
// Load faceSet
|
||||||
|
const faceSet procSet(*iter());
|
||||||
|
label setI = fSetNames[iter.key()];
|
||||||
|
if (!faceSets.set(setI))
|
||||||
|
{
|
||||||
|
faceSets.set
|
||||||
|
(
|
||||||
|
setI,
|
||||||
|
new faceSet
|
||||||
|
(
|
||||||
|
mesh,
|
||||||
|
iter.key(),
|
||||||
|
procSet.size()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
faceSet& fSet = faceSets[setI];
|
||||||
|
fSet.instance() = runTime.timeName();
|
||||||
|
|
||||||
|
forAllConstIter(faceSet, procSet, iter)
|
||||||
|
{
|
||||||
|
fSet.insert(mag(faceMap[iter.key()])-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// pointSets
|
||||||
|
const labelList& pointMap =
|
||||||
|
procMeshes.pointProcAddressing()[proci];
|
||||||
|
|
||||||
|
IOobjectList pSets
|
||||||
|
(
|
||||||
|
objects.lookupClass(pointSet::typeName)
|
||||||
|
);
|
||||||
|
forAllConstIter(IOobjectList, pSets, iter)
|
||||||
|
{
|
||||||
|
// Load pointSet
|
||||||
|
const pointSet propSet(*iter());
|
||||||
|
label setI = pSetNames[iter.key()];
|
||||||
|
if (!pointSets.set(setI))
|
||||||
|
{
|
||||||
|
pointSets.set
|
||||||
|
(
|
||||||
|
setI,
|
||||||
|
new pointSet
|
||||||
|
(
|
||||||
|
mesh,
|
||||||
|
iter.key(),
|
||||||
|
propSet.size()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
pointSet& pSet = pointSets[setI];
|
||||||
|
pSet.instance() = runTime.timeName();
|
||||||
|
|
||||||
|
forAllConstIter(pointSet, propSet, iter)
|
||||||
|
{
|
||||||
|
pSet.insert(pointMap[iter.key()]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// pointSets
|
|
||||||
const labelList& pointMap =
|
|
||||||
procMeshes.pointProcAddressing()[proci];
|
|
||||||
|
|
||||||
IOobjectList pSets(objects.lookupClass(pointSet::typeName));
|
// Write sets
|
||||||
forAllConstIter(IOobjectList, pSets, iter)
|
forAll(cellSets, i)
|
||||||
{
|
{
|
||||||
// Load pointSet
|
cellSets[i].write();
|
||||||
const pointSet propSet(*iter());
|
}
|
||||||
label setI = pSetNames[iter.key()];
|
forAll(faceSets, i)
|
||||||
if (!pointSets.set(setI))
|
{
|
||||||
{
|
faceSets[i].write();
|
||||||
pointSets.set
|
}
|
||||||
(
|
forAll(pointSets, i)
|
||||||
setI,
|
{
|
||||||
new pointSet(mesh, iter.key(), propSet.size())
|
pointSets[i].write();
|
||||||
);
|
|
||||||
}
|
|
||||||
pointSet& pSet = pointSets[setI];
|
|
||||||
pSet.instance() = runTime.timeName();
|
|
||||||
|
|
||||||
forAllConstIter(pointSet, propSet, iter)
|
|
||||||
{
|
|
||||||
pSet.insert(pointMap[iter.key()]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Write sets
|
|
||||||
forAll(cellSets, i)
|
|
||||||
{
|
|
||||||
cellSets[i].write();
|
|
||||||
}
|
|
||||||
forAll(faceSets, i)
|
|
||||||
{
|
|
||||||
faceSets[i].write();
|
|
||||||
}
|
|
||||||
forAll(pointSets, i)
|
|
||||||
{
|
|
||||||
pointSets[i].write();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user