# Obtain equation residuals in UDF

 Register Blogs Members List Search Today's Posts Mark Forums Read

 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: 647 Rep Power: 11 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: ```(get-residual-norms-at 1001) (solver-residuals)```

March 9, 2010, 04:06
#3
Senior Member

Ji Junjie
Join Date: Feb 2010
Location: Shanghai, China
Posts: 106
Rep Power: 7
Quote:
 Originally Posted by robert.bressan 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
This is an example to print the residuals on the console.
#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)[nres-1])
DOMAIN_RES_SCALE(domain,nw)[nres-1]=1;
scaled_res=DOMAIN_RES(domain,nw)[nres-1]/DOMAIN_RES_SCALE(domain,nw)[nres-1];
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: 647 Rep Power: 11 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: 106
Rep Power: 7
Quote:
 Originally Posted by dmoroian Hi Ji, Nice to see some undocumented macros at use, but what is 'nres' variable representing?
nres is the current number of residuals.

April 1, 2012, 02:49
#6
New Member

Small Mayi
Join Date: Nov 2011
Posts: 26
Rep Power: 5
Quote:
 Originally Posted by gearboy nres is the current number of residuals.
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.

 April 1, 2012, 03:02 ...post the error #7 Senior Member     Dragos Join Date: Mar 2009 Posts: 647 Rep Power: 11 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: 5
Quote:
 Originally Posted by dmoroian Could you post the error you get not from your own memory, but from the computer screen?
Ok
(system "copy "C:\PROGRA~1\ANSYSI~1\v130\fluent"\fluent13.0.0\sr c\makefile_nt.udf "libudf\win64\2ddp\makefile" ")

(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: 647 Rep Power: 11 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: 5
Quote:
 Originally Posted by dmoroian Is it possible to post the code? Apparently you're trying to use as array something that's not.

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 Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post kim FLUENT 3 October 26, 2011 21:38 roka1mtr FLUENT 2 August 25, 2009 04:44 sfawal FLUENT 10 July 15, 2009 09:29 mat w FLUENT 6 December 5, 2005 08:35 Puneet FLUENT 3 November 28, 2003 11:55

All times are GMT -4. The time now is 08:56.