Maple packages for differential forms and Cartan-Kahler analysis
Updated 1/22/2008
Please send comments,
questions, and
ideas to me here.
Forms package
This is a Maple package for doing computations involving differential
forms.
It was written by Yunliang Yu of Duke University and maintained by him
through Maple V, Release 4. It has been revised for Maple V,
Release 5 by myself, and for Maple 6 and higher by myself and Tom
Ivey.
Changes and improvements as of 10/6/2004 include:
- IMPORTANT BUG FIX: Previously, if the definition of a form or its
exterior derivative changed -- for example, if torsion coefficients
were renamed -- after its exterior derivative had originally been
defined (or computed), subsequent references to the exterior derivative
would sometimes use the original result rather than recomputing it,
resulting in errors in computations such as d(d(w)) = 0. This has
been fixed by eliminating the remember tables for all commands in this
package. Theoretically, this could result in a slight loss of
computational efficiency, but it seems to me a small price to pay for
accuracy.
- The commands "hook" and "LieDeriv" have been added. "hook"
is a more versatile version of "L", which has been retained only for
backwards compatibility.
- The help page now works and is accessible via "help(Forms);"
This package is posted here
with Yunliang Yu's permission; installation instructions are included
with each
version.
Cartan package (formerly Cartan_Kahler)
This is a Maple package that I wrote for doing computations for the
Cartan-Kahler analysis of linear Pfaffian systems. It can compute
structure equations, absorb the torsion whenever possible (and compute
unabsorbable torsion when it is not possible), compute Cartan
characters and test for involutivity, and compute prolongations.
Changes and improvements as of 10/6/2004 include:
- The Forms package is now included as a subpackage of Cartan, so
you don't have to install it separately unless you just want to (or
unless you want to continue to use the old version of
Cartan_Kahler).
- Cartan is now a bona fide package, even in Maple V.5.
- The syntax of the "makebacksub" and "prolong" commands has
changed slightly, from
"makebacksub(sublist, backsublist);" and
"prolong(ideal, etas, pis, inteltspace, theta, p, newideal);"
which assigned the desired result to the last input parameter, to
"makebacksub(sublist);" and "prolong(ideal, etas,
pis, inteltspace, theta, p);"
so that assignments are made via
"backsublist:= makebacksub(sublist);" and "newideal:=
prolong(ideal, etas, pis, inteltspace, theta, p);"
I apologize for the fact that this change is not backwards-compatible
for old worksheets, but it seemed like a much more intuitive choice,
and I wonder why I didn't do it that way the first time!
- The ordering of the unabsorbable torsion list should now be
consistent between runs.
- The results of the CartanKahler command are now formatted so as
to eliminate the superfluous commas that were there before, and now
include statements such as "Solutions depend on 1 function of 2
variables" in the involutive case.
- There is now a help page, accessible via "help(Cartan);"
Changes as of 1/22/2008 (only for Maple 6-11) include:
- I have added some warning messages to make CartanKahler more
idiot-proof. (Count me as idiot-in-chief.) CartanKahler now
generates
a warning message to alert the user when the forms in the ideal contain
scalar coefficients whose exterior derivatives have not been
defined. Sometimes
this
is perfectly fine - e.g., when the forms in the ideal contain
parameters arising as the result of a prolongation. But if there
are
scalars which are intended to be functions of other variables,
e.g.,
theta = d(z) - f*d(x) - q*d(y)
representing the PDE
z_x = f(x,y),
then
you MUST hardwire their derivatives before running
CartanKahler. In the example above, this could be accomplished by
defining
d(f):= f_x*d(x) + f_y*d(y);
(In this example, this could be equally well accomplished by explicitly
writing f(x,y) in place of f; however, this only works if you are using
coordinate 1-forms, as opposed to, say, Maurer-Cartan forms.) It
doesn't matter what names you use for the derivatives; the point is
that if f is a dependent variable, you have to tell Maple which basis
1-forms its exterior derivative depends on.
The Forms package is used here with Yunliang Yu's permission;
installation instructions are included
with each
version.
WARNING: there appears to be an esoteric bug in the "solve" command in
Maple 7 and 7.01 which sometimes prevents the package from
working. I don't know what to do about this except to use a
different version of Maple.