|June 22, 2001, 11:36||
What's wrong with my UDF?
This article is a little too long. I would like to thank you first if you are so insterested to go throuth it.
I want to solve heat and moisture transfer analysis.
This problem is the heat tranfer in conjunction with moisture transfer. This is a 3-D problem. The solution domain is cube of dense bale.
The governing equation is following for 1-D:
dM / dt = Dm * d^2 m / dx^2
dT / dt = alpha * d^2 T / dx^2 + 1 / Cp * dM / dt * Lg
M : is the moisture
t : time
Dm : moisture diffusivity
T : temperature
alpha = thermal diffusivity
Cp : specific heat at constant pressure
Lg = L * (1 + 8.31 * exp(-0.436 * m)
L = 2440
The boundary conditions are
M = (Mi - Me)* exp(-Km * t) + Me
Km : moisture sorption rate, Km = 1.83e-4
T = 45 deg C
The initial condition
T = 18 deg C
M = 0.85 both T and M is uniform.
I want to solve this problem with Fluent v.5.5. I add an user-scalar transport equation to solve the moisture. Then determine the time derivative of moisture and substitute it into the energy equation as the source term. I employed the UDF function to do my
job. However I encountered some problem. The compilation of UDF is ok, but something is wrong in excution. The error message is as follow :
FLUENT received fatal signal (ACCESS_VIOLATION)
1. Note exact events leading to error.
Error Object: ()
I woundered that there is some bugs in my UDF codes.
Maybe it is due to wrong type of passed argument or incorrect usages of some subroutine. I hope that somebody help me to debug my codes. My code is as follow :
#define rho 1000
#define l 2440.0
#define mi 100.0
#define me 50.0
#define km 1.83e-4
#define el 1.0
DEFINE_UDS_UNSTEADY(uds_unsteady, cell, thread, i, apu, su)
float time_step, vol, phi_old, phi_curr;
vol = C_VOLUME(cell,thread);
phi_old = C_STORAGE_R(cell,thread,SV_UDSI_M1(i));
phi_curr = C_UDSI(cell,thread,i);
*apu = -rho*vol*phi_curr/time_step; /*central coefficient part*/
*su = rho*vol*phi_old/time_step; /*source term part*/
DEFINE_SOURCE(usr_ensource, cell, thread, ds, eqn)
vol = C_VOLUME(cell,thread);
phi_old = C_STORAGE_R(cell,thread,SV_UDSI_M1(0));
phi_curr = C_UDSI(cell,thread,0);
time_diff = (phi_curr - phi_old) / time_step;
/* uscl = C_UDSI(cell,thread,0); */
lg = el * ( 1.0 + 8.31 * exp(-1.0 * 0.436 * phi_curr) );
source = A * time_diff * vol * rho;
ds[eqn] = 0.0;
DEFINE_PROFILE(usr_bndry, thread, position)
real flow_time = RP_Get_Real("flow-time");
F_PROFILE(f,thread,position) = (mi - me) * exp( - 1.0 * km * flow_time) + me;
|June 23, 2001, 17:06||
Re: What's wrong with my UDF?
(1). Why not try to write a finite-difference code for this set of parabolic differential equations. (2). Most numerical method books should give you some schemes to start with. (a good reference book is: Applied Numerical Methods by Carnaham,Luther, Wilkes)
|Thread||Thread Starter||Forum||Replies||Last Post|
|parse error while interpreting udf||Kristin||Fluent UDF and Scheme Programming||3||March 15, 2012 07:43|
|UDF parallel error: chip-exec: function not found?????||shankara.2||Fluent UDF and Scheme Programming||1||January 16, 2012 23:14|
|I need UDF help.||S.Whitney||FLUENT||0||October 15, 2007 11:29|
|what's wrong with the UDF||major||FLUENT||6||March 3, 2005 07:39|
|UDF...UDF...UDF...UDF||Luc SEMINEL||FLUENT||0||November 25, 2002 05:03|