Code covered by the BSD License  

Highlights from
Curvilinear Coordinates

from Curvilinear Coordinates by Howard Wilson
Programs are presented which use symbolic math, curvilinear coordinates, and tensor concepts.

readme.m
%          DESCRIPTION OF THE CURVCOORD WORKSPACE
% Several programs and utility functions using symbolic math are 
% provided to analyze vectors and tensors in general curvilinear
% coordinates. The principal programs are: 1) runcoord plots
% coordinate surfaces for typical coordinate systems 2) runmetric
% computes and prints metric tensor properties for a general
% curvilinear coordinate system 3) rundivcurl compares divergence
% and curl of an arbitrary vector computed in both cartesian and
% curvilinear coordinates 4) runconic plots surfaces showing how
% intersections of a cone and a plane produce conic section curves.
%
% Curvilinear coordinates arise when cartesian coordinates (x,y,z)
% are expressed in terms of three auxiliary parameters such as
% (t1,t2,t3). Allowing one of the parameters, say t1, to vary,
% with t2 and t3 held fixed, defines a space curve called the t1
% coordinate line. Similarly, holding t1 constant,while t2 and t3
% vary defines the t1 coordinate surface. Coordinate surfaces
% intersect in coordinate lines which are typically not orthogonal.
% Furthermore,two different sets of base vectors, defined by 
% coordinate line tangents and coordinate surface normals, naturally
% occur with curvilinear coordinate formulations. Vector and tensor
% quantities can be conveniently represented by using either set of
% base vectors, with conversion between bases being facilitated by
% use of the metric tensor components. Differentiation of vector 
% quantities in curvilinear coordinates requires differentiation of
% both the component magnitudes and the base vectors. This process
% leads to the concept of covariant derivatives and Christoffel
% symbols which are functions of the metric tensor components.
%  
% Two different kinds of tools are included in the workspace. The
% first uses numerics to graphically show intersecting coordinate
% surfaces of a general curvilinear coordinate system. Illustrative
% examples such as cylindrical, spherical, toroidal, ellipsoidal,
% and oblate spheroidal coordinates are presented. Although surface 
% plots only require numerics, symbolic computation is needed to  
% obtain base vectors, metric tensor components, etc. The MATLAB
% Symbolic Math Toolbox, based on Maple software, handles matrices
% of symbolic elements very conveniently. This greatly simplifies
% symbolic operations such as dot and cross products, divergence,
% curl, Christoffel symbols, and covariant derivatives.
%
% A summary of the equations basic to the programs developed here
% can be obtained by the command: help equations. Helpful references
% on the analytical methods used include: 
% "Field Theory Handbook" by Parry Moon and Domina E. Spencer
% "Vector Analysis" by Murral Speigel
% "MathWorld" by Eric W. Weisstein (available on the internet)
%
% The principal functions in the workspace are described below.
%
% cart2curv.m      convert cartesian components to curvilinear
% cone.m           symbolic function for non-orthogonal conical
%                  coordinates
% cone0.m          function to plot non-orthogonal conical
%                  coordinates
% covardif.m       computes covariant derivatives of a vector
% crldivxyz.m      divergence and curl of a cartesian vector
% curls.m          vector curl in curvilinear coordinates
% curv2cart.m      convert curvilinear components to cartesian
% cylin.m          symbolic function defining cylindrical
%                  coordinates
% cylin0.m         function used to plot cylindrical coordinates
% diverge.m        vector divergence in curvilinear coordinates 
% elipcyl.m        symbolic function defining elliptic cylinder
%                  coordinates
% elipcyl0.m       function to plot elliptic cylinder coordinates
% edilsod.m        symbolic function defining ellipsoidal coordinates
% elipsod0.m       function to plot ellipsoidal coordinates
% equations.m      the command: help equations lists fundamental
%                  equations pertaining to curvilinear coordinates
% metric.m         computes base vectors, metric tensors, and 
%                  Christoffel symbols for general curvilinear
%                  coordinates
% notort.m         a special non-orthogonal curvilinear coordinate
%                  system 
% oblate.m         symbolic function defining oblate spheroidal 
%                  coordinates
% oblate0.m        function used to plot oblate spheroidal coordinates
% parab.m          symbolic function defining parabolic coordinates
% parabo.m         function used to plot parabolic coordinates
% readme.m         typing help readme prints this workspace description
% runconic.m       illustrates planes intersecting a cone to produce
%                  the four conic section curves: parabola, hyperbola, 
%                  circle, and ellipse 
% runcoord.m       interactive program to draw coordinate surfaces for
%                  several curvilinear coordinate systems
% 
% rundivcrl.m      program to compare numerical results when divergence
%                  and curl of a general vector are computed in both
%                  cartesian and curvilinear coordinates
%
% rundivcrl.tst    shows numerical output from progam rundivcrl for 
%                  several coordinate systems
%
% runmetric.m      program to compute and print the base vectors, metric 
%                  tensors, and Christoffel symbols for a general
%                  curvilinear coordinate system. 
% runmetric.tst    shows extensive symbolic output from program
%                  runmetric for various coordinate systems. Output for
%                  some of the coordinate systems is quite lengthy.
% sphr.m           symbolic function defining spherical coordinates
% sphr0.m          function used to plot spherical coordinates     
% testdivcrl.m     script to run data cases on program rundivcrl
% testmetric.m     script to run data cases on program runmetric
% toroid.m         symbolic function defining toroidal coordinates
% toroid0.m        function used to plot toroidal coordinates

Contact us at files@mathworks.com