CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM (
-   -   wallGradU components (

amin66 February 19, 2013 09:26

wallGradU components
Hi all
when I use "wallGradU" command for a curved wall (like a cylinder or sphere), i have 3 components for wallGradU in paraview. what are them?

are ( dUx/dx , dUy/dy , dUz/dz )? if x, y, z been cartesian system....

or if, for the curved wall, we assume normal spatial component to "n" and tangential components to "t1" and "t2" , then 3 components of wallGradU are (dUn/dn , dUt1/dt1 , dUt2/dt2 ) ???

Thanks all

fumiya February 20, 2013 10:14

Hi Amin,

I think the three components of wallGradU are (Ux/Δ , Uy/Δ , Uz/Δ).

Δ: distance between cell center and the wall
U = (Ux, Uy, Uz)

The vector wallGradU is the approximation of dU/dn (n: wall normal direction).

Hope that helps,

Antonio.vucci February 20, 2013 17:55

Hello Friends

fumiya, how can you find the location af separation point at a curvactured wall with this component?

anishtain4 February 21, 2013 04:07

Separation point is where the second derivative becomes zero, there is no way you can find it with first derivative

fumiya February 21, 2013 06:14

I have misunderstood the utility "wallGradU" and the "snGrad()" function used in it.
In the utility "wallGradU", the wall normal gradient is calculated using the "snGrad()"
function and this function discretizes the normal gradient using the following first
order approximation:

In fvPatchField.C

00176    // Return gradient at boundary
00177    template<class Type>
00178    Foam::tmp<Foam::Field<Type> > Foam::fvPatchField<Type>::snGrad() const
00179    {
00180        return (*this - patchInternalField())*patch_.deltaCoeffs();
00181    }

snGrad() = (U[faceI]-U[cellI])/mag(Cf[faceI]-Cn[cellI])
faceI: label of the face on which we calculate the normal gradient
cellI: label of the cell adjacent to the faceI
Cf: position vector of face center
Cn: position vector of cell center

As you can see, the surface normal gradient calculated by wallGradU does not apply any
non-orthogonality or skewness corrections.

Hope that helps,

amin66 March 1, 2013 10:36

thanks all
Mahdi, as i know separation occurs when the first derivation of velocity near the wall becomes zero.

Fumiya, is there any way to determine separation point with wallGradU on cylinder? or even with other methods?

fumiya March 1, 2013 11:41

Hi Amin,

I think it depends on your simulations:
  1. Solving laminar flows
  2. Solving turbulent flows with low Re trubulence model
  3. Solving turbulent flows with high Re turbulence model

In the case of 1 and 2:
You can use the wallGradU to find the positions where wall normal gradient of velocity is zero.

In the case of 3:
You can use the wallShearStress utility to find the positions where the wall shear stress vanishes.

Correct the mistakes, if any, in my post.


anishtain4 March 2, 2013 08:49


Originally Posted by fumiya (Post 410895)
Solving turbulent flows with high Re turbulence model

You can use the wallGradU to find the positions where wall normal gradient of velocity is zero.


As you know when you capture viscose sub-layer it is a linear profile, so the derivative of it is zero, while the flow is not separated. Flow separates when you have zero shear stress ( You can derive it easily from NS equations, just put non-slip conditions and look for zero pressure gradient )

So I believe third method Fumiya mentioned would be the best and most reliable

amin66 March 3, 2013 11:12

Hi Fumiya & Mahdi

Thank you. your comments was so usefull.


All times are GMT -4. The time now is 03:46.