Skip to content
Snippets Groups Projects
Commit 53717e91 authored by Henry Weller's avatar Henry Weller
Browse files

writeCellCentres utility: Replaced by writeCellCentres functionObject

postProcess -func writeCellCentres
parent 67e5e20c
Branches
Tags
1 merge request!60Merge foundation
Showing with 518 additions and 8 deletions
writeCellCentres.C
EXE = $(FOAM_APPBIN)/writeCellCentres
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \
-lfiniteVolume
supercededByPostProcess
\ No newline at end of file
/*--------------------------------*- 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;
// ************************************************************************* //
/*--------------------------------*- 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;
// ************************************************************************* //
......@@ -54,4 +54,7 @@ turbulenceFields/turbulenceFields.C
yPlus/yPlus.C
wallShearStress/wallShearStress.C
writeCellCentres/writeCellCentres.C
writeCellVolumes/writeCellVolumes.C
LIB = $(FOAM_LIBBIN)/libfieldFunctionObjects
......@@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
......@@ -21,119 +21,100 @@ License
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 "writeCellCentres.H"
#include "volFields.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
using namespace Foam;
namespace Foam
{
namespace functionObjects
{
defineTypeNameAndDebug(writeCellCentres, 0);
addToRunTimeSelectionTable(functionObject, writeCellCentres, dictionary);
}
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
Foam::functionObjects::writeCellCentres::writeCellCentres
(
const word& name,
const Time& runTime,
const dictionary& dict
)
:
fvMeshFunctionObject(name, runTime, dict)
{
timeSelector::addOptions();
#include "addRegionOption.H"
read(dict);
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
#include "setRootCase.H"
#include "createTime.H"
Foam::functionObjects::writeCellCentres::~writeCellCentres()
{}
instantList timeDirs = timeSelector::select0(runTime, args);
#include "createNamedMesh.H"
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
forAll(timeDirs, timeI)
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++)
{
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
volScalarField Ci
(
IOobject
(
"V",
runTime.timeName(),
mesh,
mesh_.C().name() + vector::componentNames[i],
time_.timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE,
IOobject::NO_WRITE,
false
),
mesh,
dimensionedScalar("V", mesh.V().dimensions(), 0.0),
calculatedFvPatchField<scalar>::typeName
mesh_.C().component(i)
);
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();
Log << " Writing the "
<< vector::componentNames[i]
<< " component field of the cell-centres " << Ci.name()
<< " to " << time_.timeName() << endl;
Ci.write();
}
Info<< "\nEnd\n" << endl;
return 0;
return true;
}
......
/*---------------------------------------------------------------------------*\
========= |
\\ / 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
// ************************************************************************* //
/*---------------------------------------------------------------------------*\
========= |
\\ / 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;
}
// ************************************************************************* //
/*---------------------------------------------------------------------------*\
========= |
\\ / 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
// ************************************************************************* //
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment