# swak4Foam - Possible to sum across different patches?

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

 September 16, 2013, 09:35 swak4Foam - Possible to sum across different patches? #1 Senior Member   Anne Gerdes Join Date: Aug 2010 Location: Hamburg Posts: 168 Rep Power: 8 Dear Foamers, I hope this question doesn't already exist in the forum. I would like to calculate an average value which should be evaluated over different patches. Is it possible to do this with swak4foam? Furthermore I would like to compute the difference on each patch to this (global) average value. So far I am able to evaluate the expressions seperately, i.e. I am computing the average value on patch1, compute the difference of my variable (temperature) to this value on patch 1, and I am doing the same for the other patches. It would be great if I could compute an expression like this HTML Code: gAv= \sum_{Outlet j} \sum{i \in Outlet_j} T_i A_i /A(Outlet j) and compute the difference at each patch seperately HTML Code: \sum_{i \in Outlet j} (T_i A_i - gAv) I hope that this is understandable. Thank you very much in advance for an answer or sharing your experiences. Kind Regards Anne

September 16, 2013, 15:41
#2
Assistant Moderator

Bernhard Gschaider
Join Date: Mar 2009
Posts: 3,984
Rep Power: 41
Quote:
 Originally Posted by Anne Lincke Dear Foamers, I hope this question doesn't already exist in the forum. I would like to calculate an average value which should be evaluated over different patches. Is it possible to do this with swak4foam? Furthermore I would like to compute the difference on each patch to this (global) average value. So far I am able to evaluate the expressions seperately, i.e. I am computing the average value on patch1, compute the difference of my variable (temperature) to this value on patch 1, and I am doing the same for the other patches. It would be great if I could compute an expression like this HTML Code: gAv= \sum_{Outlet j} \sum{i \in Outlet_j} T_i A_i /A(Outlet j) and compute the difference at each patch seperately HTML Code: \sum_{i \in Outlet j} (T_i A_i - gAv) I hope that this is understandable. Thank you very much in advance for an answer or sharing your experiences. Kind Regards Anne
Yep. It is possible with external variables. Assuming you have tow patches called here and there
Code:
variables (
"sumHere{here}=sum(T*area());"
"sumThere{there}=sum(T*area());"
"areaHere{here}=sum(area());"
"areaThere{there}=sum(area());"
"totalAverage=(sumHere+sumThere)/(areaHere+areaThere);"
);
then use the totalAverage in the expression you're actually calculating. If you're only working on patch here you could leave out the {here} but the way it is written above it should work for both patches and you can save yourself some typing with the dictionary-include.
__________________
Note: I don't use "Friend"-feature on this forum out of principle. Ah. And by the way: I'm not on Facebook either. So don't be offended if I don't accept your invitation/friend request

 September 17, 2013, 03:27 #3 Senior Member   Anne Gerdes Join Date: Aug 2010 Location: Hamburg Posts: 168 Rep Power: 8 Dear Bernhard, thank you very much for the fast reply! I will try to make this evaluation run with your instructions as soon as possible. Best Regards Anne

 July 22, 2016, 10:41 #4 Member   Manu Chakkingal Join Date: Feb 2016 Location: Delft, Netherlands Posts: 87 Rep Power: 2 Dear Bernard I have two patches (w_l,w_lb --> both of them of different area and mesh distribution) and I want to find combined nusselt No. for them. When I do the below it crashes: -------------------------------------------------------------- Test234 { type patchExpression; patches ( w_l w_lb ); verbose true; variables ( "Tsat=300;" "lc2D=0.0786;" "sumHere{w_l}=sum(snGrad(T)*area()/(T-Tsat);" /*"dtwl{w_l}=T-Tsat;" "dtwlb{w_lb}=T-Tsat;"*/ "sumThere{w_lb}=sum(snGrad(T)*area()/(T-Tsat));" "areaHere{w_l}=sum(area());" "areaThere{w_lb}=sum(area());" "totalAverage=(sumHere+sumThere)/(areaHere+areaThere);"*/ ); expression "totalAverage"; accumulations ( max min average sum ); ------------------------------------------------------------------ But when I try to debug and remove the division by (T-Tsat) it runs ,but not what I need.. ---------------------------------------------------------------------------- Test234 { type patchExpression; patches ( w_l w_lb ); verbose true; variables ( "Tsat=300;" "lc2D=0.0786;" "sumHere{w_l}=sum(snGrad(T)*area());" /*"dtwl{w_l}=T-Tsat;" "dtwlb{w_lb}=T-Tsat;"*/ "sumThere{w_lb}=sum(snGrad(T)*area());" "areaHere{w_l}=sum(area());" "areaThere{w_lb}=sum(area());" "totalAverage=(sumHere+sumThere)/(areaHere+areaThere);"*/ ); expression "totalAverage"; accumulations ( max min average sum ); ----------------------------------------------------------------- Also it creates 2 output files w_l and w_lb .Is this expected Could you please comment on it.. My scenario: A wall cut into two patches so that I could use one of the as inlet for flow if needed.At present both considered as wall. So I want Nusselt number at the whole wall and I need averaging over both patches. __________________ Regards Manu

 July 26, 2016, 04:39 #5 Senior Member   Anne Gerdes Join Date: Aug 2010 Location: Hamburg Posts: 168 Rep Power: 8 Hey Manu, have you tried to just replace Tsat by the constant value, i.e. 300? Maybe the coder has problems to detect the variable Tsat inside the variable definition part..... Best, Anne

 July 26, 2016, 07:15 #6 Member   Manu Chakkingal Join Date: Feb 2016 Location: Delft, Netherlands Posts: 87 Rep Power: 2 Hello Anne I did try that,but doesnt work.Bye the way when used only for a single patch the same piece of file works.But when I try to find avg. of two patches it fails. __________________ Regards Manu

