View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000112 | OpenFOAM | Bug | public | 2010-12-17 07:02 | 2011-03-17 15:54 |
Reporter | Assigned To | henry | |||
Priority | high | Severity | major | Reproducibility | always |
Status | closed | Resolution | no change required | ||
Summary | 0000112: bug in calculating wallShearStress | ||||
Description | In all OF (> 1.5) versions are the wall shear stresses calculated from sufaceNormalVektor & Reff.boundaryField()[patchI] with Reff = nuEff()*dev(twoSymm(fvc::grad(U))). However the wall shear stress is defined by nu()*(-U.boundaryField()[patchI].snGrad()) Both definitions are equal only if rot(U)=skew(grad(U))=0. In my experience the wall shear stresses are overpredicted by using sufaceNormalVektor & Reff.boundaryField()[patchI] instead of u()*(-U.boundaryField()[patchI].snGrad()) | ||||
Tags | No tags attached. | ||||
|
Are you considering a laminar or turbulent case, i.e. are you expecting nu() and nuEff() to be the same? |
|
My considerations were only done for laminar cases. I expect nuEff()=nu()+nuT(), with nuT()=0, so that nuEff()=nu() should be true. |
|
Can you provide a small case which demonstrated the issue? |
2010-12-21 16:29
|
|
|
I just uploaded a small case where the flow field is precalculated and a small (case specific) tool dragNearAndFarField2. The tool calculates the momentum and (pressure + viscous) force balance for the near and far field. I this case the near field are wall patches and the far field are cyclic patches. The viscous forces (which only appear in the near field) are calculated on the tow approaches based on Reff and based on the snGrad. Looking on the allover balances (comparing the sum of near field and far field approach) suggests that the snGrad based approach gives the right result for this case. Keeping this in mind shows that the Reff based approach is almost 10 % of the snGrad approach. PS The comment: "Both definitions are equal only if rot(U)=skew(grad(U))=0." is of course nonsense! |
|
nu()*(-U.boundaryField()[patchI].snGrad()) will provide an accurate value for the wall shear-stress in the case of a flat wall with a uniform velocity otherwise grad(U)().T() would be non-zero on the wall and should be accounted for. However, with the way grad(U) is currently evaluated on the wall grad(U)().T() will not be exactly zero on the wall even for the case of a flat wall with a uniform velocity but it will approach zero with mesh refinement. |
|
What do you mean by accurate? nu()*(-U.boundaryField()[patchI].snGrad()) will provide an value for the wall shear-stress in the case of a NON flat wall with a NON uniform velocity, which satisfies the allover momentum change/force balance. whereas the Reff approach doesn't. This is still true if I perform a mesh refinement (cell size 8x smaller). However the change for the pressure force and the nu()*(-U.boundaryField()[patchI].snGrad()) approach is higher than the Reff approach. One could be interpret that the Reff approach is closer to the final solution on the coarse grid already?! Maybe this is meant by accurate? |
|
By accurate I mean representative of the physics. snGrad() does not include the influence of the transpose term for the cases for which it is non-zero on the wall. |
Date Modified | Username | Field | Change |
---|---|---|---|
2010-12-17 07:02 |
|
New Issue | |
2010-12-17 08:48 | henry | Note Added: 0000185 | |
2010-12-17 21:49 |
|
Note Added: 0000189 | |
2010-12-17 22:40 | henry | Note Added: 0000190 | |
2010-12-21 16:29 |
|
File Added: veryCoarse.tar.gz | |
2010-12-21 16:47 |
|
Note Added: 0000196 | |
2010-12-22 17:05 | henry | Note Added: 0000197 | |
2010-12-24 00:06 |
|
Note Added: 0000201 | |
2010-12-24 00:23 | henry | Note Added: 0000202 | |
2011-03-17 15:54 |
|
Status | new => closed |
2011-03-17 15:54 |
|
Assigned To | => henry |
2011-03-17 15:54 |
|
Resolution | open => no change required |