I have two simple workarounds:
Option 1:
Perturbate r to avoid infinity at the origin, for example f= (r+eps)^(-1/6)...
Option 2:
Use Expression:
class F(Expression):
def eval(self, x, values):
r = sqrt(x[0]**2+x[1]**2)
if r == 0.0:
values[0] = 1e16 # "infinity"
else:
values[0] = r**(-1/6)
I'm guessing that this might not be what you wish, but it's at least a suggestion.