diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C index e54187c5f4..9e6fe09a73 100644 --- a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C +++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -43,11 +43,14 @@ void Foam::fieldValue::read(const dictionary& dict) { if (active_) { + functionObjectFile::read(dict); + dict_ = dict; log_ = dict.lookupOrDefault("log", true); dict.lookup("fields") >> fields_; dict.lookup("valueOutput") >> valueOutput_; + dict.readIfPresent("scaleFactor", scaleFactor_); } } @@ -56,9 +59,7 @@ void Foam::fieldValue::write() { if (active_) { - functionObjectFile::write(); - - if (log_) Info<< type() << " " << name_ << " output:" << nl; + if (log_) Info << type() << " " << name_ << " output:" << nl; } } @@ -74,16 +75,15 @@ Foam::fieldValue::fieldValue const bool loadFromFiles ) : - functionObjectFile(obr, name, valueType), - name_(name), + functionObjectFile(obr, name, valueType, dict), obr_(obr), dict_(dict), active_(true), log_(true), - sourceName_(word::null), - fields_(dict.lookup("fields")), - valueOutput_(dict.lookup("valueOutput")), - resultDict_(fileName("name"), dictionary::null) + sourceName_(dict.lookupOrDefault("sourceName", "sampledSurface")), + fields_(), + valueOutput_(false), + scaleFactor_(1.0) { // Only active if obr is an fvMesh if (isA(obr_)) diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H index 9d852cdfb7..d5d364d1fb 100644 --- a/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H +++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValue/fieldValue.H @@ -2,8 +2,8 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation - \\/ M anipulation | + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -28,7 +28,7 @@ Group grpFieldFunctionObjects Description - Base class for field value -based function objects. + Base class for field value-based function objects. SourceFiles fieldValue.C @@ -96,6 +96,9 @@ protected: //- Results dictionary for external access of results dictionary resultDict_; + //- Scale factor - optional + scalar scaleFactor_; + public: diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C index 28e5866b01..9715348eba 100644 --- a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C +++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -54,30 +54,9 @@ namespace Foam } -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // +// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // -Foam::fieldValues::fieldValueDelta::fieldValueDelta -( - const word& name, - const objectRegistry& obr, - const dictionary& dict, - const bool loadFromFiles -) -: - functionObjectFile(obr, name, typeName), - name_(name), - obr_(obr), - loadFromFiles_(loadFromFiles), - log_(true), - operation_(opSubtract), - source1Ptr_(NULL), - source2Ptr_(NULL) -{ - read(dict); -} - - -void Foam::fieldValues::fieldValueDelta::writeFileHeader(const label i) +void Foam::fieldValues::fieldValueDelta::writeFileHeader(Ostream& os) const { const wordList& fields1 = source1Ptr_->fields(); const wordList& fields2 = source2Ptr_->fields(); @@ -92,8 +71,6 @@ void Foam::fieldValues::fieldValueDelta::writeFileHeader(const label i) } } - Ostream& os = file(); - writeHeaderValue(os, "Source1", source1Ptr_->name()); writeHeaderValue(os, "Source2", source2Ptr_->name()); writeHeaderValue(os, "Operation", operationTypeNames_[operation_]); @@ -108,6 +85,51 @@ void Foam::fieldValues::fieldValueDelta::writeFileHeader(const label i) } +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::fieldValues::fieldValueDelta::fieldValueDelta +( + const word& name, + const objectRegistry& obr, + const dictionary& dict, + const bool loadFromFiles +) +: + functionObjectFile(obr, name, typeName, dict), + name_(name), + obr_(obr), + active_(true), + loadFromFiles_(loadFromFiles), + log_(true), + operation_(opSubtract), + source1Ptr_(NULL), + source2Ptr_(NULL) +{ + // Check if the available mesh is an fvMesh otherise deactivate + if (!isA(obr_)) + { + active_ = false; + WarningIn + ( + "fieldMinMax::fieldMinMax" + "(" + "const word&, " + "const objectRegistry&, " + "const dictionary&, " + "const bool" + ")" + ) << "No fvMesh available, deactivating " << name_ + << endl; + } + + if (active_) + { + read(dict); + writeFileHeader(file()); + } +} + + // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // Foam::fieldValues::fieldValueDelta::~fieldValueDelta() @@ -118,69 +140,75 @@ Foam::fieldValues::fieldValueDelta::~fieldValueDelta() void Foam::fieldValues::fieldValueDelta::read(const dictionary& dict) { - log_ = dict.lookupOrDefault("log", true); - source1Ptr_.reset - ( - fieldValue::New - ( - name_ + ".source1", - obr_, - dict.subDict("source1"), - loadFromFiles_, - false - ).ptr() - ); - source2Ptr_.reset - ( - fieldValue::New - ( - name_ + ".source2", - obr_, - dict.subDict("source2"), - loadFromFiles_, - false - ).ptr() - ); + if (active_) + { + functionObjectFile::read(dict); - operation_ = operationTypeNames_.read(dict.lookup("operation")); + log_ = dict.lookupOrDefault("log", true); + source1Ptr_.reset + ( + fieldValue::New + ( + name_ + ".source1", + obr_, + dict.subDict("source1"), + loadFromFiles_, + false + ).ptr() + ); + source2Ptr_.reset + ( + fieldValue::New + ( + name_ + ".source2", + obr_, + dict.subDict("source2"), + loadFromFiles_, + false + ).ptr() + ); + + operation_ = operationTypeNames_.read(dict.lookup("operation")); + } } void Foam::fieldValues::fieldValueDelta::write() { - functionObjectFile::write(); - - source1Ptr_->write(); - source2Ptr_->write(); - - if (Pstream::master()) + if (active_) { - file()<< obr_.time().value(); - } + source1Ptr_->write(); + source2Ptr_->write(); - if (log_) Info<< type() << " " << name_ << " output:" << endl; - - bool found = false; - processFields(found); - processFields(found); - processFields(found); - processFields(found); - processFields(found); - - if (Pstream::master()) - { - file()<< endl; - } - - if (log_) - { - if (!found) + if (Pstream::master()) { - Info<< " none" << endl; + file()<< obr_.time().value(); } - else + + if (log_) Info<< type() << " " << name_ << " output:" << endl; + + bool found = false; + processFields(found); + processFields(found); + processFields(found); + processFields(found); + processFields(found); + + if (Pstream::master()) { - Info<< endl; + file()<< endl; + } + + if (log_) + { + if (!found) + { + Info<< " none" << endl; + } + else + { + Info<< endl; + } } } } diff --git a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H index d408227bbc..7c7eb9fc49 100644 --- a/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H +++ b/src/postProcessing/functionObjects/field/fieldValues/fieldValueDelta/fieldValueDelta.H @@ -121,6 +121,9 @@ private: //- Database this class is registered to const objectRegistry& obr_; + //- On/off switch + bool active_; + //- Flag to indicate to load from files bool loadFromFiles_; @@ -153,7 +156,7 @@ protected: // Functions to be over-ridden from IOoutputFilter class //- Output file header information - virtual void writeFileHeader(const label i); + virtual void writeFileHeader(Ostream& os) const; public: