From 7c3d2ec15eaf88998cbf61ac014617029f8f0018 Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Fri, 23 Aug 2013 14:19:32 +0100 Subject: [PATCH] ENH: Updated R utility to include compressible cases --- .../postProcessing/turbulence/R/Make/options | 18 ++- .../utilities/postProcessing/turbulence/R/R.C | 137 ++++++++++++++++-- .../turbulence/R/createFields.H | 22 --- 3 files changed, 133 insertions(+), 44 deletions(-) delete mode 100644 applications/utilities/postProcessing/turbulence/R/createFields.H diff --git a/applications/utilities/postProcessing/turbulence/R/Make/options b/applications/utilities/postProcessing/turbulence/R/Make/options index a136b166617..27b70cae0a7 100644 --- a/applications/utilities/postProcessing/turbulence/R/Make/options +++ b/applications/utilities/postProcessing/turbulence/R/Make/options @@ -1,13 +1,19 @@ EXE_INC = \ - -I$(LIB_SRC)/postProcessing/postCalc \ - -I$(LIB_SRC)/turbulenceModels \ - -I$(LIB_SRC)/turbulenceModels/incompressible/RAS/RASModel \ + -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/transportModels \ + -I$(LIB_SRC)/turbulenceModels \ + -I$(LIB_SRC)/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions \ + -I$(LIB_SRC)/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions \ + -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude EXE_LIBS = \ - $(FOAM_LIBBIN)/postCalc.o \ - -lincompressibleRASModels \ -lincompressibleTransportModels \ + -lincompressibleRASModels \ + -lfluidThermophysicalModels \ + -lspecie \ + -lcompressibleRASModels \ -lfiniteVolume \ - -lgenericPatchFields + -lgenericPatchFields \ + -lmeshTools \ + -lsampling diff --git a/applications/utilities/postProcessing/turbulence/R/R.C b/applications/utilities/postProcessing/turbulence/R/R.C index b96bb03947c..708cda72141 100644 --- a/applications/utilities/postProcessing/turbulence/R/R.C +++ b/applications/utilities/postProcessing/turbulence/R/R.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -29,35 +29,140 @@ Description \*---------------------------------------------------------------------------*/ -#include "calc.H" #include "fvCFD.H" #include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" + +#include "fluidThermo.H" +#include "compressible/turbulenceModel/turbulenceModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh) +void calcIncompressibleR +( + const fvMesh& mesh, + const Time& runTime, + const volVectorField& U +) +{ + #include "createPhi.H" + + singlePhaseTransportModel laminarTransport(U, phi); + + autoPtr<incompressible::turbulenceModel> model + ( + incompressible::turbulenceModel::New(U, phi, laminarTransport) + ); + + Info<< "Writing R field" << nl << endl; + + model->R()().write(); +} + + +void calcCompressibleR +( + const fvMesh& mesh, + const Time& runTime, + const volVectorField& U +) { - #include "createFields.H" + IOobject rhoHeader + ( + "rho", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::NO_WRITE + ); + + if (!rhoHeader.headerOk()) + { + Info<< " no " << rhoHeader.name() <<" field" << endl; + return; + } - Info<< "\nCalculating the Reynolds Stress R\n" << endl; + Info<< "Reading field rho\n" << endl; + volScalarField rho(rhoHeader, mesh); - volSymmTensorField R + #include "compressibleCreatePhi.H" + + autoPtr<fluidThermo> pThermo(fluidThermo::New(mesh)); + fluidThermo& thermo = pThermo(); + + autoPtr<compressible::turbulenceModel> model ( - IOobject + compressible::turbulenceModel::New ( - "R", + rho, + U, + phi, + thermo + ) + ); + + Info<< "Writing R field" << nl << endl; + + model->R()().write(); +} + + +int main(int argc, char *argv[]) +{ + timeSelector::addOptions(); + + #include "addRegionOption.H" + + argList::addBoolOption + ( + "compressible", + "calculate compressible R" + ); + + #include "setRootCase.H" + #include "createTime.H" + instantList timeDirs = timeSelector::select0(runTime, args); + #include "createNamedMesh.H" + + const bool compressible = args.optionFound("compressible"); + + forAll(timeDirs, timeI) + { + runTime.setTime(timeDirs[timeI], timeI); + Info<< "Time = " << runTime.timeName() << endl; + + IOobject UHeader + ( + "U", runTime.timeName(), mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - RASModel->R() - ); + IOobject::MUST_READ, + IOobject::NO_WRITE + ); + + if (UHeader.headerOk()) + { + Info<< "Reading field " << UHeader.name() << nl << endl; + volVectorField U(UHeader, mesh); + + if (compressible) + { + calcCompressibleR(mesh, runTime, U); + } + else + { + calcIncompressibleR(mesh, runTime, U); + } + } + else + { + Info<< " no " << UHeader.name() << " field" << endl; + } + } - R.write(); + Info<< "End\n" << endl; - Info<< "End" << endl; + return 0; } diff --git a/applications/utilities/postProcessing/turbulence/R/createFields.H b/applications/utilities/postProcessing/turbulence/R/createFields.H deleted file mode 100644 index 7c07f44f8bf..00000000000 --- a/applications/utilities/postProcessing/turbulence/R/createFields.H +++ /dev/null @@ -1,22 +0,0 @@ - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - #include "createPhi.H" - - singlePhaseTransportModel laminarTransport(U, phi); - - autoPtr<incompressible::RASModel> RASModel - ( - incompressible::RASModel::New(U, phi, laminarTransport) - ); -- GitLab