Question: How to transform to different coordinates?

I have a diff equation in cartesian coordinates I need to transform to a certain cylindrical system. The de looks like this:

I define my new system with addcoords like this:

addcoords('AccCylinder',[r,theta,y],[r*cos(theta),y,r*sin(theta)]); # Note: y is the longitudinal axis here!

and also do

VectorCalculus:-AddCoordinates('AccCylinder'[r,theta,y],[r*cos(theta),y,r*sin(theta)],overwrite) assuming r >= 0;

and note that I had to overwrite as my system was already known, so maybe addcoords is reduncant(?)

I then do the transformation ("(7)" is the label of my above de):

changecoords((7),[x,y,z],AccCylinder,[r,theta,y]);

and get

This may be correct, but it has the expressions in the differentials, which diff does not know how to handle. I need to convert things like diff(xpr,r*cos(theta)) = diff(xpr,x)*diff(x,r) where x would be r*cos(theta). I can do this "by hand", but that seems overly tedious and error-prone. Somehow I'd expect the coordinate transforms to be able to do this but I can't figure out how.

Any idea?

Thanks,

Mac Dude,

Please Wait...