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

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

actions
(
    // Heater
    {
        name    heaterCellSet;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box (-0.01001    0 -100 )(0.01001 0.00999 100);
        }
    }
    {
        name    heaterCellSet;
        type    cellSet;
        action  add;
        source  boxToCell;
        sourceInfo
        {
            box (-0.01001 -100 -0.01001)(0.01001 0.00999 0.01001);
        }
    }
    {
        name    heater;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
            set heaterCellSet;
        }
    }

    // leftSolid
    {
        name    leftSolidCellSet;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box (-100 0 -100 )(-0.01001 0.00999 100);
        }
    }
    {
        name    leftSolid;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
            set leftSolidCellSet;
        }
    }

    // rightSolid
    {
        name    rightSolidCellSet;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box (0.01001 0 -100 )(100 0.00999 100);
        }
    }
    {
        name    rightSolid;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
            set rightSolidCellSet;
        }
    }

    // topAir
    {
        name    topAirCellSet;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box (-100 0.00999 -100 )(100 100 100);
        }
    }
    {
        name    topAir;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
            set topAirCellSet;
        }
    }


    // bottomWater is all the other cells
    {
        name    bottomWaterCellSet;
        type    cellSet;
        action  new;
        source  cellToCell;
        sourceInfo
        {
            set heaterCellSet;
        }
    }
    {
        name    bottomWaterCellSet;
        type    cellSet;
        action  add;
        source  cellToCell;
        sourceInfo
        {
            set leftSolidCellSet;
        }
    }
    {
        name    bottomWaterCellSet;
        type    cellSet;
        action  add;
        source  cellToCell;
        sourceInfo
        {
            set rightSolidCellSet;
        }
    }
    {
        name    bottomWaterCellSet;
        type    cellSet;
        action  add;
        source  cellToCell;
        sourceInfo
        {
            set topAirCellSet;
        }
    }
    {
        name    bottomWaterCellSet;
        type    cellSet;
        action  invert;
    }
    {
        name    bottomWater;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
            set bottomWaterCellSet;
        }
    }
);


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