This constructs an outer product between any subclass of KetBase and
BraBase as |a><b|. An OuterProduct inherits from Operator as they act as
operators in quantum expressions. For reference see [R237].

It is initialized by passing two arguments. The first is an arbitrary
expression that involves a function, such as Derivative(f(x),x). The
second is the function (e.g. f(x)) which we are to replace with the
Wavefunction that this DifferentialOperator is applied to.

Parameters :

expr : Expr

The arbitrary expression which the appropriate Wavefunction is to be
substituted into

func : Expr

A function (e.g. f(x)) which is to be replaced with the appropriate
Wavefunction when this DifferentialOperator is applied

Examples

You can define a completely arbitrary expression and specify where the
Wavefunction is to be substituted