diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C index 9ae6b2f5b9169c265bd60577384b97f0d58c9b64..8fa42ac0eccd36ac1b1ac4b8b2cd710e479150ae 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -363,7 +363,7 @@ bool Foam::KinematicParcel<ParcelType>::hitPatch static_cast<typename TrackData::cloudType::parcelType&>(*this); // Invoke post-processing model - td.cloud().functions().postPatch(p, patchI, pp.whichFace(p.face())); + td.cloud().functions().postPatch(p, pp, trackFraction, tetIs); // Invoke surface film model if (td.cloud().surfaceFilm().transferParcel(p, pp, td.keepParticle)) diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C index b8409231fff14c2317f9d069876fa54a5c7ea8d4..dbc359ae9a582ddee6d43be0c4efb5ad1f46431e 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -107,8 +107,9 @@ template<class CloudType> void Foam::CloudFunctionObject<CloudType>::postPatch ( const typename CloudType::parcelType&, - const label, - const label + const polyPatch&, + const scalar, + const tetIndices& ) { // do nothing diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H index b0818aa7084d8d6bbb65049b0fa5a37ca7535591..5baf0f7ae95fd82cfcc635db6c84e47633c162b1 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -141,8 +141,9 @@ public: virtual void postPatch ( const typename CloudType::parcelType& p, - const label patchI, - const label patchFaceI + const polyPatch& pp, + const scalar trackFraction, + const tetIndices& testIs ); //- Post-face hook diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C index 556c72908cb2ef46b5b2c03b0bd9bd0abd4bc78f..2f97468e36c15e6e191228c9b288b711049915f9 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -146,13 +146,14 @@ template<class CloudType> void Foam::CloudFunctionObjectList<CloudType>::postPatch ( const typename CloudType::parcelType& p, - const label patchI, - const label patchFaceI + const polyPatch& pp, + const scalar trackFraction, + const tetIndices& tetIs ) { forAll(*this, i) { - this->operator[](i).postPatch(p, patchI, patchFaceI); + this->operator[](i).postPatch(p, pp, trackFraction, tetIs); } } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.H index b8b296fe2117000acdf9dee7e1491add68554cd0..5daeab9f297249b120877c75594c01555c659725 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -121,8 +121,9 @@ public: virtual void postPatch ( const typename CloudType::parcelType& p, - const label patchI, - const label patchFaceI + const polyPatch& pp, + const scalar trackFraction, + const tetIndices& tetIs ); //- Post-face hook diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C index 87d03eade785c3ce62699a5681415138416c7a8e..81772debfe22e2bf8722a5b9cbf465901ee383d3 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C @@ -166,29 +166,32 @@ template<class CloudType> void Foam::ParticleErosion<CloudType>::postPatch ( const parcelType& p, - const label patchI, - const label patchFaceI + const polyPatch& pp, + const scalar trackFraction, + const tetIndices& tetIs ) { + const label patchI = pp.index(); + const label localPatchI = applyToPatch(patchI); if (localPatchI != -1) { - const fvMesh& mesh = this->owner().mesh(); + vector nw; + vector Up; // patch-normal direction - vector nw = p.currentTetIndices().faceTri(mesh).normal(); + this->owner().patchData(p, pp, trackFraction, tetIs, nw, Up); - // particle direction of travel - const vector& U = p.U(); + // particle velocity reletive to patch + const vector& U = p.U() - Up; // quick reject if particle travelling away from the patch - if ((-nw & U) < 0) + if ((nw & U) < 0) { return; } - nw /= mag(nw); const scalar magU = mag(U); const vector Udir = U/magU; @@ -197,6 +200,7 @@ void Foam::ParticleErosion<CloudType>::postPatch const scalar coeff = p.nParticle()*p.mass()*sqr(magU)/(p_*psi_*K_); + const label patchFaceI = pp.whichFace(p.face()); scalar& Q = QPtr_->boundaryField()[patchI][patchFaceI]; if (tan(alpha) < K_/6.0) { diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H index c23dfc4c402d70b182e9b4708ede0a8bf0dccae6..c741bd40044b8df1a7a42537984b8ae321eb4f6c 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 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -126,8 +126,9 @@ public: virtual void postPatch ( const parcelType& p, - const label patchI, - const label patchFaceI + const polyPatch& pp, + const scalar trackFraction, + const tetIndices& tetIs ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.C index afbd9bfbd9d6f337e8b1b01534093872401e9d07..f66a872cfcf5d6ee735ba6a24cbf4b987f7af0a9 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 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -218,11 +218,14 @@ template<class CloudType> void Foam::PatchPostProcessing<CloudType>::postPatch ( const parcelType& p, - const label patchI, - const label + const polyPatch& pp, + const scalar, + const tetIndices& tetIs ) { + const label patchI = pp.index(); const label localPatchI = applyToPatch(patchI); + if (localPatchI != -1 && patchData_[localPatchI].size() < maxStoredParcels_) { times_[localPatchI].append(this->owner().time().value()); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchPostProcessing/PatchPostProcessing.H index 9945d24b587f23840c4483e45696d761435a45c6..f7d618e6ce8b1a448c22f502ceee137a2257f845 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 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -127,8 +127,9 @@ public: virtual void postPatch ( const parcelType& p, - const label patchI, - const label patchFaceI + const polyPatch& pp, + const scalar trackFraction, + const tetIndices& tetIs ); }; diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C index 5319b75b27a92af2b44f51e5981071f8abe0b221..6315eac8278c977f6a4a8f16e79f6f169929c137 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairCollision.C @@ -306,8 +306,9 @@ void Foam::PairCollision<CloudType>::wallInteraction() this->owner().functions().postPatch ( p, - patchI, - patchFaceI + mesh.boundaryMesh()[patchI], + 1.0, + p.currentTetIndices() ); } }