From 7f0cc0045df184b265571728a358e9ca71c23964 Mon Sep 17 00:00:00 2001 From: Andrew Heather <a.heather@opencfd.co.uk> Date: Fri, 28 Apr 2017 09:15:52 +0100 Subject: [PATCH] ENH: Random numbers - updated dependent code from change cachedRandom->Random class --- applications/test/BinSum/Test-BinSum.C | 2 +- .../test/Distribution/Test-Distribution.C | 20 +++++----- .../test/Polynomial/Test-Polynomial.C | 2 +- .../conformalVoronoiMeshI.H | 6 +-- .../autoDensity/autoDensity.C | 16 ++++---- .../bodyCentredCubic/bodyCentredCubic.C | 12 +++--- .../faceCentredCubic/faceCentredCubic.C | 24 ++++++------ .../initialPointsMethod/pointFile/pointFile.C | 12 ++++-- .../rayShooting/rayShooting.C | 6 +-- .../uniformGrid/uniformGrid.C | 6 +-- .../generation/foamyMesh/foamyQuadMesh/CV2D.C | 4 +- .../miscellaneous/pdfPlot/createFields.H | 2 +- .../surfaceBooleanFeatures.C | 2 +- .../surface/surfaceInertia/surfaceInertia.C | 6 +-- src/OpenFOAM/Make/files | 1 - .../primitiveShapes/tetrahedron/tetrahedron.H | 5 --- .../tetrahedron/tetrahedronI.H | 36 ------------------ .../primitiveShapes/triangle/triangle.H | 5 --- .../primitiveShapes/triangle/triangleI.H | 19 ---------- .../meshes/treeBoundBox/treeBoundBox.H | 2 +- .../meshes/treeBoundBox/treeBoundBoxI.H | 4 +- .../derived/turbulentDFSEMInlet/eddy/eddy.C | 2 +- .../derived/turbulentDFSEMInlet/eddy/eddy.H | 8 ++-- .../derived/turbulentDFSEMInlet/eddy/eddyI.H | 4 +- .../turbulentDFSEMInletFvPatchVectorField.H | 4 +- .../turbulentInletFvPatchField.C | 2 +- .../particleDistribution.H | 4 +- .../field/randomise/randomiseTemplates.C | 2 +- .../clouds/Templates/DSMCCloud/DSMCCloud.C | 38 +++++++++---------- .../LarsenBorgnakkeVariableHardSphere.C | 23 +++++------ .../VariableHardSphere/VariableHardSphere.C | 6 +-- .../FreeStream/FreeStream.C | 14 +++---- .../MaxwellianThermal/MaxwellianThermal.C | 15 ++++---- .../MixedDiffuseSpecular.C | 17 ++++----- .../RosinRammler/RosinRammler.C | 2 +- .../RosinRammler/RosinRammler.H | 2 +- .../distributionModels/binned/binned.C | 4 +- .../distributionModels/binned/binned.H | 4 +- .../distributionModel/distributionModel.C | 2 +- .../distributionModel/distributionModel.H | 10 ++--- .../distributionModel/distributionModelNew.C | 2 +- .../exponential/exponential.C | 2 +- .../exponential/exponential.H | 2 +- .../fixedValue/fixedValue.C | 2 +- .../fixedValue/fixedValue.H | 2 +- .../distributionModels/general/general.C | 4 +- .../distributionModels/general/general.H | 4 +- .../massRosinRammler/massRosinRammler.C | 2 +- .../massRosinRammler/massRosinRammler.H | 2 +- .../multiNormal/multiNormal.C | 2 +- .../multiNormal/multiNormal.H | 2 +- .../distributionModels/normal/normal.C | 2 +- .../distributionModels/normal/normal.H | 2 +- .../distributionModels/uniform/uniform.C | 2 +- .../distributionModels/uniform/uniform.H | 2 +- .../Templates/KinematicCloud/KinematicCloud.C | 2 +- .../Templates/KinematicCloud/KinematicCloud.H | 6 +-- .../KinematicCloud/KinematicCloudI.H | 2 +- .../ParticleCollector/ParticleCollector.C | 6 +-- .../CellZoneInjection/CellZoneInjection.C | 2 +- .../ConeInjection/ConeInjection.C | 4 +- .../ConeNozzleInjection/ConeNozzleInjection.C | 6 +-- .../InflationInjection/InflationInjection.C | 2 +- .../InjectedParticleDistributionInjection.C | 4 +- .../KinematicLookupTableInjection.C | 2 +- .../PatchFlowRateInjection.C | 2 +- .../PatchInjection/PatchInjection.C | 2 +- .../PatchInjection/patchInjectionBase.C | 4 +- .../PatchInjection/patchInjectionBase.H | 4 +- .../IsotropyModels/Stochastic/Stochastic.C | 4 +- .../ReactingLookupTableInjection.C | 2 +- .../ReactingMultiphaseLookupTableInjection.C | 2 +- .../ThermoLookupTableInjection.C | 2 +- .../ThermoSurfaceFilm/ThermoSurfaceFilm.H | 2 +- .../molecule/moleculeCloud/moleculeCloud.C | 6 +-- .../molecule/moleculeCloud/moleculeCloudI.H | 19 ++++------ .../AtomizationModel/AtomizationModel.H | 2 +- .../BlobsSheetAtomization.C | 2 +- .../BlobsSheetAtomization.H | 2 +- .../LISAAtomization/LISAAtomization.C | 2 +- .../LISAAtomization/LISAAtomization.H | 2 +- .../NoAtomization/NoAtomization.C | 2 +- .../NoAtomization/NoAtomization.H | 2 +- .../spray/submodels/BreakupModel/SHF/SHF.C | 2 +- .../spray/submodels/BreakupModel/TAB/TAB.C | 2 +- .../GradientDispersionRAS.C | 2 +- .../StochasticDispersionRAS.C | 2 +- .../BrownianMotion/BrownianMotionForce.C | 2 +- .../BrownianMotion/BrownianMotionForce.H | 4 +- .../surfaceIntersection/edgeIntersections.C | 9 +++-- .../processes/UOprocess/UOprocess.C | 8 ++-- src/randomProcesses/turbulence/turbGen.C | 4 +- .../contactAngleForce/contactAngleForce.H | 4 +- .../drippingInjection/drippingInjection.H | 4 +- .../randomRenumber/randomRenumber.C | 2 +- .../sampledSet/patchSeed/patchSeedSet.C | 2 +- 96 files changed, 235 insertions(+), 300 deletions(-) diff --git a/applications/test/BinSum/Test-BinSum.C b/applications/test/BinSum/Test-BinSum.C index 873e7eb8939..6d0abfff289 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 f893e1e4bc4..647c7a7d420 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 352d15f96d7..6a6fb8bb455 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 190e493322f..929eeb306b3 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 e2d10015045..1acd01d9bfb 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 17a4285d861..8991e7ae9d1 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 9fd36aee3a6..36052a3bbb8 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 38742a62034..a09153cf20c 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 103a09c23ae..7727153e5bb 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 319db492934..e7d8d8dcf1a 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 92d08f29d64..1a540eaf8dd 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 85ec143ca9a..68229a7a937 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 abc3d321d2b..02d0b0c8e63 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 b0808d239d8..fb45390688f 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 14af54effd2..5636f7c937b 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 badea19542e..2369e77ca81 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 2c14d16121e..d95f42dc1eb 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 d689fa0b1e9..a73d7a0e5e0 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 eee54fd92cf..605e10589b5 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 edc42983dfe..7c27f9fc264 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 4b073fd9753..750a6737ff6 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 b4a73f3b91f..1883fac2787 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 5bd0feb0f1d..be527caa2f3 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 82c579fcc54..91531bf13d2 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 b1d0afe62ac..d14d82266f5 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 ec71541bd0f..b457ecd85a3 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 fec579f1938..4e7765e1b1e 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 a466ef35510..f0c691eb397 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 6da1c1aa8e8..fadaf872bc1 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 9139e09be3b..d81ce400f67 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 19d1ed61d8a..3f20bd3bf92 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 314bd25977e..4ed53b5cf68 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 3bc25401edb..9f4ff92bde9 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 06e5a7079c8..056251c5338 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 2e5a0456197..0ed45f62a2c 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 448165a7037..f7f7183d388 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 b9ed2813f7f..57530fa649c 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 a579a4a40b5..4e719a1ef01 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 20a5cf82a4a..6343ea37574 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 5e712e10eca..0be1489929b 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 3e3f4ba2496..e458085a438 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 013e5c39bb7..32531513511 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 76f62acbb87..a68bc4f804f 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 f8f0c234a9f..0275a404ad7 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 aa089730310..875d172e429 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 87339642bf3..9f96ff7b808 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 db8a18194a4..689cfa6cc7a 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 015343b7117..23339eca0f0 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 f1745326b67..1f180f5bd63 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 1cbb5a58563..8779281fc06 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 03bb0e270d9..a58a96bba1d 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 1fc16376a90..a6ebd9d594e 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 d78ec5a86af..77d11e426a1 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 72a0d2fc3dd..ccf60544b58 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 3efaee8219d..a47bb8495f8 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 31054caa50e..0dfb75094d7 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 d0c8b57603a..15abbe9ac99 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 ce92455169d..f5ac343730d 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 c559e3f5dfb..5cc2c3a7670 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 ffa8163dffd..06ed2d542c4 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 9406a3d9dca..11300c42734 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 208bc3511bb..b8bcd7464ed 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 d3700001f8d..41cf67a56dd 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 3bef483fc3f..2ae5e8031b7 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 d081be437ff..739599c153a 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 c1fd0f678e0..1244c85dcb5 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 13227e34ef4..c0a898c1565 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 522725fdeb5..713c994902e 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 2124b3acfc8..8b1d837dee1 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 6aa53544554..068568a1b53 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 40290f9a851..7b0982e6a6c 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 7361402d21b..79423e612e8 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 b93166d4d4a..b746e3fd3f2 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 3faf3102e1c..0de4186d093 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 761dfc8d945..7db8ded1222 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 63f89a69bd1..ebc738cab26 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 216990ea91c..1630aafdb2c 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 63b5d4ff5c6..63670b08455 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 56175bf095e..e95e930c5a7 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 c21fdfd583b..2cc52829dab 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 1c8ed5c897e..2a0f1a5ef03 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 038e90c5b46..ed5fed5ec6c 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 975f511810e..24133879f34 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 41e3ac307a7..642df18a861 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 4f3607b6e96..5817c8c441e 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 ef93f6a3cfc..cdba049f9e3 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 e78fcf9ed9d..56ee5d50544 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 a2228fa5e35..86a24ff4c1a 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 0c7a5e89f7c..2990a0f253e 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 559bcfc6e64..c5cd2adf560 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 631ae7da524..b15e8ff84d5 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 66162c9a131..b942ee49b6d 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 577c861bbf3..44e5efc176e 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 e2e2d607e75..277006fcafc 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 e5268f7ed74..ecc8d32dce6 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 db106e4336f..9060f8aeb7b 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]); } } -- GitLab