diff --git a/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.C b/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.C index 5fd09bda66..017117370d 100644 --- a/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.C +++ b/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.C @@ -307,6 +307,48 @@ Foam::tmp Foam::sampledIsoSurface::average } +Foam::tmp Foam::sampledIsoSurface::average +( + const pointMesh& pMesh, + const volScalarField& fld +) const +{ + tmp tpointAvg + ( + new pointScalarField + ( + IOobject + ( + "pointAvg", + fld.time().timeName(), + fld.db(), + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ), + pMesh, + dimensionedScalar("zero", dimless, scalar(0.0)) + ) + ); + pointScalarField& pointAvg = tpointAvg(); + + for (label pointI = 0; pointI < fld.mesh().nPoints(); pointI++) + { + const labelList& pCells = fld.mesh().pointCells(pointI); + + forAll(pCells, i) + { + pointAvg[pointI] += fld[pCells[i]]; + } + pointAvg[pointI] /= pCells.size(); + } + // Give value to calculatedFvPatchFields + pointAvg.correctBoundaryConditions(); + + return tpointAvg; +} + + bool Foam::sampledIsoSurface::updateGeometry() const { const fvMesh& fvm = static_cast(mesh()); @@ -407,6 +449,7 @@ bool Foam::sampledIsoSurface::updateGeometry() const ( *volFieldPtr_, *pointFieldPtr_, + //average(pointMesh::New(mesh()), *volFieldPtr_), isoVal_, regularise_, mergeTol_ diff --git a/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.H b/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.H index 99324cdf5f..ccaa4d8750 100644 --- a/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.H +++ b/src/sampling/sampledSurface/isoSurface/sampledIsoSurface.H @@ -124,6 +124,12 @@ class sampledIsoSurface const pointScalarField& ) const; + tmp average + ( + const pointMesh&, + const volScalarField& fld + ) const; + //- Create iso surface (if time has changed) // Do nothing (and return false) if no update was needed bool updateGeometry() const;