From c5e05bb79a4aadb22f1136f1d38ffc66d1db62d8 Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Sat, 21 May 2016 20:10:47 +0100 Subject: [PATCH] functionObjects: Simplified and reorganised using the fieldExpression base-class --- .../CourantNo/CourantNo.C | 4 +- .../CourantNo/CourantNo.H | 0 .../{utilities => field}/Lambda2/Lambda2.C | 2 +- .../{utilities => field}/Lambda2/Lambda2.H | 0 .../functionObjects/field/Make/files | 4 + .../{utilities => field}/Q/Q.C | 73 ++++--------------- .../{utilities => field}/Q/Q.H | 26 +------ .../functionObjects/field/div/div.H | 1 + .../field/fieldExpression/fieldExpression.C | 13 +++- .../field/fieldExpression/fieldExpression.H | 4 +- .../vorticity/vorticity.C | 2 +- .../vorticity/vorticity.H | 0 .../functionObjects/utilities/Make/files | 18 ++--- .../functionObjects/utilities/Peclet/Peclet.C | 4 +- 14 files changed, 50 insertions(+), 101 deletions(-) rename src/postProcessing/functionObjects/{utilities => field}/CourantNo/CourantNo.C (96%) rename src/postProcessing/functionObjects/{utilities => field}/CourantNo/CourantNo.H (100%) rename src/postProcessing/functionObjects/{utilities => field}/Lambda2/Lambda2.C (98%) rename src/postProcessing/functionObjects/{utilities => field}/Lambda2/Lambda2.H (100%) rename src/postProcessing/functionObjects/{utilities => field}/Q/Q.C (61%) rename src/postProcessing/functionObjects/{utilities => field}/Q/Q.H (83%) rename src/postProcessing/functionObjects/{utilities => field}/vorticity/vorticity.C (98%) rename src/postProcessing/functionObjects/{utilities => field}/vorticity/vorticity.H (100%) diff --git a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C b/src/postProcessing/functionObjects/field/CourantNo/CourantNo.C similarity index 96% rename from src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C rename to src/postProcessing/functionObjects/field/CourantNo/CourantNo.C index ff99c21b4..40fa5ca00 100644 --- a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C +++ b/src/postProcessing/functionObjects/field/CourantNo/CourantNo.C @@ -111,8 +111,8 @@ Foam::functionObjects::CourantNo::~CourantNo() bool Foam::functionObjects::CourantNo::read(const dictionary& dict) { - phiName_ = dict.lookupOrDefault("phiName", "phi"); - rhoName_ = dict.lookupOrDefault("rhoName", "rho"); + phiName_ = dict.lookupOrDefault("phi", "phi"); + rhoName_ = dict.lookupOrDefault("rho", "rho"); return true; } diff --git a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H b/src/postProcessing/functionObjects/field/CourantNo/CourantNo.H similarity index 100% rename from src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H rename to src/postProcessing/functionObjects/field/CourantNo/CourantNo.H diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C b/src/postProcessing/functionObjects/field/Lambda2/Lambda2.C similarity index 98% rename from src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C rename to src/postProcessing/functionObjects/field/Lambda2/Lambda2.C index 9f47b1fac..c942606b5 100644 --- a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C +++ b/src/postProcessing/functionObjects/field/Lambda2/Lambda2.C @@ -91,7 +91,7 @@ Foam::functionObjects::Lambda2::~Lambda2() bool Foam::functionObjects::Lambda2::read(const dictionary& dict) { - UName_ = dict.lookupOrDefault("UName", "U"); + UName_ = dict.lookupOrDefault("U", "U"); return true; } diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H b/src/postProcessing/functionObjects/field/Lambda2/Lambda2.H similarity index 100% rename from src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H rename to src/postProcessing/functionObjects/field/Lambda2/Lambda2.H diff --git a/src/postProcessing/functionObjects/field/Make/files b/src/postProcessing/functionObjects/field/Make/files index a314c43ad..4d4491351 100644 --- a/src/postProcessing/functionObjects/field/Make/files +++ b/src/postProcessing/functionObjects/field/Make/files @@ -36,5 +36,9 @@ fieldExpression/fieldExpression.C div/div.C grad/grad.C mag/mag.C +vorticity/vorticity.C +Q/Q.C +Lambda2/Lambda2.C +CourantNo/CourantNo.C LIB = $(FOAM_LIBBIN)/libfieldFunctionObjects diff --git a/src/postProcessing/functionObjects/utilities/Q/Q.C b/src/postProcessing/functionObjects/field/Q/Q.C similarity index 61% rename from src/postProcessing/functionObjects/utilities/Q/Q.C rename to src/postProcessing/functionObjects/field/Q/Q.C index a07925d2b..52cc9f148 100644 --- a/src/postProcessing/functionObjects/utilities/Q/Q.C +++ b/src/postProcessing/functionObjects/field/Q/Q.C @@ -24,7 +24,6 @@ License \*---------------------------------------------------------------------------*/ #include "Q.H" -#include "volFields.H" #include "fvcGrad.H" #include "addToRunTimeSelectionTable.H" @@ -55,29 +54,8 @@ Foam::functionObjects::Q::Q const dictionary& dict ) : - fvMeshFunctionObject(name, runTime, dict) -{ - read(dict); - - volScalarField* QPtr - ( - new volScalarField - ( - IOobject - ( - type(), - mesh_.time().timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedScalar("0", dimless/sqr(dimTime), 0.0) - ) - ); - - mesh_.objectRegistry::store(QPtr); -} + fieldExpression(name, runTime, dict, "U", "Q") +{} // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // @@ -88,45 +66,24 @@ Foam::functionObjects::Q::~Q() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -bool Foam::functionObjects::Q::read(const dictionary& dict) -{ - UName_ = dict.lookupOrDefault("UName", "U"); - - return true; -} - - bool Foam::functionObjects::Q::execute(const bool postProcess) { - const volVectorField& U = - mesh_.lookupObject(UName_); + if (foundField(fieldName_)) + { + const volVectorField& U = lookupField(fieldName_); + const tmp tgradU(fvc::grad(U)); + const volTensorField& gradU = tgradU(); - const volTensorField gradU(fvc::grad(U)); - - volScalarField& Q = - const_cast + return store ( - mesh_.lookupObject(type()) + resultName_, + 0.5*(sqr(tr(gradU)) - tr(((gradU) & (gradU)))) ); - - Q = 0.5*(sqr(tr(gradU)) - tr(((gradU) & (gradU)))); - - return true; -} - - -bool Foam::functionObjects::Q::write(const bool postProcess) -{ - const volScalarField& Q = - mesh_.lookupObject(type()); - - Info<< type() << " " << name() << " output:" << nl - << " writing field " << Q.name() << nl - << endl; - - Q.write(); - - return true; + } + else + { + return false; + } } diff --git a/src/postProcessing/functionObjects/utilities/Q/Q.H b/src/postProcessing/functionObjects/field/Q/Q.H similarity index 83% rename from src/postProcessing/functionObjects/utilities/Q/Q.H rename to src/postProcessing/functionObjects/field/Q/Q.H index 1b64e08d0..40f5cd810 100644 --- a/src/postProcessing/functionObjects/utilities/Q/Q.H +++ b/src/postProcessing/functionObjects/field/Q/Q.H @@ -36,6 +36,7 @@ Description \f] SeeAlso + Foam::functionObjects::fieldExpression Foam::functionObjects::fvMeshFunctionObject SourceFiles @@ -46,8 +47,7 @@ SourceFiles #ifndef functionObjects_Q_H #define functionObjects_Q_H -#include "fvMeshFunctionObject.H" -#include "volFieldsFwd.H" +#include "fieldExpression.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -62,22 +62,8 @@ namespace functionObjects class Q : - public fvMeshFunctionObject + public fieldExpression { - // Private data - - //- Name of velocity field, default is "U" - word UName_; - - - // Private Member Functions - - //- Disallow default bitwise copy construct - Q(const Q&); - - //- Disallow default bitwise assignment - void operator=(const Q&); - public: @@ -102,14 +88,8 @@ public: // Member Functions - //- Read the Q data - virtual bool read(const dictionary&); - //- Calculate the Q-field virtual bool execute(const bool postProcess = false); - - //- Write the Q-field - virtual bool write(const bool postProcess = false); }; diff --git a/src/postProcessing/functionObjects/field/div/div.H b/src/postProcessing/functionObjects/field/div/div.H index f490a9cac..1076300b8 100644 --- a/src/postProcessing/functionObjects/field/div/div.H +++ b/src/postProcessing/functionObjects/field/div/div.H @@ -33,6 +33,7 @@ Description volScalarField. SeeAlso + Foam::functionObjects::fieldExpression Foam::functionObjects::fvMeshFunctionObject SourceFiles diff --git a/src/postProcessing/functionObjects/field/fieldExpression/fieldExpression.C b/src/postProcessing/functionObjects/field/fieldExpression/fieldExpression.C index 205d6a0fd..35ebf04fb 100644 --- a/src/postProcessing/functionObjects/field/fieldExpression/fieldExpression.C +++ b/src/postProcessing/functionObjects/field/fieldExpression/fieldExpression.C @@ -42,10 +42,14 @@ Foam::functionObjects::fieldExpression::fieldExpression ( const word& name, const Time& runTime, - const dictionary& dict + const dictionary& dict, + const word& fieldName, + const word& resultName ) : - fvMeshFunctionObject(name, runTime, dict) + fvMeshFunctionObject(name, runTime, dict), + fieldName_(fieldName), + resultName_(resultName) { read(dict); } @@ -61,7 +65,10 @@ Foam::functionObjects::fieldExpression::~fieldExpression() bool Foam::functionObjects::fieldExpression::read(const dictionary& dict) { - dict.lookup("field") >> fieldName_; + if (fieldName_ == word::null || dict.found("field")) + { + dict.lookup("field") >> fieldName_; + } if (dict.found("result")) { diff --git a/src/postProcessing/functionObjects/field/fieldExpression/fieldExpression.H b/src/postProcessing/functionObjects/field/fieldExpression/fieldExpression.H index 767dd7ce1..3b0e645e2 100644 --- a/src/postProcessing/functionObjects/field/fieldExpression/fieldExpression.H +++ b/src/postProcessing/functionObjects/field/fieldExpression/fieldExpression.H @@ -93,7 +93,9 @@ public: ( const word& name, const Time& runTime, - const dictionary& dict + const dictionary& dict, + const word& fieldName = word::null, + const word& resultName = word::null ); diff --git a/src/postProcessing/functionObjects/utilities/vorticity/vorticity.C b/src/postProcessing/functionObjects/field/vorticity/vorticity.C similarity index 98% rename from src/postProcessing/functionObjects/utilities/vorticity/vorticity.C rename to src/postProcessing/functionObjects/field/vorticity/vorticity.C index a9f8f1faa..fab61b736 100644 --- a/src/postProcessing/functionObjects/utilities/vorticity/vorticity.C +++ b/src/postProcessing/functionObjects/field/vorticity/vorticity.C @@ -91,7 +91,7 @@ Foam::functionObjects::vorticity::~vorticity() bool Foam::functionObjects::vorticity::read(const dictionary& dict) { - UName_ = dict.lookupOrDefault("UName", "U"); + UName_ = dict.lookupOrDefault("U", "U"); if (UName_ != "U") { outputName_ = typeName + "(" + UName_ + ")"; diff --git a/src/postProcessing/functionObjects/utilities/vorticity/vorticity.H b/src/postProcessing/functionObjects/field/vorticity/vorticity.H similarity index 100% rename from src/postProcessing/functionObjects/utilities/vorticity/vorticity.H rename to src/postProcessing/functionObjects/field/vorticity/vorticity.H diff --git a/src/postProcessing/functionObjects/utilities/Make/files b/src/postProcessing/functionObjects/utilities/Make/files index a911df6bf..25364ae22 100644 --- a/src/postProcessing/functionObjects/utilities/Make/files +++ b/src/postProcessing/functionObjects/utilities/Make/files @@ -1,16 +1,6 @@ codedFunctionObject/codedFunctionObject.C -CourantNo/CourantNo.C -Lambda2/Lambda2.C -Peclet/Peclet.C -Q/Q.C -blendingFactor/blendingFactor.C -dsmcFields/dsmcFields.C residuals/residuals.C -scalarTransport/scalarTransport.C timeActivatedFileUpdate/timeActivatedFileUpdate.C -turbulenceFields/turbulenceFields.C -vorticity/vorticity.C -yPlus/yPlus.C setTimeStep/setTimeStepFunctionObject.C systemCall/systemCall.C abort/abort.C @@ -18,4 +8,12 @@ removeRegisteredObject/removeRegisteredObject.C writeDictionary/writeDictionary.C writeRegisteredObject/writeRegisteredObject.C +scalarTransport/scalarTransport.C +blendingFactor/blendingFactor.C +dsmcFields/dsmcFields.C + +turbulenceFields/turbulenceFields.C +Peclet/Peclet.C +yPlus/yPlus.C + LIB = $(FOAM_LIBBIN)/libutilityFunctionObjects diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C index a21596e5d..e84f84128 100644 --- a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C +++ b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C @@ -94,8 +94,8 @@ Foam::functionObjects::Peclet::~Peclet() bool Foam::functionObjects::Peclet::read(const dictionary& dict) { - phiName_ = dict.lookupOrDefault("phiName", "phi"); - rhoName_ = dict.lookupOrDefault("rhoName", "rho"); + phiName_ = dict.lookupOrDefault("phi", "phi"); + rhoName_ = dict.lookupOrDefault("rho", "rho"); return true; }