@staticmethod
def _setupBoundary(diagonals, freeSurf):
    """
        Function to set up boundary regions for the Seismic FDFD problem
        using the 9-point finite-difference stencil from OMEGA/FULLWV.

        Args:
            diagonals (dict): The diagonal vectors, indexed by appropriate string keys
            freeSurf (tuple): Determines which free-surface conditions are active

        The diagonals are modified in-place.
        """
    keys = list(diagonals.keys())
    pickDiag = lambda x: -1.0 if freeSurf[x] else 1.0
    for key in keys:
        if key is 'BE':
            diagonals[key][:, (0)] = pickDiag(3)
        else:
            diagonals[key][:, (0)] = 0.0
    for key in keys:
        if key is 'BE':
            diagonals[key][:, (-1)] = pickDiag(1)
        else:
            diagonals[key][:, (-1)] = 0.0
    for key in keys:
        if key is 'BE':
            diagonals[key][(0), :] = pickDiag(0)
        else:
            diagonals[key][(0), :] = 0.0
    for key in keys:
        if key is 'BE':
            diagonals[key][(-1), :] = pickDiag(2)
        else:
            diagonals[key][(-1), :] = 0.0
