MCPcopy Create free account
hub / github.com/OpenFOAM/OpenFOAM-dev / limitSum

Function limitSum

src/finiteVolume/fvMatrices/solvers/MULES/MULES.C:51–97  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

49
50
51void Foam::MULES::limitSum(UPtrList<scalarField>& phiPsiCorrs)
52{
53 forAll(phiPsiCorrs[0], facei)
54 {
55 scalar sumPos = 0;
56 scalar sumNeg = 0;
57
58 for (int phasei=0; phasei<phiPsiCorrs.size(); phasei++)
59 {
60 if (phiPsiCorrs[phasei][facei] > 0)
61 {
62 sumPos += phiPsiCorrs[phasei][facei];
63 }
64 else
65 {
66 sumNeg += phiPsiCorrs[phasei][facei];
67 }
68 }
69
70 scalar sum = sumPos + sumNeg;
71
72 if (sum > 0 && sumPos > VSMALL)
73 {
74 scalar lambda = -sumNeg/sumPos;
75
76 for (int phasei=0; phasei<phiPsiCorrs.size(); phasei++)
77 {
78 if (phiPsiCorrs[phasei][facei] > 0)
79 {
80 phiPsiCorrs[phasei][facei] *= lambda;
81 }
82 }
83 }
84 else if (sum < 0 && sumNeg < -VSMALL)
85 {
86 scalar lambda = -sumPos/sumNeg;
87
88 for (int phasei=0; phasei<phiPsiCorrs.size(); phasei++)
89 {
90 if (phiPsiCorrs[phasei][facei] < 0)
91 {
92 phiPsiCorrs[phasei][facei] *= lambda;
93 }
94 }
95 }
96 }
97}
98
99
100// ************************************************************************* //

Callers 5

solveAlphasFunction · 0.85
solveAlphasFunction · 0.85
solveAlphasFunction · 0.85
solveAlphasFunction · 0.85
MULESTemplates.CFile · 0.85

Calls 2

forAllFunction · 0.50
sizeMethod · 0.45

Tested by

no test coverage detected