From b7b000be3b29956be2f8287b3d9a640e4c75cfac Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Thu, 22 Oct 2020 12:36:47 +0100 Subject: [PATCH] functionObjects::writeObjects: Changed the default executeAtStart to 'no' This avoids attempting to write temporary fields before they have been created. The executeAtStart can be set to 'yes' in the writeObjects dictionary or the functions { #includeFunc writeObjects(executeAtStart = yes, , ...) } --- .../functionObject/functionObject.C | 3 ++- .../functionObject/functionObject.H | 1 + .../writeObjectsBase/writeObjectsBase.C | 20 +++++++++++-------- .../utilities/writeObjects/writeObjects.C | 4 +++- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C index 18024fc5a9..dc620ad927 100644 --- a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C +++ b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.C @@ -130,7 +130,8 @@ bool Foam::functionObject::read(const dictionary& dict) if (!postProcess) { - executeAtStart_ = dict.lookupOrDefault("executeAtStart", true); + executeAtStart_ = + dict.lookupOrDefault("executeAtStart", executeAtStart_); } return true; diff --git a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H index 7e60927814..976103fe23 100644 --- a/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H +++ b/src/OpenFOAM/db/functionObjects/functionObject/functionObject.H @@ -67,6 +67,7 @@ Description log | Log information to standard output | no | yes startTime| Start time | no | endTime | End time | no | + executeAtStart | Execute at start time switch | no | yes executeControl | See time controls below | no | timeStep executeInterval | Steps between each execute phase | no | writeControl | See time controls below | no | timeStep diff --git a/src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.C b/src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.C index a53c3b06c8..b762bb5d75 100644 --- a/src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.C +++ b/src/OpenFOAM/db/functionObjects/writeObjectsBase/writeObjectsBase.C @@ -64,9 +64,9 @@ Foam::wordList Foam::functionObjects::writeObjectsBase::objectNames() } else { - WarningInFunction - << "Object " << writeObjectNames_[i] << " not found in " - << "database. Available objects:" + Warning + << "writeObjects: object " << writeObjectNames_[i] + << " not found in database. Available objects:" << nl << writeObr_.sortedToc() << endl; } } @@ -78,6 +78,13 @@ Foam::wordList Foam::functionObjects::writeObjectsBase::objectNames() { allNames.append(name); } + else + { + Warning + << "writeObjects: object " << name + << " not found in database. Available objects:" + << nl << writeObr_.sortedToc() << endl; + } } } @@ -150,7 +157,7 @@ bool Foam::functionObjects::writeObjectsBase::write() { wordList names(objectNames()); - if(!names.empty()) + if (!names.empty()) { if (!writeObr_.time().writeTime()) { @@ -159,10 +166,7 @@ bool Foam::functionObjects::writeObjectsBase::write() forAll(names, i) { - const regIOobject& obj = - writeObr_.lookupObject(names[i]); - - writeObject(obj); + writeObject(writeObr_.lookupObject(names[i])); } } diff --git a/src/functionObjects/utilities/writeObjects/writeObjects.C b/src/functionObjects/utilities/writeObjects/writeObjects.C index a8329cd1f5..506c00166e 100644 --- a/src/functionObjects/utilities/writeObjects/writeObjects.C +++ b/src/functionObjects/utilities/writeObjects/writeObjects.C @@ -189,6 +189,8 @@ bool Foam::functionObjects::writeObjects::read(const dictionary& dict) writeOption_ = writeOption::ANY_WRITE; } + executeAtStart_ = dict.lookupOrDefault("executeAtStart", false); + return functionObject::read(dict); } @@ -201,7 +203,7 @@ bool Foam::functionObjects::writeObjects::execute() bool Foam::functionObjects::writeObjects::write() { - Info<< type() << " " << name() << " write:" << nl; + Log << type() << " " << name() << " write:" << nl; writeObjectsBase::write();