diff --git a/applications/test/BinSum/Test-BinSum.C b/applications/test/BinSum/Test-BinSum.C index 873e7eb8939c8dfddd709ae40775ace2b3cac01c..6d0abfff289969737a137dc25cfc7cc8a96a2688 100644 --- a/applications/test/BinSum/Test-BinSum.C +++ b/applications/test/BinSum/Test-BinSum.C @@ -46,7 +46,7 @@ int main(int argc, char *argv[]) scalarField samples(10000000); forAll(samples, i) { - samples[i] = rndGen.scalar01(); + samples[i] = rndGen.sample01<scalar>(); } const scalar min = 0; diff --git a/applications/test/Distribution/Test-Distribution.C b/applications/test/Distribution/Test-Distribution.C index f893e1e4bc44603bd2cd788e9ca9d02b3965c657..647c7a7d420a5af73b3adafbd35325f15f55c803 100644 --- a/applications/test/Distribution/Test-Distribution.C +++ b/applications/test/Distribution/Test-Distribution.C @@ -71,7 +71,7 @@ int main(int argc, char *argv[]) for (label i = 0; i < randomDistributionTestSize; i++) { - dS.add(2.5*R.GaussNormal() + 8.5); + dS.add(2.5*R.GaussNormal<scalar>() + 8.5); } Info<< "Mean " << dS.mean() << nl @@ -90,7 +90,7 @@ int main(int argc, char *argv[]) for (label i = 0; i < randomDistributionTestSize; i++) { - dS2.add(1.5*R.GaussNormal() -6.0); + dS2.add(1.5*R.GaussNormal<scalar>() -6.0); } Info<< "Mean " << dS2.mean() << nl @@ -121,7 +121,7 @@ int main(int argc, char *argv[]) for (label i = 0; i < randomDistributionTestSize; i++) { - dS.add(R.scalar01() + 10*Pstream::myProcNo()); + dS.add(R.sample01<scalar>() + 10*Pstream::myProcNo()); } Pout<< "Mean " << dS.mean() << nl @@ -155,7 +155,7 @@ int main(int argc, char *argv[]) for (label i = 0; i < randomDistributionTestSize; i++) { - dV.add(R.vector01()); + dV.add(R.sample01<vector>()); // Adding separate GaussNormal components with component // weights @@ -164,9 +164,9 @@ int main(int argc, char *argv[]) ( vector ( - R.GaussNormal()*3.0 + 1.5, - R.GaussNormal()*0.25 + 4.0, - R.GaussNormal()*3.0 - 1.5 + R.GaussNormal<scalar>()*3.0 + 1.5, + R.GaussNormal<scalar>()*0.25 + 4.0, + R.GaussNormal<scalar>()*3.0 - 1.5 ), vector(1.0, 2.0, 5.0) ); @@ -225,7 +225,7 @@ int main(int argc, char *argv[]) for (label i = 0; i < randomDistributionTestSize; i++) { - dT.add(R.tensor01()); + dT.add(R.sample01<tensor>()); } Info<< "Mean " << dT.mean() << nl @@ -249,7 +249,7 @@ int main(int argc, char *argv[]) for (label i = 0; i < randomDistributionTestSize; i++) { - dSyT.add(R.symmTensor01()); + dSyT.add(R.sample01<symmTensor>()); } Info<< "Mean " << dSyT.mean() << nl @@ -273,7 +273,7 @@ int main(int argc, char *argv[]) for (label i = 0; i < randomDistributionTestSize; i++) { - dSpT.add(R.sphericalTensor01()); + dSpT.add(R.sample01<sphericalTensor>()); } Info<< "Mean " << dSpT.mean() << nl diff --git a/applications/test/Polynomial/Test-Polynomial.C b/applications/test/Polynomial/Test-Polynomial.C index 352d15f96d7402037f40212df5be1e187d953791..6a6fb8bb455bf7ecab4c226bf91bc34197df551a 100644 --- a/applications/test/Polynomial/Test-Polynomial.C +++ b/applications/test/Polynomial/Test-Polynomial.C @@ -152,7 +152,7 @@ int main(int argc, char *argv[]) Random rnd(123456); for (int i=0; i<10; i++) { - scalar x = rnd.scalar01()*100; + scalar x = rnd.sample01<scalar>()*100; scalar px = polyValue(x); scalar ipx = intPolyValue(x); diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshI.H b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshI.H index 190e493322f31863d9964fbb368fc9e17a55853c..929eeb306b3a599b551453aeb583867a448be833 100644 --- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshI.H +++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshI.H @@ -293,9 +293,9 @@ inline Foam::point Foam::conformalVoronoiMesh::perturbPoint scalar pert = 1e-12*defaultCellSize(); - perturbedPt.x() += pert*(rndGen_.scalar01() - 0.5); - perturbedPt.y() += pert*(rndGen_.scalar01() - 0.5); - perturbedPt.z() += pert*(rndGen_.scalar01() - 0.5); + perturbedPt.x() += pert*(rndGen_.sample01<scalar>() - 0.5); + perturbedPt.y() += pert*(rndGen_.sample01<scalar>() - 0.5); + perturbedPt.z() += pert*(rndGen_.sample01<scalar>() - 0.5); return perturbedPt; } diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/autoDensity/autoDensity.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/autoDensity/autoDensity.C index e2d1001504510890699b511ac04e6fc186057893..1acd01d9bfb8ac35322320e4d227972e83ca49d5 100644 --- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/autoDensity/autoDensity.C +++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/autoDensity/autoDensity.C @@ -553,11 +553,11 @@ bool Foam::autoDensity::fillBox + vector ( delta.x() - *(i + 0.5 + 0.1*(rndGen().scalar01() - 0.5)), + *(i + 0.5 + 0.1*(rndGen().sample01<scalar>() - 0.5)), delta.y() - *(j + 0.5 + 0.1*(rndGen().scalar01() - 0.5)), + *(j + 0.5 + 0.1*(rndGen().sample01<scalar>() - 0.5)), delta.z() - *(k + 0.5 + 0.1*(rndGen().scalar01() - 0.5)) + *(k + 0.5 + 0.1*(rndGen().sample01<scalar>() - 0.5)) ); } } @@ -662,7 +662,7 @@ bool Foam::autoDensity::fillBox // TODO - is there a lot of cost in the 1/density calc? Could // assess on // (1/maxDensity)/(1/localDensity) = minVolume/localVolume - if (localDensity/maxDensity > rndGen().scalar01()) + if (localDensity/maxDensity > rndGen().sample01<scalar>()) { scalar localVolume = 1/localDensity; @@ -675,7 +675,7 @@ bool Foam::autoDensity::fillBox scalar addProbability = (totalVolume - volumeAdded)/localVolume; - scalar r = rndGen().scalar01(); + scalar r = rndGen().sample01<scalar>(); if (debug) { @@ -729,7 +729,7 @@ bool Foam::autoDensity::fillBox { trialPoints++; - point p = min + cmptMultiply(span, rndGen().vector01()); + point p = min + cmptMultiply(span, rndGen().sample01<vector>()); scalar localSize = cellShapeControls().cellSize(p); @@ -785,7 +785,7 @@ bool Foam::autoDensity::fillBox // Accept possible placements proportional to the relative local // density - if (localDensity/maxDensity > rndGen().scalar01()) + if (localDensity/maxDensity > rndGen().sample01<scalar>()) { scalar localVolume = 1/localDensity; @@ -798,7 +798,7 @@ bool Foam::autoDensity::fillBox scalar addProbability = (totalVolume - volumeAdded)/localVolume; - scalar r = rndGen().scalar01(); + scalar r = rndGen().sample01<scalar>(); if (debug) { diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/bodyCentredCubic/bodyCentredCubic.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/bodyCentredCubic/bodyCentredCubic.C index 17a4285d861a799019527e9284e86e75a1fe5039..8991e7ae9d14bf815c35e0f8dcda2ed5d8fbfadd 100644 --- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/bodyCentredCubic/bodyCentredCubic.C +++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/bodyCentredCubic/bodyCentredCubic.C @@ -129,9 +129,9 @@ List<Vb::Point> bodyCentredCubic::initialPoints() const if (randomiseInitialGrid_) { - pA.x() += pert*(rndGen().scalar01() - 0.5); - pA.y() += pert*(rndGen().scalar01() - 0.5); - pA.z() += pert*(rndGen().scalar01() - 0.5); + pA.x() += pert*(rndGen().sample01<scalar>() - 0.5); + pA.y() += pert*(rndGen().sample01<scalar>() - 0.5); + pA.z() += pert*(rndGen().sample01<scalar>() - 0.5); } if (Pstream::parRun()) @@ -150,9 +150,9 @@ List<Vb::Point> bodyCentredCubic::initialPoints() const if (randomiseInitialGrid_) { - pB.x() += pert*(rndGen().scalar01() - 0.5); - pB.y() += pert*(rndGen().scalar01() - 0.5); - pB.z() += pert*(rndGen().scalar01() - 0.5); + pB.x() += pert*(rndGen().sample01<scalar>() - 0.5); + pB.y() += pert*(rndGen().sample01<scalar>() - 0.5); + pB.z() += pert*(rndGen().sample01<scalar>() - 0.5); } if (Pstream::parRun()) diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/faceCentredCubic/faceCentredCubic.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/faceCentredCubic/faceCentredCubic.C index 9fd36aee3a6bb53ca6be4eb5c273a9cfc58ca6a4..36052a3bbb80fd232b98b716dea7b063e17c8466 100644 --- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/faceCentredCubic/faceCentredCubic.C +++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/faceCentredCubic/faceCentredCubic.C @@ -127,9 +127,9 @@ List<Vb::Point> faceCentredCubic::initialPoints() const if (randomiseInitialGrid_) { - p.x() += pert*(rndGen().scalar01() - 0.5); - p.y() += pert*(rndGen().scalar01() - 0.5); - p.z() += pert*(rndGen().scalar01() - 0.5); + p.x() += pert*(rndGen().sample01<scalar>() - 0.5); + p.y() += pert*(rndGen().sample01<scalar>() - 0.5); + p.z() += pert*(rndGen().sample01<scalar>() - 0.5); } if (Pstream::parRun()) @@ -155,9 +155,9 @@ List<Vb::Point> faceCentredCubic::initialPoints() const if (randomiseInitialGrid_) { - p.x() += pert*(rndGen().scalar01() - 0.5); - p.y() += pert*(rndGen().scalar01() - 0.5); - p.z() += pert*(rndGen().scalar01() - 0.5); + p.x() += pert*(rndGen().sample01<scalar>() - 0.5); + p.y() += pert*(rndGen().sample01<scalar>() - 0.5); + p.z() += pert*(rndGen().sample01<scalar>() - 0.5); } if (Pstream::parRun()) @@ -183,9 +183,9 @@ List<Vb::Point> faceCentredCubic::initialPoints() const if (randomiseInitialGrid_) { - p.x() += pert*(rndGen().scalar01() - 0.5); - p.y() += pert*(rndGen().scalar01() - 0.5); - p.z() += pert*(rndGen().scalar01() - 0.5); + p.x() += pert*(rndGen().sample01<scalar>() - 0.5); + p.y() += pert*(rndGen().sample01<scalar>() - 0.5); + p.z() += pert*(rndGen().sample01<scalar>() - 0.5); } if (Pstream::parRun()) @@ -211,9 +211,9 @@ List<Vb::Point> faceCentredCubic::initialPoints() const if (randomiseInitialGrid_) { - p.x() += pert*(rndGen().scalar01() - 0.5); - p.y() += pert*(rndGen().scalar01() - 0.5); - p.z() += pert*(rndGen().scalar01() - 0.5); + p.x() += pert*(rndGen().sample01<scalar>() - 0.5); + p.y() += pert*(rndGen().sample01<scalar>() - 0.5); + p.z() += pert*(rndGen().sample01<scalar>() - 0.5); } if (Pstream::parRun()) diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/pointFile/pointFile.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/pointFile/pointFile.C index 38742a62034ac266f60891aba20122b6b460869e..a09153cf20c2efe4c47e168845175f47adb03421 100644 --- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/pointFile/pointFile.C +++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/pointFile/pointFile.C @@ -198,9 +198,15 @@ List<Vb::Point> pointFile::initialPoints() const if (randomiseInitialGrid_) { - p.x() += randomPerturbationCoeff_*(rndGen().scalar01() - 0.5); - p.y() += randomPerturbationCoeff_*(rndGen().scalar01() - 0.5); - p.z() += randomPerturbationCoeff_*(rndGen().scalar01() - 0.5); + p.x() += + randomPerturbationCoeff_ + *(rndGen().sample01<scalar>() - 0.5); + p.y() += + randomPerturbationCoeff_ + *(rndGen().sample01<scalar>() - 0.5); + p.z() += + randomPerturbationCoeff_ + *(rndGen().sample01<scalar>() - 0.5); } initialPoints.append(Vb::Point(p.x(), p.y(), p.z())); diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/rayShooting/rayShooting.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/rayShooting/rayShooting.C index 103a09c23aed1bee77839e6e412a96e972e41936..7727153e5bb5c55f948515f4795f3def936d4c17 100644 --- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/rayShooting/rayShooting.C +++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/rayShooting/rayShooting.C @@ -86,9 +86,9 @@ void rayShooting::splitLine { Foam::point newPt ( - midPoint.x() + pert*(rndGen().scalar01() - 0.5), - midPoint.y() + pert*(rndGen().scalar01() - 0.5), - midPoint.z() + pert*(rndGen().scalar01() - 0.5) + midPoint.x() + pert*(rndGen().sample01<scalar>() - 0.5), + midPoint.y() + pert*(rndGen().sample01<scalar>() - 0.5), + midPoint.z() + pert*(rndGen().sample01<scalar>() - 0.5) ); if diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/uniformGrid/uniformGrid.C b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/uniformGrid/uniformGrid.C index 319db4929349886eda0f9b3f556eae76457d8454..e7d8d8dcf1ad8e470f0a86c16356ce2ded0b6f5f 100644 --- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/uniformGrid/uniformGrid.C +++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/uniformGrid/uniformGrid.C @@ -128,9 +128,9 @@ List<Vb::Point> uniformGrid::initialPoints() const if (randomiseInitialGrid_) { - p.x() += pert*(rndGen().scalar01() - 0.5); - p.y() += pert*(rndGen().scalar01() - 0.5); - p.z() += pert*(rndGen().scalar01() - 0.5); + p.x() += pert*(rndGen().sample01<scalar>() - 0.5); + p.y() += pert*(rndGen().sample01<scalar>() - 0.5); + p.z() += pert*(rndGen().sample01<scalar>() - 0.5); } if diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/CV2D.C b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/CV2D.C index 92d08f29d645313da4e047803f353025dfcb2bba..1a540eaf8ddfe10d30d732fa4cdf28d0750235fe 100644 --- a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/CV2D.C +++ b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/CV2D.C @@ -264,8 +264,8 @@ void Foam::CV2D::insertGrid() if (meshControls().randomiseInitialGrid()) { - p.x() += pert*(rndGen.scalar01() - 0.5); - p.y() += pert*(rndGen.scalar01() - 0.5); + p.x() += pert*(rndGen.sample01<scalar>() - 0.5); + p.y() += pert*(rndGen.sample01<scalar>() - 0.5); } if (qSurf_.wellInside(p, 0.5*meshControls().minCellSize2())) diff --git a/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H b/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H index 85ec143ca9aa8dbda8648034699178a6a3d99e68..68229a7a93709ac4aecb6145abd5f5d10ef69ede 100644 --- a/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H +++ b/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H @@ -20,7 +20,7 @@ const fileName pdfPath = runTime.path()/"pdf"; mkDir(pdfPath); - cachedRandom rndGen(label(0), -1); + Random rndGen; autoPtr<distributionModels::distributionModel> p ( diff --git a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C index abc3d321d2b8a9e2662ec2d65a7dbb3571c7e963..02d0b0c8e63b61eb06cc5fede66b19a621cf3ab4 100644 --- a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C +++ b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C @@ -783,7 +783,7 @@ labelPair edgeIntersectionsAndShuffleCGAL const edge& e = edges[edgeI]; forAll(e, eI) { - vector d = rndGen.vector01()-p05; + vector d = rndGen.sample01<vector>() - p05; surf1Points[mp[e[eI]]] += surf1PointTol[e[eI]]*d; } } diff --git a/applications/utilities/surface/surfaceInertia/surfaceInertia.C b/applications/utilities/surface/surfaceInertia/surfaceInertia.C index b0808d239d8ea75fa13519687c9299dfd1f2ecfb..fb45390688fda6af570c84c8ccf6bfa0d0066f1d 100644 --- a/applications/utilities/surface/surfaceInertia/surfaceInertia.C +++ b/applications/utilities/surface/surfaceInertia/surfaceInertia.C @@ -125,9 +125,9 @@ int main(int argc, char *argv[]) << "No eigenValues found, shape may have symmetry, " << "perturbing inertia tensor diagonal" << endl; - J.xx() *= 1.0 + SMALL*rand.scalar01(); - J.yy() *= 1.0 + SMALL*rand.scalar01(); - J.zz() *= 1.0 + SMALL*rand.scalar01(); + J.xx() *= 1.0 + SMALL*rand.sample01<scalar>(); + J.yy() *= 1.0 + SMALL*rand.sample01<scalar>(); + J.zz() *= 1.0 + SMALL*rand.sample01<scalar>(); eVal = eigenValues(J); diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files index 14af54effd232fde07c01434813df8318089adaa..5636f7c937b067ef33523779a938d677a3847e1d 100644 --- a/src/OpenFOAM/Make/files +++ b/src/OpenFOAM/Make/files @@ -111,7 +111,6 @@ $(sha1)/SHA1.C $(sha1)/SHA1Digest.C primitives/random/Random/Random.C -primitives/random/cachedRandom/cachedRandom.C ranges = primitives/ranges $(ranges)/labelRange/labelRange.C diff --git a/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedron.H b/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedron.H index badea19542e0fe15c7feb02b5fca83e161ab8208..2369e77ca81ced17a9d7d162bce139dd4432a45f 100644 --- a/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedron.H +++ b/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedron.H @@ -42,7 +42,6 @@ SourceFiles #include "point.H" #include "primitiveFieldsFwd.H" #include "pointHit.H" -#include "cachedRandom.H" #include "Random.H" #include "FixedList.H" #include "UList.H" @@ -239,10 +238,6 @@ public: // uniform distribution inline Point randomPoint(Random& rndGen) const; - //- Return a random point in the tetrahedron from a - // uniform distribution - inline Point randomPoint(cachedRandom& rndGen) const; - //- Calculate the barycentric coordinates of the given // point, in the same order as a, b, c, d. Returns the // determinant of the solution. diff --git a/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H b/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H index 2c14d16121ed6a3cde0722e5a88aa745a9678094..d95f42dc1ebe2fbf4198f0a848032b730168a6ae 100644 --- a/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H +++ b/src/OpenFOAM/meshes/primitiveShapes/tetrahedron/tetrahedronI.H @@ -249,42 +249,6 @@ inline Point Foam::tetrahedron<Point, PointRef>::randomPoint // Adapted from // http://vcg.isti.cnr.it/activities/geometryegraphics/pointintetraedro.html - scalar s = rndGen.scalar01(); - scalar t = rndGen.scalar01(); - scalar u = rndGen.scalar01(); - - if (s + t > 1.0) - { - s = 1.0 - s; - t = 1.0 - t; - } - - if (t + u > 1.0) - { - scalar tmp = u; - u = 1.0 - s - t; - t = 1.0 - tmp; - } - else if (s + t + u > 1.0) - { - scalar tmp = u; - u = s + t + u - 1.0; - s = 1.0 - t - tmp; - } - - return (1 - s - t - u)*a_ + s*b_ + t*c_ + u*d_; -} - - -template<class Point, class PointRef> -inline Point Foam::tetrahedron<Point, PointRef>::randomPoint -( - cachedRandom& rndGen -) const -{ - // Adapted from - // http://vcg.isti.cnr.it/activities/geometryegraphics/pointintetraedro.html - scalar s = rndGen.sample01<scalar>(); scalar t = rndGen.sample01<scalar>(); scalar u = rndGen.sample01<scalar>(); diff --git a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H index d689fa0b1e910f59b7b146922936a328fed3ef1e..a73d7a0e5e09ffa51766adbcb6e4efabcb91a13e 100644 --- a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H +++ b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangle.H @@ -40,7 +40,6 @@ SourceFiles #include "tensor.H" #include "pointHit.H" #include "Random.H" -#include "cachedRandom.H" #include "FixedList.H" #include "UList.H" #include "linePointRef.H" @@ -238,10 +237,6 @@ public: // distribution inline Point randomPoint(Random& rndGen) const; - //- Return a random point on the triangle from a uniform - // distribution - inline Point randomPoint(cachedRandom& rndGen) const; - //- Calculate the barycentric coordinates of the given // point, in the same order as a, b, c. Returns the // determinant of the solution. diff --git a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H index eee54fd92cf2fd7d19b7c6fa3e03c33954a6fbf8..605e10589b58666229c99f26a676cf7e406ed268 100644 --- a/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H +++ b/src/OpenFOAM/meshes/primitiveShapes/triangle/triangleI.H @@ -249,25 +249,6 @@ inline Point Foam::triangle<Point, PointRef>::randomPoint(Random& rndGen) const // from "Graphics Gems", Academic Press, 1990 // http://tog.acm.org/GraphicsGems/gems/TriPoints.c - scalar s = rndGen.scalar01(); - - scalar t = sqrt(rndGen.scalar01()); - - return (1 - t)*a_ + (1 - s)*t*b_ + s*t*c_; -} - - -template<class Point, class PointRef> -inline Point Foam::triangle<Point, PointRef>::randomPoint -( - cachedRandom& rndGen -) const -{ - // Generating Random Points in Triangles - // by Greg Turk - // from "Graphics Gems", Academic Press, 1990 - // http://tog.acm.org/GraphicsGems/gems/TriPoints.c - scalar s = rndGen.sample01<scalar>(); scalar t = sqrt(rndGen.sample01<scalar>()); diff --git a/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H b/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H index edc42983dfe38ad412d7954b29b6e6627a0690f9..7c27f9fc264a82df9221ea870e62d74552cf80b8 100644 --- a/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H +++ b/src/OpenFOAM/meshes/treeBoundBox/treeBoundBox.H @@ -335,7 +335,7 @@ public: label distanceCmp(const point& pt, const treeBoundBox& other) const; //- Return slightly wider bounding box - // Extends all dimensions with s*span*Random::scalar01() + // Extends all dimensions with s*span*Random::sample01<scalar>() // and guarantees in any direction s*mag(span) minimum width inline treeBoundBox extend(Random& rndGen, const scalar s) const; diff --git a/src/OpenFOAM/meshes/treeBoundBox/treeBoundBoxI.H b/src/OpenFOAM/meshes/treeBoundBox/treeBoundBoxI.H index 4b073fd9753a40a397b8ca5258724e27d425f524..750a6737ff6b08bc888fa333326b0d08c63d23c4 100644 --- a/src/OpenFOAM/meshes/treeBoundBox/treeBoundBoxI.H +++ b/src/OpenFOAM/meshes/treeBoundBox/treeBoundBoxI.H @@ -336,8 +336,8 @@ inline Foam::treeBoundBox Foam::treeBoundBox::extend newSpan[dir] = Foam::max(newSpan[dir], minSpan); } - bb.min() -= cmptMultiply(s * rndGen.vector01(), newSpan); - bb.max() += cmptMultiply(s * rndGen.vector01(), newSpan); + bb.min() -= cmptMultiply(s*rndGen.sample01<vector>(), newSpan); + bb.max() += cmptMultiply(s*rndGen.sample01<vector>(), newSpan); return bb; } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddy.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddy.C index b4a73f3b91f51a30870c4ec1ea8048b501bf1e83..1883fac2787fc315b1430d1c0afd486743398861 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddy.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddy.C @@ -129,7 +129,7 @@ Foam::eddy::eddy const scalar x, const scalar sigmaX, const symmTensor& R, - cachedRandom& rndGen + Random& rndGen ) : patchFaceI_(patchFaceI), diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddy.H b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddy.H index 5bd0feb0f1de401cac2ed56534808df516ca542a..be527caa2f3813cc74a599977fef50eac7d78a19 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddy.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddy.H @@ -41,7 +41,7 @@ SourceFiles #include "vector.H" #include "point.H" #include "tensor.H" -#include "cachedRandom.H" +#include "Random.H" #include "coordinateSystem.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -112,7 +112,7 @@ class eddy ) const; //- Return a number with zero mean and unit variance - inline scalar epsi(cachedRandom& rndGen) const; + inline scalar epsi(Random& rndGen) const; public: @@ -133,7 +133,7 @@ public: const scalar x, // distance from reference position const scalar sigmaX, // length scale const symmTensor& R, // Stress tensor - cachedRandom& rndGen + Random& rndGen ); //- Construct copy @@ -175,7 +175,7 @@ public: inline label dir1() const; //- Return random vector of -1 and 1's - inline vector epsilon(cachedRandom& rndGen) const; + inline vector epsilon(Random& rndGen) const; // Helper functions diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddyI.H b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddyI.H index 82c579fcc541a9d3a4917e1a0c121127a8a134e5..91531bf13d211266bcf52c3bd2dc08d53776f399 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddyI.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/eddy/eddyI.H @@ -29,7 +29,7 @@ using namespace Foam::constant; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -Foam::scalar Foam::eddy::epsi(cachedRandom& rndGen) const +Foam::scalar Foam::eddy::epsi(Random& rndGen) const { // Random number with zero mean and unit variance return rndGen.sample01<scalar>() > 0.5 ? 1 : -1; @@ -84,7 +84,7 @@ inline Foam::scalar Foam::eddy::c1() const } -Foam::vector Foam::eddy::epsilon(cachedRandom& rndGen) const +Foam::vector Foam::eddy::epsilon(Random& rndGen) const { return vector(epsi(rndGen), epsi(rndGen), epsi(rndGen)); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.H index b1d0afe62aca9f6305894cb66cd8bab66a45f9c9..d14d82266f531302d3879b78a251f29cd2d8046f 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentDFSEMInlet/turbulentDFSEMInletFvPatchVectorField.H @@ -81,7 +81,7 @@ SourceFiles #define turbulentDFSEMInletFvPatchVectorField_H #include "fixedValueFvPatchFields.H" -#include "cachedRandom.H" +#include "Random.H" #include "eddy.H" #include "pointIndexHit.H" #include "instantList.H" @@ -184,7 +184,7 @@ class turbulentDFSEMInletFvPatchVectorField scalar v0_; //- Random number generator - cachedRandom rndGen_; + Random rndGen_; //- Length scale per patch face scalarField sigmax_; diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C index ec71541bd0f2be12c6e8e502dac1881c0423ade1..b457ecd85a3f52700e0f9f7fc413b11e94304f83 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C @@ -166,7 +166,7 @@ void Foam::turbulentInletFvPatchField<Type>::updateCoeffs() forAll(patchField, facei) { - ranGen_.randomise(randomField[facei]); + ranGen_.randomise01<Type>(randomField[facei]); } // Correction-factor to compensate for the loss of RMS fluctuation diff --git a/src/functionObjects/field/particleDistribution/particleDistribution.H b/src/functionObjects/field/particleDistribution/particleDistribution.H index fec579f1938dfe5c6f8af601f72153c3d910accc..4e7765e1b1e824787a2993e33355f9e1afeadf38 100644 --- a/src/functionObjects/field/particleDistribution/particleDistribution.H +++ b/src/functionObjects/field/particleDistribution/particleDistribution.H @@ -73,7 +73,7 @@ SourceFiles #include "fvMeshFunctionObject.H" #include "writeFile.H" #include "scalarField.H" -#include "cachedRandom.H" +#include "Random.H" #include "Tuple2.H" #include "writer.H" @@ -107,7 +107,7 @@ protected: word tagFieldName_; //- Random number generator - used by distribution models - cachedRandom rndGen_; + Random rndGen_; //- Writer autoPtr<writer<scalar>> writerPtr_; diff --git a/src/functionObjects/field/randomise/randomiseTemplates.C b/src/functionObjects/field/randomise/randomiseTemplates.C index a466ef3551033bdf244141de3e543421283eed63..f0c691eb3973176d5aaf98923d02cc0e7d71aa72 100644 --- a/src/functionObjects/field/randomise/randomiseTemplates.C +++ b/src/functionObjects/field/randomise/randomiseTemplates.C @@ -47,7 +47,7 @@ bool Foam::functionObjects::randomise::calcRandomised() forAll(field, celli) { Type rndPert; - rand.randomise(rndPert); + rand.randomise01(rndPert); rndPert = 2.0*rndPert - pTraits<Type>::one; rndPert /= mag(rndPert); rfield[celli] += magPerturbation_*rndPert; diff --git a/src/lagrangian/DSMC/clouds/Templates/DSMCCloud/DSMCCloud.C b/src/lagrangian/DSMC/clouds/Templates/DSMCCloud/DSMCCloud.C index 6da1c1aa8e8883c7b3ae3bd6b4e4523a20ab58c7..fadaf872bc1ab1f014cf4c011196de65ae952433 100644 --- a/src/lagrangian/DSMC/clouds/Templates/DSMCCloud/DSMCCloud.C +++ b/src/lagrangian/DSMC/clouds/Templates/DSMCCloud/DSMCCloud.C @@ -152,7 +152,7 @@ void Foam::DSMCCloud<ParcelType>::initialise if ( (particlesRequired - nParticlesToInsert) - > rndGen_.scalar01() + > rndGen_.sample01<scalar>() ) { nParticlesToInsert++; @@ -282,7 +282,7 @@ void Foam::DSMCCloud<ParcelType>::collisions() // subCell candidate selection procedure // Select the first collision candidate - label candidateP = rndGen_.integer(0, nC - 1); + label candidateP = rndGen_.position<label>(0, nC - 1); // Declare the second collision candidate label candidateQ = -1; @@ -298,7 +298,8 @@ void Foam::DSMCCloud<ParcelType>::collisions() do { - candidateQ = subCellPs[rndGen_.integer(0, nSC - 1)]; + label i = rndGen_.position<label>(0, nSC - 1); + candidateQ = subCellPs[i]; } while (candidateP == candidateQ); } else @@ -309,7 +310,7 @@ void Foam::DSMCCloud<ParcelType>::collisions() do { - candidateQ = rndGen_.integer(0, nC - 1); + candidateQ = rndGen_.position<label>(0, nC - 1); } while (candidateP == candidateQ); } @@ -317,15 +318,15 @@ void Foam::DSMCCloud<ParcelType>::collisions() // uniform candidate selection procedure // // Select the first collision candidate - // label candidateP = rndGen_.integer(0, nC-1); + // label candidateP = rndGen_.position<label>(0, nC-1); // // Select a possible second collision candidate - // label candidateQ = rndGen_.integer(0, nC-1); + // label candidateQ = rndGen_.position<label>(0, nC-1); // // If the same candidate is chosen, choose again // while (candidateP == candidateQ) // { - // candidateQ = rndGen_.integer(0, nC-1); + // candidateQ = rndGen_.position<label>(0, nC-1); // } // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -348,7 +349,7 @@ void Foam::DSMCCloud<ParcelType>::collisions() sigmaTcRMax_[celli] = sigmaTcR; } - if ((sigmaTcR/sigmaTcRMax) > rndGen_.scalar01()) + if ((sigmaTcR/sigmaTcRMax) > rndGen_.sample01<scalar>()) { binaryCollision().collide ( @@ -648,7 +649,7 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud mesh_ ), constProps_(), - rndGen_(label(149382906) + 7183*Pstream::myProcNo()), + rndGen_(Pstream::myProcNo()), boundaryT_ ( volScalarField @@ -711,7 +712,7 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud // and 1. forAll(collisionSelectionRemainder_, i) { - collisionSelectionRemainder_[i] = rndGen_.scalar01(); + collisionSelectionRemainder_[i] = rndGen_.sample01<scalar>(); } if (readFields) @@ -900,7 +901,7 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud ) ), constProps_(), - rndGen_(label(971501) + 1526*Pstream::myProcNo()), + rndGen_(Pstream::myProcNo()), boundaryT_ ( volScalarField @@ -1039,12 +1040,7 @@ Foam::vector Foam::DSMCCloud<ParcelType>::equipartitionLinearVelocity { return sqrt(physicoChemical::k.value()*temperature/mass) - *vector - ( - rndGen_.GaussNormal(), - rndGen_.GaussNormal(), - rndGen_.GaussNormal() - ); + *rndGen_.GaussNormal<vector>(); } @@ -1064,7 +1060,9 @@ Foam::scalar Foam::DSMCCloud<ParcelType>::equipartitionInternalEnergy else if (iDof < 2.0 + SMALL && iDof > 2.0 - SMALL) { // Special case for iDof = 2, i.e. diatomics; - Ei = -log(rndGen_.scalar01())*physicoChemical::k.value()*temperature; + Ei = + -log(rndGen_.sample01<scalar>()) + *physicoChemical::k.value()*temperature; } else { @@ -1074,9 +1072,9 @@ Foam::scalar Foam::DSMCCloud<ParcelType>::equipartitionInternalEnergy do { - energyRatio = 10*rndGen_.scalar01(); + energyRatio = 10*rndGen_.sample01<scalar>(); P = pow((energyRatio/a), a)*exp(a - energyRatio); - } while (P < rndGen_.scalar01()); + } while (P < rndGen_.sample01<scalar>()); Ei = energyRatio*physicoChemical::k.value()*temperature; } diff --git a/src/lagrangian/DSMC/submodels/BinaryCollisionModel/LarsenBorgnakkeVariableHardSphere/LarsenBorgnakkeVariableHardSphere.C b/src/lagrangian/DSMC/submodels/BinaryCollisionModel/LarsenBorgnakkeVariableHardSphere/LarsenBorgnakkeVariableHardSphere.C index 9139e09be3b0f15f21f5ccb914a4d6e04bb4a92e..d81ce400f67f9e0c1dcf8e9a0e90dd2dffd92df6 100644 --- a/src/lagrangian/DSMC/submodels/BinaryCollisionModel/LarsenBorgnakkeVariableHardSphere/LarsenBorgnakkeVariableHardSphere.C +++ b/src/lagrangian/DSMC/submodels/BinaryCollisionModel/LarsenBorgnakkeVariableHardSphere/LarsenBorgnakkeVariableHardSphere.C @@ -39,14 +39,14 @@ Foam::scalar Foam::LarsenBorgnakkeVariableHardSphere<CloudType>::energyRatio { CloudType& cloud(this->owner()); - Random& rndGen(cloud.rndGen()); + Random& rndGen = cloud.rndGen(); scalar ChiAMinusOne = ChiA - 1; scalar ChiBMinusOne = ChiB - 1; if (ChiAMinusOne < SMALL && ChiBMinusOne < SMALL) { - return rndGen.scalar01(); + return rndGen.sample01<scalar>(); } scalar energyRatio; @@ -56,7 +56,7 @@ Foam::scalar Foam::LarsenBorgnakkeVariableHardSphere<CloudType>::energyRatio { P = 0; - energyRatio = rndGen.scalar01(); + energyRatio = rndGen.sample01<scalar>(); if (ChiAMinusOne < SMALL) { @@ -81,7 +81,7 @@ Foam::scalar Foam::LarsenBorgnakkeVariableHardSphere<CloudType>::energyRatio ChiBMinusOne ); } - } while (P < rndGen.scalar01()); + } while (P < rndGen.sample01<scalar>()); return energyRatio; } @@ -186,7 +186,7 @@ void Foam::LarsenBorgnakkeVariableHardSphere<CloudType>::collide scalar& EiP = pP.Ei(); scalar& EiQ = pQ.Ei(); - Random& rndGen(cloud.rndGen()); + Random& rndGen = cloud.rndGen(); scalar inverseCollisionNumber = 1/relaxationCollisionNumber_; @@ -217,13 +217,14 @@ void Foam::LarsenBorgnakkeVariableHardSphere<CloudType>::collide if (iDofP > 0) { - if (inverseCollisionNumber > rndGen.scalar01()) + if (inverseCollisionNumber > rndGen.sample01<scalar>()) { availableEnergy += preCollisionEiP; if (iDofP == 2) { - scalar energyRatio = 1.0 - pow(rndGen.scalar01(), (1.0/ChiB)); + scalar energyRatio = + 1.0 - pow(rndGen.sample01<scalar>(), (1.0/ChiB)); EiP = energyRatio*availableEnergy; } else @@ -238,13 +239,13 @@ void Foam::LarsenBorgnakkeVariableHardSphere<CloudType>::collide if (iDofQ > 0) { - if (inverseCollisionNumber > rndGen.scalar01()) + if (inverseCollisionNumber > rndGen.sample01<scalar>()) { availableEnergy += preCollisionEiQ; if (iDofQ == 2) { - scalar energyRatio = 1.0 - pow(rndGen.scalar01(), (1.0/ChiB)); + scalar energyRatio = 1.0 - pow(rndGen.sample01<scalar>(), (1.0/ChiB)); EiQ = energyRatio*availableEnergy; } else @@ -261,9 +262,9 @@ void Foam::LarsenBorgnakkeVariableHardSphere<CloudType>::collide scalar cR = sqrt(2.0*availableEnergy/mR); // Variable Hard Sphere collision part - scalar cosTheta = 2.0*rndGen.scalar01() - 1.0; + scalar cosTheta = 2.0*rndGen.sample01<scalar>() - 1.0; scalar sinTheta = sqrt(1.0 - cosTheta*cosTheta); - scalar phi = twoPi*rndGen.scalar01(); + scalar phi = twoPi*rndGen.sample01<scalar>(); vector postCollisionRelU = cR diff --git a/src/lagrangian/DSMC/submodels/BinaryCollisionModel/VariableHardSphere/VariableHardSphere.C b/src/lagrangian/DSMC/submodels/BinaryCollisionModel/VariableHardSphere/VariableHardSphere.C index 19d1ed61d8aa972462cb0d22dc9e446de024be07..3f20bd3bf9243c836062529d2105d4bbd088d5bc 100644 --- a/src/lagrangian/DSMC/submodels/BinaryCollisionModel/VariableHardSphere/VariableHardSphere.C +++ b/src/lagrangian/DSMC/submodels/BinaryCollisionModel/VariableHardSphere/VariableHardSphere.C @@ -121,7 +121,7 @@ void Foam::VariableHardSphere<CloudType>::collide vector& UP = pP.U(); vector& UQ = pQ.U(); - Random& rndGen(cloud.rndGen()); + Random& rndGen = cloud.rndGen(); scalar mP = cloud.constProps(typeIdP).mass(); @@ -131,11 +131,11 @@ void Foam::VariableHardSphere<CloudType>::collide scalar cR = mag(UP - UQ); - scalar cosTheta = 2.0*rndGen.scalar01() - 1.0; + scalar cosTheta = 2.0*rndGen.sample01<scalar>() - 1.0; scalar sinTheta = sqrt(1.0 - cosTheta*cosTheta); - scalar phi = twoPi*rndGen.scalar01(); + scalar phi = twoPi*rndGen.sample01<scalar>(); vector postCollisionRelU = cR diff --git a/src/lagrangian/DSMC/submodels/InflowBoundaryModel/FreeStream/FreeStream.C b/src/lagrangian/DSMC/submodels/InflowBoundaryModel/FreeStream/FreeStream.C index 314bd25977e64bb5b26c34daa95e763e9529850b..4ed53b5cf68a9d901ad8845282c8559e9614527d 100644 --- a/src/lagrangian/DSMC/submodels/InflowBoundaryModel/FreeStream/FreeStream.C +++ b/src/lagrangian/DSMC/submodels/InflowBoundaryModel/FreeStream/FreeStream.C @@ -147,7 +147,7 @@ void Foam::FreeStream<CloudType>::inflow() const scalar deltaT = mesh.time().deltaTValue(); - Random& rndGen(cloud.rndGen()); + Random& rndGen = cloud.rndGen(); scalar sqrtPi = sqrt(pi); @@ -291,7 +291,7 @@ void Foam::FreeStream<CloudType>::inflow() // Add another particle with a probability proportional to the // remainder of taking the integer part of faceAccumulator - if ((faceAccumulator - nI) > rndGen.scalar01()) + if ((faceAccumulator - nI) > rndGen.sample01<scalar>()) { nI++; } @@ -307,7 +307,7 @@ void Foam::FreeStream<CloudType>::inflow() // Choose a triangle to insert on, based on their relative // area - scalar triSelection = rndGen.scalar01(); + scalar triSelection = rndGen.sample01<scalar>(); // Selected triangle label selectedTriI = -1; @@ -371,7 +371,7 @@ void Foam::FreeStream<CloudType>::inflow() do { uNormalThermal = - randomScaling*(2.0*rndGen.scalar01() - 1); + randomScaling*(2.0*rndGen.sample01<scalar>() - 1); uNormal = uNormalThermal + sCosTheta; @@ -385,13 +385,13 @@ void Foam::FreeStream<CloudType>::inflow() *exp(uNormProbCoeffB - sqr(uNormalThermal)); } - } while (P < rndGen.scalar01()); + } while (P < rndGen.sample01<scalar>()); vector U = sqrt(physicoChemical::k.value()*faceTemperature/mass) *( - rndGen.GaussNormal()*t1 - + rndGen.GaussNormal()*t2 + rndGen.GaussNormal<scalar>()*t1 + + rndGen.GaussNormal<scalar>()*t2 ) + (t1 & faceVelocity)*t1 + (t2 & faceVelocity)*t2 diff --git a/src/lagrangian/DSMC/submodels/WallInteractionModel/MaxwellianThermal/MaxwellianThermal.C b/src/lagrangian/DSMC/submodels/WallInteractionModel/MaxwellianThermal/MaxwellianThermal.C index 3bc25401edb2fa2faf9ff4dc538c0bd30b46c284..9f4ff92bde91229f1901cfad635dc1cf9866108d 100644 --- a/src/lagrangian/DSMC/submodels/WallInteractionModel/MaxwellianThermal/MaxwellianThermal.C +++ b/src/lagrangian/DSMC/submodels/WallInteractionModel/MaxwellianThermal/MaxwellianThermal.C @@ -78,19 +78,18 @@ void Foam::MaxwellianThermal<CloudType>::correct CloudType& cloud(this->owner()); - Random& rndGen(cloud.rndGen()); + Random& rndGen = cloud.rndGen(); while (mag(Ut) < SMALL) { // If the incident velocity is parallel to the face normal, no // tangential direction can be chosen. Add a perturbation to the // incoming velocity and recalculate. - U = vector ( - U.x()*(0.8 + 0.2*rndGen.scalar01()), - U.y()*(0.8 + 0.2*rndGen.scalar01()), - U.z()*(0.8 + 0.2*rndGen.scalar01()) + U.x()*(0.8 + 0.2*rndGen.sample01<scalar>()), + U.y()*(0.8 + 0.2*rndGen.sample01<scalar>()), + U.z()*(0.8 + 0.2*rndGen.sample01<scalar>()) ); U_dot_nw = U & nw; @@ -113,9 +112,9 @@ void Foam::MaxwellianThermal<CloudType>::correct U = sqrt(physicoChemical::k.value()*T/mass) *( - rndGen.GaussNormal()*tw1 - + rndGen.GaussNormal()*tw2 - - sqrt(-2.0*log(max(1 - rndGen.scalar01(), VSMALL)))*nw + rndGen.GaussNormal<scalar>()*tw1 + + rndGen.GaussNormal<scalar>()*tw2 + - sqrt(-2.0*log(max(1 - rndGen.sample01<scalar>(), VSMALL)))*nw ); U += cloud.boundaryU().boundaryField()[wppIndex][wppLocalFace]; diff --git a/src/lagrangian/DSMC/submodels/WallInteractionModel/MixedDiffuseSpecular/MixedDiffuseSpecular.C b/src/lagrangian/DSMC/submodels/WallInteractionModel/MixedDiffuseSpecular/MixedDiffuseSpecular.C index 06e5a7079c87b7f6f811e526515de1005b0e6ede..056251c5338a9a20110f47ef91ec05aa2a174757 100644 --- a/src/lagrangian/DSMC/submodels/WallInteractionModel/MixedDiffuseSpecular/MixedDiffuseSpecular.C +++ b/src/lagrangian/DSMC/submodels/WallInteractionModel/MixedDiffuseSpecular/MixedDiffuseSpecular.C @@ -73,9 +73,9 @@ void Foam::MixedDiffuseSpecular<CloudType>::correct CloudType& cloud(this->owner()); - Random& rndGen(cloud.rndGen()); + Random& rndGen = cloud.rndGen(); - if (diffuseFraction_ > rndGen.scalar01()) + if (diffuseFraction_ > rndGen.sample01<scalar>()) { // Diffuse reflection @@ -87,12 +87,11 @@ void Foam::MixedDiffuseSpecular<CloudType>::correct // If the incident velocity is parallel to the face normal, no // tangential direction can be chosen. Add a perturbation to the // incoming velocity and recalculate. - U = vector ( - U.x()*(0.8 + 0.2*rndGen.scalar01()), - U.y()*(0.8 + 0.2*rndGen.scalar01()), - U.z()*(0.8 + 0.2*rndGen.scalar01()) + U.x()*(0.8 + 0.2*rndGen.sample01<scalar>()), + U.y()*(0.8 + 0.2*rndGen.sample01<scalar>()), + U.z()*(0.8 + 0.2*rndGen.sample01<scalar>()) ); U_dot_nw = U & nw; @@ -115,9 +114,9 @@ void Foam::MixedDiffuseSpecular<CloudType>::correct U = sqrt(physicoChemical::k.value()*T/mass) *( - rndGen.GaussNormal()*tw1 - + rndGen.GaussNormal()*tw2 - - sqrt(-2.0*log(max(1 - rndGen.scalar01(), VSMALL)))*nw + rndGen.GaussNormal<scalar>()*tw1 + + rndGen.GaussNormal<scalar>()*tw2 + - sqrt(-2.0*log(max(1 - rndGen.sample01<scalar>(), VSMALL)))*nw ); U += cloud.boundaryU().boundaryField()[wppIndex][wppLocalFace]; diff --git a/src/lagrangian/distributionModels/RosinRammler/RosinRammler.C b/src/lagrangian/distributionModels/RosinRammler/RosinRammler.C index 2e5a04561975c6b33e0cd64c5bd0d8c4ea030098..0ed45f62a2c27e738f066c74e62fac6271fbca18 100644 --- a/src/lagrangian/distributionModels/RosinRammler/RosinRammler.C +++ b/src/lagrangian/distributionModels/RosinRammler/RosinRammler.C @@ -42,7 +42,7 @@ namespace distributionModels Foam::distributionModels::RosinRammler::RosinRammler ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ) : distributionModel(typeName, dict, rndGen), diff --git a/src/lagrangian/distributionModels/RosinRammler/RosinRammler.H b/src/lagrangian/distributionModels/RosinRammler/RosinRammler.H index 448165a7037f5b2f204a81af1f20d0b048a9ea8a..f7f7183d388a91ca500adba0fa67216ab68eefa3 100644 --- a/src/lagrangian/distributionModels/RosinRammler/RosinRammler.H +++ b/src/lagrangian/distributionModels/RosinRammler/RosinRammler.H @@ -82,7 +82,7 @@ public: // Constructors //- Construct from components - RosinRammler(const dictionary& dict, cachedRandom& rndGen); + RosinRammler(const dictionary& dict, Random& rndGen); //- Construct copy RosinRammler(const RosinRammler& p); diff --git a/src/lagrangian/distributionModels/binned/binned.C b/src/lagrangian/distributionModels/binned/binned.C index b9ed2813f7f2cc88edea6bde7ddb9549d1602a85..57530fa649c794e4552ac5b06e7f04e2bba4ab7b 100644 --- a/src/lagrangian/distributionModels/binned/binned.C +++ b/src/lagrangian/distributionModels/binned/binned.C @@ -78,7 +78,7 @@ void Foam::distributionModels::binned::initialise() Foam::distributionModels::binned::binned ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ) : distributionModel(typeName, dict, rndGen), @@ -102,7 +102,7 @@ Foam::distributionModels::binned::binned ( const UList<scalar>& sampleData, const scalar binWidth, - cachedRandom& rndGen + Random& rndGen ) : distributionModel(typeName, dictionary::null, rndGen), diff --git a/src/lagrangian/distributionModels/binned/binned.H b/src/lagrangian/distributionModels/binned/binned.H index a579a4a40b5b72b2809e433a603247ca9112ff0b..4e719a1ef01aaeb39501d5118878c833e432eea3 100644 --- a/src/lagrangian/distributionModels/binned/binned.H +++ b/src/lagrangian/distributionModels/binned/binned.H @@ -96,14 +96,14 @@ public: // Constructors //- Construct from dictionary - binned(const dictionary& dict, cachedRandom& rndGen); + binned(const dictionary& dict, Random& rndGen); //- Construct from components binned ( const UList<scalar>& sampleData, const scalar binWidth, - cachedRandom& rndGen + Random& rndGen ); //- Construct copy diff --git a/src/lagrangian/distributionModels/distributionModel/distributionModel.C b/src/lagrangian/distributionModels/distributionModel/distributionModel.C index 20a5cf82a4aef589f2318d64c309b52ab6c12873..6343ea37574ca56cbb0c417c19f10208767e5c96 100644 --- a/src/lagrangian/distributionModels/distributionModel/distributionModel.C +++ b/src/lagrangian/distributionModels/distributionModel/distributionModel.C @@ -66,7 +66,7 @@ Foam::distributionModels::distributionModel::distributionModel ( const word& name, const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ) : distributionModelDict_(dict), diff --git a/src/lagrangian/distributionModels/distributionModel/distributionModel.H b/src/lagrangian/distributionModels/distributionModel/distributionModel.H index 5e712e10eca22ea19d97b72b6369ef3641496ca9..0be1489929be966b7e3ab435cd6f517926df86ab 100644 --- a/src/lagrangian/distributionModels/distributionModel/distributionModel.H +++ b/src/lagrangian/distributionModels/distributionModel/distributionModel.H @@ -55,7 +55,7 @@ SourceFiles #include "IOdictionary.H" #include "autoPtr.H" -#include "cachedRandom.H" +#include "Random.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -79,7 +79,7 @@ protected: const dictionary distributionModelDict_; //- Reference to the random number generator - cachedRandom& rndGen_; + Random& rndGen_; // Protected Member Functions @@ -102,7 +102,7 @@ public: dictionary, ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ), (dict, rndGen) ); @@ -115,7 +115,7 @@ public: ( const word& name, const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ); //- Construct copy @@ -129,7 +129,7 @@ public: static autoPtr<distributionModel> New ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ); diff --git a/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C b/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C index 3e3f4ba2496c097a593d6de0b6385f34d8eda8ce..e458085a438b7e75b5995662c21b9036793dafc4 100644 --- a/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C +++ b/src/lagrangian/distributionModels/distributionModel/distributionModelNew.C @@ -31,7 +31,7 @@ Foam::autoPtr<Foam::distributionModels::distributionModel> Foam::distributionModels::distributionModel::New ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ) { const word modelType(dict.lookup("type")); diff --git a/src/lagrangian/distributionModels/exponential/exponential.C b/src/lagrangian/distributionModels/exponential/exponential.C index 013e5c39bb73678c948247343f2ed36576c5de5f..3253151351183e2ca743ac14ea68932e1118a628 100644 --- a/src/lagrangian/distributionModels/exponential/exponential.C +++ b/src/lagrangian/distributionModels/exponential/exponential.C @@ -42,7 +42,7 @@ namespace distributionModels Foam::distributionModels::exponential::exponential ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ) : distributionModel(typeName, dict, rndGen), diff --git a/src/lagrangian/distributionModels/exponential/exponential.H b/src/lagrangian/distributionModels/exponential/exponential.H index 76f62acbb87c061d86fa9491ab5ab421f4732e1c..a68bc4f804fe7d7a6d821fec1032642e0762bfe4 100644 --- a/src/lagrangian/distributionModels/exponential/exponential.H +++ b/src/lagrangian/distributionModels/exponential/exponential.H @@ -75,7 +75,7 @@ public: // Constructors //- Construct from components - exponential(const dictionary& dict, cachedRandom& rndGen); + exponential(const dictionary& dict, Random& rndGen); //- Construct copy exponential(const exponential& p); diff --git a/src/lagrangian/distributionModels/fixedValue/fixedValue.C b/src/lagrangian/distributionModels/fixedValue/fixedValue.C index f8f0c234a9f555644214e0c05d4cbacbc7738e7b..0275a404ad7b31da7342e710e4f90fba0eca8ab9 100644 --- a/src/lagrangian/distributionModels/fixedValue/fixedValue.C +++ b/src/lagrangian/distributionModels/fixedValue/fixedValue.C @@ -42,7 +42,7 @@ namespace distributionModels Foam::distributionModels::fixedValue::fixedValue ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ) : distributionModel(typeName, dict, rndGen), diff --git a/src/lagrangian/distributionModels/fixedValue/fixedValue.H b/src/lagrangian/distributionModels/fixedValue/fixedValue.H index aa089730310226cb607c224eaaee6d08e9905c1f..875d172e42996ddda74777f83c0762d8c1e08590 100644 --- a/src/lagrangian/distributionModels/fixedValue/fixedValue.H +++ b/src/lagrangian/distributionModels/fixedValue/fixedValue.H @@ -66,7 +66,7 @@ public: // Constructors //- Construct from components - fixedValue(const dictionary& dict, cachedRandom& rndGen); + fixedValue(const dictionary& dict, Random& rndGen); //- Construct copy fixedValue(const fixedValue& p); diff --git a/src/lagrangian/distributionModels/general/general.C b/src/lagrangian/distributionModels/general/general.C index 87339642bf309e78dccdf806e06b4f820acedd26..9f96ff7b808426d8c9d78059e2e3cfba0944dd57 100644 --- a/src/lagrangian/distributionModels/general/general.C +++ b/src/lagrangian/distributionModels/general/general.C @@ -78,7 +78,7 @@ void Foam::distributionModels::general::initialise() Foam::distributionModels::general::general ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ) : distributionModel(typeName, dict, rndGen), @@ -96,7 +96,7 @@ Foam::distributionModels::general::general ( const UList<scalar>& sampleData, const scalar binWidth, - cachedRandom& rndGen + Random& rndGen ) : distributionModel(typeName, dictionary::null, rndGen), diff --git a/src/lagrangian/distributionModels/general/general.H b/src/lagrangian/distributionModels/general/general.H index db8a18194a411783329590075d82aea4eac8a105..689cfa6cc7a8bdcb5243fccdb482b132415f62b5 100644 --- a/src/lagrangian/distributionModels/general/general.H +++ b/src/lagrangian/distributionModels/general/general.H @@ -96,14 +96,14 @@ public: // Constructors //- Construct from components - general(const dictionary& dict, cachedRandom& rndGen); + general(const dictionary& dict, Random& rndGen); //- Construct from components general ( const UList<scalar>& sampleData, const scalar binWidth, - cachedRandom& rndGen + Random& rndGen ); //- Construct copy diff --git a/src/lagrangian/distributionModels/massRosinRammler/massRosinRammler.C b/src/lagrangian/distributionModels/massRosinRammler/massRosinRammler.C index 015343b711794299f303dc0fbadf078201f978d9..23339eca0f037faef82bada89d9f73848cf2d69d 100644 --- a/src/lagrangian/distributionModels/massRosinRammler/massRosinRammler.C +++ b/src/lagrangian/distributionModels/massRosinRammler/massRosinRammler.C @@ -42,7 +42,7 @@ namespace distributionModels Foam::distributionModels::massRosinRammler::massRosinRammler ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ) : distributionModel(typeName, dict, rndGen), diff --git a/src/lagrangian/distributionModels/massRosinRammler/massRosinRammler.H b/src/lagrangian/distributionModels/massRosinRammler/massRosinRammler.H index f1745326b676b439cdd8a321b313463a7c163109..1f180f5bd63f1ec7f002011189f0d5d1653a434a 100644 --- a/src/lagrangian/distributionModels/massRosinRammler/massRosinRammler.H +++ b/src/lagrangian/distributionModels/massRosinRammler/massRosinRammler.H @@ -93,7 +93,7 @@ public: // Constructors //- Construct from components - massRosinRammler(const dictionary& dict, cachedRandom& rndGen); + massRosinRammler(const dictionary& dict, Random& rndGen); //- Construct copy massRosinRammler(const massRosinRammler& p); diff --git a/src/lagrangian/distributionModels/multiNormal/multiNormal.C b/src/lagrangian/distributionModels/multiNormal/multiNormal.C index 1cbb5a585639042b95b93f424378f71f233e4825..8779281fc06bd9aab30ca26e8f0880e1983f127d 100644 --- a/src/lagrangian/distributionModels/multiNormal/multiNormal.C +++ b/src/lagrangian/distributionModels/multiNormal/multiNormal.C @@ -42,7 +42,7 @@ namespace distributionModels Foam::distributionModels::multiNormal::multiNormal ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ) : distributionModel(typeName, dict, rndGen), diff --git a/src/lagrangian/distributionModels/multiNormal/multiNormal.H b/src/lagrangian/distributionModels/multiNormal/multiNormal.H index 03bb0e270d9e38fde46f802e81e4c635de4d05ff..a58a96bba1d094af997c2bb6cb1a316fb1b5a8fe 100644 --- a/src/lagrangian/distributionModels/multiNormal/multiNormal.H +++ b/src/lagrangian/distributionModels/multiNormal/multiNormal.H @@ -85,7 +85,7 @@ public: // Constructors //- Construct from components - multiNormal(const dictionary& dict, cachedRandom& rndGen); + multiNormal(const dictionary& dict, Random& rndGen); //- Construct copy multiNormal(const multiNormal& p); diff --git a/src/lagrangian/distributionModels/normal/normal.C b/src/lagrangian/distributionModels/normal/normal.C index 1fc16376a901492a01b9df75d8a7b8ffdef6e2ad..a6ebd9d594eababb602b3e0522212c815bb593a4 100644 --- a/src/lagrangian/distributionModels/normal/normal.C +++ b/src/lagrangian/distributionModels/normal/normal.C @@ -43,7 +43,7 @@ namespace distributionModels Foam::distributionModels::normal::normal ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ) : distributionModel(typeName, dict, rndGen), diff --git a/src/lagrangian/distributionModels/normal/normal.H b/src/lagrangian/distributionModels/normal/normal.H index d78ec5a86af1f67c84cb7bd72222e8d67918740a..77d11e426a1a09258d7b4f74e2550298b65c4178 100644 --- a/src/lagrangian/distributionModels/normal/normal.H +++ b/src/lagrangian/distributionModels/normal/normal.H @@ -85,7 +85,7 @@ public: // Constructors //- Construct from components - normal(const dictionary& dict, cachedRandom& rndGen); + normal(const dictionary& dict, Random& rndGen); //- Construct copy normal(const normal& p); diff --git a/src/lagrangian/distributionModels/uniform/uniform.C b/src/lagrangian/distributionModels/uniform/uniform.C index 72a0d2fc3ddb7cd339c3e703f462b28a8292dcde..ccf60544b5854146ed68e0039411ada43c57dc2b 100644 --- a/src/lagrangian/distributionModels/uniform/uniform.C +++ b/src/lagrangian/distributionModels/uniform/uniform.C @@ -42,7 +42,7 @@ namespace distributionModels Foam::distributionModels::uniform::uniform ( const dictionary& dict, - cachedRandom& rndGen + Random& rndGen ) : distributionModel(typeName, dict, rndGen), diff --git a/src/lagrangian/distributionModels/uniform/uniform.H b/src/lagrangian/distributionModels/uniform/uniform.H index 3efaee8219de849475331933f3b61a382f2d1178..a47bb8495f878b81d2c6f504757a0e81832d2795 100644 --- a/src/lagrangian/distributionModels/uniform/uniform.H +++ b/src/lagrangian/distributionModels/uniform/uniform.H @@ -70,7 +70,7 @@ public: // Constructors //- Construct from components - uniform(const dictionary& dict, cachedRandom& rndGen); + uniform(const dictionary& dict, Random& rndGen); //- Construct copy uniform(const uniform& p); diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C index 31054caa50e0327b223ee798a9b8cac853b620f8..0dfb75094d7652b2dc07710b8b2896cfb7af4f2b 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C @@ -316,7 +316,7 @@ Foam::KinematicCloud<CloudType>::KinematicCloud ( particleProperties_.subOrEmptyDict("subModels", solution_.active()) ), - rndGen_(), + rndGen_(Pstream::myProcNo()), cellOccupancyPtr_(), cellLengthScale_(cbrt(mesh_.V())), rho_(rho), diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H index d0c8b57603a7958dedbe54cafbb3650ee0c91002..15abbe9ac992ed93fb6f9ca15d179a0c86649eae 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H @@ -59,7 +59,7 @@ SourceFiles #include "kinematicCloud.H" #include "IOdictionary.H" #include "autoPtr.H" -#include "cachedRandom.H" +#include "Random.H" #include "fvMesh.H" #include "volFields.H" #include "fvMatrices.H" @@ -163,7 +163,7 @@ protected: const dictionary subModelProperties_; //- Random number generator - used by some injection routines - mutable cachedRandom rndGen_; + mutable Random rndGen_; //- Cell occupancy information for each parcel, (demand driven) autoPtr<List<DynamicList<parcelType*>>> cellOccupancyPtr_; @@ -366,7 +366,7 @@ public: // Cloud data //- Return reference to the random object - inline cachedRandom& rndGen() const; + inline Random& rndGen() const; //- Return the cell occupancy information for each // parcel, non-const access, the caller is diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H index ce92455169dafe3fe72c7bb3abd4b505d0de9f6c..f5ac343730d0ce00b0aa08396af6fc3fd70ed33f 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H @@ -356,7 +356,7 @@ inline Foam::scalar Foam::KinematicCloud<CloudType>::Dmax() const template<class CloudType> -inline Foam::cachedRandom& Foam::KinematicCloud<CloudType>::rndGen() const +inline Foam::Random& Foam::KinematicCloud<CloudType>::rndGen() const { return rndGen_; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C index c559e3f5dfb62136f59c0dc3c5045e1373491eed..5cc2c3a76703f684e8a72019bec35439a1833bbe 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C @@ -171,16 +171,16 @@ void Foam::ParticleCollector<CloudType>::initConcentricCircles() } else { - // set 4 quadrants for single sector cases + // Set 4 quadrants for single sector cases nS = 4; vector tangent = Zero; scalar magTangent = 0.0; - Random rnd(1234); + Random& rnd = this->owner().rndGen(); while (magTangent < SMALL) { - vector v = rnd.vector01(); + vector v = rnd.sample01<vector>(); tangent = v - (v & normal_[0])*normal_[0]; magTangent = mag(tangent); diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C index ffa8163dffd7b6d63648b8f82cd84d05d36beccc..06ed2d542c4e44545b8be7bfbb87f7dfed7f4895 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/CellZoneInjection/CellZoneInjection.C @@ -40,7 +40,7 @@ void Foam::CellZoneInjection<CloudType>::setPositions const fvMesh& mesh = this->owner().mesh(); const scalarField& V = mesh.V(); const label nCells = cellZoneCells.size(); - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); DynamicList<vector> positions(nCells); // initial size only DynamicList<label> injectorCells(nCells); // initial size only diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C index 9406a3d9dca749141eb3d040fd256e057bf81e5e..11300c42734d04bd4a3135b4666c3898426746ce 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeInjection/ConeInjection.C @@ -110,7 +110,7 @@ Foam::ConeInjection<CloudType>::ConeInjection vector tangent = Zero; scalar magTangent = 0.0; - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); while (magTangent < SMALL) { vector v = rnd.sample01<vector>(); @@ -260,7 +260,7 @@ void Foam::ConeInjection<CloudType>::setProperties typename CloudType::parcelType& parcel ) { - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); // Set particle velocity const label i = parcelI % positionAxis_.size(); diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C index 208bc3511bb179ec927efae9fb282e4030587ca8..b8bcd7464ed7858e73efe58b5b71be478bff9709 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/ConeNozzleInjection/ConeNozzleInjection.C @@ -175,7 +175,7 @@ Foam::ConeNozzleInjection<CloudType>::ConeNozzleInjection setFlowType(); - cachedRandom& rndGen = this->owner().rndGen(); + Random& rndGen = this->owner().rndGen(); // Normalise direction vector direction_ /= mag(direction_); @@ -321,7 +321,7 @@ void Foam::ConeNozzleInjection<CloudType>::setPositionAndCell label& tetPti ) { - cachedRandom& rndGen = this->owner().rndGen(); + Random& rndGen = this->owner().rndGen(); scalar beta = mathematical::twoPi*rndGen.sample01<scalar>(); normal_ = tanVec1_*cos(beta) + tanVec2_*sin(beta); @@ -373,7 +373,7 @@ void Foam::ConeNozzleInjection<CloudType>::setProperties typename CloudType::parcelType& parcel ) { - cachedRandom& rndGen = this->owner().rndGen(); + Random& rndGen = this->owner().rndGen(); // Set particle velocity const scalar deg2Rad = mathematical::pi/180.0; diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C index d3700001f8d894c08d9d3ef56fef058d4fb49af2..41cf67a56ddc8422af67bc105a21ea3995962819 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InflationInjection/InflationInjection.C @@ -205,7 +205,7 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject newParticles_.clear(); - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); // Diameter factor, when splitting particles into 4, this is the // factor that modifies the diameter. diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C index 3bef483fc3f29922a9bc10a15a3e594ac3ed1d38..2ae5e8031b78afcfb0050a1ab0a8cf199dcd2f6e 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C @@ -148,7 +148,7 @@ void Foam::InjectedParticleDistributionInjection<CloudType>::initialise() scalar minTime = GREAT; // Populate injector properties, filtering out invalid entries - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); label injectori = 0; forAll(injDiameter, i) { @@ -448,7 +448,7 @@ void Foam::InjectedParticleDistributionInjection<CloudType>::setPositionAndCell label& tetPtI ) { - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); currentInjectori_ = rnd.globalPosition<label>(0, position_.size() - 1); currentSamplei_ = rnd.globalPosition<label>(0, resampleSize_ - 1); diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C index d081be437ffdc24636306791221f333d7b813c43..739599c153ad9e52c2b862360499028bbfd1628d 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C @@ -182,7 +182,7 @@ void Foam::KinematicLookupTableInjection<CloudType>::setPositionAndCell label injectorI = 0; if (randomise_) { - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); injectorI = rnd.position<label>(0, injectorCells_.size() - 1); } else diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C index c1fd0f678e0cb64ecc6c7333ebde0fe4ba3619f0..1244c85dcb58c8b029b1a5374a655d6551f73971 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchFlowRateInjection/PatchFlowRateInjection.C @@ -162,7 +162,7 @@ Foam::label Foam::PatchFlowRateInjection<CloudType>::parcelsToInject scalar nParcels = parcelConcentration_*c*flowRate()*dt; - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); label nParcelsToInject = floor(nParcels); diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C index 13227e34ef4875770e6848976951da7a7fd3b2c9..c0a898c1565d5fa234fe7c8e18778493b351b124 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/PatchInjection.C @@ -121,7 +121,7 @@ Foam::label Foam::PatchInjection<CloudType>::parcelsToInject if ((time0 >= 0.0) && (time0 < duration_)) { scalar nParcels = (time1 - time0)*parcelsPerSecond_; - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); scalar rndPos = rnd.globalPosition(scalar(0), scalar(1)); label nParcelsToInject = floor(nParcels); diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.C index 522725fdeb5aca893cae0d39d4910aa94611c185..713c994902e582e1ac984d9fdb3e7689c7015e62 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.C @@ -26,7 +26,7 @@ License #include "patchInjectionBase.H" #include "polyMesh.H" #include "SubField.H" -#include "cachedRandom.H" +#include "Random.H" #include "triPointRef.H" #include "volFields.H" #include "polyMeshTetDecomposition.H" @@ -151,7 +151,7 @@ void Foam::patchInjectionBase::updateMesh(const polyMesh& mesh) void Foam::patchInjectionBase::setPositionAndCell ( const fvMesh& mesh, - cachedRandom& rnd, + Random& rnd, vector& position, label& cellOwner, label& tetFacei, diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.H index 2124b3acfc877b1e220a61f4d7d41312639b8a00..8b1d837dee1993eb655a1d5adfdeff8bfb440e99 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/PatchInjection/patchInjectionBase.H @@ -54,7 +54,7 @@ namespace Foam // Forward class declarations class polyMesh; class fvMesh; -class cachedRandom; +class Random; /*---------------------------------------------------------------------------*\ Class patchInjectionBase Declaration @@ -118,7 +118,7 @@ public: virtual void setPositionAndCell ( const fvMesh& mesh, - cachedRandom& rnd, + Random& rnd, vector& position, label& cellOwner, label& tetFacei, diff --git a/src/lagrangian/intermediate/submodels/MPPIC/IsotropyModels/Stochastic/Stochastic.C b/src/lagrangian/intermediate/submodels/MPPIC/IsotropyModels/Stochastic/Stochastic.C index 6aa5354455416db0f41e045a98c4bda4aa4db0f9..068568a1b53e4fd090d0b94c137dc73e6522b977 100644 --- a/src/lagrangian/intermediate/submodels/MPPIC/IsotropyModels/Stochastic/Stochastic.C +++ b/src/lagrangian/intermediate/submodels/MPPIC/IsotropyModels/Stochastic/Stochastic.C @@ -71,7 +71,7 @@ Foam::scalar Foam::IsotropyModels::Stochastic<CloudType>::sampleGauss() } else { - cachedRandom& rndGen = this->owner().rndGen(); + Random& rndGen = this->owner().rndGen(); scalar f, m, x, y; @@ -98,7 +98,7 @@ void Foam::IsotropyModels::Stochastic<CloudType>::calculate() { const fvMesh& mesh = this->owner().mesh(); const scalar deltaT(this->owner().db().time().deltaTValue()); - cachedRandom& rndGen = this->owner().rndGen(); + Random& rndGen = this->owner().rndGen(); const scalar oneBySqrtThree = sqrt(1.0/3.0); diff --git a/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/ReactingLookupTableInjection.C b/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/ReactingLookupTableInjection.C index 40290f9a851e5dfaec3799e65244a64e0fd56ace..7b0982e6a6caa024aae7b44a653002d301848c51 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/ReactingLookupTableInjection.C +++ b/src/lagrangian/intermediate/submodels/Reacting/InjectionModel/ReactingLookupTableInjection/ReactingLookupTableInjection.C @@ -181,7 +181,7 @@ void Foam::ReactingLookupTableInjection<CloudType>::setPositionAndCell label injectorI = 0; if (randomise_) { - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); injectorI = rnd.position<label>(0, injectorCells_.size() - 1); } else diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/ReactingMultiphaseLookupTableInjection.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/ReactingMultiphaseLookupTableInjection.C index 7361402d21bf4d4afef30f4e9a4cc4f1b03aa952..79423e612e8b6620e7a15a7818e0450c3619ca5e 100644 --- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/ReactingMultiphaseLookupTableInjection.C +++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/InjectionModel/ReactingMultiphaseLookupTableInjection/ReactingMultiphaseLookupTableInjection.C @@ -187,7 +187,7 @@ void Foam::ReactingMultiphaseLookupTableInjection<CloudType>::setPositionAndCell label injectorI = 0; if (randomise_) { - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); injectorI = rnd.position<label>(0, injectorCells_.size() - 1); } else diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/ThermoLookupTableInjection.C b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/ThermoLookupTableInjection.C index b93166d4d4ad57a6695ccc5fdb6242dfb69a770a..b746e3fd3f21b54e0894c4c345d99444e007525e 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/ThermoLookupTableInjection.C +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/InjectionModel/ThermoLookupTableInjection/ThermoLookupTableInjection.C @@ -182,7 +182,7 @@ void Foam::ThermoLookupTableInjection<CloudType>::setPositionAndCell label injectorI = 0; if (randomise_) { - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); injectorI = rnd.position<label>(0, injectorCells_.size() - 1); } else diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H index 3faf3102e1c7ce52666c7b4e9538655a93142e38..0de4186d093f158ece63d828c66329f52d40b4ff 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H @@ -101,7 +101,7 @@ protected: typedef typename CloudType::parcelType parcelType; //- Reference to the cloud random number generator - cachedRandom& rndGen_; + Random& rndGen_; //- Reference to the cloud thermo package const SLGThermo& thermo_; diff --git a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C b/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C index 761dfc8d945eccd03a93e2dd091566f407a5a50d..7db8ded1222cc6e39e64b249fd731d75d5409440 100644 --- a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C +++ b/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C @@ -1041,11 +1041,11 @@ void Foam::moleculeCloud::createMolecule { pi = equipartitionAngularMomentum(temperature, cP); - scalar phi(rndGen_.scalar01()*twoPi); + scalar phi(rndGen_.sample01<scalar>()*twoPi); - scalar theta(rndGen_.scalar01()*twoPi); + scalar theta(rndGen_.sample01<scalar>()*twoPi); - scalar psi(rndGen_.scalar01()*twoPi); + scalar psi(rndGen_.sample01<scalar>()*twoPi); Q = tensor ( diff --git a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloudI.H b/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloudI.H index 63f89a69bd12d1ddb3e21d948edb41a876a3b8b2..ebc738cab268a028f04853d928452e36f49b7a9d 100644 --- a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloudI.H +++ b/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloudI.H @@ -301,12 +301,9 @@ inline Foam::vector Foam::moleculeCloud::equipartitionLinearVelocity scalar mass ) { - return sqrt(physicoChemical::k.value()*temperature/mass)*vector - ( - rndGen_.GaussNormal(), - rndGen_.GaussNormal(), - rndGen_.GaussNormal() - ); + return + sqrt(physicoChemical::k.value()*temperature/mass) + *rndGen_.GaussNormal<vector>(); } @@ -323,17 +320,17 @@ inline Foam::vector Foam::moleculeCloud::equipartitionAngularMomentum return sqrtKbT*vector ( 0.0, - sqrt(cP.momentOfInertia().yy())*rndGen_.GaussNormal(), - sqrt(cP.momentOfInertia().zz())*rndGen_.GaussNormal() + sqrt(cP.momentOfInertia().yy())*rndGen_.GaussNormal<scalar>(), + sqrt(cP.momentOfInertia().zz())*rndGen_.GaussNormal<scalar>() ); } else { return sqrtKbT*vector ( - sqrt(cP.momentOfInertia().xx())*rndGen_.GaussNormal(), - sqrt(cP.momentOfInertia().yy())*rndGen_.GaussNormal(), - sqrt(cP.momentOfInertia().zz())*rndGen_.GaussNormal() + sqrt(cP.momentOfInertia().xx())*rndGen_.GaussNormal<scalar>(), + sqrt(cP.momentOfInertia().yy())*rndGen_.GaussNormal<scalar>(), + sqrt(cP.momentOfInertia().zz())*rndGen_.GaussNormal<scalar>() ); } } diff --git a/src/lagrangian/spray/submodels/AtomizationModel/AtomizationModel/AtomizationModel.H b/src/lagrangian/spray/submodels/AtomizationModel/AtomizationModel/AtomizationModel.H index 216990ea91c7aea55cfe14c194d221a288bb84ed..1630aafdb2c8126314c5af93714825764dc02471 100644 --- a/src/lagrangian/spray/submodels/AtomizationModel/AtomizationModel/AtomizationModel.H +++ b/src/lagrangian/spray/submodels/AtomizationModel/AtomizationModel/AtomizationModel.H @@ -136,7 +136,7 @@ public: const vector& injectionPos, const scalar pAmbient, const scalar chi, - cachedRandom& rndGen + Random& rndGen ) const = 0; }; diff --git a/src/lagrangian/spray/submodels/AtomizationModel/BlobsSheetAtomization/BlobsSheetAtomization.C b/src/lagrangian/spray/submodels/AtomizationModel/BlobsSheetAtomization/BlobsSheetAtomization.C index 63b5d4ff5c6c770fa86764106a5ea7eaa328a1fd..63670b08455b21f88c16cb408a62b1b6f957fef9 100644 --- a/src/lagrangian/spray/submodels/AtomizationModel/BlobsSheetAtomization/BlobsSheetAtomization.C +++ b/src/lagrangian/spray/submodels/AtomizationModel/BlobsSheetAtomization/BlobsSheetAtomization.C @@ -92,7 +92,7 @@ void Foam::BlobsSheetAtomization<CloudType>::update const vector& injectionPos, const scalar pAmbient, const scalar chi, - cachedRandom& rndGen + Random& rndGen ) const { scalar lBU = diff --git a/src/lagrangian/spray/submodels/AtomizationModel/BlobsSheetAtomization/BlobsSheetAtomization.H b/src/lagrangian/spray/submodels/AtomizationModel/BlobsSheetAtomization/BlobsSheetAtomization.H index 56175bf095e29d2e2a93fa3d7487af9ec6b21470..e95e930c5a753d0c5f3c01224c812421dff0c988 100644 --- a/src/lagrangian/spray/submodels/AtomizationModel/BlobsSheetAtomization/BlobsSheetAtomization.H +++ b/src/lagrangian/spray/submodels/AtomizationModel/BlobsSheetAtomization/BlobsSheetAtomization.H @@ -122,7 +122,7 @@ public: const vector& injectionPos, const scalar pAmbient, const scalar chi, - cachedRandom& rndGen + Random& rndGen ) const; }; diff --git a/src/lagrangian/spray/submodels/AtomizationModel/LISAAtomization/LISAAtomization.C b/src/lagrangian/spray/submodels/AtomizationModel/LISAAtomization/LISAAtomization.C index c21fdfd583b1b967d91adceb784975c7c15d2fdb..2cc52829dab8c7f0205ddac875405f19a1ca548f 100644 --- a/src/lagrangian/spray/submodels/AtomizationModel/LISAAtomization/LISAAtomization.C +++ b/src/lagrangian/spray/submodels/AtomizationModel/LISAAtomization/LISAAtomization.C @@ -118,7 +118,7 @@ void Foam::LISAAtomization<CloudType>::update const vector& injectionPos, const scalar pAmbient, const scalar chi, - cachedRandom& rndGen + Random& rndGen ) const { if (volFlowRate < SMALL) diff --git a/src/lagrangian/spray/submodels/AtomizationModel/LISAAtomization/LISAAtomization.H b/src/lagrangian/spray/submodels/AtomizationModel/LISAAtomization/LISAAtomization.H index 1c8ed5c897ed4b90b64c0f750745a6c192fded8d..2a0f1a5ef033742230117fd98127345aa0edc828 100644 --- a/src/lagrangian/spray/submodels/AtomizationModel/LISAAtomization/LISAAtomization.H +++ b/src/lagrangian/spray/submodels/AtomizationModel/LISAAtomization/LISAAtomization.H @@ -142,7 +142,7 @@ public: const vector& injectionPos, const scalar pAmbient, const scalar chi, - cachedRandom& rndGen + Random& rndGen ) const; }; diff --git a/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.C b/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.C index 038e90c5b46239d9eee0e95555da10466035a5a4..ed5fed5ec6c457bb9e3bdf8465d1b1f8bfbd4294 100644 --- a/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.C +++ b/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.C @@ -95,7 +95,7 @@ void Foam::NoAtomization<CloudType>::update const vector& injectionPos, const scalar pAmbient, const scalar chi, - cachedRandom& rndGen + Random& rndGen ) const {} diff --git a/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.H b/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.H index 975f511810e77ef2d453cdefdd6228c2a1672a58..24133879f34b2429ebb00a9c68fab0ec88927a5d 100644 --- a/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.H +++ b/src/lagrangian/spray/submodels/AtomizationModel/NoAtomization/NoAtomization.H @@ -105,7 +105,7 @@ public: const vector& injectionPos, const scalar pAmbient, const scalar chi, - cachedRandom& rndGen + Random& rndGen ) const; }; diff --git a/src/lagrangian/spray/submodels/BreakupModel/SHF/SHF.C b/src/lagrangian/spray/submodels/BreakupModel/SHF/SHF.C index 41e3ac307a724c61d6217010c2cfea50a1757d14..642df18a86198771a0fc38941ef0e323a471f144 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/SHF/SHF.C +++ b/src/lagrangian/spray/submodels/BreakupModel/SHF/SHF.C @@ -138,7 +138,7 @@ bool Foam::SHF<CloudType>::update scalar& massChild ) { - cachedRandom& rndGen = this->owner().rndGen(); + Random& rndGen = this->owner().rndGen(); bool addChild = false; diff --git a/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.C b/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.C index 4f3607b6e96c520c749d4204b00c6f8880593083..5817c8c441e8da48cfc9ac923fdd7b92d864d643 100644 --- a/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.C +++ b/src/lagrangian/spray/submodels/BreakupModel/TAB/TAB.C @@ -110,7 +110,7 @@ bool Foam::TAB<CloudType>::update scalar& massChild ) { - cachedRandom& rndGen = this->owner().rndGen(); + Random& rndGen = this->owner().rndGen(); scalar r = 0.5*d; scalar r2 = r*r; diff --git a/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/GradientDispersionRAS/GradientDispersionRAS.C b/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/GradientDispersionRAS/GradientDispersionRAS.C index ef93f6a3cfc1d93afd2af76d9019e0c30b0074ff..cdba049f9e35939ef7e5a60496c30311593ec137 100644 --- a/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/GradientDispersionRAS/GradientDispersionRAS.C +++ b/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/GradientDispersionRAS/GradientDispersionRAS.C @@ -100,7 +100,7 @@ Foam::vector Foam::GradientDispersionRAS<CloudType>::update scalar& tTurb ) { - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); const scalar cps = 0.16432; diff --git a/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/StochasticDispersionRAS/StochasticDispersionRAS.C b/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/StochasticDispersionRAS/StochasticDispersionRAS.C index e78fcf9ed9d8e580c9945c5035da2a6616ecc9a4..56ee5d50544b52495934d025313474f22148afb5 100644 --- a/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/StochasticDispersionRAS/StochasticDispersionRAS.C +++ b/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/StochasticDispersionRAS/StochasticDispersionRAS.C @@ -71,7 +71,7 @@ Foam::vector Foam::StochasticDispersionRAS<CloudType>::update scalar& tTurb ) { - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); const scalar cps = 0.16432; diff --git a/src/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.C b/src/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.C index a2228fa5e35aad4398b803c741a78e8d672dd26c..86a24ff4c1af57351a66696e408d1673b89471bd 100644 --- a/src/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.C +++ b/src/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.C @@ -206,7 +206,7 @@ Foam::forceSuSp Foam::BrownianMotionForce<CloudType>::calcCoupled // To generate a spherical distribution: - cachedRandom& rnd = this->owner().rndGen(); + Random& rnd = this->owner().rndGen(); const scalar theta = rnd.sample01<scalar>()*twoPi; const scalar u = 2*rnd.sample01<scalar>() - 1; diff --git a/src/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.H b/src/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.H index 0c7a5e89f7cbaf176227d228c78f181e051c15e5..2990a0f253ec84fbd0d608f916fb2abb61f64622 100644 --- a/src/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.H +++ b/src/lagrangian/turbulence/submodels/Thermodynamic/ParticleForces/BrownianMotion/BrownianMotionForce.H @@ -46,7 +46,7 @@ SourceFiles #define BrownianMotionForce_H #include "ParticleForce.H" -#include "cachedRandom.H" +#include "Random.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -65,7 +65,7 @@ class BrownianMotionForce // Private data //- Reference to the cloud random number generator - cachedRandom& rndGen_; + Random& rndGen_; //- Molecular free path length [m] const scalar lambda_; diff --git a/src/meshTools/triSurface/booleanOps/surfaceIntersection/edgeIntersections.C b/src/meshTools/triSurface/booleanOps/surfaceIntersection/edgeIntersections.C index 559bcfc6e645849eeabebe43e4b12d3ee43e9602..c5cd2adf560d85efe16fe63a076dd03c3b924711 100644 --- a/src/meshTools/triSurface/booleanOps/surfaceIntersection/edgeIntersections.C +++ b/src/meshTools/triSurface/booleanOps/surfaceIntersection/edgeIntersections.C @@ -260,7 +260,7 @@ bool Foam::edgeIntersections::inlinePerturb if (perturbStart) { // Perturb with something (hopefully) larger than tolerance. - scalar t = 4.0*(rndGen.scalar01() - 0.5); + scalar t = 4.0*(rndGen.sample01<scalar>() - 0.5); points1[v0] += t*surf1PointTol[e[0]]*n; const labelList& pEdges = surf1.pointEdges()[e[0]]; @@ -273,7 +273,7 @@ bool Foam::edgeIntersections::inlinePerturb if (perturbEnd) { // Perturb with something larger than tolerance. - scalar t = 4.0*(rndGen.scalar01() - 0.5); + scalar t = 4.0*(rndGen.sample01<scalar>() - 0.5); points1[v1] += t*surf1PointTol[e[1]]*n; const labelList& pEdges = surf1.pointEdges()[e[1]]; @@ -320,7 +320,7 @@ bool Foam::edgeIntersections::rotatePerturb //label pointi = e[0]; // Generate random vector slightly larger than tolerance. - vector rndVec = rndGen.vector01() - vector(0.5, 0.5, 0.5); + vector rndVec = rndGen.sample01<vector>() - vector(0.5, 0.5, 0.5); // Make sure rndVec only perp to edge vector n(points1[meshPoints[e[1]]] - points1[meshPoints[e[0]]]); @@ -405,7 +405,8 @@ bool Foam::edgeIntersections::offsetPerturb if (nearType == triPointRef::POINT || nearType == triPointRef::EDGE) { // Shift edge towards tri centre - vector offset = 0.01*rndGen.scalar01()*(ctr - pHit.hitPoint()); + vector offset = + 0.01*rndGen.sample01<scalar>()*(ctr - pHit.hitPoint()); // shift e[0] points1[meshPoints[e[0]]] += offset; diff --git a/src/randomProcesses/processes/UOprocess/UOprocess.C b/src/randomProcesses/processes/UOprocess/UOprocess.C index 631ae7da5248b616e3229501b01f793ffcaa0c81..b15e8ff84d51c2c40b7f3e91d9c66793b77cff92 100644 --- a/src/randomProcesses/processes/UOprocess/UOprocess.C +++ b/src/randomProcesses/processes/UOprocess/UOprocess.C @@ -40,9 +40,9 @@ complexVector UOprocess::WeinerProcess() { return RootDeltaT*complexVector ( - complex(GaussGen.GaussNormal(), GaussGen.GaussNormal()), - complex(GaussGen.GaussNormal(), GaussGen.GaussNormal()), - complex(GaussGen.GaussNormal(), GaussGen.GaussNormal()) + complex(GaussGen.GaussNormal<scalar>(), GaussGen.GaussNormal<scalar>()), + complex(GaussGen.GaussNormal<scalar>(), GaussGen.GaussNormal<scalar>()), + complex(GaussGen.GaussNormal<scalar>(), GaussGen.GaussNormal<scalar>()) ); } @@ -57,7 +57,7 @@ UOprocess::UOprocess const dictionary& UOdict ) : - GaussGen(label(0)), + GaussGen(), Mesh(kmesh), DeltaT(deltaT), RootDeltaT(sqrt(DeltaT)), diff --git a/src/randomProcesses/turbulence/turbGen.C b/src/randomProcesses/turbulence/turbGen.C index 66162c9a13189da9b203dfbabcc91c40e4ab5d67..b942ee49b6de741cfc4162be196af82fa9fdcbb1 100644 --- a/src/randomProcesses/turbulence/turbGen.C +++ b/src/randomProcesses/turbulence/turbGen.C @@ -51,8 +51,8 @@ Foam::vectorField Foam::turbGen::U() forAll(K, i) { - s[i] = RanGen.vector01(); - rndPhases[i] = RanGen.scalar01(); + s[i] = RanGen.sample01<vector>(); + rndPhases[i] = RanGen.sample01<scalar>(); } s = K ^ s; diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForce/contactAngleForce.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForce/contactAngleForce.H index 577c861bbf38bcb472041c7f7e60787ce50a961b..44e5efc176ec595744be9a7e689105c86495a9f3 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForce/contactAngleForce.H +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/force/contactAngleForce/contactAngleForce.H @@ -40,7 +40,7 @@ SourceFiles #include "force.H" #include "distributionModel.H" -#include "cachedRandom.H" +#include "Random.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -67,7 +67,7 @@ private: scalar Ccf_; //- Random number generator - cachedRandom rndGen_; + Random rndGen_; //- Parcel size PDF model const autoPtr<distributionModels::distributionModel> distribution_; diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H index e2e2d607e75d027b6ea968acb13fcf8bd7ed1f3a..277006fcafcea1d5d85815252d65dbde96f74d84 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.H @@ -42,7 +42,7 @@ SourceFiles #include "injectionModel.H" #include "distributionModel.H" -#include "cachedRandom.H" +#include "Random.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -84,7 +84,7 @@ protected: scalar particlesPerParcel_; //- Random number generator - cachedRandom rndGen_; + Random rndGen_; //- Parcel size PDF model const autoPtr<distributionModels::distributionModel> diff --git a/src/renumber/renumberMethods/randomRenumber/randomRenumber.C b/src/renumber/renumberMethods/randomRenumber/randomRenumber.C index e5268f7ed7450ccf69a9ce503d745de5de3dd31e..ecc8d32dce6241762fffc9567223f53b83854857 100644 --- a/src/renumber/renumberMethods/randomRenumber/randomRenumber.C +++ b/src/renumber/renumberMethods/randomRenumber/randomRenumber.C @@ -65,7 +65,7 @@ Foam::labelList Foam::randomRenumber::renumber { forAll(newToOld, i) { - label j = rndGen.integer(0, newToOld.size()-1); + label j = rndGen.position<label>(0, newToOld.size()-1); Swap(newToOld[i], newToOld[j]); } } diff --git a/src/sampling/sampledSet/patchSeed/patchSeedSet.C b/src/sampling/sampledSet/patchSeed/patchSeedSet.C index db106e4336fd3a2f22909a079fbb4e66241f4730..9060f8aeb7b923cbbe8fb02cac862b6f83ffa5ba 100644 --- a/src/sampling/sampledSet/patchSeed/patchSeedSet.C +++ b/src/sampling/sampledSet/patchSeed/patchSeedSet.C @@ -227,7 +227,7 @@ void Foam::patchSeedSet::calcSamples { forAll(subset, i) { - label j = rndGen.integer(0, subset.size()-1); + label j = rndGen.position<label>(0, subset.size()-1); Swap(subset[i], subset[j]); } }