FLUENT 6 - how to use porous media to model louvers used in windows


Given the pressure loss vs velocity characteristics for the louvers used for windows, how can one replace the louvers with porous media such that the presure drop matches AND the flow is turned? The velocity is the approaching velocity instead of velocity inside the louvers.
Since the flow is bended in louvers, care must be taken to ensure that the correct velocity and porous media length is used in the porous media coefficients calculation. The correct velocity is the velocity in the louvers not the approaching velocity, and the correct length is along the louver direction. The porous media directions have to be specified along the louver direction to bend the flow.

After the above, an additional udf is needed to bend the flow in the porous media without introducing additional loss. Otherwise, due to the bend, additional loss will be introduced and the pressure drop from porous media approach will be more than the data. The udf used is as follows:

/*********************** UDF to bend the flow without pressure increase **********************

This udf can bend the flow without pressure increase. This is used for certain porous
media application. For example, one wants to replace the louvers with porous media. One
can do the experiments or CFD to determine the pressure drop as a function of velocity. And
then replace the louvers with porous model after calculating the porous media coefficients.
This is the standard approach to use porous media. However, this approach gives problems
if one wants to turn the flow due to the louvers. If so, the principle axis of the porous
media will be inclined with the incoming flow. Care must be excised not to use the incoming
velocity for the coefficients calculation. After that, the pressure drop in the flow will
still be much larger than from the experiments. This is because the flow needs to be bended
right at the inlet of the porous media. That bending is physical. The problem is that the
pressure loss due to the bending of the flow is already considered in the porous media coeff.
The bending in the CFD setup means that the bending is accouted for twice. To avoid this issue,
a udf is needed right at the inlet of the porous media model to bend the flow without causing
pressure drop. The way to achieve that is to make the cells at the inlet of porous media
believe that the flow is inclinded. The momentum flux deficit at the inlet of the porous media
is calcuated based on that. The momentum flux is then converted to momentum source term and
added to first layer of cells at the porour zone

How to use the udf:

- Set the case with porour media
- Define two user defined memory
- Provide the face zone ID of the interior face zone at the inlet of porous media
- Provide the angle that needs to be bended. This has to be corresponding to the porous media
principle axis.
- Compile the udf
- Hook the ADJUST udf and the momentum source.

Known limitation of the udf:

- The udf is hard coded for flow coming in x direction. So, only y momentum source is needed.
For more general orientation, both x, y momentum source is needed for a 2d case.

Written by: Xiao Hu (xh@fluent.com)
Last updated: 8/1/2006

*************************************************************************************/

#include "udf.h"

#define face_ID 1
#define ANGLE 30 /*degree*/

DEFINE_ADJUST(my_adjust,d)
{
Thread *tf;
face_t f;
Domain * domain;
real area[2], vol, x_vel, density;

domain = Get_Domain(1);
tf = Lookup_Thread(domain, face_ID);

begin_f_loop(f,tf)
{
F_AREA(area, f, tf);
vol = C_VOLUME(F_C0(f,tf), THREAD_T0(tf));
x_vel = C_U(F_C1(f,tf), THREAD_T1(tf));
density = C_R(F_C1(f,tf), THREAD_T1(tf));

/* Momentum flux deficit calculation. It is divided by vol because flux needs to be
converted to a source term. */

C_UDMI(F_C0(f,tf), THREAD_T0(tf), 0) = density*x_vel*x_vel*tan(ANGLE*M_PI/180)*MAG(area)/vol;

C_UDMI(F_C0(f,tf), THREAD_T0(tf), 1) = 2*x_vel*density*tan(ANGLE*M_PI/180)*MAG(area)/vol;

}
end_f_loop(f,tf)

}

DEFINE_SOURCE(ymom_source,c,t,dS,eqn)
{
dS[eqn] = C_UDMI(c,t,1);

return C_UDMI(c,t,0);
}





Show Form
No comments yet. Be the first to add a comment!