|
[Sponsors] | |||||
UDS of concentration solved in multiphases system |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
|
|
|
#1 |
|
Member
Tleja
Join Date: Sep 2013
Posts: 40
Rep Power: 14 ![]() |
Hi Everyone!
I have done using UDS for multiphases system. I'm confused about Fluent solving. i 'm studying gas-solid reaction in fluidized bed. I defined User-defined scalar as molar concentration (kmol/m3) in solid phase (secondary phase). I follow equation 8–5 as shown in this link https://www.sharcnet.ca/Software/Ans..._uds_mp_theory I neglected the diffusion term because of low impact to scalar. Source term of UDS is a function of solid fraction. It means that where solid fraction appears high is where high value of source term is. I could compile and calculate this code well, but i found weird result which UDS solved appears high at where low solid fraction is. I also checked source term of the UDS. I found that source term appear high at where solid fraction is. It is reasonable source term. Basically, if i do right, UDS should increase with source term. Could anyone help me to fix this problem? I have faced this weird result for long time. I already made consistency unit for all term (unsteady, convection and source term) in the unit of kg/m3s kmol/m3 =kg/m3s(scalar unit) as shown in coding below: Code:
#include "udf.h"
DEFINE_SOURCE(UDS_con,c,t,dS,eqn)
{
Thread *tm=THREAD_SUPER_THREAD(t);/*obtain mixture thread */
Thread **pt = THREAD_SUB_THREADS(tm); /* pointer to sub_threads */
Thread *tp = pt[0]; /* Thread for primary phase */
Thread *ts = pt[1]; /* Thread for secondary phase*/
real K,source;
K=702000*exp(-40230/(8.314*C_T(c,ts))); /* unit 1/s*/
source=C_R(c,ts)*C_VOF(c,ts)*K*C_UDSI(c,ts,0);
/*kg/m3s kmol/m3 =kg/m3s(scalar unit)*/
dS[eqn]=C_R(c,ts)*C_VOF(c,ts)*K;
return source;
}
DEFINE_UDS_UNSTEADY(unsteady,c,t,i,apu,su)
{
Thread *tm = THREAD_SUPER_THREAD(t); /*obtain mixture thread */
Thread **pt = THREAD_SUB_THREADS(tm); /* pointer to sub_threads */
Thread *tp = pt[0]; /* Thread for primary phase */
Thread *ts = pt[1]; /* secondary phase thread */
real physical_dt, vol, rho_m1, rho, vofs_m1, vofs, phi_old;
physical_dt = RP_Get_Real("physical-time-step");
vol = C_VOLUME(c,t);
rho_m1 = C_R_M1(c,ts);
rho = C_R(c,ts);
vofs_m1 = C_VOF_M1(c,ts);
vofs = C_VOF(c,ts);
*apu = -rho*vol*vofs/physical_dt;/*implicit part*/
phi_old = C_STORAGE_R(c,ts,SV_UDSI_M1(0));
*su = rho_m1*vol*vofs_m1*phi_old/physical_dt;/*explicit part*/
}
DEFINE_UDS_FLUX(my_uds_flux,f,t,i)
{
Thread *tm = THREAD_SUPER_THREAD(t); /*obtain mixture thread */
Thread **pt = THREAD_SUB_THREADS(tm); /* pointer to sub_threads */
Thread *tp = pt[0]; /* Thread for primary phase */
Thread *ts = pt[1]; /* secondary phase thread */
cell_t c0, c1 = -1;
Thread *t0, *t1 = NULL;
real NV_VEC(psi_vec), NV_VEC(A), flux = 0.0;
c0 = F_C0(f,ts);
t0 = F_C0_THREAD(f,ts);
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*/
{
real dens,vofs;
/* Depending on its BC, density and viscosity may not be set on face thread*/
if (NNULLP(THREAD_STORAGE(t,SV_DENSITY)))
dens = F_R(f,ts); /* Set dens to face value if available */
else
dens = C_R(c0,t0); /* else, set dens to cell value */
if (NNULLP(THREAD_STORAGE(t,SV_VOF)))
vofs = F_VOF(f,ts); /* Set vofs to face value if available */
else
vofs = C_VOF(c0,t0); /* else, set vofs to cell value */
NV_DS(psi_vec, =, F_U(f,ts), F_V(f,ts), F_W(f,ts), *,dens*vofs);
flux = NV_DOT(psi_vec, A); /* flux through Face */
}
else
{
c1 = F_C1(f,ts); /* Get cell on other side of face */
t1 = F_C1_THREAD(f,ts);
NV_DS(psi_vec, =, C_U(c0,t0),C_V(c0,t0),C_W(c0,t0),*,C_R(c0,t0)*C_VOF(c0,t0));
NV_DS(psi_vec, +=, C_U(c1,t1),C_V(c1,t1),C_W(c1,t1),*,C_R(c1,t1)*C_VOF(c1,t1));
flux = NV_DOT(psi_vec, A)/4.0; /* Average flux through face */
}
/* ANSYS Fluent will multiply the returned value by phi_f (the scalar’s
value at the face) to get the ‘‘complete’’ advective term. */
return flux;
}
![]() Kindly Regard Tleja |
|
|
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Set UDS on wall... | fivos | Fluent UDF and Scheme Programming | 2 | July 25, 2014 06:57 |
| Doubts UDS Flux, UDS Unsteady for VOF model | kel85uk | FLUENT | 0 | March 17, 2010 09:53 |
| set UDS value at interior BC | Simon | FLUENT | 0 | December 12, 2008 14:14 |
| Adventure of fisrst openfoam installation on Ubuntu 710 | jussi | OpenFOAM Installation | 0 | April 24, 2008 15:25 |
| ODD: no UDS flux across interior boundary | Bob | FLUENT | 1 | February 25, 2002 20:15 |