Vector Analysis Package
A threedimensional coordinate system assigns three numbers to each point in space. In defining a coordinate system, you have to make a choice about what to measure and how to measure it. Frequently, physical systems exhibit special symmetries or structures that make a particular coordinate system especially useful. In a mathematically elegant solution to problems related to these systems, often the main step is choosing the correct coordinates.
A variety of tools for doing calculus in various threedimensional coordinate systems are provided in this package. Because a given symbolic or numeric expression can mean different things in different coordinate systems,
Mathematica must know what coordinate system you are using and what the coordinate variables are. The initial default coordinate system is
Cartesian, with coordinate variables
Xx,
Yy, and
Zz. If you frequently work in another system, it may be useful to change the default to that system using
SetCoordinates.
CoordinateSystem  the name of the default coordinate system 
Coordinates[]  give the default variables in the default coordinate system 
Coordinates[coordsys]  give the default variables in the coordinate system coordsys 
SetCoordinates[coordsys]  set the default coordinate system to be coordsys with default variables 
SetCoordinates[coordsys[vars]]  set the default coordinate system to be coordsys with variables vars 
Coordinate systems and coordinate variables.
This resets the default coordinate system and variables.
Out[2]=  

All coordinate systems can be viewed as arising from three oneparameter families of surfaces. The three numbers assigned to each point (
i.e., its coordinates) simply tell you to which member of each family the point belongs. Members of these families are called
coordinate surfaces. In the simplest example, the
Cartesian system, the coordinate surfaces are members of families of planes parallel to the coordinate planes. In more complicated systems, the coordinate surfaces often belong to families of quadric surfaces such as ellipsoids, hyperboloids or elliptic paraboloids. In certain cases the families of coordinate surfaces depend on parameters such as focal distances or radii. In these cases the coordinate system as a whole depends on the parameters. These parameters are initially given default values and can be reset with
SetCoordinates.
Coordinate systems.
There are often conflicting definitions of a particular coordinate system in the literature. When you use a coordinate system with this package, you should look at the definition given below to make sure it is what you want. The easiest way to check the definition of a coordinate system used in the package is to use
CoordinatesToCartesian[pt, coordsys] as described below. This will give you the formulas for the transformation into Cartesian coordinates.
The
Cartesian coordinate system Cartesian[x, y, z] is the standard rectangular coordinate system in three dimensions.
The
cylindrical coordinate system Cylindrical[r, theta, z] uses polar coordinates
r and
to locate a point in the
x
y plane and the coordinate
z for the height of the point above the
x
y plane.
In the
spherical coordinate system Spherical[r, theta, phi], the coordinate
r gives the distance of the point from the origin, the coordinate
gives the angle measured from the positive
z axis, and the coordinate
gives the angle measured in the
x
y plane from the positive
x axis, counterclockwise as viewed from the positive
z axis.
In the
parabolic cylindrical coordinate system ParabolicCylindrical[u, v, z], varying only one of the coordinates
u and
v while coordinate
z is held constant produces opposite facing parabolas. The coordinate
z specifies distances along the axis of common focus.
In the
paraboloidal coordinate system Paraboloidal[u, v, phi], varying only one of the coordinates
u and
v while coordinate
is held constant produces opposite facing parabolas. The coordinate
specifies rotations about their common bisectors.
The
elliptic cylindrical coordinate system EllipticCylindrical[u, v, z, a], parameterized by
a, is built around two foci separated by
2a. Holding coordinate
u constant while varying the other coordinates produces a family of confocal ellipses. Fixing coordinate
v produces a family of confocal hyperbolas. The coordinate
z specifies distance along the axis of common focus. The default value for parameter
a is
1.
The
prolate spheroidal coordinate system ProlateSpheroidal[xi, eta, phi, a], parameterized by
a, is obtained by rotating elliptic cylindrical coordinates about the axis connecting the two foci. The coordinate
specifies the rotation. The default value for parameter
a is
1.
The
oblate spheroidal coordinate system OblateSpheroidal[xi, eta, phi, a], parameterized by
a, is obtained by rotating elliptic cylindrical coordinates about an axis perpendicular to the axis connecting the two foci. The coordinate
specifies the rotation. The default value for parameter
a is
1.
The
bipolar coordinate system Bipolar[u, v, z, a], parameterized by
a, is built around two foci separated by
2a. Holding coordinate
u constant produces a family of circles that pass through both foci. Fixing coordinate
v produces a family of degenerate ellipses about one of the foci. The coordinate
z specifies distance along the axis of common focus. The default value for parameter
a is
1.
The
bispherical coordinate system Bispherical[u, v, phi, a], parameterized by
a, differs from the bipolar system only in that coordinate
measures an azimuthal angle.
The
toroidal coordinate system Toroidal[u, v, phi, a], parameterized by
a, is obtained by rotating bipolar coordinates about an axis perpendicular to the axis connecting the two foci. The coordinate
specifies the rotation. The default value for parameter
a is
1.
In the
conical coordinate system Conical[lambda, mu, nu, a, b], parameterized by
a and
b, the surfaces described by fixing coordinate
are spheres centered at the origin. Fixing coordinate
gives cones with apexes at the origin and axes along the
z axis, and fixing coordinate
gives cones with apexes at the origin and axes along the
y axis. The default values for parameters
a and
b are
1 and
2, respectively.
In the
confocal ellipsoidal coordinate system ConfocalEllipsoidal[lambda, mu, nu, a, b, c], parameterized by
a,
b, and
c, the surfaces described by fixing coordinate
are ellipsoids. Fixing coordinate
gives hyperboloids of one sheet, and fixing coordinate
gives hyperboloids of two sheets. The default values for parameters
a,
b and
c are
3,
2 and
1, respectively.
In the
confocal paraboloidal coordinate system ConfocalParaboloidal[lambda, mu, nu, a, b], parameterized by
a and
b, the surfaces described by fixing coordinate
are elliptic paraboloids extending in the negative
z direction. Fixing coordinate
gives hyperbolic paraboloids, and fixing coordinate
gives elliptic paraboloids extending in the positive
z direction. The default values for parameters
a and
b are
2 and
1, respectively.
CoordinateRanges[]  give the intervals over which each of the coordinate variables of the default coordinate system may range 
Parameters[]  give a list of the default parameter values for the default coordinate system 
ParameterRanges[]  give the intervals over which each of the parameters of the default coordinate system may range 
CoordinateRanges[coordsys], Parameters[coordsys], ParameterRanges[coordsys]  give the result for the coordinate system coordsys 
SetCoordinates[coordsys[vars,param]]  set the default coordinate system to be coordsys with variables vars and parameter values param 
The range of coordinate variables and parameters.
This gives the default coordinate variables and their ranges for the Conical system.
Out[4]=  

