CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > ANSYS > FLUENT

UDF paraboloid velocity inlet

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   May 18, 2003, 14:37
Default UDF paraboloid velocity inlet
  #1
rosco
Guest
 
Posts: n/a
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
  Reply With Quote

Old   May 18, 2003, 18:19
Default Re: UDF paraboloid velocity inlet
  #2
ap
Guest
 
Posts: n/a
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
  Reply With Quote

Old   May 18, 2003, 18:47
Default Re: UDF paraboloid velocity inlet
  #3
rosco
Guest
 
Posts: n/a
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
  Reply With Quote

Old   May 18, 2003, 21:42
Default Re: UDF paraboloid velocity inlet
  #4
ap
Guest
 
Posts: n/a
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
  Reply With Quote

Old   May 19, 2003, 06:30
Default Re: UDF paraboloid velocity inlet
  #5
rosco
Guest
 
Posts: n/a
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
  Reply With Quote

Old   September 1, 2011, 03:29
Default
  #6
Member
 
Nirav
Join Date: Jul 2011
Posts: 43
Rep Power: 15
niravtm007 is on a distinguished road
Send a message via Skype™ to niravtm007
thank you for detailed discription of udf for paraboloid
niravtm007 is offline   Reply With Quote

Old   March 24, 2016, 11:48
Default
  #7
New Member
 
Yu Lu
Join Date: Jul 2015
Location: England
Posts: 26
Rep Power: 11
yulu is on a distinguished road
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 ??
yulu is offline   Reply With Quote

Old   March 30, 2016, 18:28
Default
  #8
`e`
Senior Member
 
Join Date: Mar 2015
Posts: 892
Rep Power: 18
`e` is on a distinguished road
Quote:
Originally Posted by yulu View Post
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).
`e` is offline   Reply With Quote

Old   October 24, 2016, 05:48
Question UDF for inlet temperature
  #9
New Member
 
mm
Join Date: May 2016
Posts: 24
Rep Power: 9
mmunige is an unknown quantity at this point
Dear all

I have following UDF for inlet temperature, untill 1300s it takes correct values according to equation, but after 1300s values are higher and not accorrding to equation, like at 1301s it should have value of 405C but in simulation inlet temperature is 621C. I could not find the error in my UDF after lot of try. please check this and guide me. help please.
#include"udf.h"

DEFINE_PROFILE(inlet_temperature,thread,position )

{

face_t f;

begin_f_loop(f,thread)

{

real t = RP_Get_Real("flow-time");

if (t <=1300.0 )

{

F_PROFILE(f,thread,position) = 379.13 + 0.0005*t;

}

else if (1300.0 < t && t <= 1500.0 )

{

F_PROFILE(f,thread,position)= -1.04289036878969*pow(10,-10)*pow(t,6.0)+ 8.86126436853789*pow(10,-7)*pow(t,5.0)-3.13621260398811*pow(10,-3)*pow(t,4.0)+5.91804640375908*pow(t,3.0)-6.27969461279651*pow(10,3)*pow(t,2.0)+ 3.55273415252714*pow(10,6)*t - 8.37223405676245*pow(10,8);
}
else
{

F_PROFILE(f,thread,position) = -9.51538261322402*pow(10,-23)*pow(t,6) + 8.26192751387975*pow(10,-18)*pow(t,5)-2.85237398505875*pow(10,-13)*pow(t,4)+4.97518353700886*pow(10,-9)*pow(t,3)-4.58733775886876*pow(10,-5)*pow(t,2)+ 2.10251137071757*pow(10,-1)*t +3.57252192344954*pow(10,2);

}

}

end_f_loop(f,thread)

}
mmunige is offline   Reply With Quote

Old   March 5, 2017, 01:51
Smile
  #10
New Member
 
Gary
Join Date: Jan 2017
Posts: 6
Rep Power: 9
Gourabc is on a distinguished road
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
Hi,
Thanks ap for such a detailed description of the UDF. I need a similar one for my project where my average velocity is sinusoidal variation with time and the inlet centre is located at 20 mm from the origin along the y direction and -120 mm along the z direction. Can you please tell me what changes should I make in the UDF program? Please post a quick answer if it is not much of a problem.
The time varying velocity profile is-
#include "udf.h"//file that contains definitions for define functions and fluent operations
#define PI 3.141592654

DEFINE_PROFILE(in_vela,th,i)
{
face_t f;
real t = CURRENT_TIME;
begin_f_loop(f,th)

{
F_PROFILE(f,th,i) = ((0.086)*(sin(((2*PI/3)*t) + 0.0873))) - 0.0075;

}
end_f_loop(f,th);
}
Gourabc is offline   Reply With Quote

Old   June 2, 2017, 09:01
Default
  #11
Rak
New Member
 
Rakesh Ramesh
Join Date: May 2017
Posts: 1
Rep Power: 0
Rak is on a distinguished road
Hey
My parabola's equation is 0.0064*(x-1.25)*(x-1.25)-0.01 = y
Can you please type the code for it

Maximum velocity should be 0.01m/s
and dimension of 2d rectangle is 250x1000mm
Rak is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
(ask) how to create UDF for inlet velocity profile sincity Fluent UDF and Scheme Programming 83 May 16, 2022 14:04
3D UDF Paraboilc Velocity Profile (Can't Maintain) Sing FLUENT 12 August 7, 2017 07:25
3D velocity inlet UDF zumaqiong Fluent UDF and Scheme Programming 2 October 24, 2016 05:44
USED UDF for inlet velocity in 3D sara FLUENT 0 October 11, 2007 19:04
Fluent UDF load and apply inlet velocity b.c. Knut Lehmann Main CFD Forum 2 June 29, 2007 05:53


All times are GMT -4. The time now is 15:14.