I have been struggling with FEM method in NDSolve. I get the test problem "working" however it does not match well with the exact solution. My original problem has angle dependence as well. I was wondering how I can improve this result. There are couple of things that I tried:
1-Decreasing the Max cell measure from .01 to .001. It literally only changed things on the 4th digit.
2-I tried to change the interpolation order however, I got an error saying that it can not be less than the mesh order.
3- Why do I always have to install the FEM package?
4- I know you do not need to impose vanishing Neumann boundary conditions. However when we have more than one unknown functions why does not that automatically assume that we have the vanishing Neumann for that unknown function even if we did not add a zero Neumann value for the corresponding equation to that unknown. (Here I am talking about coupled elliptic PDE's.)
Would this complaint cause poor results?
Needs["NDSolve`FEM`"]
eq111 = D[D[\[Psi][r, \[Theta]], r], r] +
Sin[\[Theta]]/r^2*
D[1/Sin[\[Theta]]*D[\[Psi][r, \[Theta]], \[Theta]], \[Theta]];
a = 1;
b = 2;
\[CapitalOmega] = Rectangle[{a, 0}, {b, Pi}];
RegionPlot[\[CapitalOmega], AspectRatio -> .5]
mesh = ToElementMesh[\[CapitalOmega],
MaxCellMeasure -> {"Length" -> .01}];
ui = NDSolveValue[
{eq111 ==
0, {DirichletCondition[\[Psi][r, \[Theta]] == -1/(4*Pi*a),
r == a && 0 < \[Theta] <= Pi],
DirichletCondition[\[Psi][r, \[Theta]] == -1/(4*Pi*b),
r == b && 0 < \[Theta] <= Pi]}},
\[Psi], Element[{r, \[Theta]}, mesh],
Method -> {"FiniteElement", "InterpolationOrder" -> {\[Psi] -> 2}}
]
ContourPlot[ui[r, \[Theta]], {r, a, b}, {\[Theta], 0, Pi},
AspectRatio -> 0.5, ColorFunction -> "TemperatureMap",
PlotLegends -> Automatic]
This looks like it is working in the sense that the solution should not depend on the angle and it does not. However we know the exact solution is -1/4*Pi*r.
ui[1.5, Pi/8]
-1/(4*Pi*1.5) // N
They are quite different from each other.
Another question that I have is would transforming the spherical mesh result into cartesian result mess up the final answer? I appreciate the time and the suggestions.

ToElementMesh. You can pass options to it throughNDSolvewithMethod -> {"FiniteElement", "MeshOptions" -> {MaxCellMeasure -> {"Length" -> .01},...},...}. – Michael E2 Jul 02 '17 at 18:54