The main objects upon which this package operates are the free vector, the PositionVector, the RootedVector, the VectorField, curves, surfaces, and scalar fields. Lists cannot be used in place of vectors, and scalar fields are ordinary Maple functions and expressions. Information about vector objects  coordinate systems and names of coordinates  are stored as attributes of the vector objects. The About, attributes, and GetCoordinates commands can be used to recover this information.
The free vector is created in one of two ways. The anglebracket notation creates a free vector in the extant coordinate system. At this point in this worksheet, that coordinate system is Cartesian.
>


 (1.1) 
The explicit use of the Vector command permits attaching coordinates to the free vector.
>


 (1.2) 
In each case, the free vector is really a point. In Cartesian coordinates, the free vector is a vector from the origin to the point , and the identification of the point with the free vector is permissible because the unit basis vectors are everywhere parallel.
By analogy, the free vector is a point in a rectangular frame with axes labeled (horizontal) and (vertical). In this frame, the point with polar coordinates is connected to the origin with an arrow, and this arrow is .
Information about and is obtained as follows.
The VectorField command is used to create a vector field.
>


 (1.6) 
The unit basis vectors and are used in place of and , respectively. The bar denotes that the domain of these basis vectors is the underlying Cartesian space, and that the vectors themselves are position dependent. Of course, in Cartesian coordinates, these basis vectors are independent of position, but the bar is still used to denote that these are the "moving" basis vectors that are defined at each point in the space supporting the vector field, and that are given in the coordinate system in which the vector field is given.
Alternatively, the vector field
>


 (1.7) 
defines a field of vectors whose domain is each point (except for the origin) in the Cartesian plane on which the coordinate curves of the polar coordinate system have been "pulled back." This is the familiar view of polar coordinates superimposed on the Cartesian plane  concentric circles as lines of constant , and radial rays as lines of constant . In this view of the change of coordinates to polar coordinates, the vectors and are position dependent. These "moving" basis vectors change direction from point to point, and are not to be confused with the basis vectors appearing in
>


 (1.8) 
If the evalVF command is used to evaluate the vector field G at a point in the Cartesian plane, the result is a RootedVector. For example, evaluating at the Cartesian point whose polarcoordinate description is is effected by
>


 (1.9) 
because the free vector is the Maple representation of the point whose polar coordinates are . Indeed, we have
>


 (1.10) 
The root point is the point of "attachment" for the single vector , which is actually a "bound" vector, bound to the root point.
A rooted vector can be defined directly with the RootedVector command.
>


 (1.11) 
To verify that this is a vector in polar coordinates, rooted at the polar point use
>


 (1.12) 
Information about the rooted vector is actually stored in a module that could be created with the VectorSpace command.
>


 (1.13) 
The vector space is the set of all vectors of appropriate dimension that have their root point at The basis for this vector space is the vectors the moving basis vectors defined at the root point. Individual vectors in this space can be created as module exports via the syntax
>


 (1.14) 
That is the vector rooted at the point can be see with
>


 (1.15) 
Creating rooted vectors via the VectorSpace command works well when many such vectors will have the same root point. The RootedVector command is most convenient for single rooted vectors.
Finally, there is the PositionVector command that creates the radiusvector form of curves and surfaces. The vectors
>


 (1.16) 
are PositionVectors, vectors from the origin of a Cartesian frame to the relevant point in that frame. Points can be parametrized by up to two parameters; a oneparameter family of points represents a curve, and a twoparameter family, a surface. Indeed, we have
The PositionVector construct applies only in Cartesian coordinates. The Position Vector
>


 (1.19) 
describes the origincentered circle of radius 2 drawn in the Cartesian plane, as we see from
>


 (1.20) 
Consequently, in the Cartesian plane the PositionVector, the free vector, and the vector rooted at the origin are essentially the same arrow, but because these are represented in the VectorCalculus package by distinct data structures, they are not necessarily recognized by Maple as being the same. Thus, the package provides the ConvertVector command for converting one form of the Cartesian vector to another.
>


 (1.21) 

>


 (1.22) 

>


 (1.23) 



A final word about the visual display of vectors and vector fields in the VectorCalculus package. The default display for free vectors and vector fields is explicitly in terms of basis vectors. This display can be changed to a columnvector format with the BasisFormat command. The setting
>


causes the displays to be
>


 (1.24) 
respectively, for a free vector and a vector field. The PositionVector is always displayed as a column vector.
The MapToBasis command imposes a change of coordinates on a vector or vector field. For example, to express the Cartesian vector field
>


 (1.25) 
in polar coordinates, use
>


 (1.26) 
This is equivalent to expressing the unit basis vectors and in terms of the vectors and then making the substitutions . This calculation can be carried out from first principles if the following position vector is first defined.
>


 (1.27) 
The basis vectors and are obtained from R via
Writing these vectors in terms of and can be done with
>


 (1.30) 
Solving for and in terms of vectors and we get
>


 (1.31) 
Representing the vector field in terms of and , then replacing and with their equivalents in terms of the vectors and we get
>


 (1.32) 
Making the substitutions , we get
>


 (1.33) 
A final rearrangement of terms, and an identification of and with vectors and respectively, gives
>


 (1.34) 
which compares favorably with
>


 (1.35) 
The MapToBasis command can also be used to transform a point in one coordinate system to its representation in another. Setting
>


will make the result of
>


 (1.36) 
easier to understand. The Cartesian point , represented as a free vector, has been transformed to also given as a free vector. This is not a vector transformation. The MapToBasis command applies the contravariant transformation law to a rooted vector or a vector field. Applied to a free vector, it transforms just the components. The basis vectors are not so transformed because the free vector is not a vector; it is really just a representation of a point in curvilinear coordinates.