diff --git a/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C b/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C index 9659fa2deb..b716f50af7 100644 --- a/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C +++ b/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd. + \\/ M anipulation | Copyright (C) 2015-2019 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -238,5 +238,68 @@ Foam::functionObjects::stateFunctionObject::objectResultEntries return entries; } +void Foam::functionObjects::stateFunctionObject::writeResultEntries +( + Ostream& os +) const +{ + writeResultEntries(name(), os); +} + + +void Foam::functionObjects::stateFunctionObject::writeResultEntries +( + const word& objectName, + Ostream& os +) const +{ + const IOdictionary& stateDict = this->stateDict(); + + if (stateDict.found(resultsName_)) + { + const dictionary& resultsDict = stateDict.subDict(resultsName_); + + if (resultsDict.found(objectName)) + { + const dictionary& objectDict = resultsDict.subDict(objectName); + + for (const word& dataFormat : objectDict.sortedToc()) + { + os << " Type: " << dataFormat << nl; + + const dictionary& resultDict = objectDict.subDict(dataFormat); + + for (const word& result : resultDict.sortedToc()) + { + os << " " << result << nl; + } + } + } + } +} + + +void Foam::functionObjects::stateFunctionObject::writeAllResultEntries +( + Ostream& os +) const +{ + const IOdictionary& stateDict = this->stateDict(); + + if (stateDict.found(resultsName_)) + { + const dictionary& resultsDict = stateDict.subDict(resultsName_); + + const wordList allObjectNames = resultsDict.sortedToc(); + + for (const word& objectName : allObjectNames) + { + os << "Object: " << objectName << endl; + + writeResultEntries(objectName, os); + } + } +} + // ************************************************************************* // diff --git a/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.H b/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.H index 0511c16734..32e51cd46e 100644 --- a/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.H +++ b/src/OpenFOAM/db/functionObjects/stateFunctionObject/stateFunctionObject.H @@ -250,6 +250,15 @@ public: //- Return result entries for named object List objectResultEntries(const word& objectName) const; + + //- Write the results entries for all objects to stream + void writeResultEntries(Ostream& os) const; + + //- Write the results entries for named object to stream + void writeResultEntries(const word& objectName, Ostream& os) const; + + //- Write the results entries for all objects to stream + void writeAllResultEntries(Ostream& os) const; };