# [swak4Foam] what does this swak function of average on average mean?

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

 May 2, 2013, 15:12 what does this swak function of average on average mean? #1 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,208 Rep Power: 21 I've found this function in an thesis.is it correct? because it has defined an average of total pressure on the patch at each time step and in accumulations it uses average again.what does average do in this case?is it a correct method to get average on a patch? Code: ```Total-pressuresec9outlet { functionObjectLibs("libsimpleSwakFunctionObjects.so”); type swak Expression ; outputControl outputTime ; valueType faceZone ; zoneName sec9 outlet ; expression ”sum((0.5∗rho*pow(mag(U),2)+p)∗(area()∗rho))/(sum(area()∗rho))”; accumulations ( average ); verbose true ; autoInterpolate true ; warnAutoInterpolate false ; }``` __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked. Last edited by immortality; May 2, 2013 at 15:32.

 May 2, 2013, 22:16 #2 Super Moderator   Bruno Santos Join Date: Mar 2009 Location: Lisbon, Portugal Posts: 10,797 Blog Entries: 42 Rep Power: 118 Hi Ehsan, Mmm... after thinking a bit about this, I think I can explain what happened: The current accumulation in your example only averages a single value. Therefore, the average of a single value is that same value. The author probably started the function object like this: Code: ```Total-pressuresec9outlet { functionObjectLibs("libsimpleSwakFunctionObjects.so”); type swakExpression; outputControl outputTime; valueType faceZone; zoneName sec9outlet; expression ”0.5∗rho*pow(mag(U),2)+p”; accumulations ( average ); verbose true ; autoInterpolate true ; warnAutoInterpolate false ; }``` In other words, by using the standard average mechanism that swak4Foam provides. Problem was that this value wasn't the average that the author was looking for. So, the next step was to do the average manually, just to make sure things still worked as before: Code: ```Total-pressuresec9outlet { functionObjectLibs("libsimpleSwakFunctionObjects.so”); type swakExpression; outputControl outputTime; valueType faceZone; zoneName sec9outlet; expression ”sum((0.5∗rho*pow(mag(U),2)+p)*area())/sum(area())”; accumulations ( average ); verbose true ; autoInterpolate true ; warnAutoInterpolate false ; }``` This should be able to perform the same averaging methodology that is used by swak4Foam. And now, as for the final step, I'm going to ask you Ehsan: Why do you think the author used "area()*rho()" instead of "area()"? Best regards, Bruno

 May 3, 2013, 05:47 #3 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,208 Rep Power: 21 I think its because the flow has been compressible.correct? this way the average will be more accurate(because of variation of density I think),is it true? if the mesh is uniform then I think there is no need to sum on area manually,am i correct?! __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked.

May 3, 2013, 12:20
#4
Super Moderator

Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,797
Blog Entries: 42
Rep Power: 118
Quote:
 Originally Posted by immortality I think its because the flow has been compressible.correct? this way the average will be more accurate(because of variation of density I think),is it true?
Yes and yes.
Although I was thinking more along the lines of "mass weighted average" - an even better description on this topic can be found on this thread: http://www.cfd-online.com/Forums/mai...d-average.html - specially on post #20!

Quote:
 Originally Posted by immortality if the mesh is uniform then I think there is no need to sum on area manually,am i correct?!
As someone once said: better safe than sorry.
It's better to use the area no matter what, to avoid any unpleasant surprises, in case you change the mesh and forget to update this calculation.
__________________

 May 3, 2013, 13:52 #5 Senior Member     Ehsan Join Date: Oct 2012 Location: Iran Posts: 2,208 Rep Power: 21 ok.but I think its more satisfying to have min and max as well as true average of a variable field on a plane. how can I change the function below to have min,max an true average(if I change mesh that I'm going to!)in a single function(so that no more complexity be added to poor controlDict!) is it possible in your opinion? Code: ```sP_h2_velocity { type swakExpression; valueType surface; surfaceName horizontal_Plane_2; verbose true; surface { type plane; basePoint (0.0345 0.002 0); normalVector (0 1 0); interpolate true; } expression "mag(U)"; accumulations ( min max average ); }``` __________________ Injustice Anywhere is a Threat for Justice Everywhere.Martin Luther King. To Be or Not To Be,Thats the Question! The Only Stupid Question Is the One that Goes Unasked.

April 25, 2019, 09:32
#6
New Member

Martin
Join Date: Aug 2018
Posts: 29
Rep Power: 2
I got error because of different multiplication signs in this quoted expression:
Quote:
 expression ”sum((0.5∗rho*pow(mag(U),2)+p)∗(area()∗rho))/(sum(area()∗rho))”;
when I replaced big asterisks with normal ones (*) the error was gone. So:
Code:
`expression ”sum((0.5*rho*pow(mag(U),2)+p)*(area()*rho))/(sum(area()*rho))”`