This means that the Bipolar system has one parameter that must be a positive number. The default value of this parameter is 1.
Out[5]=  

In the Conical system there are two parameters, and the second must always be larger than the first.
Out[7]=  

CoordinatesToCartesian[pt]  give the Cartesian coordinates of pt, where pt is given in the default coordinate system 
CoordinatesToCartesian[pt,coordsys]  give the Cartesian coordinates of pt, where pt is given in the coordinate system coordsys 
CoordinatesFromCartesian[pt]  give the default system coordinates of pt, where pt is given in Cartesian coordinates 
CoordinatesFromCartesian[pt,coordsys]  give the coordsys coordinates of pt, where pt is given in Cartesian coordinates 
Converting to and from Cartesian coordinates.
This gives Cartesian coordinates of the point whose Spherical coordinates are {1, Pi/2, Pi/4}.
Out[8]=  

You get the general coordinate transformation formula when you give the variables in symbolic form.
Out[9]=  

The standard vector product operations, such as the dot and cross product, are usually defined and computed in the Cartesian coordinate system. If you have vectors given in a different coordinate system, you can compute vector products using
DotProduct,
CrossProduct, and
ScalarTripleProduct. These functions convert the given vectors into Cartesian coordinates and then compute the products using the standard definitions.
DotProduct[v_{1},v_{2}]  compute the dot product of the vectors v_{1} and v_{2} given in default coordinates 
CrossProduct[v_{1},v_{2}]  compute the cross product of the vectors given in default coordinates 
ScalarTripleProduct[v_{1},v_{2},v_{3}]  compute the scalar triple product of the vectors given in default coordinates 
DotProduct[v_{1},v_{2},coordsys], CrossProduct[v_{1}, v_{2}, coordsys], etc.  give the result when the vectors are given in the coordinate system coordsys 
Computing vector products in various coordinate systems.
This converts the vectors from the default system to Cartesian coordinates and then computes the scalar product.
Out[12]=  

