You are on page 1of 2

Flow over backward facing step

Compute the laminar flow over a backward facing step.

inlet

outlet

3H

H
ReH = UmaxH/ =150
Umax = maximum velocity at inlet (U = Umax*(y-H)*(3H-y)/H2 )
1) Compose the geometry in gambit.
2) Make a couple of grids (e.g. equidistant in the y-direction). Stretched in the x-direction in
such a way that square cells are obtained at the step and rectangular cells are obtained at
inlet and outlet (max. aspect ratio of rectangles is about 5).
The number of cells is e.g. 152 x 48, 76 x 24, 38 x 12. Give the right lower wall a different
name when applying the boundary conditions (inlet, outlet, wall). Save the grids as gambit
files (*.dbs) and export the grids to a msh file.
3) Apply a parabolic inlet profile. Compute and analyze the flow field (recirculation length) on
the different grids, with different discretization methods (1st order, 2nd order upwind,
quick, ).
4) Visualization:
- contours of streamlines (manual range: put a negative value as minimum value in order
to find the recirculation zone)
- contours of pressure (try to understand).
- verify with a velocity vector plot whether the inlet profile is parabolic.
5) Compute the recirculation length from a XY-plot of the wall shear stress (x-component) as
a function of the grid density and the discretization method. Write the data to a file, import
the file in excel and compute the recirculation length accurately as a function of grid size
and the different discretization methods.
Parabolic inlet profile can be specified with profiles or with a user defined function: (Use a
user defined function: define - user-defined - functions - interpreted - select the file with the
udf source code).

Boundary profiles: see user's guide, section 7.26.


Format: ((profile1-name point|line|radial n)
(field1-name a1 a2 ... an)
(field2-name b1 b2 ... bn)
.
(fieldf-name f1 f2 ... fn))

e.g. ((inlet point 3)


e.g. (x 0 0 0)
e.g. (y 1 2 3)
e.g.

(u 0 150 0))

User defined function: see udf manual, section 8.2


Format:
#include "udf.h"
DEFINE_PROFILE(inlet_x_velocity, thread, position)
{
real x[ND_ND];
/* this will hold the position vector */
real y;
/* ND_ND will be definded by Fluent, 2D or 3D */
face_t f;
begin_f_loop(f, thread) /* loop over the faces */
{
F_CENTROID(x,f,thread); /* centroid of face is stored in x */
y = x[1];
/* second component of x-array */
F_PROFILE(f, thread, position) = ;
/* here u(y) */
}
end_f_loop(f, thread)
}

You might also like