CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (https://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   Writing a if loop in the blockMeshDict file (https://www.cfd-online.com/Forums/openfoam-programming-development/201066-writing-if-loop-blockmeshdict-file.html)

eroussel April 20, 2018 11:39

Writing a if loop in the blockMeshDict file
 
Dear all,

I want to create a if loop in my definition of the inlet, so that it changes according to a user defined Wind Direction.

I keep running into errors, and just keep asking why this simple code doesn´t work. I try adding ForAll command, also #Codestream command without no effects.
I´m a beginner with OPenFoam, my problem may seem obvious but I´m however yet not able to solve it.

Here is the code :
/*--------------------------------*- C++ -*----------------------------------*\

| o | |

| o o | HELYX-OS |

| o O o | Version: v2.2.0 |

| o o | Web: http://www.engys.com |

| o | |

\*---------------------------------------------------------------------------*/

FoamFile

{
version 2.0;
format ascii;
class dictionary;
location system;
object blockMeshDict;
}

/*Parameters*/
D 20;/*Size of the buildings*/
M 10;/*Length btw inlet and the buildings*/
Wind 0;/*Wind Direction : from 0 to 315 with a path of 45*/
L #calc "$D*$M";/*Lenght of the Backgroundmesh*/

string FacesInlet;


convertToMeters 1;
backgroundMesh
{
x1 #calc "-1.0*$L*cos(0.393)";
x2 #calc "-1.0*$L*cos(3*0.393)";
x3 0;
x4 #calc "$L*cos(3*0.393)";
x5 #calc "$L*cos(0.393)";
y1 #calc "-1.0*$L*cos(0.393)";
y2 #calc "-1.0*$L*cos(3*0.393)";
y3 0;
y4 #calc "$L*cos(3*0.393)";
y5 #calc "$L*cos(0.393)";
zMin 0;
zMax 50;
xCells 50;
yCells 50;
zCells 15;
}
vertices
(
($:backgroundMesh.x1 $:backgroundMesh.y2 $:backgroundMesh.zMin)
($:backgroundMesh.x1 $:backgroundMesh.y4 $:backgroundMesh.zMin)
($:backgroundMesh.x2 $:backgroundMesh.y5 $:backgroundMesh.zMin)
($:backgroundMesh.x4 $:backgroundMesh.y5 $:backgroundMesh.zMin)
($:backgroundMesh.x5 $:backgroundMesh.y4 $:backgroundMesh.zMin)
($:backgroundMesh.x5 $:backgroundMesh.y2 $:backgroundMesh.zMin)
($:backgroundMesh.x4 $:backgroundMesh.y1 $:backgroundMesh.zMin)
($:backgroundMesh.x2 $:backgroundMesh.y1 $:backgroundMesh.zMin)
($:backgroundMesh.x3 $:backgroundMesh.y3 $:backgroundMesh.zMin)
($:backgroundMesh.x1 $:backgroundMesh.y2 $:backgroundMesh.zMax)
($:backgroundMesh.x1 $:backgroundMesh.y4 $:backgroundMesh.zMax)
($:backgroundMesh.x2 $:backgroundMesh.y5 $:backgroundMesh.zMax)
($:backgroundMesh.x4 $:backgroundMesh.y5 $:backgroundMesh.zMax)
($:backgroundMesh.x5 $:backgroundMesh.y4 $:backgroundMesh.zMax)
($:backgroundMesh.x5 $:backgroundMesh.y2 $:backgroundMesh.zMax)
($:backgroundMesh.x4 $:backgroundMesh.y1 $:backgroundMesh.zMax)
($:backgroundMesh.x2 $:backgroundMesh.y1 $:backgroundMesh.zMax)
($:backgroundMesh.x3 $:backgroundMesh.y3 $:backgroundMesh.zMax)
);
blocks
(
hex (0 8 2 1 9 17 11 10)
(
$:backgroundMesh.xCells
$:backgroundMesh.yCells
$:backgroundMesh.zCells
)
simpleGrading (1 1 1)
hex (2 8 4 3 11 17 13 12)
(
$:backgroundMesh.xCells
$:backgroundMesh.yCells
$:backgroundMesh.zCells
)
simpleGrading (1 1 1)
hex (4 8 6 5 13 17 15 14)
(
$:backgroundMesh.xCells
$:backgroundMesh.yCells
$:backgroundMesh.zCells
)
simpleGrading (1 1 1)
hex (6 8 0 7 15 17 9 16)
(
$:backgroundMesh.xCells
$:backgroundMesh.yCells
$:backgroundMesh.zCells
)
simpleGrading (1 1 1)
);

edges
(
);

boundary

(

inlet
{

type patch;
faces
(
/* {
forAll(Wind) */
{
if (Wind == 0)
{
FacesInlet = "(7 16 9 0) (0 9 10 1) (1 10 11 2)"
}
else if (Wind == 90)
{
FacesInlet = "(1 10 11 2) (2 11 12 3) (3 12 13 4)"
}
else if (Wind == 180)
{
FacesInlet = "(3 12 13 4) (4 13 14 5) (5 14 15 6)"
}
else if (Wind == 270)
{
FacesInlet = "(5 14 15 6) (6 15 16 7) (7 16 9 0)"
}
}
return FacesInlet;
/* } */
);
}


outlet
{
type patch;
faces
(
(4 13 14 5)
(3 12 13 4)
(5 14 15 6)
);
}



ground
{
type wall;
faces
(
(0 1 2 8)
(2 3 4 8)
(4 5 6 8)
(6 7 0 8)
);
}


frontAndBack
{
type symmetry;
faces
(
(9 17 11 10)
(11 17 13 12)
(13 17 15 14)
(15 17 9 16)
(2 11 12 3)
(6 15 16 7)
);


}
);
mergePatchPairs();


And here is my error :

--> FOAM FATAL IO ERROR:
incorrect first token, expected '(', found on line 1 the punctuation token '{'

file: .inlet.faces at line 1.

From function Foam::Istream& Foam::operator>>(Foam::Istream&, Foam::List<T>&) [with T = int]
in file /home/ubuntu/OpenFOAM/OpenFOAM-4.1/src/OpenFOAM/lnInclude/ListIO.C at line 131.

Thank you in advance for any help 😊


All times are GMT -4. The time now is 09:24.