Unable to compute the curl of a vector field

But why dont you the just do interpolation over the whole mesh.

I suggested compute_incident_entities because you had

in your code, which is simply not correct.

What is wrong with doing
TempVolt.sub(0).interpolate(initial_guess_temp)?

The order I have in my code is correct. First dimension is the dimension of the input entities, second dimension is output dimension.
See for instance: What is the difference between compute_incident_entities and entities_to_geometry?