# Mass Weighted Average

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

December 11, 2012, 14:40
Mass Weighted Average
#1
Member

Brock Lee
Join Date: Sep 2012
Location: Midwest
Posts: 38
Rep Power: 6
Hey guys, I'm looking to calculate a mass weighted average over a faceZone for pressure using swak4foam. Specifically, this is the equation I'm trying to implement...

Capture.PNG

My question comes when trying to implement. Is it possible in swak4foam to divide a sum by a sum within one expression? Can I do two sums separately and divide them? So far I've only seen expressions that can do one accumulation, such as the one below for mass flow rate...

Code:
```mass-in
{
type swakExpression;
valueType faceZone;
zoneName interior-inlet-1;
expression "phi*flip()";
accumulations (
sum
);
verbose true;
autoInterpolate	true;
}```
Also, (if possible) what is the syntax for getting the absolute value and dot product within a swakExpression? Thanks in advance!
Attached Images
 Capture.jpg (10.7 KB, 23 views)

 December 11, 2012, 18:32 #2 Member   Brock Lee Join Date: Sep 2012 Location: Midwest Posts: 38 Rep Power: 6 Ok, I think I found an equivalent expression. The following function I believe does what I need it to do... Code: ```p_stat2 { type swakExpression; valueType faceZone; zoneName interior-inlet-1; expression "(p*phi*flip())/sum(phi*flip())"; accumulations ( sum ); verbose true; autoInterpolate true; }``` However, I would still be interested in knowing if you can perform a dot product or an absolute value within a swakExpression? Also, does anyone know if when you have backflow on a face, does it register as negative mass flow using the phi*flip() formulation? Last edited by GRAUPS; December 12, 2012 at 13:37.

December 12, 2012, 19:48
#3
Assistant Moderator

Bernhard Gschaider
Join Date: Mar 2009
Posts: 3,971
Rep Power: 41
Quote:
 Originally Posted by GRAUPS Ok, I think I found an equivalent expression. The following function I believe does what I need it to do... Code: ```p_stat2 { type swakExpression; valueType faceZone; zoneName interior-inlet-1; expression "(p*phi*flip())/sum(phi*flip())"; accumulations ( sum ); verbose true; autoInterpolate true; }``` However, I would still be interested in knowing if you can perform a dot product or an absolute value within a swakExpression? Also, does anyone know if when you have backflow on a face, does it register as negative mass flow using the phi*flip() formulation?
Dot product is according to the conventions of OpenFOAM the &-operator.

Yes. You should get the correct backflow if you use flip() (the sign of phi depends on the orientation of the face. Multiplying with flip() "removes" that dependence)
__________________
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

December 12, 2012, 20:34
#4
Member

Brock Lee
Join Date: Sep 2012
Location: Midwest
Posts: 38
Rep Power: 6
Quote:
 Originally Posted by gschaider Dot product is according to the conventions of OpenFOAM the &-operator.
Awesome, thank you. And using the mag() function on a scalar I found is basically the equivalent of taking the absolute value.

Quote:
 Originally Posted by gschaider Yes. You should get the correct backflow if you use flip() (the sign of phi depends on the orientation of the face. Multiplying with flip() "removes" that dependence)
Fantastic, just wanted to make sure. Thanks for your replies.

 November 26, 2015, 05:51 #5 New Member   Join Date: Jul 2013 Posts: 8 Rep Power: 5 Dear Foamers, I want to use groovybc, in order to create a T bc for a reciculation device. To do this I have do calculate the mass-flux-weighted temperature of a face. I use the following code: PHP Code: ```     Auslasslinks_1_5    {        type            groovyBC;        valueExpression "Tein";    variables    "massenstrom=1;Taus{Ansaug_3}=sum(T*phi)/sum(phi);cp=1007;Qdot=100;Tein=Taus-Qdot/(massenstrom*cp);";    fractionExpression "1";        value           uniform 300;        refValue        \$value;    }  ``` Unfurtunately this bc doesn't work and my simulation crashes because of the Taus{Ansaug_3} calculation. If I calculate a faceweighted temperature instead of the mass flux weighted temperature for Taus{Ansaug_3} or if I use Taus instead of Taus{Ansaug_3}, the simulation runs. So my question: Is this a bug in groovybc or is there a bug in my code? Thank's in advance

 Tags mass weighted average, swak4foam, swakexpression

 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 SAM Main CFD Forum 24 July 8, 2015 06:15 giogio FLUENT 4 September 25, 2012 01:36 m&s FLUENT 0 April 6, 2010 11:52 Maryam FLUENT 0 November 12, 2008 08:06 Maryam CFX 0 November 12, 2008 08:03

All times are GMT -4. The time now is 18:50.