|
[Sponsors] |
December 24, 2007, 21:25 |
Maybe some bug in leastSquares
|
#1 |
New Member
Liu Huafei
Join Date: Mar 2009
Location: Shanghai, China
Posts: 20
Rep Power: 17 |
Maybe some bug in leastSquaresVectors.c
Description: some error in calculation of dd in leastsquare vector Source file: leastSquaresVectors.c function void Foam::leastSquaresVectors::makeLeastSquaresVectors () const if (p.coupled()) { forAll(pd, patchFacei) { const vector& d = pd[patchFacei]; dd[faceCells[patchFacei]] += (pw[patchFacei]*pMagSf[patchFacei]/magSqr(d))*sqr(d); } } dd maybe done by the following: dd[faceCells[patchFacei]] += (1.-pw[patchFacei])*pMagSf[patchFacei]/magSqr(d))*sqr(d); also a question: for the couple boundary,dd is calculated only for P cell(owner),why not for N cell(neighbour)? |
|
December 27, 2007, 17:47 |
Yes you are right this is a bu
|
#2 |
Senior Member
Join Date: Mar 2009
Posts: 854
Rep Power: 22 |
Yes you are right this is a bug, the second use of pw[patchFacei] is as (1 - pw[patchFacei]) but the first is inconsistent and incorrect. Here is the corrected leastSquaresVectors.C to replace the file in OpenFOAM-1.4.1/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad
On the coupled boundaries only the owner contribution needs to be calculated, the neighbour contribution being calculated by the "other-side" of the couple. Thanks for the bug report and proposed solution Henry |
|
|
|