Skip to content

Commit ed526cc

Browse files
authored
Bug fix: improve the logic of sorting singular values in SIGMA sgs model. (#574)
- This will makesure sigma_1 >= sigma_2 >= sigma_3. - Fix patch is provided by Min Zhang.
1 parent 1be82b6 commit ed526cc

File tree

1 file changed

+8
-15
lines changed
  • src/TurbulenceModels/turbulenceModels/Sigma

1 file changed

+8
-15
lines changed

src/TurbulenceModels/turbulenceModels/Sigma/Sigma.C

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,21 +57,14 @@ void Sigma<BasicTurbulenceModel>::correctNut()
5757
}
5858

5959
DiagonalMatrix<scalar> sigmas(SVD(gradUMatrix).S());
60-
scalar sigma_1(max(sigmas));
61-
scalar sigma_2(sigma_1);
62-
scalar sigma_3(min(sigmas));
63-
64-
for (label ii = 0; ii<3; ii++)
65-
{
66-
if(sigmas[ii]>=sigma_3 && sigmas[ii]<=sigma_1) sigma_2 = sigmas[ii];
67-
68-
if(sigmas[ii]<0)
69-
{
70-
WarningInFunction
71-
<< "Negative sigular values!!! sigmas = \n"
72-
<< sigmas <<endl;
73-
}
74-
}
60+
61+
scalar s_a = sigmas[0];
62+
scalar s_b = sigmas[1];
63+
scalar s_c = sigmas[2];
64+
65+
scalar sigma_1 = max(max(s_a, s_b), s_c);
66+
scalar sigma_3 = min(min(s_a, s_b), s_c);
67+
scalar sigma_2 = s_a + s_b + s_c - sigma_1 - sigma_3;
7568

7669
if(abs(sigma_1)<ROOTVSMALL && !zeroSigma) zeroSigma = true;
7770

0 commit comments

Comments
 (0)