CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   FLUENT (http://www.cfd-online.com/Forums/fluent/)
-   -   UDF paraboloid velocity inlet (http://www.cfd-online.com/Forums/fluent/31494-udf-paraboloid-velocity-inlet.html)

rosco May 18, 2003 13:37

UDF paraboloid velocity inlet
 
Hi, I have to put a velocity profile (fully developed) at the inlet of a 3D case but I never use UDF to define boundaries. The profile is like a paraboloid centered at middle of the pipe. I read the UDF chapter on FLuent doc but there's no 3D case example, only 2D as above (definition of a parabolic profile at inlet):

----------------------------- #include "udf.h"

DEFINE_PROFILE(inlet_x_velocity, thread, position) { real x[ND_ND]; /* this will hold the position vector */ real y; face_t f;

begin_f_loop(f, thread)

{

F_CENTROID(x,f,thread);

y = x[1];

F_PROFILE(f, thread, position) = 20. - y*y/(.0745*.0745)*20.;

} end_f_loop(f, thread) } ----------------------------

I don't know how to change that in 3D :( . Someone could help me by give the right UDF file format in 3D?

Thx a lot :)

ap May 18, 2003 17:19

Re: UDF paraboloid velocity inlet
 
The x vector contains contains x and y position of the cell centroid in 2D, and x,y,z in 3D. So, if you write your paraboloid in the form

z = f(x,y)

your x will be the first position (0) of x vector and your y will be the second one (1). So you have to remove the line

y = x[1];

and change

F_PROFILE(f, thread, position) = 20. - y*y/(.0745*.0745)*20.;

in

F_PROFILE(f,thread,position) = f(x[0],x[1]);

P.S. I'm supposing your pipe axis is along z axis.

If you want the code, post the equation of the paraboloid :)

Hi

ap

rosco May 18, 2003 17:47

Re: UDF paraboloid velocity inlet
 
Hi ap ;)

The velocity take several values (derived of the mass flow inlet boundary), the diameter of pipe is 10mm , pipe axis is along Z axis. Here is the mesh for the waterblock (a water flow in a copper shape with a maze) to understand situation (inlet in blue and outlet in red color): http://membres.lycos.fr/roscool/forum/temp/mesh.gif

Could you put the code for a 1m/s velocity inlet (mean) for example with a typical poiseuille flow shape (paraboloid)?

Thx again ap :)

ap May 18, 2003 20:42

Re: UDF paraboloid velocity inlet
 
I write what I did so you can check it (did it in a hurry :))

I suppose that the origin of reference system is the center of the inlet. If this is not true...translate your mesh with Gambit:)

The general paraboloid form is:

z = a*x^2 + b*y^2 + c

But in our case a=b because it's axi-symmetric. The vertex of the paraboloid has z = v_max = 2*v_avg, and it's z = 0 for example in (x=0,y=r).

So

a = b = -v_max/(r^2)

c = v_max

v_max = 2*v_avg

and

z = -v_max/(r^2) * (x^2+y^2) + v_max

In the code i put -v_max/(r^2) = coeff.

Here's the code. Remember it requires you have the origin of your reference system in the center of the inlet pipe.

If you need to change diameter and average velocity, change their values in the corresponding #define.

#include "udf.h"

#define PIPE_DIAMETER 10.e-3 // Set here the diameter of your pipe in meters

#define AVG_Z_VELOCITY 1. // Set here the average z velocity at inlet in m/s

DEFINE_PROFILE(paraboloid_velocity, thread, position) { real x[ND_ND];

real coeff,r,v_max;

face_t f;

r = PIPE_DIAMETER/2.; //Calculating radius

v_max = 2.*AVG_Z_VELOCITY; //Calculating paraboloid vertex z (max velocity)

coeff = -v_max/pow(r,2.);

begin_f_loop(f, thread)

{

F_CENTROID(x,f,thread);

F_PROFILE(f, thread, position) = coeff*(pow(x[0],2.) + pow(x[1],2)) + v_max;

} end_f_loop(f, thread) }

Hi and good work

ap

rosco May 19, 2003 05:30

Re: UDF paraboloid velocity inlet
 
Oki, I understand now how to define each velocity on each face at inlet :) I'll try that soon, I hope it works ;)

Thank you very much ap to help me each time :)

niravtm007 September 1, 2011 02:29

thank you for detailed discription of udf for paraboloid

yulu March 24, 2016 11:48

Quote:

Originally Posted by ap
;106045
I write what I did so you can check it (did it in a hurry :))

I suppose that the origin of reference system is the center of the inlet. If this is not true...translate your mesh with Gambit:)

The general paraboloid form is:

z = a*x^2 + b*y^2 + c

But in our case a=b because it's axi-symmetric. The vertex of the paraboloid has z = v_max = 2*v_avg, and it's z = 0 for example in (x=0,y=r).

So

a = b = -v_max/(r^2)

c = v_max

v_max = 2*v_avg

and

z = -v_max/(r^2) * (x^2+y^2) + v_max

In the code i put -v_max/(r^2) = coeff.

Here's the code. Remember it requires you have the origin of your reference system in the center of the inlet pipe.

If you need to change diameter and average velocity, change their values in the corresponding #define.

#include "udf.h"

#define PIPE_DIAMETER 10.e-3 // Set here the diameter of your pipe in meters

#define AVG_Z_VELOCITY 1. // Set here the average z velocity at inlet in m/s

DEFINE_PROFILE(paraboloid_velocity, thread, position) { real x[ND_ND];

real coeff,r,v_max;

face_t f;

r = PIPE_DIAMETER/2.; //Calculating radius

v_max = 2.*AVG_Z_VELOCITY; //Calculating paraboloid vertex z (max velocity)

coeff = -v_max/pow(r,2.);

begin_f_loop(f, thread)

{

F_CENTROID(x,f,thread);

F_PROFILE(f, thread, position) = coeff*(pow(x[0],2.) + pow(x[1],2)) + v_max;

} end_f_loop(f, thread) }

Hi and good work

ap


This is so detailed thank you!

Just one thing, F_PROFILE(f, thread, position) = coeff*(pow(x[0],2.) + pow(x[1],2)) + v_max

why it's not coeff*(pow(x,2.) + pow(y,2)) + v_max ??

`e` March 30, 2016 17:28

Quote:

Originally Posted by yulu (Post 591511)
This is so detailed thank you!

Just one thing, F_PROFILE(f, thread, position) = coeff*(pow(x[0],2.) + pow(x[1],2)) + v_max

why it's not coeff*(pow(x,2.) + pow(y,2)) + v_max ??

The F_CENTROID(x,f,thread) macro returns an array, 'x', of coordinate positions of the centroid of the face. Each value in this array is for a different spatial coordinate: x[0] for x-direction, x[1] for y-direction and x[2] for z-direction (only in 3-D cases).


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