def METHOD_NAME(self):
    max_strength = 0
    max_axis = -1
    for dim in range(3):
        sig = self.sigs[dim]
        sd = sig[:-2] - 2.0 * sig[1:-1] + sig[2:]
        center = int((self.flagged.shape[dim] - 1) / 2)
        strength = zero_strength = zero_cross = 0
        for i in range(1, sig.size - 2):
            # Note that sd is offset by one
            if sd[i - 1] * sd[i] < 0:
                strength = np.abs(sd[i - 1] - sd[i])
                # TODO this differs from what I could find in ENZO
                # there's |center - i| < |center - zero_cross| instead
                # additionally zero_cross is undefined in first pass
                if strength > zero_strength or (
                    strength == zero_strength
                    and np.abs(center - i) < np.abs(zero_cross - i)
                ):
                    zero_strength = strength
                    zero_cross = i
        if zero_strength > max_strength:
            max_axis = dim
    dims = self.dimensions.copy()
    li = self.left_index.copy()
    dims[max_axis] = zero_cross
    psg1 = ProtoSubgrid(self.flagged, li, dims)
    li[max_axis] += zero_cross
    dims[max_axis] = self.dimensions[max_axis] - zero_cross
    offset = np.zeros(3)
    offset[max_axis] = zero_cross
    psg2 = ProtoSubgrid(self.flagged, li, dims, offset)
    return [psg1, psg2]