/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  14
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    location    "system";
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

centre      $../constant/dynamicMeshDict!mover/bodies/beam/centreOfMass;
span        (10 4 4);
divisions   (50 20 40);

vertices #codeStream
{
    code
    #{
        const vector& centre = $<vector>centre;
        const vector& span = $<vector>span;

        List<vector> vertices(8);
        vertices[0] = cmptMultiply(vector(-1, -1, -1), span/2) + centre;
        vertices[1] = cmptMultiply(vector(+1, -1, -1), span/2) + centre;
        vertices[2] = cmptMultiply(vector(+1, +1, -1), span/2) + centre;
        vertices[3] = cmptMultiply(vector(-1, +1, -1), span/2) + centre;
        vertices[4] = cmptMultiply(vector(-1, -1, +1), span/2) + centre;
        vertices[5] = cmptMultiply(vector(+1, -1, +1), span/2) + centre;
        vertices[6] = cmptMultiply(vector(+1, +1, +1), span/2) + centre;
        vertices[7] = cmptMultiply(vector(-1, +1, +1), span/2) + centre;

        os << vertices;
    #};
};

blocks
(
    hex (0 1 2 3 4 5 6 7) $divisions simpleGrading (1 1 1)
);

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

    atmosphere
    {
        type patch;
        faces
        (
            (4 5 6 7)
        );
    }

    beam
    {
        type wall;
        faces ();
    }
);


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