This package may be broken. Please use the VECT package on the SHARE directory. - JPG 6/5/78 This is a package of vector operators designed to make vector operations convenient. Several vector operators are included. The coordinate system may be specified by the user. Included in the system are Cartesian, cylindrical and spherical coordinates in three dimensions. Rectangular and polar coordinates are included in two dimensions. The user is able to specify a new system to be used, such as elliptical, in either two or three dimensions. A function is included to change from any coordinate system to another predefined system, or to another new system. This system is designed only to handle orthogonal curvilinear coordinate systems. The vectors used in the system may be either lists or one-dimensional matrices. When an operation on a vector returns a vector, then a one-dimensional matrix is returned if the arguments are matrices. If any argument is a list, then a list is returned. When an operation on a scalar returns a vector, then the value of the global variable "vector" determines the form of the answer. When vector has a value of "list", a list is returned. Otherwise a one-dimensional matrix is returned. When a two-dimensional sys- tem is specified, a scalar may be used where a vector is required, in which case the scalar is considered to be a vector pointing out of the plane. Future Extensions: Currently only three pre-defined three-dimensional coordinate systems are included. Eight additional systems that lead to sep- arable forms for the wave equation are: elliptic cylinder, prolate spheroidal, oblate spheroidal, parabolic-cylinder, parabolic, coni- cal, ellipsoidal, and paraboloidal. 1. Description of Global Variables. Global Initial Variable Value Explanation -------- ------- ----------- coordsystem cartesian Coordinate system to be used. dimension 3 Number of dimensions of coordinate system. coordvar [x, y, z] Variables varying along axes of coordinate system being used. scalefactor [1, 1, 1] Scale factors associated with coordinate system being used. vector list Vectors to be used are lists, rather than one-dimensional matrices. 2. Description of Pre-defined Coordinate Systems. Coordsystem Dimension Coordvar Scalefactor ----------- --------- -------- ----------- rectangular 2 [x, y] [1, 1] polar 2 [r, th] [1, r] cartesian 3 [x, y, z] [1, 1, 1] cylindrical 3 [r, ph, z] [1, r, 1] spherical 3 [r, th, ph] [1, r, r*SIN(th)] coordsystem(arg) Specifies that coordinate system arg is to be set up to be used by the vector operators in this package. When arg is one of the values possible in the preced- ing table for the global variable coordsystem, the specified coordinate system is set up. All the global variables are changed to new values as indicated by the table. 3. Specification of Other Coordinate Systems. A) First Method. Coordsystem(arg) specifies that coordinate system arg is to be set up. When arg is not one of the pre-defined systems, then the program asks the user to specify the new values of the global variables. Thus any coordinate system may be specified by the user. B) Second Method. The user may also set the values of the global variables di- rectly. This may be useful in, for example, a BATCH file if the user does not desire to type the new coordinate sys- tem each time the program is BATCHed. The variable coordsystem should be set to a name corresponding to the coordinate system being specified. The global variables dimension, coordvar and scalefactor must be set to appropriate values. Note that just setting coordsystem does not cause other global variables to be changed. 4. Descripton of Vector Operators Available. Operation Explanation --------- ----------- vectorp(a) A predicate that returns TRUE if a is a matrix or a list. Thus A is characterized by both magnitude and direction, quantities computed from the components of a. a cross b Cross product of arguments a and b. grad s Gradient of scalar s, or the vector with a magnitude and direction of the maximum directional derivative. div v Divergence of vector v, or the scalar product of the vector v with the outward drawn normal. curl a Curl of vector a, or the vector product of vector a with the outward drawn normal. laplacian a The Laplacian of a, or the divergence of the gradient of a. If a is a scalar, then the result is a scalar. The Laplacian of vector a is defined as grad div a - curl curl a. v dotdel b Directional derivative of vector v in the direction of b. Result is a scalar if b is a scalar, and is a vector if b is a vector. Christoffel symbols are used if defined. christoffel Defines the Christoffel symbols for use with the directional derivative, dotdel. curlgrad s Curl of the gradient of scalar a, which is zero. graddiv v Gradient of the divergence of vector v. divcurl v Divergence of the curl of vector v, which is zero. curlcurl v Curl of the curl of vector v. This system has been written by Martin Cole. Suggested improve- ments may be incorporated into this package. Any comments or sug- gestions should be mailed to MSC@MIT-MC.