Maple packages for differential forms and Cartan-Kahler
analysis
Updated 11/8/2010
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-14) 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.
Changes as of 11/8/2010 include:
- The default wedge product command "&^" doesn't play nicely
with Maple's Document mode in newer versions of Maple.
(This was
only recently pointed out to me by a student; being an old dog
who
can't be bothered learning new tricks, I still use Worksheet
mode.) To address this, I have added an alternative
version for
Document mode, replacing "&^" with "&w". (As
always, you
can choose whatever string you like using the WedgeProduct
command, but
strings beginning with the "&" character have more versatile
syntax
than strings that don't, in that you can, e.g., type "omega[1]
&^omega[2]" in lieu of "&^(omega[1], omega[2])." )
So if
you still use Worksheet mode, there's nothing new to see here,
but if
you like Document mode, download the appropriate version below.
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.
The development of the Cartan package was partially supported by the
National Science Foundation under Grant No. DMS-0908456. Any
opinions, findings and conclusions or recommendations expressed in
this material are those of the author and do not necessarily reflect
the views of the National Science Foundation (NSF).