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):
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.