
[Sponsors] 
February 1, 2010, 15:26 
Obtain equation residuals in UDF

#1 
New Member
Robert Bressan
Join Date: Feb 2010
Posts: 1
Rep Power: 0 
Hello!
I'm writing an UDF that makes an optimization. So every iteration, it must check if there was convergence in the solver, so I can make the proper changes in my profiles. Is there a way to return the current solver residuals? Regards, Robert 

February 9, 2010, 08:20 

#2 
Senior Member
Dragos
Join Date: Mar 2009
Posts: 648
Rep Power: 12 
Well not in udf but here is a scheme line that gives you the residuals for the specified or current iteration (see also Wiki Fluent Scheme):
Code:
(getresidualnormsat 1001) (solverresiduals) 

March 9, 2010, 04:06 

#3  
Senior Member
Ji Junjie
Join Date: Feb 2010
Location: Shanghai, China
Posts: 108
Rep Power: 8 
Quote:
#include "udf.h" DEFINE_ON_DEMAND(residual_list) { int nw; real scaled_res; Domain*domain=Get_Domain(1); for(nw=0; nw<MAX_EQNS; ++nw) { if(strlen(DOMAIN_EQN_LABEL(domain,nw))>0) { if(0==DOMAIN_RES_SCALE(domain,nw)[nres1]) DOMAIN_RES_SCALE(domain,nw)[nres1]=1; scaled_res=DOMAIN_RES(domain,nw)[nres1]/DOMAIN_RES_SCALE(domain,nw)[nres1]; Message("%s equation,residual=%g\n",DOMAIN_EQN_LABEL(domain,nw ),scaled_res); } } } 

March 9, 2010, 04:34 
What is nres?

#4 
Senior Member
Dragos
Join Date: Mar 2009
Posts: 648
Rep Power: 12 
Hi Ji,
Nice to see some undocumented macros at use, but what is 'nres' variable representing? 

March 9, 2010, 23:25 

#5 
Senior Member
Ji Junjie
Join Date: Feb 2010
Location: Shanghai, China
Posts: 108
Rep Power: 8 

April 1, 2012, 02:49 

#6 
New Member
Small Mayi
Join Date: Nov 2011
Posts: 26
Rep Power: 6 
Dear my friends.Now, a similar problem I had come acrossed when edit a udf, while i copy this code and then try to compile as executable progame, an issue come out, the fluent tell me that subscript required array or poiter types. I think it maybe caused by the nres. Who can tell me how to treat it. I only want to obtain the residuals on the current time in my udf.
If anybody could have the same question and have solve it,please help me. Thank you. 

April 1, 2012, 03:02 
...post the error

#7 
Senior Member
Dragos
Join Date: Mar 2009
Posts: 648
Rep Power: 12 
Could you post the error you get not from your own memory, but from the computer screen?


April 1, 2012, 03:11 

#8  
New Member
Small Mayi
Join Date: Nov 2011
Posts: 26
Rep Power: 6 
Quote:
(system "copy "C:\PROGRA~1\ANSYSI~1\v130\fluent"\fluent13.0.0\sr c\makefile_nt.udf "libudf\win64\2ddp\makefile" ") 已复制 1 个文件。 (chdir "libudf")() (chdir "win64\2ddp")() # Generating ud_io1.h test2.c ..\..\src\test2.c(11) : error C2109: 下标要求数组或指针类型 ..\..\src\test2.c(12) : error C2109: 下标要求数组或指针类型 ..\..\src\test2.c(13) : error C2109: 下标要求数组或指针类型 ..\..\src\test2.c(13) : error C2109: 下标要求数组或指针类型 Done. "下标要求数组或指针类型/chinese" means "subscript requried arrays or pointer types" Thank you!! 

April 1, 2012, 10:08 

#9 
Senior Member
Dragos
Join Date: Mar 2009
Posts: 648
Rep Power: 12 
Is it possible to post the code? Apparently you're trying to use as array something that's not.


April 2, 2012, 09:47 

#10  
New Member
Small Mayi
Join Date: Nov 2011
Posts: 26
Rep Power: 6 
Quote:
I am very appreciated for your help. In order to avoid to determine the convergence in my udf according to the residuals, I had choosen another variable at the exit boundary ,and by monitoring its change to do the next work. 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
How to add a UDF to a compiled UDF library  kim  FLUENT  3  October 26, 2011 21:38 
udf temperature/velocity profile> equation problems  roka1mtr  FLUENT  2  August 25, 2009 04:44 
UDF Addidtional Force to momentum equation  sfawal  FLUENT  10  July 15, 2009 09:29 
UDF to switch on energy equation after X iteration  mat w  FLUENT  6  December 5, 2005 08:35 
DEFINE_DPM_OUTPUT macro UDF HELP  Puneet  FLUENT  3  November 28, 2003 11:55 