From f0380a5cae3a3860fe7acfa1d6916611bb81e7fc Mon Sep 17 00:00:00 2001 From: Will Bainbridge Date: Thu, 19 Oct 2023 10:19:30 +0100 Subject: [PATCH] meshTools/cellQuality: Removed unused quality calculations --- src/meshTools/Make/files | 2 - src/meshTools/cellQuality/cellQuality.C | 316 ------------------------ src/meshTools/cellQuality/cellQuality.H | 99 -------- 3 files changed, 417 deletions(-) delete mode 100644 src/meshTools/cellQuality/cellQuality.C delete mode 100644 src/meshTools/cellQuality/cellQuality.H diff --git a/src/meshTools/Make/files b/src/meshTools/Make/files index 4a4916f6a4..d5362c15c0 100644 --- a/src/meshTools/Make/files +++ b/src/meshTools/Make/files @@ -42,8 +42,6 @@ $(efm)/extendedFeatureEdgeMesh.C cellClassification/cellClassification.C cellClassification/cellInfo.C -cellQuality/cellQuality.C - patchDist/patchDistWave/patchDistWave.C cellFeatures/cellFeatures.C diff --git a/src/meshTools/cellQuality/cellQuality.C b/src/meshTools/cellQuality/cellQuality.C deleted file mode 100644 index aacb6b272a..0000000000 --- a/src/meshTools/cellQuality/cellQuality.C +++ /dev/null @@ -1,316 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see . - -\*---------------------------------------------------------------------------*/ - -#include "cellQuality.H" -#include "unitConversion.H" -#include "SubField.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::cellQuality::cellQuality(const polyMesh& mesh) -: - mesh_(mesh) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::cellQuality::nonOrthogonality() const -{ - tmp tresult - ( - new scalarField - ( - mesh_.nCells(), 0.0 - ) - ); - - scalarField& result = tresult.ref(); - - scalarField sumArea(mesh_.nCells(), 0.0); - - const vectorField& centres = mesh_.cellCentres(); - const vectorField& areas = mesh_.faceAreas(); - - const labelList& own = mesh_.faceOwner(); - const labelList& nei = mesh_.faceNeighbour(); - - forAll(nei, facei) - { - vector d = centres[nei[facei]] - centres[own[facei]]; - vector s = areas[facei]; - scalar magS = mag(s); - - scalar cosDDotS = - radToDeg(Foam::acos(min(1.0, (d & s)/(mag(d)*magS + vSmall)))); - - result[own[facei]] = max(cosDDotS, result[own[facei]]); - - result[nei[facei]] = max(cosDDotS, result[nei[facei]]); - } - - forAll(mesh_.boundaryMesh(), patchi) - { - const labelUList& faceCells = - mesh_.boundaryMesh()[patchi].faceCells(); - - const vectorField::subField faceCentres = - mesh_.boundaryMesh()[patchi].faceCentres(); - - const vectorField::subField faceAreas = - mesh_.boundaryMesh()[patchi].faceAreas(); - - forAll(faceCentres, facei) - { - vector d = faceCentres[facei] - centres[faceCells[facei]]; - vector s = faceAreas[facei]; - scalar magS = mag(s); - - scalar cosDDotS = - radToDeg(Foam::acos(min(1.0, (d & s)/(mag(d)*magS + vSmall)))); - - result[faceCells[facei]] = max(cosDDotS, result[faceCells[facei]]); - } - } - - return tresult; -} - - -Foam::tmp Foam::cellQuality::skewness() const -{ - tmp tresult - ( - new scalarField - ( - mesh_.nCells(), 0.0 - ) - ); - scalarField& result = tresult.ref(); - - scalarField sumArea(mesh_.nCells(), 0.0); - - const vectorField& cellCtrs = mesh_.cellCentres(); - const vectorField& faceCtrs = mesh_.faceCentres(); - const vectorField& areas = mesh_.faceAreas(); - - const labelList& own = mesh_.faceOwner(); - const labelList& nei = mesh_.faceNeighbour(); - - forAll(nei, facei) - { - scalar dOwn = mag - ( - (faceCtrs[facei] - cellCtrs[own[facei]]) & areas[facei] - )/mag(areas[facei]); - - scalar dNei = mag - ( - (cellCtrs[nei[facei]] - faceCtrs[facei]) & areas[facei] - )/mag(areas[facei]); - - point faceIntersection = - cellCtrs[own[facei]] - + (dOwn/(dOwn+dNei))*(cellCtrs[nei[facei]] - cellCtrs[own[facei]]); - - scalar skewness = - mag(faceCtrs[facei] - faceIntersection) - /(mag(cellCtrs[nei[facei]] - cellCtrs[own[facei]]) + vSmall); - - result[own[facei]] = max(skewness, result[own[facei]]); - - result[nei[facei]] = max(skewness, result[nei[facei]]); - } - - forAll(mesh_.boundaryMesh(), patchi) - { - const labelUList& faceCells = - mesh_.boundaryMesh()[patchi].faceCells(); - - const vectorField::subField faceCentres = - mesh_.boundaryMesh()[patchi].faceCentres(); - - const vectorField::subField faceAreas = - mesh_.boundaryMesh()[patchi].faceAreas(); - - forAll(faceCentres, facei) - { - vector n = faceAreas[facei]/mag(faceAreas[facei]); - - point faceIntersection = - cellCtrs[faceCells[facei]] - + ((faceCentres[facei] - cellCtrs[faceCells[facei]])&n)*n; - - scalar skewness = - mag(faceCentres[facei] - faceIntersection) - /( - mag(faceCentres[facei] - cellCtrs[faceCells[facei]]) - + vSmall - ); - - result[faceCells[facei]] = max(skewness, result[faceCells[facei]]); - } - } - - return tresult; -} - - -Foam::tmp Foam::cellQuality::faceNonOrthogonality() const -{ - tmp tresult - ( - new scalarField - ( - mesh_.nFaces(), 0.0 - ) - ); - scalarField& result = tresult.ref(); - - - const vectorField& centres = mesh_.cellCentres(); - const vectorField& areas = mesh_.faceAreas(); - - const labelList& own = mesh_.faceOwner(); - const labelList& nei = mesh_.faceNeighbour(); - - forAll(nei, facei) - { - vector d = centres[nei[facei]] - centres[own[facei]]; - vector s = areas[facei]; - scalar magS = mag(s); - - scalar cosDDotS = - radToDeg(Foam::acos(min(1.0, (d & s)/(mag(d)*magS + vSmall)))); - - result[facei] = cosDDotS; - } - - label globalFacei = mesh_.nInternalFaces(); - - forAll(mesh_.boundaryMesh(), patchi) - { - const labelUList& faceCells = - mesh_.boundaryMesh()[patchi].faceCells(); - - const vectorField::subField faceCentres = - mesh_.boundaryMesh()[patchi].faceCentres(); - - const vectorField::subField faceAreas = - mesh_.boundaryMesh()[patchi].faceAreas(); - - forAll(faceCentres, facei) - { - vector d = faceCentres[facei] - centres[faceCells[facei]]; - vector s = faceAreas[facei]; - scalar magS = mag(s); - - scalar cosDDotS = - radToDeg(Foam::acos(min(1.0, (d & s)/(mag(d)*magS + vSmall)))); - - result[globalFacei++] = cosDDotS; - } - } - - return tresult; -} - - -Foam::tmp Foam::cellQuality::faceSkewness() const -{ - tmp tresult - ( - new scalarField - ( - mesh_.nFaces(), 0.0 - ) - ); - scalarField& result = tresult.ref(); - - - const vectorField& cellCtrs = mesh_.cellCentres(); - const vectorField& faceCtrs = mesh_.faceCentres(); - const vectorField& areas = mesh_.faceAreas(); - - const labelList& own = mesh_.faceOwner(); - const labelList& nei = mesh_.faceNeighbour(); - - forAll(nei, facei) - { - scalar dOwn = mag - ( - (faceCtrs[facei] - cellCtrs[own[facei]]) & areas[facei] - )/mag(areas[facei]); - - scalar dNei = mag - ( - (cellCtrs[nei[facei]] - faceCtrs[facei]) & areas[facei] - )/mag(areas[facei]); - - point faceIntersection = - cellCtrs[own[facei]] - + (dOwn/(dOwn+dNei))*(cellCtrs[nei[facei]] - cellCtrs[own[facei]]); - - result[facei] = - mag(faceCtrs[facei] - faceIntersection) - /(mag(cellCtrs[nei[facei]] - cellCtrs[own[facei]]) + vSmall); - } - - - label globalFacei = mesh_.nInternalFaces(); - - forAll(mesh_.boundaryMesh(), patchi) - { - const labelUList& faceCells = - mesh_.boundaryMesh()[patchi].faceCells(); - - const vectorField::subField faceCentres = - mesh_.boundaryMesh()[patchi].faceCentres(); - - const vectorField::subField faceAreas = - mesh_.boundaryMesh()[patchi].faceAreas(); - - forAll(faceCentres, facei) - { - vector n = faceAreas[facei]/mag(faceAreas[facei]); - - point faceIntersection = - cellCtrs[faceCells[facei]] - + ((faceCentres[facei] - cellCtrs[faceCells[facei]])&n)*n; - - result[globalFacei++] = - mag(faceCentres[facei] - faceIntersection) - /( - mag(faceCentres[facei] - cellCtrs[faceCells[facei]]) - + vSmall - ); - } - } - - return tresult; -} - - -// ************************************************************************* // diff --git a/src/meshTools/cellQuality/cellQuality.H b/src/meshTools/cellQuality/cellQuality.H deleted file mode 100644 index fa21e71988..0000000000 --- a/src/meshTools/cellQuality/cellQuality.H +++ /dev/null @@ -1,99 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see . - -Class - Foam::cellQuality - -Description - Class calculates cell quality measures. - -SourceFiles - cellQuality.C - -\*---------------------------------------------------------------------------*/ - -#ifndef cellQuality_H -#define cellQuality_H - -#include "polyMesh.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - - -/*---------------------------------------------------------------------------*\ - Class cellQuality Declaration -\*---------------------------------------------------------------------------*/ - -class cellQuality -{ - // Private Data - - //- Reference to mesh - const polyMesh& mesh_; - - -public: - - // Constructors - - //- Construct from mesh - cellQuality(const polyMesh& mesh); - - //- Disallow default bitwise copy construction - cellQuality(const cellQuality&) = delete; - - - // Member Functions - - //- Return cell non-orthogonality - tmp nonOrthogonality() const; - - //- Return cell skewness - tmp skewness() const; - - //- Return face non-orthogonality - tmp faceNonOrthogonality() const; - - //- Return face skewness - tmp faceSkewness() const; - - - // Member Operators - - //- Disallow default bitwise assignment - void operator=(const cellQuality&) = delete; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* //