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

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

actions
(

    // solid
    {
        name    solid;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box (15.5  15.5 0)(24.5 24.5 9);
        }
    }

    // floor
    {
        name    floor;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box (0  0 -2)(41 41 0);
        }
    }

     {
        name    floor;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
           set floor;
        }
    }

    //air
    {
        name    solid;
        type    cellSet;
        action  invert;
    }

    {
        name    solid;
        type    cellSet;
        action  delete;
        source  cellToCell;
        sourceInfo
        {
           set floor;
        }
    }

    {
        name    air;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
            set solid;           // name of cellSet
        }
    }

    {
        name    cavity;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box (17  17 0)(23 23 7.5);
        }
    }

    //- Define again solid
    {
        name    solid;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box (15.5  15.5 0)(24.5 24.5 9);
        }
    }

    {
        name    solid;
        type    cellSet;
        action  delete;
        source  cellToCell;
        sourceInfo
        {
           set cavity;
        }
    }

    {
        name    solid;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
            set solid;           // name of cellSet
        }
    }
);

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