def adjoint(self):
        """Adjoint of this operator.

            ``FunctionalLeftVectorMult(op, y).adjoint ==
            OperatorComp(op.adjoint, y.T)``

        Returns
        -------
        adjoint : `OperatorComp`

        Raises
        ------
        OpNotImplementedError
            If the underlying operator is non-linear.
        """

        if not self.is_linear:
            raise OpNotImplementedError('nonlinear operators have no adjoint')

        return OperatorComp(self.functional.adjoint, self.vector.T)