problem with Define_on_demand
dear all,
this is my code: #include"udf.h" #include"dpm.h" #include"surf.h" int num_injection = 4; DEFINE_ON_DEMAND(initalize_udmis) { Domain *d=Get_Domain(1); Thread *tc; cell_t c; int injno = 0; /* Init UDM */ if(injno < num_injection) { thread_loop_c(tc,d){ begin_c_loop(c,tc) { C_UDMI(c,tc,injno)=0; } end_c_loop(c,tc) } injno++; } } when i use this code for initializing the User defined memories (i already put the UDM limit to 10); i get segmentation violation. why is this so ? can you help me to avoid this problem. sincerely. |
Hi,
unfortunately I can not help you with your problem, but I'm experiencing exactly the same problem. I'm using DEFINE_ON_DEMAND and the UDM brings up a segmentation violation. I'm using FLUENT under Linux AMD 64, what are you using? regards |
Hi again,
I found the solution in this thread: http://www.cfd-online.com/Forums/flu...violation.html I don't know why it works this way, but it works.... So You have to display the UDM in the contours before executing the UDF! cheers |
dear sir,
thank you for this very important message and for letting me know the work-around. sincerely. |
i still have problems with the UDF.
the initialization works. however, the simulation crashes with: Error: > (greater-than): invalid argument [2]: wrong type [not a number] Error Object: nan the UDF is related to the discrete model. can anyone give some clue what is wrong ? best wishes. |
Hi there, I have the same problem now.... same error, did you find any solution?
cheers |
dear sir,
i had since then modfied the code. the nan however when something in denominator goes 0 or you have a negative exponent. if you look into those areas, may be it can solve your problem. i will look of i can help you with this any further if you can paste the code snippet. good luck. |
All times are GMT -4. The time now is 22:47. |