From 9a3e5828f0291df84d74cd008c2d36f1e7668349 Mon Sep 17 00:00:00 2001 From: Henry <Henry> Date: Wed, 8 Apr 2015 12:22:33 +0100 Subject: [PATCH] StochasticDispersionRAS: Corrected spherical distribution of UTurb direction Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1650 --- .../StochasticDispersionRAS.C | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/StochasticDispersionRAS/StochasticDispersionRAS.C b/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/StochasticDispersionRAS/StochasticDispersionRAS.C index 04a388ca323..d2ff74223f8 100644 --- a/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/StochasticDispersionRAS/StochasticDispersionRAS.C +++ b/src/lagrangian/turbulence/submodels/Kinematic/DispersionModel/StochasticDispersionRAS/StochasticDispersionRAS.C @@ -99,17 +99,11 @@ Foam::vector Foam::StochasticDispersionRAS<CloudType>::update // Calculate a random direction dir distributed uniformly // in spherical coordinates - const scalar theta = rnd.sample01<scalar>()*pi; - const scalar phi = rnd.sample01<scalar>()*twoPi; + const scalar theta = rnd.sample01<scalar>()*twoPi; + const scalar u = 2*rnd.sample01<scalar>() - 1; - // Optimising compilers will use the sincos function - const scalar sinTheta = sin(theta); - const scalar cosTheta = cos(theta); - - const scalar sinPhi = sin(phi); - const scalar cosPhi = cos(phi); - - const vector dir(sinTheta*cosPhi, sinTheta*sinPhi, cosTheta); + const scalar a = sqrt(1 - sqr(u)); + const vector dir(a*cos(theta), a*sin(theta), u); // Numerical Recipes... Ch. 7. Random Numbers... scalar x1 = 0; -- GitLab