Hello,
I discovered that the divergence() function from sympy.vector gives incorrect answers sometimes when using Cylindrical coordinates. For example:
divergence( 1 * rhat )
# returns 0 when it should give 1/R
I found that this issue was raised last year, and a patch offered, but it was never integrated into the sympy release.
I went into sympy/vector/operators.py and commented out lines 366-368 by hand. That seems to have fixed the problem.
I also found this library, called "symfields" which does div, grad, curl properly in cylindrical, spherical, or any curvilinear coordinate system
it does not use CoordSys3D.