diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C index 4935aa7b3d2718f3219ea82cf9e859a85316c4de..199023cfc5965efe43bf65089c9d3d287987445c 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C @@ -39,7 +39,8 @@ void Foam::CloudFunctionObject<CloudType>::write() template<class CloudType> Foam::CloudFunctionObject<CloudType>::CloudFunctionObject(CloudType& owner) : - SubModelBase<CloudType>(owner) + CloudSubModelBase<CloudType>(owner), + outputDir_() {} @@ -48,11 +49,28 @@ Foam::CloudFunctionObject<CloudType>::CloudFunctionObject ( const dictionary& dict, CloudType& owner, - const word& type + const word& modelName, + const word& objectType ) : - SubModelBase<CloudType>(owner, dict, typeName, type, "") -{} + CloudSubModelBase<CloudType>(modelName, owner, dict, typeName, objectType), + outputDir_(owner.mesh().time().path()) +{ + const fileName relPath = + "postProcessing"/cloud::prefix/owner.name()/this->modelName(); + + + if (Pstream::parRun()) + { + // Put in undecomposed case (Note: gives problems for + // distributed data running) + outputDir_ = outputDir_/".."/relPath; + } + else + { + outputDir_ = outputDir_/relPath; + } +} template<class CloudType> @@ -61,7 +79,7 @@ Foam::CloudFunctionObject<CloudType>::CloudFunctionObject const CloudFunctionObject<CloudType>& ppm ) : - SubModelBase<CloudType>(ppm) + CloudSubModelBase<CloudType>(ppm) {} @@ -131,6 +149,13 @@ void Foam::CloudFunctionObject<CloudType>::postFace } +template<class CloudType> +const Foam::fileName& Foam::CloudFunctionObject<CloudType>::outputDir() const +{ + return outputDir_; +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #include "CloudFunctionObjectNew.C" diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H index a9b2be35228aec29c5804f0b551867b8f80f4b13..90996706fbc67932982e96273e63a7c6543d20b0 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H @@ -39,7 +39,7 @@ SourceFiles #include "IOdictionary.H" #include "autoPtr.H" #include "runTimeSelectionTables.H" -#include "SubModelBase.H" +#include "CloudSubModelBase.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -56,9 +56,15 @@ class tetIndices; template<class CloudType> class CloudFunctionObject : - public SubModelBase<CloudType> + public CloudSubModelBase<CloudType> { - // Protected Member Functions + // Private data + + //- Output path + fileName outputDir_; + + + // Private Member Functions //- Write post-processing info virtual void write(); @@ -77,9 +83,10 @@ public: dictionary, ( const dictionary& dict, - CloudType& owner + CloudType& owner, + const word& modelName ), - (dict, owner) + (dict, owner, modelName) ); @@ -93,7 +100,8 @@ public: ( const dictionary& dict, CloudType& owner, - const word& modelType + const word& objectType, + const word& modelName ); //- Construct copy @@ -118,7 +126,8 @@ public: ( const dictionary& dict, CloudType& owner, - const word& modelType + const word& objectType, + const word& modelName ); @@ -159,6 +168,12 @@ public: const label faceI, bool& keepParticle ); + + + // Input/output + + //- Return the output path + const fileName& outputDir() const; }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObjectNew.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObjectNew.C index a67faf4d205e0811edec260c4982662fd3fb234f..f105d6b3cb2e5fd0a13a83b5ea7e5d7e2270635e 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObjectNew.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObjectNew.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -33,13 +33,15 @@ Foam::CloudFunctionObject<CloudType>::New ( const dictionary& dict, CloudType& owner, - const word& modelType + const word& objectType, + const word& modelName ) { - Info<< " Selecting cloud function " << modelType << endl; + Info<< " Selecting cloud function " << modelName << " of type " + << objectType << endl; typename dictionaryConstructorTable::iterator cstrIter = - dictionaryConstructorTablePtr_->find(modelType); + dictionaryConstructorTablePtr_->find(objectType); if (cstrIter == dictionaryConstructorTablePtr_->end()) { @@ -48,16 +50,26 @@ Foam::CloudFunctionObject<CloudType>::New "CloudFunctionObject<CloudType>::New" "(" "const dictionary&, " - "CloudType&" + "CloudType&, " + "const word&, " + "const word&" ")" ) << "Unknown cloud function type " - << modelType << nl << nl + << objectType << nl << nl << "Valid cloud function types are:" << nl << dictionaryConstructorTablePtr_->sortedToc() << exit(FatalError); } - return autoPtr<CloudFunctionObject<CloudType> >(cstrIter()(dict, owner)); + return autoPtr<CloudFunctionObject<CloudType> > + ( + cstrIter() + ( + dict, + owner, + modelName + ) + ); } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C index 3308cf6228cac83b288f8863031498966b040384..ed3d5534d0af196c7ae090a7d394413c9e3fc16b 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C @@ -66,13 +66,19 @@ Foam::CloudFunctionObjectList<CloudType>::CloudFunctionObjectList { const word& modelName = modelNames[i]; + const dictionary& modelDict(dict.subDict(modelName)); + + // read the type of the function object + const word objectType(modelDict.lookup("type")); + this->set ( i, CloudFunctionObject<CloudType>::New ( - dict, + modelDict, owner, + objectType, modelName ) ); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C index 8c64e1b62fef66bfaed86e6f48f2c0ede8c40dcb..b123e38291a95502732fc804d0b7d493881dc541 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.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 @@ -50,16 +50,17 @@ void Foam::FacePostProcessing<CloudType>::makeLogFile if (Pstream::master()) { - const fileName logDir = outputDir_/this->owner().time().timeName(); - // Create directory if does not exist - mkDir(logDir); + mkDir(this->outputDir()); // Open new file at start up outputFilePtr_.set ( zoneI, - new OFstream(logDir/(type() + '_' + zoneName + ".dat")) + new OFstream + ( + this->outputDir()/(type() + '_' + zoneName + ".dat") + ) ); outputFilePtr_[zoneI] @@ -201,7 +202,7 @@ void Foam::FacePostProcessing<CloudType>::write() writer->write ( - outputDir_/time.timeName(), + this->outputDir()/time.timeName(), fZone.name(), allPoints, allFaces, @@ -212,7 +213,7 @@ void Foam::FacePostProcessing<CloudType>::write() writer->write ( - outputDir_/time.timeName(), + this->outputDir()/time.timeName(), fZone.name(), allPoints, allFaces, @@ -250,10 +251,11 @@ template<class CloudType> Foam::FacePostProcessing<CloudType>::FacePostProcessing ( const dictionary& dict, - CloudType& owner + CloudType& owner, + const word& modelName ) : - CloudFunctionObject<CloudType>(dict, owner, typeName), + CloudFunctionObject<CloudType>(dict, owner, modelName, typeName), faceZoneIDs_(), surfaceFormat_(this->coeffDict().lookup("surfaceFormat")), resetOnWrite_(this->coeffDict().lookup("resetOnWrite")), @@ -263,7 +265,6 @@ Foam::FacePostProcessing<CloudType>::FacePostProcessing massFlowRate_(), log_(this->coeffDict().lookup("log")), outputFilePtr_(), - outputDir_(owner.mesh().time().path()), timeOld_(owner.mesh().time().value()) { wordList faceZoneNames(this->coeffDict().lookup("faceZones")); @@ -273,19 +274,6 @@ Foam::FacePostProcessing<CloudType>::FacePostProcessing outputFilePtr_.setSize(faceZoneNames.size()); - if (Pstream::parRun()) - { - // Put in undecomposed case (Note: gives problems for - // distributed data running) - outputDir_ = - outputDir_/".."/"postProcessing"/cloud::prefix/owner.name(); - } - else - { - outputDir_ = - outputDir_/"postProcessing"/cloud::prefix/owner.name(); - } - DynamicList<label> zoneIDs; const faceZoneMesh& fzm = owner.mesh().faceZones(); const surfaceScalarField& magSf = owner.mesh().magSf(); @@ -358,7 +346,6 @@ Foam::FacePostProcessing<CloudType>::FacePostProcessing massFlowRate_(pff.massFlowRate_), log_(pff.log_), outputFilePtr_(), - outputDir_(pff.outputDir_), timeOld_(0.0) {} diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H index 3195b9fc575df39227da5c6a226edc4727d3007a..4db5ed16b2fc448e8031d794ec956a79902683b9 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -91,9 +91,6 @@ class FacePostProcessing //- Output file pointer per zone PtrList<OFstream> outputFilePtr_; - //- Output directory - fileName outputDir_; - //- Last calculation time scalar timeOld_; @@ -127,7 +124,12 @@ public: // Constructors //- Construct from dictionary - FacePostProcessing(const dictionary& dict, CloudType& owner); + FacePostProcessing + ( + const dictionary& dict, + CloudType& owner, + const word& modelName + ); //- Construct copy FacePostProcessing(const FacePostProcessing<CloudType>& ppm); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C index a8003d43bec144846e6b7d708caab96fdd51679b..28fc229c2d05573afe22c557f55ddafaf4b974ce 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C @@ -51,15 +51,13 @@ void Foam::ParticleCollector<CloudType>::makeLogFile if (Pstream::master()) { - const fileName logDir = outputDir_/this->owner().time().timeName(); - // Create directory if does not exist - mkDir(logDir); + mkDir(this->outputDir()); // Open new file at start up outputFilePtr_.reset ( - new OFstream(logDir/(type() + ".dat")) + new OFstream(this->outputDir()/(type() + ".dat")) ); outputFilePtr_() @@ -463,7 +461,7 @@ void Foam::ParticleCollector<CloudType>::write() writer->write ( - outputDir_/time.timeName(), + this->outputDir()/time.timeName(), "collector", points_, faces_, @@ -474,7 +472,7 @@ void Foam::ParticleCollector<CloudType>::write() writer->write ( - outputDir_/time.timeName(), + this->outputDir()/time.timeName(), "collector", points_, faces_, @@ -516,10 +514,11 @@ template<class CloudType> Foam::ParticleCollector<CloudType>::ParticleCollector ( const dictionary& dict, - CloudType& owner + CloudType& owner, + const word& modelName ) : - CloudFunctionObject<CloudType>(dict, owner, typeName), + CloudFunctionObject<CloudType>(dict, owner, modelName, typeName), mode_(mtUnknown), parcelType_(this->coeffDict().lookupOrDefault("parcelType", -1)), removeCollected_(this->coeffDict().lookup("removeCollected")), @@ -542,22 +541,8 @@ Foam::ParticleCollector<CloudType>::ParticleCollector massFlowRate_(), log_(this->coeffDict().lookup("log")), outputFilePtr_(), - outputDir_(owner.mesh().time().path()), timeOld_(owner.mesh().time().value()) { - if (Pstream::parRun()) - { - // Put in undecomposed case (Note: gives problems for - // distributed data running) - outputDir_ = - outputDir_/".."/"postProcessing"/cloud::prefix/owner.name(); - } - else - { - outputDir_ = - outputDir_/"postProcessing"/cloud::prefix/owner.name(); - } - normal_ /= mag(normal_); word mode(this->coeffDict().lookup("mode")); @@ -618,7 +603,6 @@ Foam::ParticleCollector<CloudType>::ParticleCollector massFlowRate_(pc.massFlowRate_), log_(pc.log_), outputFilePtr_(), - outputDir_(pc.outputDir_), timeOld_(0.0) {} diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H index 001973fd0fdde1d1946f91029126d3b53d54cca2..6982d3531ca49db90ad6bc2566515778ea40ef29 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H @@ -143,9 +143,6 @@ private: //- Output file pointer autoPtr<OFstream> outputFilePtr_; - //- Output directory - fileName outputDir_; - //- Last calculation time scalar timeOld_; @@ -198,7 +195,12 @@ public: // Constructors //- Construct from dictionary - ParticleCollector(const dictionary& dict, CloudType& owner); + ParticleCollector + ( + const dictionary& dict, + CloudType& owner, + const word& modelName + ); //- Construct copy ParticleCollector(const ParticleCollector<CloudType>& pc); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C index c0683d0dbfe0d7e8e82541c2e9bccbf1b13da075..f4fd96bb1711913b844de8e8b7e68a4fb5017f37 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.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 @@ -66,10 +66,11 @@ template<class CloudType> Foam::ParticleErosion<CloudType>::ParticleErosion ( const dictionary& dict, - CloudType& owner + CloudType& owner, + const word& modelName ) : - CloudFunctionObject<CloudType>(dict, owner, typeName), + CloudFunctionObject<CloudType>(dict, owner, modelName, typeName), QPtr_(NULL), patchIDs_(), p_(readScalar(this->coeffDict().lookup("p"))), diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H index bedc447188af470d5fb6ada346eb9a693fb969b1..5e4e0db1cb47a7ceedae553e769aef0c5495dc7e 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H @@ -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 @@ -96,7 +96,12 @@ public: // Constructors //- Construct from dictionary - ParticleErosion(const dictionary& dict, CloudType& owner); + ParticleErosion + ( + const dictionary& dict, + CloudType& owner, + const word& modelName + ); //- Construct copy ParticleErosion(const ParticleErosion<CloudType>& pe); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C index 69f48bf5e039f3c0b898493095d9e17ad2a194ec..856ace872acc501b46bb25d277092697d20f1149 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -59,10 +59,11 @@ template<class CloudType> Foam::ParticleTracks<CloudType>::ParticleTracks ( const dictionary& dict, - CloudType& owner + CloudType& owner, + const word& modelName ) : - CloudFunctionObject<CloudType>(dict, owner, typeName), + CloudFunctionObject<CloudType>(dict, owner, modelName, typeName), trackInterval_(readLabel(this->coeffDict().lookup("trackInterval"))), maxSamples_(readLabel(this->coeffDict().lookup("maxSamples"))), resetOnWrite_(this->coeffDict().lookup("resetOnWrite")), diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H index 1eeda7bcb82facb7b37483ec488498d03a04da8c..4bf65edd53651e85a1db741bed7f97ca735a6d30 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -95,7 +95,12 @@ public: // Constructors //- Construct from dictionary - ParticleTracks(const dictionary& dict, CloudType& owner); + ParticleTracks + ( + const dictionary& dict, + CloudType& owner, + const word& modelName + ); //- Construct copy ParticleTracks(const ParticleTracks<CloudType>& ppm); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C index 0a5ff091230d3935666e3a8205a3cb645c23e8c4..317a033844fff22f72001fed549ebb7800bb76b1 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -32,10 +32,11 @@ template<class CloudType> Foam::ParticleTrap<CloudType>::ParticleTrap ( const dictionary& dict, - CloudType& owner + CloudType& owner, + const word& modelName ) : - CloudFunctionObject<CloudType>(dict, owner, typeName), + CloudFunctionObject<CloudType>(dict, owner, modelName, typeName), alphaName_ ( this->coeffDict().template lookupOrDefault<word>("alphaName", "alpha") diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H index 43fac16c583cd40f19de0927f9513774ccf9ac2f..81ccb68e3af2d34a6c826c19fab4c171ad9b7ad5 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -29,8 +29,9 @@ Description Model is activated using: - particleTrap + particleTrap1 { + type particleTrap; alphaName alpha; // name volume fraction field threshold 0.95; // alpha value below which model is active } @@ -91,7 +92,12 @@ public: // Constructors //- Construct from dictionary - ParticleTrap(const dictionary& dict, CloudType& owner); + ParticleTrap + ( + const dictionary& dict, + CloudType& owner, + const word& modelName + ); //- Construct copy ParticleTrap(const ParticleTrap<CloudType>& pe); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.C index a267b86266ce4252837b10daffa9f88d561fa4ed..67d65a7175acdc4ddb1c860067f13de2864ee94d 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.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 @@ -68,22 +68,7 @@ void Foam::PatchPostProcessing<CloudType>::write() { const fvMesh& mesh = this->owner().mesh(); - fileName outputDir = mesh.time().path(); - - if (Pstream::parRun()) - { - // Put in undecomposed case (Note: gives problems for - // distributed data running) - outputDir = - outputDir/".."/"postProcessing"/cloud::prefix/ - this->owner().name()/mesh.time().timeName(); - } - else - { - outputDir = - outputDir/"postProcessing"/cloud::prefix/ - this->owner().name()/mesh.time().timeName(); - } + fileName outputDir = this->outputDir()/mesh.time().timeName(); // Create directory if it doesn't exist mkDir(outputDir); @@ -141,10 +126,11 @@ template<class CloudType> Foam::PatchPostProcessing<CloudType>::PatchPostProcessing ( const dictionary& dict, - CloudType& owner + CloudType& owner, + const word& modelName ) : - CloudFunctionObject<CloudType>(dict, owner, typeName), + CloudFunctionObject<CloudType>(dict, owner, modelName, typeName), maxStoredParcels_(readScalar(this->coeffDict().lookup("maxStoredParcels"))), patchIDs_(), times_(), diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.H index cb4605e666adbe8de4439409e2e1433a960062c7..9b023a87e278cfe5ef8078c86673d22c5102bdb7 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.H @@ -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 @@ -91,7 +91,12 @@ public: // Constructors //- Construct from dictionary - PatchPostProcessing(const dictionary& dict, CloudType& owner); + PatchPostProcessing + ( + const dictionary& dict, + CloudType& owner, + const word& modelName + ); //- Construct copy PatchPostProcessing(const PatchPostProcessing<CloudType>& ppm); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.C index e5b64f65caa9d94eee3c388c62680bda395ac70e..12188730c391db350a9ff1419055e11106524d72 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.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 @@ -48,10 +48,11 @@ template<class CloudType> Foam::VoidFraction<CloudType>::VoidFraction ( const dictionary& dict, - CloudType& owner + CloudType& owner, + const word& modelName ) : - CloudFunctionObject<CloudType>(owner), + CloudFunctionObject<CloudType>(dict, owner, modelName, typeName), thetaPtr_(NULL) {} diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H index e8ed507f7dfefecca188deafa084b6940ed070b8..502e4aa3ec55a1b0f1ec0f8b22b540689823d35e 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -81,7 +81,12 @@ public: // Constructors //- Construct from dictionary - VoidFraction(const dictionary& dict, CloudType& owner); + VoidFraction + ( + const dictionary& dict, + CloudType& owner, + const word& modelName + ); //- Construct copy VoidFraction(const VoidFraction<CloudType>& vf);