I am trying to understand what is a good variational formulation and what is a bad variational formulation and why. It seems common knowledge, that one should minimize the degree of the highest differential operator. Here is an example of a naive Poisson equation where I did not do that:

```
from fenics import *
mesh = IntervalMesh(10, -1.0, 1.0)
V = FunctionSpace(mesh, "P", 1)
phi = Function(V)
rho = Constant(1.0)
v = TestFunction(V)
F = inner(-div(grad(phi)), v) * dx - inner(rho, v) * dx # does not work
# F = inner(-grad(phi), -grad(v)) * dx - inner(rho, v) * dx # works
bc = DirichletBC(V, Constant(0.0), "on_boundary")
solve(F == 0, phi, bc)
```

It throws an error:

```
*** -------------------------------------------------------------------------
*** Error: Unable to solve nonlinear system with NewtonSolver.
*** Reason: Newton solver did not converge because maximum number of iterations reached.
*** Where: This error was encountered inside NewtonSolver.cpp.
*** Process: 0
***
*** DOLFIN version: 2019.1.0
*** Git changeset: unknown
*** -------------------------------------------------------------------------
```

It even throws an error, if I give it an analytic solution as initial guess:

```
phi = interpolate(Expression("-0.5*(x[0]-1)*(x[0]+1)", degree=2), V)
```

- Why this error?
- Why is
`inner(grad(phi), grad(v))`

better then`inner(-div(grad(phi)), v)`

? - Can I change the definition of the vector space
`V`

to make`inner(-div(grad(phi)), v)`

work?