vector3d



Thank you for copying me on these messages about vector3d.  You are
correct that the documentation is a bit confusing, mainly because the
different vector calculus packages have different, although overlaping,
capabilities and are not compatible.  Documentation for vector is there,
although not all where it needs to be.  There is a demo that one can
run with

   demo("vector3d");

and documentation of each function in the vector3d.usg file, which I
guess one has to read with something like

   less /usr/local/share/maxima/5.13.0/share/contrib/vector3d/vector3d.usg

outside of maxima.  This documentation really needs to be in texinfo so
that it is available to descibe() also.  Thus your suggestion to supply
texinfo is an excellent one.  Or I would gladly put one together if you
have better things to do.

As far as simplification goes, you may find that it happens automatically
with an expand().  On the other hand, you are correct that vector3d
doesn't know about vector identities, and such an enhancement could
be useful.

Thank you for your interest in vector3d.

-Walter Eastes

----------original message----------
from: al at beshenov.ru
date: Mon, 17 Mar 2008 08:02:11 +0300
to: maxima at math.utexas.edu
cc: eastes at infinet.com
subject: Re: [Maxima] vector3d

On Monday 17 March 2008 07:11, Robert Dodier wrote:
> On 3/15/08, Alexey Beshenov <al at beshenov.ru> wrote:
>> /share/contrib/vector3d code is pretty clear, but it isn't documented in
>>  texinfo (as far as I see). It seems that there are no other working
>>  implementations of vector calculus stuff in Maxima. /share/vector/
>> contains something old and weird.
>>
>>  I'll do a texinfo file for vector3d, okay?
>
> Before you get started on that, I'll recommend that you review the
> existing vector packages, of which I think there are three,
> vect, vector, and vector3d. They seem to implement overlapping
> but somewhat different collections of identities and what-not.
> Ideally we would determine what are the identities known to each
> package, and merge all the ones deemed useful into a single
> package, and get rid of the others. If you want to go into that,
> please go right ahead.

> But if all you want to do is write some documentation for vector3d,
> that's OK too. There is a plain-text file vector.usg which has some notes.

I found the current documentation a bit confusing. It says that
vectorsimp(...) from the package "vect" knows how to expand expressions
with "div", "grad", "curl" and "laplacian". But these operators are not
listed at the reference manual index, so it seems that only vectorsimp(...)
knows about them (?).

Am I right and only /share/contrib/vector3d stuff can actually compute=
divergence, gradient, curl and laplacian? It defines functions div(...),
grad(...), curl(...), laplacian(...), but not operators, so it's not
compatible with vectorsimp(...). vector3d knows nothing about identities, it
just applies certain operators to given scalar or vector functions.

In my opinion, the basic needed functionality is computing gradient,
divergence, curl and laplacian in cartesian, cylindrical and spherical
coordinates. vector3d fits these needs. All we should do is to merge it with
vectorsimp(...) stuff, I think.

So we should add operators div, grad, curl/rot, laplacian and basic rules for
simplification, and maybe add rectangular and polar coordinates.

--
Alexey Beshenov <al at beshenov.ru>
http://beshenov.ru/