|
[Sponsors] |
Urgent! UDF error "implicit declaration of function" |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 |
Member
Ivan
Join Date: May 2009
Posts: 85
Rep Power: 17 ![]() |
Urgent, will wait online for answers!
After compiling the following UDF, I see the error message "inlet_u.c:39: warning: implicit declaration of function erf". And the simulation crash if I continue using this UDF. The only problem is the function erf. But I have included math.h, anything else needs to be done? Or math.h is NOT the right header file to include if I want to use function erf? erf is error function. What is the reason? and How can I solve it? Thanks! /* UDF for specifying a transient inlet velocity profile boundary condition */ #include "udf.h" #include "math.h" #define PI 4.*atan(1.) #define RT 0.00183 real VM=21.911; real VNin=0.01; /**************** x velocity ****************/ DEFINE_PROFILE(v_x, thread, index) { face_t f; real t,dt,u; real D1,D2,D3,D4,D5,D6,D7; real G1,G2,G3; /* wind gust model parameters */ D1=VM*700; D2=7/(3*RT); D3=1; D4=3/(3*RT); D5=0.15; D6=7/(10*RT); D7=2*PI/(RT/10); /* get flow time */ t = CURRENT_TIME; /* u = X Velocity */ if (t<=VNin*RT) { u = VM;} else { /* get dt */ dt = t-VNin*RT; /* wind gust model */ G1=D1*dt*exp(-D2*dt); G2=D3*erf(D4*dt); G3=D5*exp(-D6*dt)*sin(D7*dt); /* get u */ u = VM+G1+G2+G3;} /* assign X velocity */ begin_f_loop(f, thread) { F_PROFILE(f, thread, index) = u; } end_f_loop(f, thread) } |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Join Date: Nov 2009
Posts: 411
Rep Power: 20 ![]() |
I suppose you are on a Windows system ? If yes the erf function is not implemented in math.h . So basically you will need to implement a custom version of erf in your UDF function.
If you are on Linux erf should be already defined in math.h so you need to search for the error in a different place. Do |
|
![]() |
![]() |
![]() |
![]() |
#3 |
Member
Ivan
Join Date: May 2009
Posts: 85
Rep Power: 17 ![]() |
(post here again to make sure you can see my response)
Thank you so much for replying. I run Fluent on Linux. I searched the src folder (it contains the udf.h file) for the file math.h and did NOT find it. If I have to implement a custom version of erf, how to do it? I checked the UDF manual, it says "C compilers include a library of standard mathematical and I/O functions", but it does not say what if I want to use a function like erf. |
|
![]() |
![]() |
![]() |
![]() |
#4 | |
New Member
Join Date: Mar 2009
Posts: 9
Rep Power: 17 ![]() |
Quote:
|
||
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
[swak4Foam] GroovyBC the dynamic cousin of funkySetFields that lives on the suburb of the mesh | gschaider | OpenFOAM Community Contributions | 300 | October 29, 2014 19:00 |
Urgent, Urgent, a UDF problem, PLEASE HELP!!! | Max | FLUENT | 1 | September 24, 2010 21:30 |
Urgent! UDF error "implicit declaration of function" | ivanbuz | FLUENT | 13 | June 17, 2010 19:11 |
DecomposePar links against liblamso0 with OpenMPI | jens_klostermann | OpenFOAM Bugs | 11 | June 28, 2007 18:51 |
URGENT ! UDF ERROR! | Prateep Chatterjee | FLUENT | 6 | October 16, 2001 20:20 |