Getting Electric field of a mesh in order as a pvd file

Hi I am using the old version of legacy dolfin. I have a vector field in a vector function space. I did V = VectorFunctionSpace(self.geometry.mesh,‘DG’,0)
self.phi = Function(self.geometry.funcspace[‘scalar’])
self.phi.vector().set_local(self.solutions[0][0])
grad_phi = project(-grad(self.phi), V,solver_type=“cg”, preconditioner_type=“amg”)
grad_x,grad_y,grad_z = grad_phi.split(deepcopy=True)
vtkfile = File(‘electric_field_gradphi.pvd’)
vtkfile << grad_phi
to get the pvd file for the field but I am not getting the electric field in order, the electric field is random, which I am guessing is due to the projection. I wanted to know how I can get the electric field in order of the mesh so that when I extract the pvd file. I could get the vector field in order when doing the following
E = Function(V)
E.vector().set_local(grad_phi.vector().get_local())
and then Iterating through each cell in the mesh and mid_pt = cell.midpoint()
vector_mpt = E(mid_pt)
How can I get the same into a PVD file?

Without a minimal reproducible example and properly formatted code, Ref
Block code formatting at Discourse Guide: Code Formatting - Meta - Stonehearth Discourse