Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2006

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

Search the Archive

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,

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

HTH,
Jean-Marc

[1] 
http://documents.wolfram.com/mathematica/Built-inFunctions/AdvancedDocumentation/DifferentialEquations/NDSolve/ODEIntegrationMethods/ControllerMethods/EventLocation.html


  • 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?