MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Geodesics with NDSolve

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

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,

The option *EventLocator* might be the answer to your question. Check 
the _Advanced Documentation_:

"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]."



  • Prev by Date: Re: Faster Random Walk Simulation ?!?
  • Next by Date: RE: Beginner--How to simulate multiple returns for a function?
  • Previous by thread: Geodesics with NDSolve
  • Next by thread: Beginner--How to simulate multiple returns for a function?