Colnew (Was Re: grinding to C, colnew)



Raymond Toy wrote:


>> exemplified in
>> http://www.mathworks.com/help/techdoc/math/f1-713877.html#brfhdqp-2
> Thanks for this link.  I'll take a look at it and see how to use this
> feature. I previously had not tried this because I couldn't find a
> simple and readable example (using a language that I knew).

I had not found this example previously. So here we have a boundary layer
problem, we may think the parameter is viscosity, for large viscosity, the 
boundary layer is smooth and easy to solve, so continue from that to small
viscosity where the problems becomes very steep and hard to compute.

The example i have is the quantum Neumann problem. It illustrates the fact
that colnew can be used to find eigenvalues of boundary problems. The trick
is to add a new equation (lambda)'=0 for each eigenvalue appearing in the 
equation and having of course as many equations as unknowns. The problem is 
discussed in details here:
http://arxiv.org/pdf/hep-th/0407005
http://arxiv.org/pdf/hep-th/0507207
It is a Schrodinger equation on a sphere of radius R. When R -> 0 the 
problem reduces to spheroidal harmonics, which in the coordinates in 
question are polynomials with roots satisfying a known equation (see
Whittaker and Watson, last chapter). This serves as guess for small R.
Then one performs continuation up to large values of R. This means of the 
order of 50 computations for each eigenvalue followed from small R to large 
R. In the above papers 36 eigenvalues are followed which means solving
36*50 differential equations and boundary problems. There is the further 
niceness that one can compute the eigenvalues for large R by perturbation 
theory, and check the numerical computation. Anyways the computation took
of the order of 5 mn with scilab running directly the fortran colnew,
on a P4 uniprocessor at 3Ghz.
I will report the time needed to do the same with the lispified colnew.


> interact with colnew from maxima.  I made the interface to colnew to
> support basic operations easily or at least what I thought would be
> "natural".

As far as i can see your interface supports absolutely everything except
continuation.

> 
> We could also provide a more advance "expert" interface that exposes
> more of the colnew interface for expert users to control.


I think what could be useful is a dumbed down version where ipar array is 
automatically filled and so on. On can compute the size of ispace and fspace
automatically, check that the data obey the appropriate constraints etc.
With some ingeniosity one can determine the z vector from the equations and
write automatically everything in terms of the z vector.
This is what the python wrapper does and i am working on. I will also try to 
provide a sufficiently extensive documentation and examples. By the way
the python wrapper and more examples are here:
http://pav.iki.fi/software/bvp/
Example 2 here is also a continuation example.


>>
>> Second, there exists on maxima CVS a file called colnew.mac under
>> share/colnew, which contains
>> /* Compile and load the colnew routines (in lisp) */
>> load("load-colnew.lisp");
>> At least in my installation this file is missing. But it is useful for
>>
> This is a bug.  You're expected to use load("colnew") to load up the
> colnew package.  I'll look into seeing that it gets installed.

In fact i don't remember if it is colnew.mac or load-colnew.lisp which is 
missing, but one of the two is not here.

> 
> Ray

-- 
Michel Talon