adding -fields option

This commit is contained in:
andy
2008-09-30 15:57:55 +01:00
parent 071b8ffe89
commit cc0dbb0549
3 changed files with 74 additions and 36 deletions

View File

@ -151,18 +151,20 @@ public:
const IOobject& fieldIoObject const IOobject& fieldIoObject
); );
//- Reconstruct and write all volume fields //- Reconstruct and write all/selected volume fields
template<class Type> template<class Type>
void reconstructFvVolumeFields void reconstructFvVolumeFields
( (
const IOobjectList& objects const IOobjectList& objects,
const HashSet<word>& selectedFields
); );
//- Reconstruct and write all volume fields //- Reconstruct and write all/selected volume fields
template<class Type> template<class Type>
void reconstructFvSurfaceFields void reconstructFvSurfaceFields
( (
const IOobjectList& objects const IOobjectList& objects,
const HashSet<word>& selectedFields
); );
}; };

View File

@ -452,11 +452,12 @@ Foam::fvFieldReconstructor::reconstructFvSurfaceField
} }
// Reconstruct and write all volume fields // Reconstruct and write all/selected volume fields
template<class Type> template<class Type>
void Foam::fvFieldReconstructor::reconstructFvVolumeFields void Foam::fvFieldReconstructor::reconstructFvVolumeFields
( (
const IOobjectList& objects const IOobjectList& objects,
const HashSet<word>& selectedFields
) )
{ {
const word& fieldClassName = const word& fieldClassName =
@ -468,27 +469,29 @@ void Foam::fvFieldReconstructor::reconstructFvVolumeFields
{ {
Info<< " Reconstructing " << fieldClassName << "s\n" << endl; Info<< " Reconstructing " << fieldClassName << "s\n" << endl;
for forAllConstIter(IOobjectList, fields, fieldIter)
{
if
( (
IOobjectList::const_iterator fieldIter = fields.begin(); !selectedFields.size()
fieldIter != fields.end(); || selectedFields.found(fieldIter()->name())
++fieldIter
) )
{ {
Info<< " " << fieldIter()->name() << endl; Info<< " " << fieldIter()->name() << endl;
reconstructFvVolumeField<Type>(*fieldIter())().write(); reconstructFvVolumeField<Type>(*fieldIter())().write();
} }
}
Info<< endl; Info<< endl;
} }
} }
// Reconstruct and write all surface fields // Reconstruct and write all/selected surface fields
template<class Type> template<class Type>
void Foam::fvFieldReconstructor::reconstructFvSurfaceFields void Foam::fvFieldReconstructor::reconstructFvSurfaceFields
( (
const IOobjectList& objects const IOobjectList& objects,
const HashSet<word>& selectedFields
) )
{ {
const word& fieldClassName = const word& fieldClassName =
@ -500,18 +503,19 @@ void Foam::fvFieldReconstructor::reconstructFvSurfaceFields
{ {
Info<< " Reconstructing " << fieldClassName << "s\n" << endl; Info<< " Reconstructing " << fieldClassName << "s\n" << endl;
for forAllConstIter(IOobjectList, fields, fieldIter)
{
if
( (
IOobjectList::const_iterator fieldIter = fields.begin(); !selectedFields.size()
fieldIter != fields.end(); || selectedFields.found(fieldIter()->name())
++fieldIter
) )
{ {
Info<< " " << fieldIter()->name() << endl; Info<< " " << fieldIter()->name() << endl;
reconstructFvSurfaceField<Type>(*fieldIter())().write(); reconstructFvSurfaceField<Type>(*fieldIter())().write();
} }
}
Info<< endl; Info<< endl;
} }
} }

View File

@ -48,9 +48,17 @@ int main(int argc, char *argv[])
argList::noParallel(); argList::noParallel();
timeSelector::addOptions(); timeSelector::addOptions();
# include "addRegionOption.H" # include "addRegionOption.H"
argList::validOptions.insert("fields", "\"(list of fields)\"");
# include "setRootCase.H" # include "setRootCase.H"
# include "createTime.H" # include "createTime.H"
HashSet<word> selectedFields;
if (args.options().found("fields"))
{
IStringStream(args.options()["fields"])() >> selectedFields;
}
// determine the processor count directly // determine the processor count directly
label nProcs = 0; label nProcs = 0;
while (dir(args.path()/(word("processor") + name(nProcs)))) while (dir(args.path()/(word("processor") + name(nProcs))))
@ -184,13 +192,37 @@ int main(int argc, char *argv[])
procMeshes.boundaryProcAddressing() procMeshes.boundaryProcAddressing()
); );
fvReconstructor.reconstructFvVolumeFields<scalar>(objects); fvReconstructor.reconstructFvVolumeFields<scalar>
fvReconstructor.reconstructFvVolumeFields<vector>(objects); (
fvReconstructor.reconstructFvVolumeFields<sphericalTensor>(objects); objects,
fvReconstructor.reconstructFvVolumeFields<symmTensor>(objects); selectedFields
fvReconstructor.reconstructFvVolumeFields<tensor>(objects); );
fvReconstructor.reconstructFvVolumeFields<vector>
(
objects,
selectedFields
);
fvReconstructor.reconstructFvVolumeFields<sphericalTensor>
(
objects,
selectedFields
);
fvReconstructor.reconstructFvVolumeFields<symmTensor>
(
objects,
selectedFields
);
fvReconstructor.reconstructFvVolumeFields<tensor>
(
objects,
selectedFields
);
fvReconstructor.reconstructFvSurfaceFields<scalar>(objects); fvReconstructor.reconstructFvSurfaceFields<scalar>
(
objects,
selectedFields
);
} }
else else
{ {