Re: Geodesics with NDSolve

• To: mathgroup at smc.vnet.net
• Subject: [mg66422] Re: Geodesics with NDSolve
• From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
• Date: Thu, 11 May 2006 05:36:34 -0400 (EDT)
• Organization: The Open University, Milton Keynes, UK
• References: <e3unsi\$i2d\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```sigmundv wrote:
> I am working with geodesics on a torus, for which I want to locate the
> cut locus. For this purpose I solve the geodesic equations (two coupled
> non-linear first order ODEs), shooting off two geodesics in different
> directions from a point p on the surface. The geodesics then meet at
> some other (cut) point q1 on the surface. If you change the angle
> between the geodesics at the inital point p, they meet at another point
> q2 on the surface. In this way, you get a set of points, which together
> constitute the socalled cut locus of the torus.
>
> To solve the coupled ODEs in Mathematica, I use NDSolve. This works
> good, and I am able to locate the points q1, q2, etc. I do this by
> solving the ODEs in a fixed interval for the independent variable, say
> t. However, in order to find all the cut points, I have to use
> different intervals for t. At the moment, I change the interval
> manually, but I would like to do it somehow automatically.
>
> What I would like to achieve is: 1) I specify a large interval for t;
> 2) after each time step, I check the distance in space between the two
> geodesics; 3) if the distance is smaller than a given tolerance,
> NDSolve is stopped -- alternatively, if the distance at t(n+1) is
> larger than the distance at t(n), NDSolve is stopped, and t(n) is
> accepted.
>
> The problem is, however, that the solution to the ODEs is in the
> (u,v)-plane, and thus has to be inserted into the parametrization of
> the torus, in order to check the distance in space. This has to be done
> after each time step in NDSolve, why this strategy might prove
> ineffective.
>
> I do not know if I can achieve this in Mathematica -- with the built-in
> function NDSolve. Therefore I am asking you Mathematica experts for any
> suggestions on how to achieve what I want here. Do you see what I want
> to achieve? I will not provide you with more information now, but if
> you want to, I can post the work I have done so far later.
>
> Regards,
>
> Sigmund Vestergaard
> stud.polyt. at the Technical University of Denmark
>
Hi Sigmund,

"It is often useful to be able to detect and precisely locate a change
in a differential system. For example, with the detection of a
singularity or state change, the appropriate action can be taken, such
as restarting the integration [1]."

HTH,
Jean-Marc

[1]