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

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

actions
(
    // filter
    {
        name    filterCellSet;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box (1.5 -10 -10) (2 10 10);
        }
    }
    {
        name    filter;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
            set filterCellSet;
        }
    }


    {
        name    leftFluidCellSet;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box (-10 -10 -10) (1.5 10 10);
        }
    }
    {
        name    leftFluid;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
            set leftFluidCellSet;
        }
    }
    {
        name    rightFluidCellSet;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box (2 -1 -1) (10 10 10);
        }
    }
    {
        name    rightFluid;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
            set rightFluidCellSet;
        }
    }


    // cycLeft
    {
        name    cycLeftFaceSet;
        type    faceSet;
        action  new;
        source  cellToFace;
        sourceInfo
        {
            set     filterCellSet;
            option  all;
        }
    }
    {
        name    cycLeftFaceSet;
        type    faceSet;
        action  subset;
        source  cellToFace;
        sourceInfo
        {
            set     leftFluidCellSet;
            option  all;
        }
    }
    // Create faceZone from cycLeft
    {
        name    cycLeft;
        type    faceZoneSet;
        action  new;
        source  setToFaceZone;
        sourceInfo
        {
            faceSet cycLeftFaceSet;
        }
    }

    // cycRight
    {
        name    cycRightFaceSet;
        type    faceSet;
        action  new;
        source  cellToFace;
        sourceInfo
        {
            set     filterCellSet;
            option  all;
        }
    }
    {
        name    cycRightFaceSet;
        type    faceSet;
        action  subset;
        source  cellToFace;
        sourceInfo
        {
            set     rightFluidCellSet;
            option  all;
        }
    }
    // Create faceZone from cycRight
    {
        name    cycRight;
        type    faceZoneSet;
        action  new;
        source  setToFaceZone;
        sourceInfo
        {
            faceSet cycRightFaceSet;
        }
    }
);


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