Viewed geometrically, the scalar triple product gives the volume of the parallelepiped spanned by the three vectors.
Out[13]=  

ArcLengthFactor[{f_{x},f_{y},f_{z}},t]  give the derivative of the arc length along the curve parameterized by t in the default coordinate system 
ArcLengthFactor[{f_{x},f_{y},f_{z}},t,coordsys]  give the derivative in the coordinate system coordsys 
Differential arc length element.
In Cartesian coordinates the differential arc length element is just
(dx^{2}+dy^{2}+dz^{2})^{1/2}. When you compute an integral along a parameterized curve in another coordinate system, you need to use the form appropriate to the coordinate system. To get the integral along the curve, you must plug the parameterization into the arc length element, compute the appropriate derivatives, and then integrate with respect to the parameter. The function
ArcLengthFactor takes the parameterization as an argument and returns the formula for the derivative of the arc length along the curve.
This gives the parameterization of an ascending helix.
Out[14]=  

This means that the derivative of the arc length, with respect to t along the helix, is . If we think of the parameterization as describing the motion of a particle in Cartesian coordinates, this just means that the speed of the particle is .
Out[15]=  

Here is a scalarvalued function on three space. 
This gives the integral of the function along the helix.
Out[17]=  

The derivative of a coordinate transformation is the matrix of its partial derivatives. In the case of threedimensional coordinate systems this is always a three by three matrix. This matrix is sometimes called the
Jacobian matrix. The determinant of this matrix is called the
Jacobian determinant of the transformation, or else just the
Jacobian. This determinant measures how infinitesimal volumes change under the transformation. For this reason, the Jacobian determinant is the multiplicative factor needed to adjust the differential volume form when you change coordinates.
JacobianMatrix[]  give the derivative matrix of the transformation from the default coordinate system to Cartesian coordinates using the default variables 
JacobianMatrix[pt]  give the derivative at the point pt, where pt is given in the default system 
JacobianMatrix[coordsys]  give the derivative of the transformation from the coordinate system coordsys to Cartesian coordinates 
JacobianMatrix[pt,coordsys]  give the derivative at the point pt, where pt is given in the coordinate system coordsys 
JacobianDeterminant[], JacobianDeterminant[pt], etc.  give the determinant of the Jacobian matrix 
ScaleFactors[], ScaleFactors[pt], etc.  give a list of the scale factors 
The transformation matrix derivative, its determinant, and scale factors.
The determinant of the derivative of the coordinate transformation gives the infinitesimal change in volume.
Out[19]=  

This triple integral computes the integral of the function r^{2} over a solid sphere of radius 2 using spherical coordinates. Note that the Jacobian is included in the integrand, because the integral is expressed in Spherical coordinates.
Out[20]=  

Div[f]  give the divergence of the vector field f in the default coordinate system 
Curl[f]  give the curl of the vector field f in the default coordinate system 
Grad[f]  give the gradient of the scalar function f in the default coordinate system 
Laplacian[f]  give the Laplacian of the scalar function f in the default coordinate system 
Biharmonic[f]  give the Laplacian of the Laplacian of the scalar function f in the default coordinate system 
Div[f,coordsys], Curl[f,coordsys], etc.  give the result if the coordinate system is coordsys 
Common differential operations.
As is the case with the vector products discussed above, the common differential operations in three dimensions are defined in terms of
Cartesian coordinates. If you are working in another coordinate system and you wish to compute these quantities, you must, in principle, first transform into the
Cartesian system and then do the calculation. When you specify the coordinate system in functions like
Laplacian,
Grad, and so on, this transformation is done automatically.
This gradient is different, because we are treating the function as being in ProlateSpheroidal coordinates with the (nonstandard) variables x, y, and z.
Out[22]=  

If you give an unknown function, the result is returned in symbolic form.
Out[23]=  
