There seems to be a misunderstanding about CrossProduct[ ] in
Calculus`VectorAnalysis`. In particular, when the default coordinate
system is Cylindrical (or anything but Cartesian) this refers to
the global coordinate system. Grad[ ] gives results in terms of the
local, infinitesimal coordinate system which is NOT Cylindrical,
but rather Cartesian. Thus when you use CrossProduct[ ] (or DotPrduct[ ]
or ScalarTripleProduct[ ]) with vectors from the local, infinitesimal
coordinate system, you need to specify that you are refering to a
Cartesian coordinate system:
In[1]:= <<Calculus`VectorAnalysis`
In[2]:= SetCoordinates[Cylindrical]
Out[2]= Cylindrical[r, theta, z]
In[3]:= CrossProduct[Grad[r], Grad[theta], Cartesian]
1
Out[3]= {0, 0, -}
r
It could well be argued that this is a misfeature. Does one ever
want to take the cross product of vectors in anything other than
a Cartesian system? If so how often? Should the default be
Cartesian with the ability to specify something else? I can
easily change this, but it is not the sort of mathematics that I
use and I don't know what the default should be.
Jerry B. Keiper
keiper at wri.com