Tensor analysis, with Riemannian (and more general affine) connections, is the "absolute differential calculus" which is valid in all coordinate systems on differentiable manifolds. It is often the most powerful way to state and solve problems in many branches of continuum mechanics, including solid mechanics, fluid mechanics, electrodynamics, and general relativity.

Macsyma has five main (vector and) tensor packages:

- ITENSOR
- package for indicial tensor computations
- CTENSOR
- package for component tensor computations
- ATENSOR
- package for tensor algebras, including Clifford algebras, symplectic algebras, exterior algebras, universal tensor algebras and other tensor algebras.
- CARTAN
- package for exterior calculus of differential forms
- VECT
- package for vector calculus.

Macsyma's dot operator "." can be used to construct tensor algebras, as in ATENSOR. Do DEMO(DOTOPERATOR); for a demonstration.

Macsyma has facilities for user to define their own OPERATORS, which can be used to define tensor algebras, Lie algebras, etc. Do DEMO(OPERATORS); for a demonstration.

ITENSOR includes coordinate derivatives, covariant derivatives (and curvature), Lie derivatives, exterior derivatives, extrinsic derivatives, and variational derivatives of tensor expressions.

ITENSOR includes frame fields, affine torsion and conformal nonmetricity. It has extensive facilities for expressing information about tensor contractions and symmetries, and a range of commands for simplifying indicial tensor expressions.

Do USAGE(ITENSOR); for more information.

For demonstrations, do

DEMO(ITENSOR); (general demonstration) DEMO(ITENSOR1); (basic Riemannian geometry) DEMO(ITENSOR2); (elastic strain) DEMO(ITENSOR3); (general relativity, weak field approximation) DEMO(ITENSOR4); (general relativity, div(Einstein)=0) DEMO(ITENSOR5); (Riemannian geometry, spaces of constant curvature) DEMO(ITENSOR6); (general relativity, a curvature invariant) DEMO(ITENSIMP); compares various ITENSOR simplication commands DEMO(IVARY); variational derivatives of tensor expressions.Do DEMO(TENS_PDE); for a demonstration of ITENSOR working with CTENSOR, the component tensor package, to manipulate tensor partial differential equations.

CTENSOR includes frame fields, affine torsion and conformal nonmetricity. CTENSOR computes various curvature tensors.

Do USAGE(CTENSOR); for more information.

For on-line demonstrations, do

DEMO(CTENSOR); General relativity, Schwarzschild solution DEMO(CTENSOR1); Elasticity theory DEMO(C2SPHERE); Riemannian geometry of a 2-sphere DEMO(KERR_NEWMAN); General relativity, Kerr-Newman solution DEMO(ROB_WALKER); General relativity, Robertson-Walker cosmology DEMO(TENS_PDE); Fluid mechanics and finite difference generation DEMO(COORDSYS); Generating equations in curvilinear coordinates.For writing tensor differential equations in specific coordinate systems, see CT_COORDS.

- universal tensor algebras,
- symmetric tensor algebras,
- Grassmann (antisymmetric) algebras,
- Clifford algebras,
- symplectic algebras,
- Lie enveloping algebras.

Do USAGE(ATENSOR); for more information, and DEMO(ATENSOR); for a demonstration.

CARTAN performs exterior products, exterior derivatives, Lie derivatives, and contraction of vectorfields and differential forms.

Do USAGE(CARTAN); for more information, and DEMO(CARTAN); for a demonstration.

The package contains the commands VECTORSIMP, SCALEFACTORS, EXPRESS, POTENTIAL, and VECTORPOTENTIAL. Do LOAD("VECT"); to load this package. Do USAGE(VECT); for more information.

Do DEMO(VECT); and DEMO(VECT_PDE); for demonstrations.

The library file VECT_ORTH contains definitions of various orthogonal curvilinear coordinate systems, in a form usable by the VECT package. CT_COORDSYS defines coordinate systems for the CTENSOR package.

The CARTAN package for exterior calculus also contains some vector calculus operations. See CARTAN for more information.

Warning: The VECT package declares "." to be a commutative operator. In order to restore "." to its usual status as the noncommutative matrix multiplication operation, do REMOVE(".",COMMUTATIVE); when done with the VECT package.

Special Purpose Systems