# Problem of SOURCE term gradient in UDS

 Register Blogs Members List Search Today's Posts Mark Forums Read

 December 4, 2009, 10:11 Problem of SOURCE term gradient in UDS #1 New Member   Join Date: Dec 2009 Posts: 6 Rep Power: 7 Dear all, I meet problems of defining source term in UDS. I want to solve a UDS, and the scalar equation has four terms. Beside the unsteady term, the convective term, the diffusion term, and a extra term expressed as -ə(Aφ)/əxi is left, where φ is the unknown variable to be solved, A is the constant. My questions are: 1. whether the extra term -ə(Aφ)/əxi could be treated as the source term of UDS? 2. If so, how to give the source and ds[eqn] in UDF? source= -A*(C_UDSI_G(c,t,0)[0]+C_UDSI_G(c,t,0)[1]+C_UDSI_G(c,t,0)[2]); /*is it right?*/ dS[eqn] = ?; thanks!

March 2, 2010, 02:58
#2
Senior Member

Ji Junjie
Join Date: Feb 2010
Location: Shanghai, China
Posts: 106
Rep Power: 7
Quote:
 Originally Posted by wind Dear all, I meet problems of defining source term in UDS. I want to solve a UDS, and the scalar equation has four terms. Beside the unsteady term, the convective term, the diffusion term, and a extra term expressed as -ə(Aφ)/əxi is left, where φ is the unknown variable to be solved, A is the constant. My questions are: 1. whether the extra term -ə(Aφ)/əxi could be treated as the source term of UDS? 2. If so, how to give the source and ds[eqn] in UDF? source= -A*(C_UDSI_G(c,t,0)[0]+C_UDSI_G(c,t,0)[1]+C_UDSI_G(c,t,0)[2]); /*is it right?*/ dS[eqn] = ?; thanks!
You can put this item into the convection term. The convection term then becomes:
ə[(rho*Ui+A)φ]/əxi
You should write the UDS flux "rho*Ui+A" in your udf.

March 4, 2010, 07:32
#3
New Member

Join Date: Dec 2009
Posts: 6
Rep Power: 7
Quote:
 Originally Posted by gearboy You can put this item into the convection term. The convection term then becomes: ə[(rho*Ui+A)φ]/əxi You should write the UDS flux "rho*Ui+A" in your udf.
Dear gearboy, thank you very much for your reply, and I will try it. Could you kindly give me your email? so that I could contact you directly. thank you!

March 8, 2010, 03:51
#4
Senior Member

Ji Junjie
Join Date: Feb 2010
Location: Shanghai, China
Posts: 106
Rep Power: 7
Quote:
 Originally Posted by wind Dear gearboy, thank you very much for your reply, and I will try it. Could you kindly give me your email? so that I could contact you directly. thank you!
I will visit this forum frequently. Just show your problem on this forum.

March 11, 2010, 08:50
#5
New Member

Join Date: Dec 2009
Posts: 6
Rep Power: 7
Quote:
 Originally Posted by gearboy I will visit this forum frequently. Just show your problem on this forum.
Deat Gearboy,
Could you help me check whether the following UDS especially for the convective term is right? thanks!

if the equation is expressed as below:
--------------------------------------------
əφ/ət+uj əφuj/əxj- ə[mu(əφ/əxj]/əxj = -əAφ/əx3
--------------------------------------------

UDF according to Fluent help:

#include "udf.h"
static real A_constant= 0.20;

DEFINE_UDS_FLUX(Vf_uds_flux, f, t, i)
{
cell_t c0, c1 = -1;

real NV_VEC(psi_vec), NV_VEC(A), flux = 0.0;
real dens;

c0 = F_C0(f,t);
F_AREA(A, f, t);

/* If face lies at domain boundary, use face values; */
/* If face lies IN the domain, use average of adjacent cells. */

if (BOUNDARY_FACE_THREAD_P(t)) /*Most face values will be available*/
{

dens = F_R(f,t); /* Set dens to face value if available */
else
dens = C_R(c0,t0); /* else, set dens to cell value */

NV_DS(psi_vec, =, F_U(f,t), F_V(f,t), F_W(f,t)+A_constant, *, dens);

if (ND_ND==2) /*for 2D simulation*/
psi_vec[1]=psi_vec[1];
else if (ND_ND==3) /*for 3D simulation*/
psi_vec[2]=psi_vec[2];

flux = NV_DOT(psi_vec, A); /* flux through Face */
}
else
{
c1 = F_C1(f,t); /* Get cell on other side of face */

NV_DS(psi_vec, =, C_U(c0,t0),C_V(c0,t0),C_W(c0,t0)+A_constant,*,C_R( c0,t0));
NV_DS(psi_vec, +=, C_U(c1,t1),C_V(c1,t1),C_W(c1,t1)+A_constant,*,C_R( c1,t1));

if (ND_ND==2)
psi_vec[1]=psi_vec[1];
else if (ND_ND==3)
psi_vec[2]=psi_vec[2];

flux = NV_DOT(psi_vec, A)/2.0; /* Average flux through face */
}

return flux;
}

DEFINE_UDS_UNSTEADY(Vf_uns_time, c, t, i, apu, su)
{
real physical_dt, vol, rho, phi_old;
physical_dt = RP_Get_Real("physical-time-step");
vol = C_VOLUME(c,t);

rho = C_R_M1(c,t);
*apu = -air_density*vol / physical_dt; /*implicit part*/
phi_old = C_STORAGE_R(c,t,SV_UDSI_M1(i));
*su = air_density*vol*phi_old/physical_dt; /*explicit part*/

}

DEFINE_DIFFUSIVITY(Vf_diffusivity, c, t, i)
{

return C_MU_T(c,t); /*turbulent viscosity*/

}

DEFINE_SOURCE(Vf_source, c, t, dS, eqn)
{
dS[eqn] = 0;
return 0;
}

 June 21, 2013, 05:39 #6 Member   Yash Ganatra Join Date: Mar 2013 Posts: 67 Rep Power: 4 Hi, I have a similar problem. The energy equation in FLUENT is in form of enthalpy h and I want to solve it in terms of temperature. So i need to define a UDS. The equation goes as: ∂ρT/∂T+ ∇(ρuT)= ∇(k∇T)+ ∂/∂t(ρ(lfrac)∆H+ ∇(ρu∆H) the scalar variable is temperature. u- velocity; The last two terms are the source terms and i can use DEFINE_SOURCE, but they are not dependent on T, so can i include them? In the above thread the source term was dependent on 'phi' Thanks Yash

 Thread Tools Display Modes Linear Mode

 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 OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post ak6g08 Fluent UDF and Scheme Programming 0 July 9, 2009 06:37 josephlo CD-adapco 0 July 15, 2007 01:21 summer FLUENT 0 August 24, 2006 17:44 hari FLUENT 1 September 19, 2005 11:38 Atit Koonsrisuk Main CFD Forum 2 January 10, 2002 11:52

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