You can use `TransformedField`

to get a function that can be used as the first argument of `ContourPlot`

:

```
f = (r^2 - a^3/r) Sin(t)^2;
tf = TransformedField( "Polar" -> "Cartesian", f, {r, t} -> {x, y})
TeXForm @ tf
```

$ frac {y ^ 2 left (x ^ 2 sqrt {x ^ 2 + y ^ 2} + y ^ 2 sqrt {x ^ 2 + y ^ 2} -1 right)} { left (x ^ 2 + y ^ 2 right) ^ {3/2}} $

```
cValues = {0.00001, 0.01, 0.05, 0.1, 0.3, 0.6, 1.0, 1.5, 2.0, 2.5, 3.2};
a = 1;
ContourPlot(tf, {x, -3, 3}, {y, -3, 3},
Contours -> cValues,
PlotPoints-> 200,
Axes -> True,
Frame -> False,
PlotRange -> All,
ContourShading -> None,
AspectRatio -> Automatic,
RegionFunction -> (Norm({#, #2}) <= 3&))
```

An alternative approach is the use `f`

With `ContourPlot`

and post-process the output to transform the lines:

```
cp1 = ContourPlot(f, {r, 0, 3}, {t, -Pi, Pi},
Contours -> cValues, PlotRange -> All,
ContourShading -> None, Axes -> True,
Frame -> False, ImageSize -> 300);
cp2 = Show(cp1 /. GraphicsComplex(c_, rest___) :>
GraphicsComplex(c /. {a_, b_} :> (a {Cos(b), Sin(b)}), rest),
AspectRatio -> Automatic, ImageSize -> 300);
Row({cp, cp2}, Spacer(15))
```