July 26, 2016, 07:19
#7
Senior Member

Anne Gerdes
Join Date: Aug 2010
Location: Hamburg
Posts: 168
Rep Power: 8
Quote:
In the expression above one bracket is missing. Maybe this is the error?!

 July 26, 2016, 07:44 #8 Member   Manu Chakkingal Join Date: Feb 2016 Location: Delft, Netherlands Posts: 87 Rep Power: 2 Nope: I tried that the error reported is: Build : 2.4.0-dcea1e13ff76 Exec : DNSbuoyantBoussinesqPimpleFoam -parallel Date : Jul 26 2016 Time : 13:43:04 Host : "n11-40" PID : 24612 Case : /home/manuchakkingal/OpenFOAM/manuchakkingal-2.4.0/run/2d_NC_porous_4_by_4_Ra_10_6 nProcs : 4 Slaves : 3 ( "n11-40.24613" "n11-40.24614" "n11-40.24615" ) Pstream initialized with: floatTransfer : 0 nProcsSimpleSum : 0 commsType : nonBlocking polling iterations : 0 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster allowSystemOperations : Allowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time -------------------------------------------------------------------------- MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD with errorcode 1. NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes. You may or may not see output from other processes, depending on exactly when Open MPI kills them. -------------------------------------------------------------------------- __________________ Regards Manu

 July 26, 2016, 07:46 #9 Senior Member   Anne Gerdes Join Date: Aug 2010 Location: Hamburg Posts: 168 Rep Power: 8 Looks as if there might be a division by zero....

 July 26, 2016, 07:47 #10 Member   Manu Chakkingal Join Date: Feb 2016 Location: Delft, Netherlands Posts: 87 Rep Power: 2 I will check it "for division by zero"..Thanks __________________ Regards Manu

 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 danny123 OpenFOAM Programming & Development 8 September 6, 2013 02:34 xiuying OpenFOAM Running, Solving & CFD 8 August 27, 2013 15:33 bookie56 OpenFOAM Installation 8 August 13, 2011 04:03 msrinath80 OpenFOAM Running, Solving & CFD 9 July 22, 2007 02:58 liugx212 OpenFOAM Running, Solving & CFD 3 January 4, 2006 19:07

All times are GMT -4. The time now is 12:22.