Sig Turbulence / channelBlocMeshDict

From OpenFOAMWiki
< Sig Turbulence
Revision as of 08:04, 4 June 2009 by Brugiere Olivier (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

// Parametrized the channel flow test case. // Version 1.0 Original files: C.Duprat, O.Brugiere and G.Balarac, LEGI laboratory. // 1.0 2009-06-04 C.Duprat, O.Brugiere and G.Balarac, LEGI laboratory.


//Run using: //m4 -P canalrectangulaireperiodic.m4 > blockMeshDict

//m4 definitions: m4_changecom(//)m4_changequote([,]) m4_define(calc, [m4_esyscmd(perl -e 'use Math::Trig; printf ($1)')]) m4_define(VCOUNT, 0) m4_define(vlabel, [[// ]Vertex $1 = VCOUNT m4_define($1, VCOUNT)m4_define([VCOUNT], m4_incr(VCOUNT))])

//Geometry

//Property of the channel y+ and Retau for Ub = 1 and half-width : delta = h/2 = 1 m4_define(Y+,50) m4_define(Retau,1020) m4_define(Y1,calc(Y+/Retau))

//Size m4_define(X, 12.8) m4_define(h, 2.0) m4_define(delta, calc(h/2.0)) m4_define(Z, 6.4 )

// mesh m4_define(nX, 50) m4_define(nYtot,40) //only even number m4_define(nY, calc((nYtot-2)/2)) m4_define(nZ, 38)

// refine mesh if a = 1 : regular mesh m4_define(a, 1) m4_define(b, calc(1/a))

/*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 1.4 | | \\ / A nd | Web: http://www.openfoam.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/

FoamFile {

   version         2.0;
   format          ascii;
   root            "";
   case            "";
   instance        "";
   local           "";
   class           dictionary;
   object          blockMeshDict;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices (

   (0 0 0)             vlabel(A0)      //  0
   (X 0 0)             vlabel(A1)
   (0 Y1 0)            vlabel(A2)
   (X Y1 0)            vlabel(A3)
   (0 delta 0)         vlabel(A4)
   (X delta 0)         vlabel(A5)      //  5
   (0 calc(h-Y1) 0)    vlabel(A6)
   (X calc(h-Y1) 0)    vlabel(A7)
   (0 h 0)             vlabel(A8)
   (X h 0)             vlabel(A9)
   (0 0 Z)             vlabel(A10)     // 10
   (X 0 Z)             vlabel(A11)
   (0 Y1 Z)            vlabel(A12)
   (X Y1 Z)            vlabel(A13)
   (0 delta Z)         vlabel(A14)
   (X delta Z)         vlabel(A15)     // 15
   (0 calc(h-Y1) Z)    vlabel(A16)
   (X calc(h-Y1) Z)    vlabel(A17)
   (0 h Z)             vlabel(A18)
   (X h Z)             vlabel(A19)

);

blocks (

   hex (A0 A1 A3 A2 A10 A11 A13 A12)
        (nX 1 nZ)
        simpleGrading (1 1 1)
   hex (A2 A3 A5 A4 A12 A13 A15 A14)
        (nX nY nZ)
        simpleGrading (1 a 1)
   hex (A4 A5 A7 A6 A14 A15 A17 A16)
        (nX nY nZ)
        simpleGrading (1 b 1)
   hex (A6 A7 A9 A8 A16 A17 A19 A18)
        (nX 1 nZ)
        simpleGrading (1 1 1)

);

edges ( );

patches (

   cyclic inout1
   (
       (A1 A3 A13 A11)
       (A0 A10 A12 A2)
       (A3 A5 A15 A13)
       (A2 A12 A14 A4)
   )
   cyclic inout2
   (
       (A5 A7 A17 A15)
       (A4 A14 A16 A6)
       (A7 A17 A19 A9)
       (A6 A16 A18 A8)
   )
   cyclic side1
   (
       (A0 A2 A3 A1)
       (A10 A11 A13 A12)
       (A2 A3 A5 A4)
       (A12 A13 A15 A14)
   )
   cyclic side2
   (
       (A4 A6 A7 A5)
       (A14 A15 A17 A16)
       (A6 A8 A9 A7)
       (A16 A17 A19 A18)
   )
   wall topWall
   (
       (A8 A18 A19 A9)
   )    wall bottomWall
   (
       (A0 A1 A11 A10)
   )

);

mergePatchPairs ( );

// ************************************************************************* //