Commit 1a16207e authored by Mark Olesen's avatar Mark Olesen
Browse files

COMP: compilation of Test-QRMatrix (clang, int64)

- remove unused local functions from volumeExprDriver
parent c614388d
......@@ -324,7 +324,7 @@ void verification_QRMatrix
// QRMatrix Constructors
#if (0 | RUNALL)
{
QRMatrix<MatrixType> QRNull();
QRMatrix<MatrixType> QRNull;
}
#endif
......@@ -967,14 +967,14 @@ void verification_tsqr
typedef RectangularMatrix<Type> RMatrix;
// Size of the full matrix and its partitions
const label nColsSum = rndGen.position(1, 100);
const label qParts = rndGen.position(10, 30);
const label nColsSum = rndGen.position<label>(1, 100);
const label qParts = rndGen.position<label>(10, 30);
List<label> mRowsList(qParts, Zero);
label mRowsSum = 0;
for (label i = 0; i < qParts; ++i)
{
const label mRows = rndGen.position(nColsSum, 10*nColsSum);
const label mRows = rndGen.position<label>(nColsSum, 10*nColsSum);
mRowsList[i] = mRows;
mRowsSum += mRows;
}
......@@ -1084,7 +1084,7 @@ void verification_backSubstitution
{
Info<< nl << "# A*X = b:" << nl;
const RMatrix AX(A*X);
equal(AX, b, verbose, 1e-3, 1e-3);
equal(AX, b, verbose, 10, 1e-3, 1e-3);
}
#endif
}
......@@ -1170,7 +1170,7 @@ int main(int argc, char *argv[])
for (label i = 0; i < numberOfTests; ++i)
{
const label mRows = rndGen.position(1, 50);
const label mRows = rndGen.position<label>(1, 50);
Info<< nl << nl << "# Random A with random mRows = " << mRows << nl;
SMatrix A(makeRandomMatrix<SMatrix>({mRows, mRows}, rndGen));
......@@ -1199,8 +1199,8 @@ int main(int argc, char *argv[])
for (label i = 0; i < numberOfTests; ++i)
{
const label mRows = rndGen.position(1, 50);
const label nCols = rndGen.position(1, 50);
const label mRows = rndGen.position<label>(1, 50);
const label nCols = rndGen.position<label>(1, 50);
Info<< nl << nl << "# Random matrix A with"
<< " random mRows = " << mRows
<< " random nCols = " << nCols << nl;
......@@ -1231,7 +1231,7 @@ int main(int argc, char *argv[])
for (label i = 0; i < numberOfTests; ++i)
{
const label mRows = rndGen.position(1, 50);
const label mRows = rndGen.position<label>(1, 50);
Info<< nl << nl << "# Random A with random mRows = " << mRows << nl;
SCMatrix A({mRows, mRows}, complex(0, 0));
......@@ -1258,7 +1258,7 @@ int main(int argc, char *argv[])
for (label i = 0; i < numberOfTests; ++i)
{
const label mRows = rndGen.position(1, 50);
const label mRows = rndGen.position<label>(1, 50);
Info<< nl << nl << "# Random A with random mRows = " << mRows << nl;
SCMatrix A(makeRandomMatrix<SCMatrix>({mRows, mRows}, rndGen));
......@@ -1287,8 +1287,8 @@ int main(int argc, char *argv[])
for (label i = 0; i < numberOfTests; ++i)
{
const label mRows = rndGen.position(1, 50);
const label nCols = rndGen.position(1, 50);
const label mRows = rndGen.position<label>(1, 50);
const label nCols = rndGen.position<label>(1, 50);
Info<< nl << nl << "# Random matrix A with"
<< " random mRows = " << mRows
<< " random nCols = " << nCols << nl;
......@@ -1363,8 +1363,8 @@ int main(int argc, char *argv[])
for (label i = 0; i < numberOfTests; ++i)
{
const label mRows = rndGen.position(20, 50);
const label pCols = rndGen.position(20, 50);
const label mRows = rndGen.position<label>(20, 50);
const label pCols = rndGen.position<label>(20, 50);
Info<< nl << nl << "# Random square matrix A with"
<< " random mRows = " << mRows
<< " random nCols = " << mRows << nl;
......@@ -1422,8 +1422,8 @@ int main(int argc, char *argv[])
for (label i = 0; i < numberOfTests; ++i)
{
const label mRows = rndGen.position(20, 50);
const label pCols = rndGen.position(20, 50);
const label mRows = rndGen.position<label>(20, 50);
const label pCols = rndGen.position<label>(20, 50);
Info<< nl << nl << "# Random square matrix A with"
<< " random mRows = " << mRows
<< " random nCols = " << mRows << nl;
......
......@@ -35,7 +35,7 @@ bool Foam::MatrixTools::equal
const Matrix<Form1, Type>& A,
const Matrix<Form2, Type>& B,
const bool verbose,
const label lenDiffs,
const label maxDiffs,
const scalar relTol,
const scalar absTol
)
......@@ -55,24 +55,24 @@ bool Foam::MatrixTools::equal
auto iter1 = A.cbegin();
auto iter2 = B.cbegin();
label j = 0;
label nDiffs = 0;
for (label i = 0; i < len; ++i)
{
if ((absTol + relTol*mag(*iter2)) < Foam::mag(*iter1 - *iter2))
{
++nDiffs;
if (verbose)
{
Info<< "Matrix element " << i
<< " differs beyond tolerance: "
<< *iter1 << " vs " << *iter2 << nl;
++j;
}
if (lenDiffs < j)
if (maxDiffs && maxDiffs < nDiffs)
{
Info<< "Number of different elements exceeds = " << lenDiffs
<< " Ceasing comparisons for the remaining of elements."
<< nl;
Info<< "More than " << maxDiffs << " elements differ."
<< " Skipping further comparisons." << nl;
return false;
}
}
......@@ -83,10 +83,17 @@ bool Foam::MatrixTools::equal
if (verbose)
{
Info<< "All elements equal within the tolerances" << nl;
if (nDiffs)
{
Info<< "Some elements differed" << nl;
}
else
{
Info<< "All elements equal within the tolerances" << nl;
}
}
return true;
return !nDiffs;
}
......
......@@ -27,7 +27,7 @@ Namespace
Foam::MatrixTools
Description
Collection of static functions for matrix-related verifications.
Collection of functions for matrix-related verifications.
SourceFiles
MatrixTools.C
......@@ -47,7 +47,6 @@ namespace Foam
// Forward declarations
class Ostream;
/*---------------------------------------------------------------------------*\
Namespace MatrixTools Declaration
\*---------------------------------------------------------------------------*/
......@@ -56,13 +55,14 @@ namespace MatrixTools
{
//- Compare matrix elements for absolute or relative equality
//
template<class Form1, class Form2, class Type>
bool equal
(
const Matrix<Form1, Type>& A,
const Matrix<Form2, Type>& B,
const bool verbose = false,
const label lenDiffs = 10,
const label maxDiffs = 10, //!< Stop reporting after maxDiffs (0 to disable)
const scalar relTol = 1e-5,
const scalar absTol = 1e-8
);
......
......@@ -81,39 +81,6 @@ addNamedToRunTimeSelectionTable
} // End namespace Foam
// * * * * * * * * * * * * * * * Local Functions * * * * * * * * * * * * * * //
namespace Foam
{
static label getPatchID(const fvMesh& mesh, const word& patchName)
{
const auto& bMesh = mesh.boundaryMesh();
const label patchId = bMesh.findPatchID(patchName);
if (patchId < 0)
{
FatalErrorInFunction
<< "No patch " << patchName << " found in "
<< flatOutput(bMesh.names()) << nl
<< exit(FatalError);
}
return patchId;
}
static inline const polyPatch& findPolyPatch
(
const fvMesh& mesh,
const word& patchName
)
{
return mesh.boundaryMesh()[getPatchID(mesh, patchName)];
}
} // End namespace Foam
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::expressions::volumeExpr::parseDriver::parseDriver
......
......@@ -77,10 +77,10 @@ class parProfiling
{
// Private Member Functions
//- Disallow default bitwise copy construct
//- No copy construct
parProfiling(const parProfiling&) = delete;
//- Disallow default bitwise assignment
//- No copy assignment
void operator=(const parProfiling&) = delete;
......
......@@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2018 OpenCFD Ltd.
Copyright (C) 2018-2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
......@@ -72,11 +72,11 @@ class exact
const distributedTriSurfaceMesh& patchSurface() const;
//- Disallow default bitwise copy construct
exact(const exact&);
//- No copy construct
exact(const exact&) = delete;
//- Disallow default bitwise assignment
void operator=(const exact&);
//- No copy assignment
void operator=(const exact&) = delete;
public:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment