During week 11 I extended differential operator to handle mixed coordinate system.

Mixed means that `scalar`

or `vector`

which we’re using as argument has elements coming from several different coordinate systems. Not necessarily connected.
These work were split into three PR’s, one for every differential operator, `gradient`

#13118 , `divergence`

#13128 and `curl`

#13154.

To implement this, we need to only take care about product rule for `scalar`

and `vector`

, but they are well defined.

Basically we didn’t change any behavior but now when we put expression like

a = CoordSys3D('a') b = CoordSys3D('b', transformation='spherical') s = a.x*b.z gradient(s)they are correctly interpreted.

b.z*a.i + (a.x/(b.x*sin(b.y)))*b.k