# Displacement Perturbations in lammps

Dear users,

I wanted to apply displacement perturbations in my system. I have used nve/sphere because of which I can’t use fix move variable. Is it possible to use displace_atoms (such that it is evaluated every timestep)? Is there some other way?

Thank You

Dear users,

I wanted to apply displacement and velocity perturbations in my system at every timestep. I have used nve/sphere because of which I can’t use fix move variable. Is it possible to use displace_atoms (such that it is evaluated every timestep)? Is there some other way?

Thank You

Fix move is the every-timestep way of doing displace_atoms.

Why do you need fix nve/sphere if you are moving atoms’

explicitly?

Steve

I don’t want to give displacement explicitly. I want it do move as it wants as per nve/sphere fix. After that I want to add infinitesimally small displacement to the particles displacement at each timestep. However, since I am using nve/sphere, I cannot use fix move variable to specify it.

Are you sure you aren’t looking to simply add noise/a stochastic term to your equations of motion? Fix Langevin might be a good place to start.

Sorry for not providing exact description earlier.

I am trying to give an extra small perturbation in an already perturbed system that relates to calculation of lyapunov exponent.

Generally, the perturbations are given at t=0 in dynamical system but my idea revolved around adding an extra perturbation at each timestep to see how the system evolves. Now the calculation of lyapunov exponent can be done using an ideal trajectory and the perturbed trajectory. I already have the following :

1. Ideal trajectory simulation (No perturbations in displacement and velocity)
2. Perturbed Trajectory (Perturbation in displacement and velocity at t=0)

I need the last :

1. Perturbed uniformly (Perturbation in displacement and velocity at every timestep with initial perturbation at t=0 being the same as 2)

I performed 1 normally.

I performed 2 as follows :

variable xpertub atom (random(-0.00000001, 0.00000001, 54851)

… (similary other variables)

displace_atoms active move v_xpertub v_ypertub 0 #active is the group on which I apply perturbations

velocity active set v_vpertub v_ypertub 0

and I proceed normally as done in 1

I couldn’t perform 3 though. I though of applying pertubations in the form of fix addforce using variable style that generates random force which will be reflected as perturbations in velocity and displacement. However, the velocity and displacement perturbation shall be correlated due to addforce which I don’t want.

I also thought of applying fix langevin but it will be basically be same thing as addforce with variable style. (I may be wrong here though).

You can probably still take Fix Langevin at least as a model to create a fix from - I haven’t kept up with development of new features, but I don’t think there is an out of the box solution - I’ll let someone else answer that.

But food for thought - As far as I knew, Lyupanov exponents only make sense in terms of how fast trajectories diverge due to dynamics not stochastic terms for an infinitesimal perturbation as t->inf. So what do you hope to gain by supplying perturbations at every time-step? unless you’re cloning every case after the perturbation and comparing trajectories of these quickly multiplying scenarios

What you are suggesting I have done in my 2nd simulation with perturbations at only time=0. I wished to see how perturbations that act on every time step throughout affects the result of 2. And no I am not cloning at every timestep which would be same as doing simulation no. 2 about millions of times. I just wanted to recreate 2 by supplying perturbations at every timestep.

I would see if I can make fix langevin work.

Thanks for help, Eric.

You can probably still take Fix Langevin at least as a model to create a
fix from - I haven't kept up with development of new features, but I don't
think there is an out of the box solution - I'll let someone else answer
that.

​it is trivial to perform such additional ​perturbations, simply by using
fix addforce. any modification of the force will affect both, velocities
and positions.

axel.

You can probably still take Fix Langevin at least as a model to create a
fix from - I haven't kept up with development of new features, but I don't
think there is an out of the box solution - I'll let someone else answer
that.

​it is trivial to perform such additional ​perturbations, simply by using
fix addforce. any modification of the force will affect both, velocities
and positions.

​that said, i agree that this doesn't really make sense.
if you want to study lyapunov well you need to run more trajectories, not
mess with them.​

axel.

Translated into plain English…