reconstructPar: Added '-noFields' option

This commit is contained in:
Henry Weller
2016-05-17 09:25:29 +01:00
parent cfb6d6c84e
commit d6ce71f39a

View File

@ -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();
} }
} }