From 28f049e9b924444cfdac229dcd23f160c501db9e Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Mon, 27 Jun 2016 07:51:19 +0100 Subject: [PATCH] writeCellCentres utility: Replaced by writeCellCentres functionObject postProcess -func writeCellCentres --- .../writeCellCentres/Make/files | 3 - .../writeCellCentres/Make/options | 5 - .../writeCellCentres/writeCellCentres.C | 140 ------------------ bin/writeCellCentres | 1 + .../postProcessing/fields/writeCellCentres | 21 +++ .../postProcessing/fields/writeCellVolumes | 19 +++ src/functionObjects/field/Make/files | 3 + .../field/writeCellCentres/writeCellCentres.C | 121 +++++++++++++++ .../field/writeCellCentres/writeCellCentres.H | 127 ++++++++++++++++ .../field/writeCellVolumes/writeCellVolumes.C | 100 +++++++++++++ .../field/writeCellVolumes/writeCellVolumes.H | 126 ++++++++++++++++ 11 files changed, 518 insertions(+), 148 deletions(-) delete mode 100644 applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/files delete mode 100644 applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/options delete mode 100644 applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/writeCellCentres.C create mode 120000 bin/writeCellCentres create mode 100644 etc/caseDicts/postProcessing/fields/writeCellCentres create mode 100644 etc/caseDicts/postProcessing/fields/writeCellVolumes create mode 100644 src/functionObjects/field/writeCellCentres/writeCellCentres.C create mode 100644 src/functionObjects/field/writeCellCentres/writeCellCentres.H create mode 100644 src/functionObjects/field/writeCellVolumes/writeCellVolumes.C create mode 100644 src/functionObjects/field/writeCellVolumes/writeCellVolumes.H diff --git a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/files b/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/files deleted file mode 100644 index 0e96ff63239..00000000000 --- a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -writeCellCentres.C - -EXE = $(FOAM_APPBIN)/writeCellCentres diff --git a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/options b/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/options deleted file mode 100644 index fa15f124528..00000000000 --- a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/Make/options +++ /dev/null @@ -1,5 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude - -EXE_LIBS = \ - -lfiniteVolume diff --git a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/writeCellCentres.C b/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/writeCellCentres.C deleted file mode 100644 index 5338be0df9f..00000000000 --- a/applications/utilities/postProcessing/toBeFunctionObjects/writeCellCentres/writeCellCentres.C +++ /dev/null @@ -1,140 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. - -Description - Write the three components of the cell centres as volScalarFields so - they can be used in postprocessing in thresholding. - -\*---------------------------------------------------------------------------*/ - -#include "argList.H" -#include "timeSelector.H" -#include "Time.H" -#include "fvMesh.H" -#include "vectorIOField.H" -#include "volFields.H" - -using namespace Foam; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - -int main(int argc, char *argv[]) -{ - timeSelector::addOptions(); - #include "addRegionOption.H" - - #include "setRootCase.H" - #include "createTime.H" - - instantList timeDirs = timeSelector::select0(runTime, args); - - #include "createNamedMesh.H" - - forAll(timeDirs, timeI) - { - runTime.setTime(timeDirs[timeI], timeI); - - Info<< "Time = " << runTime.timeName() << endl; - - // Check for new mesh - mesh.readUpdate(); - - //volVectorField cc - //( - // IOobject - // ( - // "cellCentres", - // runTime.timeName(), - // mesh, - // IOobject::NO_READ, - // IOobject::AUTO_WRITE - // ), - // 1.0*mesh.C() - //); - // - //Info<< "Writing cellCentre positions to " << cc.name() << " in " - // << runTime.timeName() << endl; - //cc.write(); - - Info<< "Writing components of cellCentre positions to volScalarFields" - << " ccx, ccy, ccz in " << runTime.timeName() << endl; - - for (direction i=0; i<vector::nComponents; i++) - { - volScalarField cci - ( - IOobject - ( - "cc" + word(vector::componentNames[i]), - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - mesh.C().component(i) - ); - - cci.write(); - } - - - volScalarField V - ( - IOobject - ( - "V", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE, - false - ), - mesh, - dimensionedScalar("V", mesh.V().dimensions(), 0.0), - calculatedFvPatchField<scalar>::typeName - ); - - V.ref() = mesh.V(); - - volScalarField::Boundary& Vbf = V.boundaryFieldRef(); - - forAll(Vbf, patchi) - { - Vbf[patchi] = Vbf[patchi].patch().magSf(); - } - - Info<< "Writing cellVolumes and patch faceAreas to " << V.name() - << " in " << runTime.timeName() << endl; - - V.write(); - - } - - Info<< "\nEnd\n" << endl; - - return 0; -} - - -// ************************************************************************* // diff --git a/bin/writeCellCentres b/bin/writeCellCentres new file mode 120000 index 00000000000..7b00da8e40e --- /dev/null +++ b/bin/writeCellCentres @@ -0,0 +1 @@ +supercededByPostProcess \ No newline at end of file diff --git a/etc/caseDicts/postProcessing/fields/writeCellCentres b/etc/caseDicts/postProcessing/fields/writeCellCentres new file mode 100644 index 00000000000..f8824910c7c --- /dev/null +++ b/etc/caseDicts/postProcessing/fields/writeCellCentres @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Web: www.OpenFOAM.org + \\/ M anipulation | +------------------------------------------------------------------------------- +Description + Writes the cell-centres volVectorField and the three component fields as + volScalarFields useful for post-processing + thresholding. + +\*---------------------------------------------------------------------------*/ + +type writeCellCentres; +libs ("libfieldFunctionObjects.so"); + +executeControl writeTime; +writeControl writeTime; + +// ************************************************************************* // diff --git a/etc/caseDicts/postProcessing/fields/writeCellVolumes b/etc/caseDicts/postProcessing/fields/writeCellVolumes new file mode 100644 index 00000000000..bff6f9ec6d0 --- /dev/null +++ b/etc/caseDicts/postProcessing/fields/writeCellVolumes @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Web: www.OpenFOAM.org + \\/ M anipulation | +------------------------------------------------------------------------------- +Description + Writes the cell-volumes volScalarField. + +\*---------------------------------------------------------------------------*/ + +type writeCellVolumes; +libs ("libfieldFunctionObjects.so"); + +executeControl writeTime; +writeControl writeTime; + +// ************************************************************************* // diff --git a/src/functionObjects/field/Make/files b/src/functionObjects/field/Make/files index c0c5827b3e8..6c1cca2dc8e 100644 --- a/src/functionObjects/field/Make/files +++ b/src/functionObjects/field/Make/files @@ -54,4 +54,7 @@ turbulenceFields/turbulenceFields.C yPlus/yPlus.C wallShearStress/wallShearStress.C +writeCellCentres/writeCellCentres.C +writeCellVolumes/writeCellVolumes.C + LIB = $(FOAM_LIBBIN)/libfieldFunctionObjects diff --git a/src/functionObjects/field/writeCellCentres/writeCellCentres.C b/src/functionObjects/field/writeCellCentres/writeCellCentres.C new file mode 100644 index 00000000000..d1f1d65fd09 --- /dev/null +++ b/src/functionObjects/field/writeCellCentres/writeCellCentres.C @@ -0,0 +1,121 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "writeCellCentres.H" +#include "volFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace functionObjects +{ + defineTypeNameAndDebug(writeCellCentres, 0); + addToRunTimeSelectionTable(functionObject, writeCellCentres, dictionary); +} +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::functionObjects::writeCellCentres::writeCellCentres +( + const word& name, + const Time& runTime, + const dictionary& dict +) +: + fvMeshFunctionObject(name, runTime, dict) +{ + read(dict); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::functionObjects::writeCellCentres::~writeCellCentres() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +bool Foam::functionObjects::writeCellCentres::execute() +{ + return true; +} + + +bool Foam::functionObjects::writeCellCentres::write() +{ + volVectorField C + ( + IOobject + ( + "C", + time_.timeName(), + mesh_, + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + mesh_.C(), + calculatedFvPatchScalarField::typeName + ); + + Log << " Writing cell-centre field " << C.name() + << " to " << time_.timeName() << endl; + + C.write(); + + for (direction i=0; i<vector::nComponents; i++) + { + volScalarField Ci + ( + IOobject + ( + mesh_.C().name() + vector::componentNames[i], + time_.timeName(), + mesh_, + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + mesh_.C().component(i) + ); + + Log << " Writing the " + << vector::componentNames[i] + << " component field of the cell-centres " << Ci.name() + << " to " << time_.timeName() << endl; + + Ci.write(); + } + + return true; +} + + +// ************************************************************************* // diff --git a/src/functionObjects/field/writeCellCentres/writeCellCentres.H b/src/functionObjects/field/writeCellCentres/writeCellCentres.H new file mode 100644 index 00000000000..fd44473cc87 --- /dev/null +++ b/src/functionObjects/field/writeCellCentres/writeCellCentres.H @@ -0,0 +1,127 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::functionObjects::writeCellCentres + +Group + grpFieldFunctionObjects + +Description + This function object writes the cell-centres volVectorField and the + three component fields as volScalarFields. + + Example of function object specification: + \verbatim + writeCellCentres + { + type writeCellCentres; + libs ("libfieldFunctionObjects.so"); + ... + } + \endverbatim + +Usage + \table + Property | Description | Required | Default value + type | type name: writeCellCentres | yes | + \endtable + +See also + Foam::functionObjects::fvMeshFunctionObject + +SourceFiles + writeCellCentres.C + +\*---------------------------------------------------------------------------*/ + +#ifndef functionObjects_writeCellCentres_H +#define functionObjects_writeCellCentres_H + +#include "fvMeshFunctionObject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace functionObjects +{ + +/*---------------------------------------------------------------------------*\ + Class writeCellCentres Declaration +\*---------------------------------------------------------------------------*/ + +class writeCellCentres +: + public fvMeshFunctionObject +{ + // Private member functions + + //- Disallow default bitwise copy construct + writeCellCentres(const writeCellCentres&); + + //- Disallow default bitwise assignment + void operator=(const writeCellCentres&); + + +public: + + //- Runtime type information + TypeName("writeCellCentres"); + + + // Constructors + + //- Construct from Time and dictionary + writeCellCentres + ( + const word& name, + const Time& runTime, + const dictionary& dict + ); + + + //- Destructor + virtual ~writeCellCentres(); + + + // Member Functions + + //- Do nothing + virtual bool execute(); + + //- Write the cell-centre fields + virtual bool write(); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace functionObjects +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/functionObjects/field/writeCellVolumes/writeCellVolumes.C b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.C new file mode 100644 index 00000000000..05bd64530d3 --- /dev/null +++ b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.C @@ -0,0 +1,100 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "writeCellVolumes.H" +#include "volFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace functionObjects +{ + defineTypeNameAndDebug(writeCellVolumes, 0); + addToRunTimeSelectionTable(functionObject, writeCellVolumes, dictionary); +} +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::functionObjects::writeCellVolumes::writeCellVolumes +( + const word& name, + const Time& runTime, + const dictionary& dict +) +: + fvMeshFunctionObject(name, runTime, dict) +{ + read(dict); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::functionObjects::writeCellVolumes::~writeCellVolumes() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +bool Foam::functionObjects::writeCellVolumes::execute() +{ + return true; +} + + +bool Foam::functionObjects::writeCellVolumes::write() +{ + volScalarField V + ( + IOobject + ( + mesh_.V().name(), + time_.timeName(), + mesh_, + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + mesh_, + dimensionedScalar(mesh_.V().name(), mesh_.V().dimensions(), 0), + calculatedFvPatchField<scalar>::typeName + ); + + V.ref() = mesh_.V(); + + Log << " Writing cell-volumes field " << V.name() + << " to " << time_.timeName() << endl; + + V.write(); + + return true; +} + + +// ************************************************************************* // diff --git a/src/functionObjects/field/writeCellVolumes/writeCellVolumes.H b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.H new file mode 100644 index 00000000000..c5bd54a72e2 --- /dev/null +++ b/src/functionObjects/field/writeCellVolumes/writeCellVolumes.H @@ -0,0 +1,126 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::functionObjects::writeCellVolumes + +Group + grpFieldFunctionObjects + +Description + This function object writes the cell-volumes volScalarField. + + Example of function object specification: + \verbatim + writeCellVolumes + { + type writeCellVolumes; + libs ("libfieldFunctionObjects.so"); + ... + } + \endverbatim + +Usage + \table + Property | Description | Required | Default value + type | type name: writeCellVolumes | yes | + \endtable + +See also + Foam::functionObjects::fvMeshFunctionObject + +SourceFiles + writeCellVolumes.C + +\*---------------------------------------------------------------------------*/ + +#ifndef functionObjects_writeCellVolumes_H +#define functionObjects_writeCellVolumes_H + +#include "fvMeshFunctionObject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace functionObjects +{ + +/*---------------------------------------------------------------------------*\ + Class writeCellVolumes Declaration +\*---------------------------------------------------------------------------*/ + +class writeCellVolumes +: + public fvMeshFunctionObject +{ + // Private member functions + + //- Disallow default bitwise copy construct + writeCellVolumes(const writeCellVolumes&); + + //- Disallow default bitwise assignment + void operator=(const writeCellVolumes&); + + +public: + + //- Runtime type information + TypeName("writeCellVolumes"); + + + // Constructors + + //- Construct from Time and dictionary + writeCellVolumes + ( + const word& name, + const Time& runTime, + const dictionary& dict + ); + + + //- Destructor + virtual ~writeCellVolumes(); + + + // Member Functions + + //- Do nothing + virtual bool execute(); + + //- Write the cell-centre fields + virtual bool write(); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace functionObjects +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // -- GitLab