CFD Online Discussion Forums

CFD Online Discussion Forums (
-   FLUENT (
-   -   momentum source term (

zwdi February 27, 2004 23:00

momentum source term
Hello everybody,

I am simulating species transportation with the source term in one fluid zone. I only have the clear mass (kg/m3-s) parameter from experiments. I don't know exactly momentum source parameter, Renold stress parameters(UU, UV,..) either. So I only add the mass source term in my simulation. In the period of iteration, Reverse Flow appears. The results diverged. I am thinking that if the reason is the missing of momentum source term , TKE, Dissipation source term, and Renold stress source term.

Could anybody tell me that the way I add the source term is right or wrong? I have no experiences for adding source term. Must I add each source term usually or some specific source terms depending on different cases?

Thanks in advance for your time and kindness.

Have good weekend.


subha_meter September 28, 2010 01:36

Adding momentum source terms in multiphase eulerian simulation
Hello All,

I'm carrying out multiphase eulerian simulation in porous media to estimate pressure drop and liquid hold up. Addition of momentum source terms in both the phases (gas & liquid) have been reported in literature which I've incorporated through UDF as well however my simulation diverges pretty fast.

Momentum source terms:

Liq phase: (l)

(1-alpha)/k_liq*(A*Rel/Gal + B*Rel^2/Gal)*rho_l*g

Gas phase:(g)

alpha/k_gas*(A*Reg/Gag + B*Reg^2/Gag)*rho_g*g

where alpha = gas vol fraction, A & B = Ergun co-eff, Re = Reynolds no, Ga = Galileo no, rho = density, g = 9.81 m/sec2
k = relative permeability for liq & gas phase

Gas phase momentum transfer UDF for example:


real x_vel_l, y_vel_l, abs_U, rho_l, drv1_g, drv2_g, Fg,drv,
mu_l, x_vel_g, y_vel_g, rho_g, mu_g, void_g, Reg, Gag, E0, eps, sg, kg, source;

/* find phase velocities and properties*/

x_vel_g = C_U(c,t);
y_vel_g = C_V(c,t);
rho_g = C_R(c,t); /*Gas Density*/
mu_g = C_MU_L(c,t); /*Gas Viscosity*/
abs_U=sqrt(x_vel_g*x_vel_g + y_vel_g*y_vel_g);
void_g = C_VOF(c,t); /* gas vol frac*/
Reg = rho_g*abs_U*dp/(mu_g*(1-ep));
Gag = pow(rho_g,2)*g*pow(dp,3)*pow(ep,3)/(pow(mu_g,2)*pow(1-ep,3));
E0 = rho_l*g*pow(dp,2)*pow(ep,2)/(sigma * pow((1-ep),2)); /*Eotvos no*/
eps = 1.0/(20.0 + 0.9*E0);/*static liq hold up*/
sg = 1.0 - eps/ep;
kg = pow(sg,4.80);

/*Momentum source Term*/

Fg = (void_g*rho_g*g/kg)*(E1*Reg/Gag + E2*pow(Reg,2)/Gag);

drv1_g = E1*rho_g*dp/(mu_g*(1-ep));
drv = rho_g*dp/(mu_g*(1-ep));
drv2_g = E2*2*abs_U*pow(drv,2);
source = Fg;

/* derivative of source term w.r.t. x-velocity. */

dS[eqn] = void_g*rho_g*g/kg*(drv1_g*E1*Reg/Gag + drv2_g*E2*pow(Reg,2)/Gag);

return source;

Is there any suggestion to correct it? Any suggestion will be highly appreciated.



abhik.banerjee May 6, 2011 13:46

porous media trickle bed
Hii Subha

I am working on trickle bed reactor with porous media concept exactly similar to your work. It seems like you have used momentum source terms instead of viscous resistance values. Or have you used both? Can you tell me which drag law you have applied for gas and liquid phase and the boundary conditions? It will be of great help as I am running out of time.

subha_meter May 6, 2011 23:02

Trickle Bed Reactor_mometum source model
Hello Avik,

Well, I've spent sometime to build up this model since this post however validation with experimental data is still pending. The porous media model can be built using both "viscous and inertial resistance" and "momentum source" (I strongly believe so).

In both case, you need closure equations from "Relative permeability model" of Saez and Carbonell (1985)-AICHE journal. You can either keep the porosity uniform or variable. If you want to vary it, then a radial porosity distribution function proposed by Mueller et al (1994) is suggested.

Hope it helps.

subha_meter May 6, 2011 23:08

Trickle bed reactor_porous media model
Forgot to mention that you need to calculate boundary conditions by solving "phenomenological models" - proposed any of those by Holub et al(1992,1993), Larachi et al (1990), Wammes et al (1990,1991), Ellman et al (1990).

For gas-liquid interaction term, you can do the followings

--> use none considering loss against solid phase is much more than gas-liquid interaction

--> Use Attou et al's (1999) fluid fluid interaction model

Hope it helps


abhik.banerjee May 7, 2011 01:53

Hii Subha

Thanks a lot for your reply.

Regarding the boundary conditions:
  1. I have specified velocity inlet and pressure outlet for 2 phase Eulerian-Eulerian model.. I have given 0.4 volume fraction of liquid phase(phase 2) at the inlet. The problem here is that I have to specify backflow volume fraction at pressure outlet. How to specify this value?What value have you taken? Did you choose pressure outlet or outflow condition?
  2. I have defined the fluid zone as porous media. I have to specify inertial and viscous resistance values for both the phases. Using the formula you have mentioned in other posts, the value comes out to be a single value. But if we use pressure drop vs velocity values from experimental data, we will have different values for both phases. How did you compute these values?
  3. If I am using momentum source UDF as you have mentioned, is it necessary to specify inertial and viscous resistance coefficients?
Your guidance regarding these issues will be of great help.

subha_meter May 7, 2011 03:26

Trickle bed reactor_porous media
Hello Abhik,

1. Using backflow volume fraction is tricky in FLUENT for E-E multiphase flow. I suggest to use "dispersed phase" i.e. secondary phase volume fraction to set "0" at outlet.

Outflow BC is used normally for unconfined flow and it never gives a good prediction of pressure drop. So a pressure outlet BC is always recommended.

2. For theoretical computation, if you use Ergun equation then you will get single value for resistances which is not correct. You need to calculate this resistances from Saez & Carbonell (1985) formulation which uses relative permeability for both phases and gives different resistances. And if you have experimental data for pressure drop then it's OK.

3. Modeling of porous media model using momentum source terms is another way if you do not use porous media module. It's mutually exclusive.

Hope it helps,


abhik.banerjee May 7, 2011 04:02

Hii Subha

The information in your reply is of great help.

If I am specifying momentum source UDF, then can I specify viscous coefficients as well along with this UDF or only one of these two should be used?

p08tm007 July 17, 2013 07:56

In fluent there is only possibility of defining momentum source in either x,y & z directions. If we want to define momentum source over a cylinder, then how to do this in fluent. Hey guys please help me regarding this, as this option is not there in fluent.

Thanks in Advance...

subha_meter July 17, 2013 19:05

momentum souce term
I don't think it should be a problem for cylindrical geometry. In cylinder, we need to define the axial and radial momentum source terms which I believe can be done specifying the source term in 'y' direction to account for axial and 'x' & 'z" directions (should be same) to account for the radial change.

p08tm007 December 4, 2013 03:55


Originally Posted by subha_meter (Post 440424)
I don't think it should be a problem for cylindrical geometry. In cylinder, we need to define the axial and radial momentum source terms which I believe can be done specifying the source term in 'y' direction to account for axial and 'x' & 'z" directions (should be same) to account for the radial change.

Hi subha_meter, thanks for ur reply nd time. In my case, actually flow from the cylinder in radial direction. There is no axial flow. flow rate from the cylinder is 450 LPS. And the momentum source calculated comes out be 18.638. Can u plz explain me how to incorporate this in the fluent.

Thanks in Advance.

subha_meter December 4, 2013 18:39

Momentum source term in cylindrical geometry
If this momentum source term is constant, you need to enter this value to
cell zone condition--> fluid--> source term --> x and z momentum.

If this source term changes with velocity or any other parameters, you need to specify it using UDF (sample UDF for momentum source term is provided in FLUENT UDF manual).

Hope it helps,

p08tm007 December 5, 2013 04:30

Hi subha_meter, thanks for ur kind time. As my source term is constant. if i put this constant value in the x and z momentum source, then the flow from the cylinder comes out in the direction that is resultant of the x & z. But not in radial directions.

Can u plz help me out as early as possible. as i have t start the simulation.

Thanks in advance.

subha_meter December 5, 2013 18:58

You need to realize that it's not possible to get direct access to radial direction in Cartesian Coordinate which is native to Cylindrical Coordinate system.

The radial direction can only be achieved in Cartesian system if you take resultant of X & Z direction (horizontal and radial plane) while keeping the Y axis perpendicular to the X & Z plane.

Alternatively, you can construct a 2D axisymmetric mesh (axis BC on the vertical/perpendicular axis -- X direction) and define the radial source term along the Y axis which should solve the problem.

Tushar_Telmasre June 27, 2017 15:40

segmentation fault
In my momentum equation owing to density difference i have to write a source term udf. the source term is,

source term= - ρl.(1+∝).u ⃗ .∂fl/∂t

where ∝ = the volume of fraction variable
fl = liquid fraction
ul = Velocity vector
ρl and ρs = liquid and solid density respectively

I did write a udf for it

-----for x-momentum----
#include "udf.h"
#define rho_l 1544.0
#define rho_s 1648.0

real source;
source = -(rho_l*(1+C_VOF(c,t))*C_U(c,t)*((C_LIQF(c,t)-C_LIQF_M1(c,t))/CURRENT_TIMESTEP));
dS[eqn] = 0;
return source;

----for y-momentum-----
#include "udf.h"
#define rho_l 1544.0
#define rho_s 1648.0

real source;
source = -(rho_l*(1+C_VOF(c,t))*C_V(c,t)*((C_LIQF(c,t)-C_LIQF_M1(c,t))/CURRENT_TIMESTEP));
dS[eqn] = 0;
return source;

i hooked it in the cell zone section. i was using the VOF module.
IT is giving me a segmentation fault.
I am not able to understand the mistake here. can anybody help?

All times are GMT -4. The time now is 16:07.