A Problem of Fluent Interpreted UDF: parse error
Hello guys!
I am a newly learner of Fluent, I got some problems with my UDF file when I compiled it in Fluent. I don't want to bother you, while I really searched everywhere but didn't find a good solution. I hope someone could help me my fluent path: C:\Fluent.Inc\fluent\ntbin\ntx86\fluent.exe -r6.2.16 Model exported by GAMBIT path: E:\dissertation\fluent模型\2010-2-5\A11\a11.msh Udf file(it is a peroidical velocity inlet) E:\dissertation\fluent模型\2010-2-5\A11\velocity2.c run FLUENT, READ CASE--A11.MSH,Done! Then,DEFINE--UDF---INTERPRETED UDF---velocity2.c It is reported that: cpp -IC:\Fluent.Inc\fluent\fluent6.2.16/src -IC:\Fluent.Inc\fluent\fluent6.2.16/cortex/src -IC:\Fluent.Inc\fluent\fluent6.2.16/client/src -IC:\Fluent.Inc\fluent\fluent6.2.16/multiport/src -I. -DUDFCONFIG_H="<udfconfig.h>" E:\dissertation\fluen 模型\2010-2-5\A11\velocity2.c Error: E:\dissertation\fluent模型\2010-2-5\A11\velocity2.c: line 1: parse error. It's said that there is one PARSE ERROR in line 1,then I opened this velocity.c in VC++ ----------------------------------------------------------------------- #include "udf.h" #include "stdio.h" #include "math.h" #include "stdlib.h" DEFINE_PROFILE(inlet_velocity1, thread, i) { Domain *domain; Thread *f_thread ; face_t f; float time; // float inlet_d=0.397e-3; // float ave_v=1.0; // x0=-0.528e-3; // y0=0.00000; // z0=0.00000; time=CURRENT_TIME; begin_f_loop(f, thread) { F_PROFILE(f, thread, i) = abs(0.003*sin(2*6.283*time)); } end_f_loop(f, thread) } ---------------------------------------------------------------------- When compiling, VC said: e:\dissertation\fluent模型\2010-2-5\a11\velocity2.c(1) : fatal error C1083: Cannot open include file: 'udf.h': No such file or directory error when running cl.exe I remember there is no need to compile udf in VC. Just compiling it in fluent is Ok, because fluent will find the udf.h in its directory. But it seems my Fluent wouldn't cooperate. It turned the error to my velocity.c :( Expecting help! Sincerely thanks Knight |
I am facing in the same problem.. can someone please help..
|
Quote:
try again. |
math.h stdio.h stdlib.h udf.h in UDFs of FLUENT
This thread is old, but I faced similar problem and found this thinking the way out would have been discussed.
The way round would be to use this header only #include "udf.h" and leave out these headers: #include "stdio.h" #include "math.h" #include "stdlib.h" udf.h defines most of what is needed. Hope this helps someone else. |
make sure you include the full path to the file when you select the file through 'browse'. same goes for udf_library in build during compiling
|
Thank you very much Galileo, you save me!!
|
I need to use Bessel functions and complex numbers in my udf to set womersley profile in the inlet, when I leave only #include "udf.h" in the header Fluent can't interpret my udf. How can I cope with this problem?
|
Quote:
I am not quite clear with what you want to do, but for you to get help, you need to post more details. For example, you need to say what the error is; are you interpreting or compiling; how complex numbers will work in a BC. Unless you are using one of the parts of a complex number, it will be difficult to code z=a+ib.. You need to be able to express the problem in simple equation or the form the equation will take. |
Quote:
Now, my problem is solved, I did the thing I was trying to avoid, I wrote my udf without using imaginary numbers and Bessel functions. |
感觉使用udf.h就可以满足需求
|
salam
because u used a space before include
|
error while building udf
I am getting error while compiling udf in fluent 13.0.0
error is module machine type 'x64' conflicts with target machine type 'X86' please help please.... |
Parse error
Sir,
Sir, I tried to work out an example in LNA in ANSYS tool . I got the result.But if i replace it by a HEMT model i get the parse error as Cant interpret this device.Please provide me a solution so that it would be helpful for me to arrive at good solutions. |
"error:E:fluent/volume.c;line 28 parse error." The udf are as follows:
Quote:
Hi,nnvoro,I meet the same problem,can you help me?this is my problems. when I interpret the udf to the fluent,it gives errors "error:E:fluent/volume.c;line 28 parse error." The udf are as follows: /************************************************** ********************* udfexample.c UDF for specifying volume profile boundary condition ************************************************** **********************/ #include "udf.h" DEFINE_PROFILE(inlet_volume, thread, position) { real x[ND_ND]; /* this will hold the position vector */ real y, h; face_t f; h = -0.0009; /* inlet height in m */ begin_f_loop(f,thread) { F_CENTROID(x, f, thread); y = x[1]; if (y<h) { F_PROFILE(f, thread, position) =1; } else { F_PROFILE(f, thread, position) =0; } end_f_loop(f, thread) } |
Dear Zhihuawan,
You start the face loop with "begin_f_loop(f,thread) {", so you need to end it with "} end_f_loop(f,thread)" -- note the closing "}", which is currently missing. I would highly recommend that everyone trying to write UDFs (or other code) uses a text editor that indents automatically, and that shows matching pairs of opening brackets/braces/parentheses/etc. If you don't have time to learn vim or emacs, try Notepad++ and look for auto-indent. Also, this thread is about interpreted UDFs. I would highly recommend using compiled UDFs unless your sys-admins make it completely impossible. Interpreted UDFs are very restricted (and probably slow, though I have never tested this). Best regards, Ed |
[QUOTE=obscureed;678284]Dear Zhihuawan, You start the face loop with "begin_f_loop(f
Quote:
Thank you very much .I solve my problem by your idea. but I have some questions: (1)I want to send you the udf files, but I do not know how. (2)I also want to compile it ,but it failed ,should I change the udf to be a compiled udf.How can do it ? (3)Can you tell me what should learn if I want to master the udf prgramming. Thank you very much. |
This is the pictures about my udf and error tips.
2 Attachment(s)
Quote:
Attachment 60866 Attachment 60867 |
Quote:
You should see a warning about line 12 or 13. The code that you used is slightly different from the code that you posted on this forum. |
[QUOTE=pakk;678527]Please show the error that you get when you try to compile the udf
Quote:
|
Quote:
|
All times are GMT -4. The time now is 06:19. |