Re: Re: want to modify NDSolve--molecular dynamics with mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg26427] Re: [mg26365] Re: want to modify NDSolve--molecular dynamics with mathematica
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Wed, 20 Dec 2000 00:21:47 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <90v82t$79m@smc.vnet.net> <200012130741.CAA17214@smc.vnet.net> <zJE%5.114767$b16.450942@ralph.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, funny idea. How often did you expect to restart the initial value solver with say 10 particles in three dimensions, when only one of the 30 coordinates cross a boundary ? StoppingTest stops not exactly when the condition is full filled. It stop a bit later. Than you have to the exact time where the crossing take place, extract the initial conditions for the restart and save the truncated interpolation functions. Since every call of NDSolve has a overhead (compile the functions, extract the inital conditions ..) you will end up with a incredible solwing down. More over, the InterpolationFunction[] of all coordinates will overlap a bit on every restarting time, you can't draw them correctly because every pice can only used for a small time interval and you have extract the time interval to prevent the extrapolation. The basic idea of molecular dynamics is that the trajectories of the particles are useless. The basic idea of NDSolve[] is, that the trajectories are the most important result. It can't get together. Additional one has to say that NDSolve[] use integration methods that don't care for so important physical quatities like the energy conservation. None of the integration methods (Runge Kutta, Adams-Bashford/Adams-Multon or Gear) is symplectic or can deal with algebraic constrains like the momentum or energy conservation. Even when the methods would be symplectic the step size control of NDSolve[] will destroy the time reversal symmetrie and the energie conservation. Regards Jens Richard Gass wrote: > > Hi, > There is a little known option to NDSolve called "StoppingTest". Rob > Knapp talked about this option is his talk on NDSolve at the last > developers conference. I believe that you can use StoppingTest to > stop the solution when x[t]>a0 . You can then restart NDSolve after > you have moved the atom. > Jens-Peer Kuska wrote: > >Hi, > > > >you can write your equation with Mod[x[t],a0] > >but it will make the InterpolatingFunction[]s > >returned by NDSolve[] unusable. Because > >x[t] will jump back to for x>a0 and the > >interpolation is useless. > > > >You must write your own initial value solver. > > > >Regards > > Jens > >
- References:
- Re: want to modify NDSolve--molecular dynamics with mathematica
- From: Jens-Peer Kuska <kuska@informatik.uni-leipzig.de>
- Re: want to modify NDSolve--molecular dynamics with mathematica