# if-loop, volScalarField comparison

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

 April 19, 2010, 11:29 if-loop, volScalarField comparison #1 New Member   Volker Tritschler Join Date: Jan 2010 Posts: 20 Rep Power: 8 Hi all, I have a problem with a task, which seemed to be straight-forward to solve at first. I need to program an if-loop in order to compare one volScalarField (P1) to another one (P2), and for each grid point, where P1 >= P2, a certain value (d) has to be written to another volScalarField (N) at exactly the same grid point. I wrote something like: (a, b, c, d are placeholder for arbitrary volScalarFields) Code: ```volScalarField P1 = a; volScalarField P2 = b; volScalarField N = c; if (P1 >= P2) { N = d; } else { N = -d; }``` The problem is that the code in the actual version does not compare the values for every single grid point and hence does not write the value (d) to (N) for all the grid points where the logical expression is true (P1 >= P2). It's more that it just compares just one (the first?!) point of P1 with P2. Right now, I don't have any idea how to get rid of that problem, though it seems to be a very silly one. Thanks for any idea. greets, volker neeraj likes this.

 April 22, 2010, 00:30 #2 Senior Member   Alberto Passalacqua Join Date: Mar 2009 Location: Ames, Iowa, United States Posts: 1,910 Rep Power: 27 Hi, you have to loop over your cells to compare information in each point: Code: ```forAll(P1, cellI) { if (P1[cellI] > P2[cellI]) { N[cellI] = ... } else { ... } }``` Best, neeraj likes this. __________________ Alberto Passalacqua GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats. OpenQBMM - An open-source implementation of quadrature-based moment methods. To obtain more accurate answers, please specify the version of OpenFOAM you are using.

 April 22, 2010, 03:42 #3 New Member   Volker Tritschler Join Date: Jan 2010 Posts: 20 Rep Power: 8 hi alberto, so many thanks for your help!!! It worked great. I wasn't aware of that class 'cell'. Do you know if there is a way to loop over the boundary patches as well? best volker

April 22, 2010, 10:11
#4
Senior Member

Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,910
Rep Power: 27
Quote:
 Originally Posted by volker hi alberto, so many thanks for your help!!! It worked great. I wasn't aware of that class 'cell'.
It's not a class, it's just an index created locally by the forAll loop

Quote:
 Do you know if there is a way to loop over the boundary patches as well?
Yes, let's assume you want to loop over the boundaries of a field p:

Code:
```forAll(p.boundaryField(), patchi)
{
{
otherFieldA.boundaryField()[patchi] = 0.0;
otherFieldB.boundaryField()[patchi] = 0.0;
}
}```
Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats.
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.

 April 23, 2010, 13:02 #5 New Member   Volker Tritschler Join Date: Jan 2010 Posts: 20 Rep Power: 8 perfect, big thanks to you!

 April 23, 2010, 14:18 #6 Senior Member   Alberto Passalacqua Join Date: Mar 2009 Location: Ames, Iowa, United States Posts: 1,910 Rep Power: 27 You're welcome __________________ Alberto Passalacqua GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats. OpenQBMM - An open-source implementation of quadrature-based moment methods. To obtain more accurate answers, please specify the version of OpenFOAM you are using.

 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 nishant_hull Open Source Meshers: Gmsh, Netgen, CGNS, ... 23 August 5, 2015 02:09 juho OpenFOAM Running, Solving & CFD 4 June 17, 2011 09:51 rcastilla OpenFOAM Meshing & Mesh Conversion 2 January 6, 2010 02:30 MHDWill FLUENT 0 September 26, 2007 21:24 Franny Main CFD Forum 13 July 7, 2007 15:57

All times are GMT -4. The time now is 01:20.