 When I refine mesh my error do not improves

Hello, there I am trying to perform an analysis error in fenics. I am refining my mesh intervals: 4, 8, 16, 32, and 64 intervales in the unit square. However, my error never improves. The analytical solution of my problem is 1+x^2 +2y^3.This is my code.

import numpy as np meshInteger = [4,8,16,32,64]
meshInteger = np.array(meshInteger)
errorVector = []
for i in meshInteger: from fenics import * # Create mesh and define function space
mesh = UnitSquareMesh(i, i)
V = FunctionSpace(mesh, 'Lagrange', 2) # Define boundary condition
u_D = Expression('1 + x*x + 2*x*x*x', degree=3) def boundary(x, on_boundary):
return on_boundary bc = DirichletBC(V, u_D, boundary) # Define variational problem
u = TrialFunction(V)
v = TestFunction(V)
f = Expression('2+12*x', degree=3)
L = f*v*dx # Compute solution
u = Function(V)
solve(a == L, u, bc) # Plot solution and mesh
plot(u)
plot(mesh) # Save solution to file in VTK format
vtkfile = File('poisson/solutionPolynomial3.pvd')
vtkfile << u # Compute error in L2 norm error= errornorm(u_D, u, 'L2') # Compute maximum error at vertices
vertex_values_u_D = u_D.compute_vertex_values(mesh)
vertex_values_u = u.compute_vertex_values(mesh)
import numpy as np
error_max = np.max(np.abs(vertex_values_u_D - vertex_values_u))
errorVector.append(error) print(errorVector)#the error do not decrease

Any help and orientation of why my error is constant is highly appreciated

Please encapsulate your code with 3x instead of the current formatting, as the current code cannot be copy-pasted and executed without modification.

And as a side-note, shouldn’t your f be multiplied by -1, as you are solving
-\nabla^2u= -\frac{\partial^2 u}{\partial^2x}-\frac{\partial^2 u}{\partial^2y}=-2-12y=f

Dear, Dokken. what do you mean by encapsulating with 3x?

Three times the backtick  as explained at

or