60 const labelList& nei = mesh_.faceNeighbour();
64 vector d = centres[nei[facei]] - centres[own[facei]];
71 result[own[facei]] =
max(cosDDotS, result[own[facei]]);
73 result[nei[facei]] =
max(cosDDotS, result[nei[facei]]);
76 forAll(mesh_.boundaryMesh(), patchi)
79 mesh_.boundaryMesh()[patchi].faceCells();
82 mesh_.boundaryMesh()[patchi].faceCentres();
85 mesh_.boundaryMesh()[patchi].faceAreas();
121 const labelList& own = mesh_.faceOwner();
122 const labelList& nei = mesh_.faceNeighbour();
128 (faceCtrs[facei] - cellCtrs[own[facei]]) & areas[facei]
133 (cellCtrs[nei[facei]] - faceCtrs[facei]) & areas[facei]
136 point faceIntersection =
138 + (dOwn/(dOwn+dNei))*(cellCtrs[nei[facei]] - cellCtrs[own[facei]]);
141 mag(faceCtrs[facei] - faceIntersection)
142 /(
mag(cellCtrs[nei[facei]] - cellCtrs[own[facei]]) + VSMALL);
144 result[own[facei]] =
max(skewness, result[own[facei]]);
146 result[nei[facei]] =
max(skewness, result[nei[facei]]);
149 forAll(mesh_.boundaryMesh(), patchi)
152 mesh_.boundaryMesh()[patchi].faceCells();
155 mesh_.boundaryMesh()[patchi].faceCentres();
158 mesh_.boundaryMesh()[patchi].faceAreas();
160 forAll(faceCentres, facei)
162 vector n = faceAreas[facei]/
mag(faceAreas[facei]);
164 point faceIntersection =
166 + ((faceCentres[facei] - cellCtrs[
faceCells[facei]])&
n)*
n;
169 mag(faceCentres[facei] - faceIntersection)
198 const labelList& own = mesh_.faceOwner();
199 const labelList& nei = mesh_.faceNeighbour();
203 vector d = centres[nei[facei]] - centres[own[facei]];
205 scalar magS =
mag(
s);
210 result[facei] = cosDDotS;
213 label globalFacei = mesh_.nInternalFaces();
215 forAll(mesh_.boundaryMesh(), patchi)
218 mesh_.boundaryMesh()[patchi].faceCells();
221 mesh_.boundaryMesh()[patchi].faceCentres();
224 mesh_.boundaryMesh()[patchi].faceAreas();
226 forAll(faceCentres, facei)
230 scalar magS =
mag(
s);
235 result[globalFacei++] = cosDDotS;
259 const labelList& own = mesh_.faceOwner();
260 const labelList& nei = mesh_.faceNeighbour();
266 (faceCtrs[facei] - cellCtrs[own[facei]]) & areas[facei]
271 (cellCtrs[nei[facei]] - faceCtrs[facei]) & areas[facei]
274 point faceIntersection =
276 + (dOwn/(dOwn+dNei))*(cellCtrs[nei[facei]] - cellCtrs[own[facei]]);
279 mag(faceCtrs[facei] - faceIntersection)
280 /(
mag(cellCtrs[nei[facei]] - cellCtrs[own[facei]]) + VSMALL);
284 label globalFacei = mesh_.nInternalFaces();
286 forAll(mesh_.boundaryMesh(), patchi)
289 mesh_.boundaryMesh()[patchi].faceCells();
292 mesh_.boundaryMesh()[patchi].faceCentres();
295 mesh_.boundaryMesh()[patchi].faceAreas();
297 forAll(faceCentres, facei)
299 vector n = faceAreas[facei]/
mag(faceAreas[facei]);
301 point faceIntersection =
303 + ((faceCentres[facei] - cellCtrs[
faceCells[facei]])&
n)*
n;
305 result[globalFacei++] =
306 mag(faceCentres[facei] - faceIntersection)
SubField is a Field obtained as a section of another Field, without its own allocation....
Class calculates cell quality measures.
tmp< scalarField > nonOrthogonality() const
Return cell non-orthogonality.
tmp< scalarField > skewness() const
Return cell skewness.
tmp< scalarField > faceSkewness() const
Return face skewness.
tmp< scalarField > faceNonOrthogonality() const
Return face non-orthogonality.
Smooth ATC in cells next to a set of patches supplied by type.
Mesh consisting of general polyhedral cells.
A class for managing temporary objects.
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< " ";}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
constexpr scalar radToDeg() noexcept
Multiplication factor for radians to degrees conversion.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
static constexpr const zero Zero
Global zero (0)
dimensionedScalar acos(const dimensionedScalar &ds)
#define forAll(list, i)
Loop across all elements in list.
Unit conversion functions.