diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.C index 5cc6f2213..9a1b6c70e 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.C +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.C @@ -47,27 +47,13 @@ namespace functionObjects Foam::functionObjects::writeVTK::writeVTK ( const word& name, - const Time& t, + const Time& runTime, const dictionary& dict ) : - functionObject(name), - time_(t), - obr_ - ( - time_.lookupObject - ( - dict.lookupOrDefault("region", polyMesh::defaultRegion) - ) - ), + fvMeshFunctionObject(name, runTime, dict), objectNames_() { - if (!isA(obr_)) - { - FatalErrorInFunction - << "objectRegistry is not an fvMesh" << exit(FatalError); - } - read(dict); } @@ -98,20 +84,16 @@ bool Foam::functionObjects::writeVTK::write(const bool postProcess) { Info<< type() << " " << name() << " output:" << nl; - fvMesh& mesh = const_cast(refCast(obr_)); + Info<< "Time: " << time_.timeName() << endl; - const Time& runTime = mesh.time(); - - Info<< "Time: " << runTime.timeName() << endl; - - word timeDesc = runTime.timeName(); + word timeDesc = time_.timeName(); // VTK/ directory in the case - fileName fvPath(runTime.path()/"VTK"); + fileName fvPath(time_.path()/"VTK"); mkDir(fvPath); - string vtkName = runTime.caseName(); + string vtkName = time_.caseName(); if (Pstream::parRun()) { @@ -135,7 +117,7 @@ bool Foam::functionObjects::writeVTK::write(const bool postProcess) Info<< " Internal : " << vtkFileName << endl; - vtkMesh vMesh(mesh); + vtkMesh vMesh(const_cast(mesh_)); // Write mesh internalWriter writer(vMesh, false, vtkFileName); diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.H index 2df7cb328..b8c1968f8 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.H +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/foamToVTK/writeVTK/writeVTK.H @@ -54,7 +54,7 @@ Description \endtable SeeAlso - Foam::functionObject + Foam::functionObjects::fvMeshFunctionObject Foam::functionObjects::timeControl SourceFiles @@ -66,18 +66,13 @@ SourceFiles #ifndef functionObjects_writeVTK_H #define functionObjects_writeVTK_H -#include "functionObject.H" +#include "fvMeshFunctionObject.H" #include "wordReList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - -// Forward declaration of classes -class Time; -class objectRegistry; - namespace functionObjects { @@ -87,16 +82,10 @@ namespace functionObjects class writeVTK : - public functionObject + public fvMeshFunctionObject { // Private data - //- Reference to the Time - const Time& time_; - - //- Refererence to objectRegistry - const objectRegistry& obr_; - //- Names of objects wordReList objectNames_; diff --git a/src/postProcessing/functionObjects/field/div/div.C b/src/postProcessing/functionObjects/field/div/div.C index a91ffffcd..a3e6bf114 100644 --- a/src/postProcessing/functionObjects/field/div/div.C +++ b/src/postProcessing/functionObjects/field/div/div.C @@ -131,10 +131,10 @@ bool Foam::functionObjects::div::execute(const bool postProcess) bool Foam::functionObjects::div::write(const bool postProcess) { - if (obr_.foundObject(resultName_)) + if (mesh_.foundObject(resultName_)) { const regIOobject& field = - obr_.lookupObject(resultName_); + mesh_.lookupObject(resultName_); Info<< type() << " " << name() << " output:" << nl << " writing field " << field.name() << nl << endl; diff --git a/src/postProcessing/functionObjects/field/div/div.H b/src/postProcessing/functionObjects/field/div/div.H index 17e53c26d..54e514a42 100644 --- a/src/postProcessing/functionObjects/field/div/div.H +++ b/src/postProcessing/functionObjects/field/div/div.H @@ -32,6 +32,9 @@ Description limited to surfaceScalarFields and volVectorFields, and the output is a volScalarField. +SeeAlso + Foam::functionObjects::fvMeshFunctionObject + SourceFiles div.C @@ -62,7 +65,7 @@ class div : public fvMeshFunctionObject { - // Private data + // Private member data //- Name of field to process word fieldName_; diff --git a/src/postProcessing/functionObjects/field/grad/grad.H b/src/postProcessing/functionObjects/field/grad/grad.H index 43e6cef3d..a58d78193 100644 --- a/src/postProcessing/functionObjects/field/grad/grad.H +++ b/src/postProcessing/functionObjects/field/grad/grad.H @@ -32,6 +32,9 @@ Description limited to scalar and vector volume or surface fields, and the output is a volume vector or tensor field. +SeeAlso + Foam::functionObjects::fvMeshFunctionObject + SourceFiles grad.C diff --git a/src/postProcessing/functionObjects/field/mag/mag.H b/src/postProcessing/functionObjects/field/mag/mag.H index be1c6fe86..e3f09e7ed 100644 --- a/src/postProcessing/functionObjects/field/mag/mag.H +++ b/src/postProcessing/functionObjects/field/mag/mag.H @@ -32,6 +32,9 @@ Description can be applied to any volume or surface fieldsm and the output is a volume or surface scalar field. +SeeAlso + Foam::functionObjects::fvMeshFunctionObject + SourceFiles mag.C diff --git a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C index 2bf8fb253..29f1e3577 100644 --- a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C +++ b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.C @@ -46,14 +46,12 @@ namespace functionObjects void Foam::functionObjects::nearWallFields::calcAddressing() { - const fvMesh& mesh = refCast(obr_); - // Count number of faces label nPatchFaces = 0; forAllConstIter(labelHashSet, patchSet_, iter) { label patchi = iter.key(); - nPatchFaces += mesh.boundary()[patchi].size(); + nPatchFaces += mesh_.boundary()[patchi].size(); } // Global indexing @@ -65,7 +63,7 @@ void Foam::functionObjects::nearWallFields::calcAddressing() } // Construct cloud - Cloud cloud(mesh, IDLList()); + Cloud cloud(mesh_, IDLList()); // Add particles to track to sample locations nPatchFaces = 0; @@ -73,7 +71,7 @@ void Foam::functionObjects::nearWallFields::calcAddressing() forAllConstIter(labelHashSet, patchSet_, iter) { label patchi = iter.key(); - const fvPatch& patch = mesh.boundary()[patchi]; + const fvPatch& patch = mesh_.boundary()[patchi]; vectorField nf(patch.nf()); vectorField faceCellCentres(patch.patch().faceCellCentres()); @@ -88,7 +86,7 @@ void Foam::functionObjects::nearWallFields::calcAddressing() ( mappedPatchBase::facePoint ( - mesh, + mesh_, meshFacei, polyMesh::FACE_DIAG_TRIS ) @@ -112,14 +110,14 @@ void Foam::functionObjects::nearWallFields::calcAddressing() label celli = -1; label tetFacei = -1; label tetPtI = -1; - mesh.findCellFacePt(start, celli, tetFacei, tetPtI); + mesh_.findCellFacePt(start, celli, tetFacei, tetPtI); // Add to cloud. Add originating face as passive data cloud.addParticle ( new findCellParticle ( - mesh, + mesh_, start, celli, tetFacei, @@ -140,8 +138,8 @@ void Foam::functionObjects::nearWallFields::calcAddressing() // Dump particles OBJstream str ( - mesh.time().path() - /"wantedTracks_" + mesh.time().timeName() + ".obj" + mesh_.time().path() + /"wantedTracks_" + mesh_.time().timeName() + ".obj" ); InfoInFunction << "Dumping tracks to " << str.name() << endl; @@ -155,14 +153,14 @@ void Foam::functionObjects::nearWallFields::calcAddressing() // Per cell: empty or global wall index and end location - cellToWalls_.setSize(mesh.nCells()); - cellToSamples_.setSize(mesh.nCells()); + cellToWalls_.setSize(mesh_.nCells()); + cellToSamples_.setSize(mesh_.nCells()); // Database to pass into findCellParticle::move findCellParticle::trackingData td(cloud, cellToWalls_, cellToSamples_); // Track all particles to their end position. - scalar maxTrackLen = 2.0*mesh.bounds().mag(); + scalar maxTrackLen = 2.0*mesh_.bounds().mag(); //Debug: collect start points @@ -202,8 +200,8 @@ void Foam::functionObjects::nearWallFields::calcAddressing() { OBJstream str ( - mesh.time().path() - /"obtainedTracks_" + mesh.time().timeName() + ".obj" + mesh_.time().path() + /"obtainedTracks_" + mesh_.time().timeName() + ".obj" ); InfoInFunction << "Dumping obtained to " << str.name() << endl; @@ -230,22 +228,9 @@ Foam::functionObjects::nearWallFields::nearWallFields const dictionary& dict ) : - functionObject(name), - obr_ - ( - runTime.lookupObject - ( - dict.lookupOrDefault("region", polyMesh::defaultRegion) - ) - ), + fvMeshFunctionObject(name, runTime, dict), fieldSet_() { - if (!isA(obr_)) - { - FatalErrorInFunction - << "objectRegistry is not an fvMesh" << exit(FatalError); - } - read(dict); } @@ -270,11 +255,9 @@ bool Foam::functionObjects::nearWallFields::read(const dictionary& dict) InfoInFunction << endl; } - const fvMesh& mesh = refCast(obr_); - dict.lookup("fields") >> fieldSet_; patchSet_ = - mesh.boundaryMesh().patchSet(wordReList(dict.lookup("patches"))); + mesh_.boundaryMesh().patchSet(wordReList(dict.lookup("patches"))); distance_ = readScalar(dict.lookup("distance")); @@ -343,7 +326,7 @@ bool Foam::functionObjects::nearWallFields::execute(const bool postProcess) Info<< type() << " " << name() << " output:" << nl; - Info<< " Sampling fields to " << obr_.time().timeName() + Info<< " Sampling fields to " << time_.timeName() << endl; sampleFields(vsf_); @@ -363,7 +346,7 @@ bool Foam::functionObjects::nearWallFields::write(const bool postProcess) InfoInFunction << endl; } - Info<< " Writing sampled fields to " << obr_.time().timeName() + Info<< " Writing sampled fields to " << time_.timeName() << endl; forAll(vsf_, i) diff --git a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H index 4ea6f13fd..f0bdda2cc 100644 --- a/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H +++ b/src/postProcessing/functionObjects/field/nearWallFields/nearWallFields.H @@ -61,7 +61,7 @@ Description \endtable SeeAlso - Foam::functionObject + Foam::functionObjects::fvMeshFunctionObject SourceFiles nearWallFields.C @@ -71,7 +71,7 @@ SourceFiles #ifndef functionObjects_nearWallFields_H #define functionObjects_nearWallFields_H -#include "functionObject.H" +#include "fvMeshFunctionObject.H" #include "volFields.H" #include "Tuple2.H" #include "interpolationCellPoint.H" @@ -80,10 +80,6 @@ SourceFiles namespace Foam { - -// Forward declaration of classes -class objectRegistry; - namespace functionObjects { @@ -93,14 +89,11 @@ namespace functionObjects class nearWallFields : - public functionObject + public fvMeshFunctionObject { protected: - // Protected data - - //- Reference to the objectRegistry - const objectRegistry& obr_; + // Protected member data // Read from dictionary diff --git a/src/postProcessing/functionObjects/field/processorField/processorField.C b/src/postProcessing/functionObjects/field/processorField/processorField.C index 3a0f57ed2..1ffc9c10d 100644 --- a/src/postProcessing/functionObjects/field/processorField/processorField.C +++ b/src/postProcessing/functionObjects/field/processorField/processorField.C @@ -48,25 +48,10 @@ Foam::functionObjects::processorField::processorField const dictionary& dict ) : - functionObject(name), - obr_ - ( - runTime.lookupObject - ( - dict.lookupOrDefault("region", polyMesh::defaultRegion) - ) - ) + fvMeshFunctionObject(name, runTime, dict) { - if (!isA(obr_)) - { - FatalErrorInFunction - << "objectRegistry is not an fvMesh" << exit(FatalError); - } - read(dict); - const fvMesh& mesh = refCast(obr_); - volScalarField* procFieldPtr ( new volScalarField @@ -74,17 +59,17 @@ Foam::functionObjects::processorField::processorField IOobject ( "processorID", - mesh.time().timeName(), - mesh, + mesh_.time().timeName(), + mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - mesh, + mesh_, dimensionedScalar("0", dimless, 0.0) ) ); - mesh.objectRegistry::store(procFieldPtr); + mesh_.objectRegistry::store(procFieldPtr); } @@ -105,7 +90,7 @@ bool Foam::functionObjects::processorField::read(const dictionary& dict) bool Foam::functionObjects::processorField::execute(const bool postProcess) { const volScalarField& procField = - obr_.lookupObject("processorID"); + mesh_.lookupObject("processorID"); const_cast(procField) == dimensionedScalar("proci", dimless, Pstream::myProcNo()); @@ -117,7 +102,7 @@ bool Foam::functionObjects::processorField::execute(const bool postProcess) bool Foam::functionObjects::processorField::write(const bool postProcess) { const volScalarField& procField = - obr_.lookupObject("processorID"); + mesh_.lookupObject("processorID"); procField.write(); diff --git a/src/postProcessing/functionObjects/field/processorField/processorField.H b/src/postProcessing/functionObjects/field/processorField/processorField.H index 5e9138f45..c3334bedd 100644 --- a/src/postProcessing/functionObjects/field/processorField/processorField.H +++ b/src/postProcessing/functionObjects/field/processorField/processorField.H @@ -48,7 +48,7 @@ Description \endtable SeeAlso - Foam::functionObject + Foam::functionObjects::fvMeshFunctionObject SourceFiles processorField.C @@ -58,16 +58,12 @@ SourceFiles #ifndef functionObjects_processorField_H #define functionObjects_processorField_H -#include "functionObject.H" +#include "fvMeshFunctionObject.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - -// Forward declaration of classes -class objectRegistry; - namespace functionObjects { @@ -77,18 +73,8 @@ namespace functionObjects class processorField : - public functionObject + public fvMeshFunctionObject { -protected: - - // Protected data - - //- Reference to the objectRegistry - const objectRegistry& obr_; - - -private: - // Private member functions //- Disallow default bitwise copy construct diff --git a/src/postProcessing/functionObjects/field/readFields/readFields.C b/src/postProcessing/functionObjects/field/readFields/readFields.C index 6014a7d31..d51f5c652 100644 --- a/src/postProcessing/functionObjects/field/readFields/readFields.C +++ b/src/postProcessing/functionObjects/field/readFields/readFields.C @@ -49,22 +49,9 @@ Foam::functionObjects::readFields::readFields const dictionary& dict ) : - functionObject(name), - obr_ - ( - runTime.lookupObject - ( - dict.lookupOrDefault("region", polyMesh::defaultRegion) - ) - ), + fvMeshFunctionObject(name, runTime, dict), fieldSet_() { - if (!isA(obr_)) - { - FatalErrorInFunction - << "objectRegistry is not an fvMesh" << exit(FatalError); - } - read(dict); } diff --git a/src/postProcessing/functionObjects/field/readFields/readFields.H b/src/postProcessing/functionObjects/field/readFields/readFields.H index d82ecdf44..0f314eb0b 100644 --- a/src/postProcessing/functionObjects/field/readFields/readFields.H +++ b/src/postProcessing/functionObjects/field/readFields/readFields.H @@ -54,7 +54,7 @@ Description \endtable SeeAlso - Foam::functionObject + Foam::functionObjects::fvMeshFunctionObject SourceFiles readFields.C @@ -64,7 +64,7 @@ SourceFiles #ifndef functionObjects_readFields_H #define functionObjects_readFields_H -#include "functionObject.H" +#include "fvMeshFunctionObject.H" #include "volFieldsFwd.H" #include "surfaceFieldsFwd.H" @@ -72,10 +72,6 @@ SourceFiles namespace Foam { - -// Forward declaration of classes -class objectRegistry; - namespace functionObjects { @@ -85,15 +81,12 @@ namespace functionObjects class readFields : - public functionObject + public fvMeshFunctionObject { protected: // Protected data - //- Reference to the objectRegistry - const objectRegistry& obr_; - //- Fields to load wordList fieldSet_; diff --git a/src/postProcessing/functionObjects/field/readFields/readFieldsTemplates.C b/src/postProcessing/functionObjects/field/readFields/readFieldsTemplates.C index 37631001c..9e9feb90e 100644 --- a/src/postProcessing/functionObjects/field/readFields/readFieldsTemplates.C +++ b/src/postProcessing/functionObjects/field/readFields/readFieldsTemplates.C @@ -59,13 +59,11 @@ void Foam::functionObjects::readFields::loadField } else { - const fvMesh& mesh = refCast(obr_); - IOobject fieldHeader ( fieldName, - mesh.time().timeName(), - mesh, + mesh_.time().timeName(), + mesh_, IOobject::MUST_READ, IOobject::NO_WRITE ); @@ -80,7 +78,7 @@ void Foam::functionObjects::readFields::loadField Info<< " Reading " << fieldName << endl; label sz = vflds.size(); vflds.setSize(sz+1); - vflds.set(sz, new vfType(fieldHeader, mesh)); + vflds.set(sz, new vfType(fieldHeader, mesh_)); } else if ( @@ -92,7 +90,7 @@ void Foam::functionObjects::readFields::loadField Info<< " Reading " << fieldName << endl; label sz = sflds.size(); sflds.setSize(sz+1); - sflds.set(sz, new sfType(fieldHeader, mesh)); + sflds.set(sz, new sfType(fieldHeader, mesh_)); } } } diff --git a/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.C b/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.C index 97ab1ddd6..631c5541e 100644 --- a/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.C +++ b/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.C @@ -129,8 +129,6 @@ Foam::tmp Foam::functionObjects::pressureTools::pDyn const volScalarField& p ) const { - const fvMesh& mesh = refCast(obr_); - tmp tpDyn ( new volScalarField @@ -138,12 +136,12 @@ Foam::tmp Foam::functionObjects::pressureTools::pDyn IOobject ( "pDyn", - mesh.time().timeName(), - mesh, + mesh_.time().timeName(), + mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - mesh, + mesh_, dimensionedScalar("zero", dimPressure, 0.0) ) ); @@ -191,14 +189,7 @@ Foam::functionObjects::pressureTools::pressureTools const dictionary& dict ) : - functionObject(name), - obr_ - ( - runTime.lookupObject - ( - dict.lookupOrDefault("region", polyMesh::defaultRegion) - ) - ), + fvMeshFunctionObject(name, runTime, dict), pName_("p"), UName_("U"), rhoName_("rho"), @@ -209,12 +200,6 @@ Foam::functionObjects::pressureTools::pressureTools UInf_(Zero), rhoInf_(0.0) { - if (!isA(obr_)) - { - FatalErrorInFunction - << "objectRegistry is not an fvMesh" << exit(FatalError); - } - read(dict); dimensionSet pDims(dimPressure); @@ -224,8 +209,6 @@ Foam::functionObjects::pressureTools::pressureTools pDims /= dimPressure; } - const fvMesh& mesh = refCast(obr_); - volScalarField* pPtr ( new volScalarField @@ -233,17 +216,17 @@ Foam::functionObjects::pressureTools::pressureTools IOobject ( pName(), - mesh.time().timeName(), - mesh, + mesh_.time().timeName(), + mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - mesh, + mesh_, dimensionedScalar("0", pDims, 0.0) ) ); - mesh.objectRegistry::store(pPtr); + mesh_.objectRegistry::store(pPtr); } diff --git a/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.H b/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.H index ff3fd37ad..f957966c8 100644 --- a/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.H +++ b/src/postProcessing/functionObjects/forces/pressureTools/pressureTools.H @@ -100,6 +100,9 @@ Description rhoInf | Freestream density for coefficient calculation | no | \endtable +SeeAlso + Foam::functionObjects::fvMeshFunctionObject + SourceFiles pressureTools.C @@ -108,7 +111,7 @@ SourceFiles #ifndef functionObjects_pressureTools_H #define functionObjects_pressureTools_H -#include "functionObject.H" +#include "fvMeshFunctionObject.H" #include "volFieldsFwd.H" #include "dimensionedScalar.H" @@ -116,10 +119,6 @@ SourceFiles namespace Foam { - -// Forward declaration of classes -class objectRegistry; - namespace functionObjects { @@ -129,13 +128,10 @@ namespace functionObjects class pressureTools : - public functionObject + public fvMeshFunctionObject { // Private data - //- Reference to the objectRegistry - const objectRegistry& obr_; - //- Name of pressure field, default is "p" word pName_; diff --git a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C index 298963e58..ff99c21b4 100644 --- a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C +++ b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C @@ -75,27 +75,10 @@ Foam::functionObjects::CourantNo::CourantNo const dictionary& dict ) : - functionObject(name), - obr_ - ( - runTime.lookupObject - ( - dict.lookupOrDefault("region", polyMesh::defaultRegion) - ) - ), - phiName_("phi"), - rhoName_("rho") + fvMeshFunctionObject(name, runTime, dict) { - if (!isA(obr_)) - { - FatalErrorInFunction - << "objectRegistry is not an fvMesh" << exit(FatalError); - } - read(dict); - const fvMesh& mesh = refCast(obr_); - volScalarField* CourantNoPtr ( new volScalarField @@ -103,18 +86,18 @@ Foam::functionObjects::CourantNo::CourantNo IOobject ( type(), - mesh.time().timeName(), - mesh, + mesh_.time().timeName(), + mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - mesh, + mesh_, dimensionedScalar("0", dimless, 0.0), zeroGradientFvPatchScalarField::typeName ) ); - mesh.objectRegistry::store(CourantNoPtr); + mesh_.objectRegistry::store(CourantNoPtr); } @@ -137,21 +120,19 @@ bool Foam::functionObjects::CourantNo::read(const dictionary& dict) bool Foam::functionObjects::CourantNo::execute(const bool postProcess) { - const fvMesh& mesh = refCast(obr_); - const surfaceScalarField& phi = - mesh.lookupObject(phiName_); + mesh_.lookupObject(phiName_); volScalarField& Co = const_cast ( - mesh.lookupObject(type()) + mesh_.lookupObject(type()) ); Co.ref() = byRho ( - (0.5*mesh.time().deltaT()) + (0.5*mesh_.time().deltaT()) *fvc::surfaceSum(mag(phi))()() - /mesh.V() + /mesh_.V() ); Co.correctBoundaryConditions(); diff --git a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H index 6db5e796e..feaa6b0ae 100644 --- a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H +++ b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H @@ -32,6 +32,9 @@ Description volScalarField. The field is stored on the mesh database so that it can be retrieved and used for other applications. +SeeAlso + Foam::functionObjects::fvMeshFunctionObject + SourceFiles CourantNo.C @@ -40,7 +43,7 @@ SourceFiles #ifndef functionObjects_CourantNo_H #define functionObjects_CourantNo_H -#include "functionObject.H" +#include "fvMeshFunctionObject.H" #include "volFields.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -56,13 +59,10 @@ namespace functionObjects class CourantNo : - public functionObject + public fvMeshFunctionObject { // Private data - //- Reference to the database - const objectRegistry& obr_; - //- Name of flux field, default is "phi" word phiName_; diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C index defbe1841..9f47b1fac 100644 --- a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C +++ b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C @@ -56,26 +56,10 @@ Foam::functionObjects::Lambda2::Lambda2 const dictionary& dict ) : - functionObject(name), - obr_ - ( - runTime.lookupObject - ( - dict.lookupOrDefault("region", polyMesh::defaultRegion) - ) - ), - UName_("U") + fvMeshFunctionObject(name, runTime, dict) { - if (!isA(obr_)) - { - FatalErrorInFunction - << "objectRegistry is not an fvMesh" << exit(FatalError); - } - read(dict); - const fvMesh& mesh = refCast(obr_); - volScalarField* Lambda2Ptr ( new volScalarField @@ -83,17 +67,17 @@ Foam::functionObjects::Lambda2::Lambda2 IOobject ( type(), - mesh.time().timeName(), - mesh, + mesh_.time().timeName(), + mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - mesh, + mesh_, dimensionedScalar("0", dimless/sqr(dimTime), 0.0) ) ); - mesh.objectRegistry::store(Lambda2Ptr); + mesh_.objectRegistry::store(Lambda2Ptr); } @@ -115,10 +99,8 @@ bool Foam::functionObjects::Lambda2::read(const dictionary& dict) bool Foam::functionObjects::Lambda2::execute(const bool postProcess) { - const fvMesh& mesh = refCast(obr_); - const volVectorField& U = - mesh.lookupObject(UName_); + mesh_.lookupObject(UName_); const volTensorField gradU(fvc::grad(U)); @@ -131,7 +113,7 @@ bool Foam::functionObjects::Lambda2::execute(const bool postProcess) volScalarField& Lambda2 = const_cast ( - mesh.lookupObject(type()) + mesh_.lookupObject(type()) ); Lambda2 = -eigenValues(SSplusWW)().component(vector::Y); diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H index 76d3b6d73..0957556aa 100644 --- a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H +++ b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H @@ -32,6 +32,9 @@ Description of the sum of the square of the symmetrical and anti-symmetrical parts of the velocity gradient tensor. +SeeAlso + Foam::functionObjects::fvMeshFunctionObject + SourceFiles Lambda2.C @@ -40,17 +43,13 @@ SourceFiles #ifndef functionObjects_Lambda2_H #define functionObjects_Lambda2_H -#include "functionObject.H" +#include "fvMeshFunctionObject.H" #include "volFieldsFwd.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - -// Forward declaration of classes -class objectRegistry; - namespace functionObjects { @@ -60,13 +59,10 @@ namespace functionObjects class Lambda2 : - public functionObject + public fvMeshFunctionObject { // Private data - //- Reference to the database - const objectRegistry& obr_; - //- Name of velocity field, default is "U" word UName_; diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C index b4560d54e..a21596e5d 100644 --- a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C +++ b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C @@ -59,27 +59,10 @@ Foam::functionObjects::Peclet::Peclet const dictionary& dict ) : - functionObject(name), - obr_ - ( - runTime.lookupObject - ( - dict.lookupOrDefault("region", polyMesh::defaultRegion) - ) - ), - phiName_("phi"), - rhoName_("rho") + fvMeshFunctionObject(name, runTime, dict) { - if (!isA(obr_)) - { - FatalErrorInFunction - << "objectRegistry is not an fvMesh" << exit(FatalError); - } - read(dict); - const fvMesh& mesh = refCast(obr_); - surfaceScalarField* PecletPtr ( new surfaceScalarField @@ -87,17 +70,17 @@ Foam::functionObjects::Peclet::Peclet IOobject ( type(), - mesh.time().timeName(), - mesh, + mesh_.time().timeName(), + mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - mesh, + mesh_, dimensionedScalar("0", dimless, 0.0) ) ); - mesh.objectRegistry::store(PecletPtr); + mesh_.objectRegistry::store(PecletPtr); } @@ -123,39 +106,37 @@ bool Foam::functionObjects::Peclet::execute(const bool postProcess) typedef compressible::turbulenceModel cmpTurbModel; typedef incompressible::turbulenceModel icoTurbModel; - const fvMesh& mesh = refCast(obr_); - tmp nuEff; - if (mesh.foundObject(turbulenceModel::propertiesName)) + if (mesh_.foundObject(turbulenceModel::propertiesName)) { const cmpTurbModel& model = - mesh.lookupObject + mesh_.lookupObject ( turbulenceModel::propertiesName ); const volScalarField& rho = - mesh.lookupObject(rhoName_); + mesh_.lookupObject(rhoName_); nuEff = model.muEff()/rho; } else if ( - mesh.foundObject(turbulenceModel::propertiesName) + mesh_.foundObject(turbulenceModel::propertiesName) ) { const icoTurbModel& model = - mesh.lookupObject + mesh_.lookupObject ( turbulenceModel::propertiesName ); nuEff = model.nuEff(); } - else if (mesh.foundObject("transportProperties")) + else if (mesh_.foundObject("transportProperties")) { const dictionary& model = - mesh.lookupObject("transportProperties"); + mesh_.lookupObject("transportProperties"); nuEff = tmp @@ -165,12 +146,12 @@ bool Foam::functionObjects::Peclet::execute(const bool postProcess) IOobject ( "nuEff", - mesh.time().timeName(), - mesh, + mesh_.time().timeName(), + mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - mesh, + mesh_, dimensionedScalar(model.lookup("nu")) ) ); @@ -183,19 +164,19 @@ bool Foam::functionObjects::Peclet::execute(const bool postProcess) } const surfaceScalarField& phi = - mesh.lookupObject(phiName_); + mesh_.lookupObject(phiName_); surfaceScalarField& Peclet = const_cast ( - mesh.lookupObject(type()) + mesh_.lookupObject(type()) ); Peclet = mag(phi) /( - mesh.magSf() - *mesh.surfaceInterpolation::deltaCoeffs() + mesh_.magSf() + *mesh_.surfaceInterpolation::deltaCoeffs() *fvc::interpolate(nuEff) ); @@ -206,7 +187,7 @@ bool Foam::functionObjects::Peclet::execute(const bool postProcess) bool Foam::functionObjects::Peclet::write(const bool postProcess) { const surfaceScalarField& Peclet = - obr_.lookupObject(type()); + mesh_.lookupObject(type()); Info<< type() << " " << name() << " output:" << nl << " writing field " << Peclet.name() << nl diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H index ed829c196..d2e872b86 100644 --- a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H +++ b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H @@ -31,6 +31,9 @@ Description This function object calculates and outputs the Peclet number as a surfaceScalarField. +SeeAlso + Foam::functionObjects::fvMeshFunctionObject + SourceFiles Peclet.C @@ -39,17 +42,13 @@ SourceFiles #ifndef functionObjects_Peclet_H #define functionObjects_Peclet_H -#include "functionObject.H" +#include "fvMeshFunctionObject.H" #include "volFieldsFwd.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - -// Forward declaration of classes -class objectRegistry; - namespace functionObjects { @@ -59,13 +58,10 @@ namespace functionObjects class Peclet : - public functionObject + public fvMeshFunctionObject { // Private data - //- Reference to the database - const objectRegistry& obr_; - //- Name of flux field, default is "phi" word phiName_; diff --git a/src/postProcessing/functionObjects/utilities/Q/Q.C b/src/postProcessing/functionObjects/utilities/Q/Q.C index 407ce0ba6..a07925d2b 100644 --- a/src/postProcessing/functionObjects/utilities/Q/Q.C +++ b/src/postProcessing/functionObjects/utilities/Q/Q.C @@ -55,26 +55,10 @@ Foam::functionObjects::Q::Q const dictionary& dict ) : - functionObject(name), - obr_ - ( - runTime.lookupObject - ( - dict.lookupOrDefault("region", polyMesh::defaultRegion) - ) - ), - UName_("U") + fvMeshFunctionObject(name, runTime, dict) { - if (!isA(obr_)) - { - FatalErrorInFunction - << "objectRegistry is not an fvMesh" << exit(FatalError); - } - read(dict); - const fvMesh& mesh = refCast(obr_); - volScalarField* QPtr ( new volScalarField @@ -82,17 +66,17 @@ Foam::functionObjects::Q::Q IOobject ( type(), - mesh.time().timeName(), - mesh, + mesh_.time().timeName(), + mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - mesh, + mesh_, dimensionedScalar("0", dimless/sqr(dimTime), 0.0) ) ); - mesh.objectRegistry::store(QPtr); + mesh_.objectRegistry::store(QPtr); } @@ -114,17 +98,15 @@ bool Foam::functionObjects::Q::read(const dictionary& dict) bool Foam::functionObjects::Q::execute(const bool postProcess) { - const fvMesh& mesh = refCast(obr_); - const volVectorField& U = - mesh.lookupObject(UName_); + mesh_.lookupObject(UName_); const volTensorField gradU(fvc::grad(U)); volScalarField& Q = const_cast ( - mesh.lookupObject(type()) + mesh_.lookupObject(type()) ); Q = 0.5*(sqr(tr(gradU)) - tr(((gradU) & (gradU)))); @@ -136,7 +118,7 @@ bool Foam::functionObjects::Q::execute(const bool postProcess) bool Foam::functionObjects::Q::write(const bool postProcess) { const volScalarField& Q = - obr_.lookupObject(type()); + mesh_.lookupObject(type()); Info<< type() << " " << name() << " output:" << nl << " writing field " << Q.name() << nl diff --git a/src/postProcessing/functionObjects/utilities/Q/Q.H b/src/postProcessing/functionObjects/utilities/Q/Q.H index 52ec9aaad..1b64e08d0 100644 --- a/src/postProcessing/functionObjects/utilities/Q/Q.H +++ b/src/postProcessing/functionObjects/utilities/Q/Q.H @@ -35,6 +35,9 @@ Description Q = 0.5(sqr(tr(\nabla U)) - tr(((\nabla U) \cdot (\nabla U)))) \f] +SeeAlso + Foam::functionObjects::fvMeshFunctionObject + SourceFiles Q.C @@ -43,17 +46,13 @@ SourceFiles #ifndef functionObjects_Q_H #define functionObjects_Q_H -#include "functionObject.H" +#include "fvMeshFunctionObject.H" #include "volFieldsFwd.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - -// Forward declaration of classes -class objectRegistry; - namespace functionObjects { @@ -63,13 +62,10 @@ namespace functionObjects class Q : - public functionObject + public fvMeshFunctionObject { // Private data - //- Reference to the database - const objectRegistry& obr_; - //- Name of velocity field, default is "U" word UName_; diff --git a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.H b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.H index 33e1fd1c8..f0d7dc61b 100644 --- a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.H +++ b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactor.H @@ -33,8 +33,7 @@ Description value is calculated via the maximum blending factor for any cell face. SeeAlso - Foam::fvMeshFunctionObject - Foam::functionObject + Foam::functionObjects::fvMeshFunctionObject SourceFiles blendingFactor.C diff --git a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorTemplates.C b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorTemplates.C index d2df84d3c..d9262f7ff 100644 --- a/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorTemplates.C +++ b/src/postProcessing/functionObjects/utilities/blendingFactor/blendingFactorTemplates.C @@ -38,22 +38,20 @@ Foam::volScalarField& Foam::functionObjects::blendingFactor::factor { const word fieldName = "blendingFactor:" + field.name(); - if (!obr_.foundObject(fieldName)) + if (!mesh_.foundObject(fieldName)) { - const fvMesh& mesh = refCast(obr_); - volScalarField* factorPtr = new volScalarField ( IOobject ( fieldName, - mesh.time().timeName(), - mesh, + mesh_.time().timeName(), + mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - mesh, + mesh_, dimensionedScalar("0", dimless, 0.0), zeroGradientFvPatchScalarField::typeName ); @@ -64,7 +62,7 @@ Foam::volScalarField& Foam::functionObjects::blendingFactor::factor return const_cast ( - obr_.lookupObject(fieldName) + mesh_.lookupObject(fieldName) ); } @@ -74,23 +72,21 @@ void Foam::functionObjects::blendingFactor::calc() { typedef GeometricField fieldType; - if (!obr_.foundObject(fieldName_)) + if (!mesh_.foundObject(fieldName_)) { return; } - const fvMesh& mesh = refCast(obr_); - - const fieldType& field = mesh.lookupObject(fieldName_); + const fieldType& field = mesh_.lookupObject(fieldName_); const word divScheme("div(" + phiName_ + ',' + fieldName_ + ')'); - ITstream& its = mesh.divScheme(divScheme); + ITstream& its = mesh_.divScheme(divScheme); const surfaceScalarField& phi = - mesh.lookupObject(phiName_); + mesh_.lookupObject(phiName_); tmp> cs = - fv::convectionScheme::New(mesh, phi, its); + fv::convectionScheme::New(mesh_, phi, its); const fv::gaussConvectionScheme& gcs = refCast>(cs()); diff --git a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C index c494a5b2b..2a0fe99e7 100644 --- a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C +++ b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C @@ -157,25 +157,9 @@ Foam::functionObjects::scalarTransport::scalarTransport const dictionary& dict ) : - functionObject(name), - mesh_ - ( - refCast - ( - runTime.lookupObject - ( - dict.lookupOrDefault("region", polyMesh::defaultRegion) - ) - ) - ), - phiName_(dict.lookupOrDefault("phiName", "phi")), - UName_(dict.lookupOrDefault("UName", "U")), - rhoName_(dict.lookupOrDefault("rhoName", "rho")), + fvMeshFunctionObject(name, runTime, dict), DT_(0.0), - userDT_(false), - resetOnStartUp_(false), nCorr_(0), - autoSchemes_(false), fvOptions_(mesh_), T_ ( diff --git a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H index 2508ce721..9f3ea589b 100644 --- a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H +++ b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H @@ -39,6 +39,9 @@ Description - the diffusivity can be set manually using the DT entry, or retrieved from the turbulence model (if applicable) +SeeAlso + Foam::functionObjects::fvMeshFunctionObject + SourceFiles scalarTransport.C @@ -47,7 +50,7 @@ SourceFiles #ifndef functionObjects_scalarTransport_H #define functionObjects_scalarTransport_H -#include "functionObject.H" +#include "fvMeshFunctionObject.H" #include "volFields.H" #include "surfaceFieldsFwd.H" #include "fvOptionList.H" @@ -56,10 +59,6 @@ SourceFiles namespace Foam { - -// Forward declaration of classes -class objectRegistry; - namespace functionObjects { @@ -69,13 +68,10 @@ namespace functionObjects class scalarTransport : - public functionObject + public fvMeshFunctionObject { // Private data - //- Reference to the mesh database - const fvMesh& mesh_; - //- Name of flux field (optional) word phiName_; diff --git a/src/postProcessing/functionObjects/utilities/vorticity/vorticity.C b/src/postProcessing/functionObjects/utilities/vorticity/vorticity.C index ac9828f8e..a9f8f1faa 100644 --- a/src/postProcessing/functionObjects/utilities/vorticity/vorticity.C +++ b/src/postProcessing/functionObjects/utilities/vorticity/vorticity.C @@ -55,27 +55,11 @@ Foam::functionObjects::vorticity::vorticity const dictionary& dict ) : - functionObject(name), - obr_ - ( - runTime.lookupObject - ( - dict.lookupOrDefault("region", polyMesh::defaultRegion) - ) - ), - UName_("U"), + fvMeshFunctionObject(name, runTime, dict), outputName_(typeName) { - if (!isA(obr_)) - { - FatalErrorInFunction - << "objectRegistry is not an fvMesh" << exit(FatalError); - } - read(dict); - const fvMesh& mesh = refCast(obr_); - volVectorField* vorticityPtr ( new volVectorField @@ -83,17 +67,17 @@ Foam::functionObjects::vorticity::vorticity IOobject ( outputName_, - mesh.time().timeName(), - mesh, + mesh_.time().timeName(), + mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - mesh, + mesh_, dimensionedVector("0", dimless/dimTime, Zero) ) ); - mesh.objectRegistry::store(vorticityPtr); + mesh_.objectRegistry::store(vorticityPtr); } @@ -119,11 +103,11 @@ bool Foam::functionObjects::vorticity::read(const dictionary& dict) bool Foam::functionObjects::vorticity::execute(const bool postProcess) { - const volVectorField& U = obr_.lookupObject(UName_); + const volVectorField& U = mesh_.lookupObject(UName_); volVectorField& vorticity = const_cast ( - obr_.lookupObject(outputName_) + mesh_.lookupObject(outputName_) ); vorticity = fvc::curl(U); @@ -135,7 +119,7 @@ bool Foam::functionObjects::vorticity::execute(const bool postProcess) bool Foam::functionObjects::vorticity::write(const bool postProcess) { const volVectorField& vorticity = - obr_.lookupObject(outputName_); + mesh_.lookupObject(outputName_); Info<< type() << " " << name() << " output:" << nl << " writing field " << vorticity.name() << nl diff --git a/src/postProcessing/functionObjects/utilities/vorticity/vorticity.H b/src/postProcessing/functionObjects/utilities/vorticity/vorticity.H index 942926a94..6d719e3ed 100644 --- a/src/postProcessing/functionObjects/utilities/vorticity/vorticity.H +++ b/src/postProcessing/functionObjects/utilities/vorticity/vorticity.H @@ -30,6 +30,9 @@ Group Description This function object calculates the vorticity, the curl of the velocity. +SeeAlso + Foam::functionObjects::fvMeshFunctionObject + SourceFiles vorticity.C @@ -38,17 +41,13 @@ SourceFiles #ifndef functionObjects_vorticity_H #define functionObjects_vorticity_H -#include "functionObject.H" +#include "fvMeshFunctionObject.H" #include "volFieldsFwd.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - -// Forward declaration of classes -class objectRegistry; - namespace functionObjects { @@ -58,13 +57,10 @@ namespace functionObjects class vorticity : - public functionObject + public fvMeshFunctionObject { // Private data - //- Reference to the database - const objectRegistry& obr_; - //- Name of velocity field, default is "U" word UName_; diff --git a/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.C b/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.C index 83b88380f..40a8f5f7b 100644 --- a/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.C +++ b/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.C @@ -51,12 +51,11 @@ template Foam::moleFractions::moleFractions ( const word& name, - const Time& t, + const Time& runTime, const dictionary& dict ) : - writeFiles(name, t, dict, typeName), - mesh_(refCast(obr_)) + fvMeshFunctionObject(name, runTime, dict) { if (mesh_.foundObject(basicThermo::dictName)) { diff --git a/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.H b/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.H index c35771832..0ad3845a2 100644 --- a/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.H +++ b/src/thermophysicalModels/reactionThermo/functionObjects/moleFractions/moleFractions.H @@ -49,7 +49,7 @@ Description depending on the thermodynamics package used in the solver. SeeAlso - Foam::functionObject + Foam::functionObjects::fvMeshFunctionObject SourceFiles moleFractions.C @@ -59,8 +59,8 @@ SourceFiles #ifndef moleFractions_H #define moleFractions_H -#include "writeFiles.H" -#include "volFields.H" +#include "fvMeshFunctionObject.H" +#include "volFieldsFwd.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -74,13 +74,10 @@ namespace Foam template class moleFractions : - public functionObjects::writeFiles + public functionObjects::fvMeshFunctionObject { // Private data - //- Reference to the mesh - const fvMesh& mesh_; - //- Species mole fractions PtrList X_;