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

actions
(
    {
        name    airConditioner1;
        type    faceSet;
        action  new;
        source  boxToFace;
        sourceInfo
        {
            box   (1.75 0.000 2.30)(2.55 0.001 2.45);
        }
    }

    {
        name    airConditioner2;
        type    faceSet;
        action  new;
        source  boxToFace;
        sourceInfo
        {
            box   (4.30 0.000 2.30)(5.10 0.001 2.45);
        }
    }

    {
        name    door;
        type    faceSet;
        action  new;
        source  boxToFace;
        sourceInfo
        {
            box   (6.85 0.000 0)(7.95 0.001 2.15);
        }
    }

    {
        name    fixedPositionExhaustFan;
        type    faceSet;
        action  new;
        source  boxToFace;
        sourceInfo
        {
            box   (0.60 6.399 1.95)(1.00 6.401 2.35);
        }
    }

    {
        name    multiPositionExhaustFan;
        type    faceSet;
        action  new;
        source  boxToFace;
        sourceInfo
        {
	    // Default Case
            box   (7.850 6.399 1.950)(8.250 6.401 2.350);

/* ======================================================

	=================================================
	# Set 1 of Cases: Wall Plane Y = 6.400 m ----->>>
	=================================================

	    // Default Case
            box   (7.85 6.399 1.95)(8.25 6.401 2.35);

	    // Alternate Case 1
            box   (7.10 6.399 1.95)(7.50 6.401 2.35);

	    // Alternate Case 2
            box   (6.40 6.399 1.95)(6.80 6.401 2.35);

	    // Alternate Case 3
            box   (5.70 6.399 1.95)(6.10 6.401 2.35);

	    // Alternate Case 4
            box   (4.95 6.399 1.95)(5.35 6.401 2.35);

	    // Alternate Case 5
            box   (4.20 6.399 1.95)(4.60 6.401 2.35);

	    // Alternate Case 6
            box   (3.50 6.399 1.95)(3.90 6.401 2.35);

	    // Alternate Case 7
            box   (2.80 6.399 1.95)(3.20 6.401 2.35);

	    // Alternate Case 8
            box   (2.05 6.399 1.95)(2.45 6.401 2.35);

	    // Alternate Case 9
            box   (1.30 6.399 1.95)(1.70 6.401 2.35);

	=================================================
	# Set 2 of Cases: Wall Plane X = 8.850 m ----->>>
	=================================================

	    // Alternate Case 10
            box   (8.849 5.40 1.95)(8.851 5.80 2.35);

	    // Alternate Case 11
            box   (8.849 4.60 1.95)(8.851 5.00 2.35);

	    // Alternate Case 12
            box   (8.849 3.80 1.95)(8.851 4.20 2.35);

	    // Alternate Case 13
            box   (8.849 3.00 1.95)(8.851 3.40 2.35);

	    // Alternate Case 14
            box   (8.849 2.20 1.95)(8.851 2.60 2.35);

	    // Alternate Case 15
            box   (8.849 1.40 1.95)(8.851 1.80 2.35);

	    // Alternate Case 16
            box   (8.849 0.60 1.95)(8.851 1.00 2.35);

	=================================================
	# Set 3 of Cases: Wall Plane X = 0.000 m ----->>>
	=================================================

	    // Alternate Case 17
            box   (0.000 5.40 1.95)(0.001 5.80 2.35);

	    // Alternate Case 18
            box   (0.000 4.60 1.95)(0.001 5.00 2.35);

	    // Alternate Case 19
            box   (0.000 3.80 1.95)(0.001 4.20 2.35);

	    // Alternate Case 20
            box   (0.000 3.00 1.95)(0.001 3.40 2.35);

	    // Alternate Case 21
            box   (0.000 2.20 1.95)(0.001 2.60 2.35);

	    // Alternate Case 22
            box   (0.000 1.40 1.95)(0.001 1.80 2.35);

	    // Alternate Case 23
            box   (0.000 0.60 1.95)(0.001 1.00 2.35);

====================================================== */
        }
    }

    // Creating a new cellSet: artInnerBottomZoneCells
    {
    	name	artInnerBottomZoneCells;
    	type    cellSet;	// cellSet, cellZoneSet, faceSet
    	action  new;		// new, add, delete
	source  boxToCell;	// boxToCell, cylinderToCell, cylinderAnnulusToCell
        sourceInfo
        {
		boxes
    		(
			// Eliminate the near walls inflation-layers-zone of size 0.30 m
			// from all the applicable faces (such as floor, roof and walls) of the classroom
        		(0.30 0.30 0.30)(8.55 6.10 0.90)
        		// (<minX> <minY> <minZ>)(<maxX> <maxY> <maxZ>) // box
    		);
        }
    }

    // Converting the cellSet to cellZoneSet: artInnerBottomZone
    {
        name	artInnerBottomZone;
        type    cellZoneSet;    
        action  new;
        source  setToCellZone; // source for converting the cellSet into cellZoneSet
        sourceInfo
        {
		set	artInnerBottomZoneCells;	// name of the cellSet to be converted into cellZoneSet
	}
    }

    // Creating a new cellSet: artInnerMiddleZoneCells
    {
    	name	artInnerMiddleZoneCells;
    	type    cellSet;	// cellSet, cellZoneSet, faceSet
    	action  new;		// new, add, delete
	source  boxToCell;	// boxToCell, cylinderToCell, cylinderAnnulusToCell
        sourceInfo
        {
		boxes
    		(
			// Eliminate the near walls inflation-layers-zone of size 0.30 m
			// from all the applicable faces (such as floor, roof and walls) of the classroom
        		(0.30 0.30 0.90)(8.55 6.10 2.15)
        		// (<minX> <minY> <minZ>)(<maxX> <maxY> <maxZ>) // box
    		);
        }
    }

    // Converting the cellSet to cellZoneSet: artInnerMiddleZone
    {
        name	artInnerMiddleZone;
        type    cellZoneSet;    
        action  new;
        source  setToCellZone; // source for converting the cellSet into cellZoneSet
        sourceInfo
        {
		set	artInnerMiddleZoneCells;	// name of the cellSet to be converted into cellZoneSet
	}
    }

    // Creating a new cellSet: artInnerUpperZoneCells
    {
    	name	artInnerUpperZoneCells;
    	type    cellSet;	// cellSet, cellZoneSet, faceSet
    	action  new;		// new, add, delete
	source  boxToCell;	// boxToCell, cylinderToCell, cylinderAnnulusToCell
        sourceInfo
        {
		boxes
    		(
			// Eliminate the near walls inflation-layers-zone of size 0.30 m
			// from all the applicable faces (such as floor, roof and walls) of the classroom
        		(0.30 0.30 2.15)(8.55 6.10 2.75)
        		// (<minX> <minY> <minZ>)(<maxX> <maxY> <maxZ>) // box
    		);
        }
    }

    // Converting the cellSet to cellZoneSet: artInnerUpperZone
    {
        name	artInnerUpperZone;
        type    cellZoneSet;    
        action  new;
        source  setToCellZone; // source for converting the cellSet into cellZoneSet
        sourceInfo
        {
		set	artInnerUpperZoneCells;	// name of the cellSet to be converted into cellZoneSet
	}
    }

    // Creating a new cellSet: artOuterZoneCells
    {
    	name	artOuterZoneCells;
    	type    cellSet;	// cellSet, cellZoneSet, faceSet
    	action  new;		// new, add, delete
	source  boxToCell;	// boxToCell, cylinderToCell, cylinderAnnulusToCell
        sourceInfo
        {
		boxes
    		(
			// Eliminate the near walls inflation-layers-zone of size 0.10 m
			// from all the applicable faces (such as floor, roof and walls) of the classroom
        		(0.10 0.10 0.10)(8.75 6.30 2.95)
        		// (<minX> <minY> <minZ>)(<maxX> <maxY> <maxZ>) // box
    		);
        }
    }

// Removing unrequired cells from an existing cellSet: artOuterZoneCells
    {
    	name	artOuterZoneCells;
    	type    cellSet;	// cellSet, cellZoneSet, faceSet
    	action  delete;		// new, add, delete
	source  boxToCell;	// boxToCell, cylinderToCell, cylinderAnnulusToCell
        sourceInfo
        {
		boxes
    		(
			// Eliminate the inner-bottom-zone cells of the classroom
        		(0.30 0.30 0.30)(8.55 6.10 0.90)
        		// (<minX> <minY> <minZ>)(<maxX> <maxY> <maxZ>) // box

			// Eliminate the inner-middle-zone cells of the classroom
        		(0.30 0.30 0.90)(8.55 6.10 2.15)
        		// (<minX> <minY> <minZ>)(<maxX> <maxY> <maxZ>) // box

			// Eliminate the inner-upper-zone cells of the classroom
        		(0.30 0.30 2.15)(8.55 6.10 2.75)
        		// (<minX> <minY> <minZ>)(<maxX> <maxY> <maxZ>) // box
    		);
        }
    }
    
    // Converting the cellSet to cellZoneSet: artOuterZone
    {
        name	artOuterZone;
        type    cellZoneSet;    
        action  new;
        source  setToCellZone; // source for converting the cellSet into cellZoneSet
        sourceInfo
        {
		set	artOuterZoneCells;	// name of the cellSet to be converted into cellZoneSet
	}
    }
);

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