Questions about interfacing as needed for using Maxima CAS for engineering problems (master thesis)



Edwin Rozie wrote:

> Hello,
> 
> I just started to work on my master thesis. My topic is to create an
> extension of computer algebra systems for typical engineering problems.
> This will be a parallel program and my thesis professor is an expert in
> parallel systems. I would like to find detailed information on the CAS
> interface.
> 
> Because a lot of engineering problems require differential equitations,
> I am very interested in using Maxima as CAS engine.
> 
> I read success-stories about interfacing Maxima on this mailing list
> like for example
> http://www.math.utexas.edu/pipermail/maxima/2005/010600.html or
> http://www.math.utexas.edu/pipermail/maxima/2002/003100.html .
> 
> I have the following questions:
> 
> - Are (open source) interfaces to C, C++, PHP or Java programs already
> been developed?
There are lots of ways of arranging your programs.  If you start up
the program as Maxima, then it is generally easy to call C, C++, Fortran,
programs.  In some versions of Lisp, Java also, but are there really engineering
programs written in Java?? or PHP??

If you insist on starting up a C program and then trying to send information
to Maxima, you can do that too, but the connection over a socket requires
some management.

> 
> - I could not find any API documentation about interfacing Maxima, does
> these exists?

Maxima was designed originally as a integrated system from user-interface to
computation. If you rip off the user interface and put another one on instead,
you will be about the 5th or 6th person to do that. Some were more successful
than others in terms of supplying all the features.

> 
> - If no API documentation exists, can I find some working
> proof-of-concept-demo' source code I can use to learn from that?

wxmaxima, texmacs, xmaxima, emaxima  come to mind.


> 
> Thanks for helping me out :)

Oh, by the way, so far as I know, "typical engineering" computations may
involve the solution of differential equations, but none of them
involve the solution in closed form, symbolically, of differential
equations.
   So the trick that Maxima can perform for you is of no interest
to typical engineers.  You will have to find the unusual engineer
or unusual problem  in which new and different differential equations
come up and/or the task is to find a symbolic solution, e.g. with
parameters.
    Engineers are usually content with numerical programs, for historical
and practical reasons.
    As for doing something in parallel, there are examples of making
Maxima-like programs run in parallel on some tasks, but I doubt that
running ODE2  (the 2nd order diff. eq. solver) will be a task which
parallelizes much.  More basic tasks might be better targets.
Or maybe symbolic matrix computations of some sorts.

RJF