compute pair/local dist

Hi all,

I wanted to investigate interatomic distance for an impact system. For it, I set a simple crystal structure with copper, which only had 2048 atoms.
I used the following commands:

compute 1 all pair/local dist
dump 1 all local 10 cu.loc c_1

The result of its running was the value of c_1 greater than 2 and less than 5.
And then I changed the system, the value of c_1 was still between 2 and 5.
But I need a value of less than 1.
It is obvious that the above values of interatmoic distance are not consistent with ones of the actual impact.

Can’t the value of the less than 1 get using compute pair/local? Why?

I would really appreciate any suggestion.
Thanks.

Cheers,
Pan

Hi all,

I wanted to investigate interatomic distance for an impact system. For it, I
set a simple crystal structure with copper, which only had 2048 atoms.
I used the following commands:

compute 1 all pair/local dist
dump 1 all local 10 cu.loc c_1

The result of its running was the value of c_1 greater than 2 and less than
5.
And then I changed the system, the value of c_1 was still between 2 and 5.
But I need a value of less than 1.

well, a result is a result. since you are not
providing any information about *how* you
changed "the system". it is impossible to
give any specific advice. how do you determine,
that the result should be 1 or less?

It is obvious that the above values of interatmoic distance are not
consistent with ones of the actual impact.

why? there is nothing obvious, since you
don't provide any information.

Can't the value of the less than 1 get using compute pair/local? Why?

sure it can be had, but to have it, your
simulation has to produce a conformation
that that contains this kind of distance.
obviously it doesn't. i doubt that the compute
pair/local is to blame for that.

axel.

How do you know there are any atoms closer
than 1 Angstrom apart. Have you dumped the
coords into a file and verified some pair of
atoms is that close? If you are reneighboring
often enough to track them, then compute pair local
will certainly see them as well.

Steve

Dear Steve and Axel,

The following is the input script on the simulation of interatomic distance.
units metal
boundary p s p
atom_style atomic
lattice fcc 3.615
region box block 0 8 0 8 0 8
create_box 1 box
create_atoms 1 box
pair_style eam
pair_coeff * * Cu_u3.eam
neighbor 1.0 bin
neigh_modify every 1 delay 5 check yes
group V1 id == 894
group al subtract all V1

run 0
compute 1 all pair/local dist

#set a thermostat for group al
fix 1 al nve
compute t1 al temp
velocity al create 300.0 546996 temp t1
fix 2 al temp/rescale 10 300.0 300.0 5.0 1.0
fix_modify 2 temp t1
timestep 0.001
thermo 10

#set velcotiy for group V1 and output
velocity V1 set 0.0 2000.0 0.0
dump 1 all local 10 cu..loc c_1
dump 2 all cfg 10 cu.
.cfg id type xs ys zs
run 10000

I said the changed system via adjusting neighor value.
Can’t the value of the less than 1 get using compute pair/local ?
Thank you.

Best regards,
Pan

I said the changed system via adjusting neighor value.

have a look at what the neighbor command does.
it most certainly does not change your system.

Can't the value of the less than 1 get using compute pair/local ?

look like this is another PEBCAC issue.

axel.

I simulated a different and larger system for investigating interatomic distance via using the following command.

lattice fcc 3.52
region box block 0 10 0 10 0 10

Its running result was more than 2 Angstrom.
I think that the interatomic distance during impact would be less than 1 Angstrom.
Why is the interatomic distance greater than 2 Angstrom ? Why isn’t the any size?

2012/3/15 Axel Kohlmeyer <[email protected]>

I simulated a different and larger system for investigating interatomic
distance via using the following command.
...
lattice fcc 3.52
region box block 0 10 0 10 0 10
...
Its running result was more than 2 Angstrom.
I think that the interatomic distance during impact would be less than 1
Angstrom.

why?

Why is the interatomic distance greater than 2 Angstrom ?

because that is what your simulation input generates.

Why isn't the any size?

what size? of what and where?

LAMMPS is a computer program. it does what it
is programmed to do and that depends on what
you feed it as input parameters. it doesn't care
*at all* about what you think.

please provide coherent questions and
complete information, not random ramblings
and utterances. nobody can help with that.

if you think that LAMMPS is at fault, please
provide a complete test case and some convincing
evidence why the result you get is wrong.

other than that, you may perhaps receive better
help from consulting your friendly local shaman or
reading in the intestines of a freshly sacrificed lamb. :wink:

axel.

Hi Axel,

I doubt that my input script exists the problem, but I don’t find and consider. So, to ask your and Lammps user advice.
I think I have explained all the details in the simulation. However, I don’t know how to answer your query.
Thanks.

Cheers,
Pan

Hi Axel,

I doubt that my input script exists the problem, but I don't find and
consider. So, to ask your and Lammps user advice.
I think I have explained all the details in the simulation. However, I
don't know how to answer your query.

no, you have *not* provided enough information.
you just told us what you think you did.

Thanks.

why? -------- I have read the relevant literatures that told me.

...then provide proof that your input
is reproducing this literature. for example
reproduce a complete input set.
for all we know, the parts you have
not shown us can be full of mistakes
and errors.

axel.

I doubt that my input script exists the problem, but I don’t find and
consider. So, to ask your and Lammps user advice.
I think I have explained all the details in the simulation. However, I
don’t know how to answer your query

no, you have not provided enough information.
you just told us what you think you did.

Perhaps, I am unable to provide enough info.

Thanks.

why? -------- I have read the relevant literatures that told me.

…then provide proof that your input
is reproducing this literature. for example
reproduce a complete input set.
for all we know, the parts you have
not shown us can be full of mistakes
and errors.

There is not a complete input set in the relevant literatures. yes, I should provide enough info to avoid mistakes.

“splined to the ZBL repulsive potential for interatomic distances less than 0.5 Å” was reported from Efficient Annealing of Radiation Damage Near Grain Boundaries via Interstitial Emission 【Xian-Ming Bai, et al. Science 327, 1631 (2010)】and Supporting Online Material for it.

no, you have *not* provided enough information.
you just told us what you think you did.

Perhaps, I am unable to provide enough info.

what is so difficult in posting your complete input script for example?

[...]

There is not a complete input set in the relevant literatures. yes, I should
provide enough info to avoid mistakes.

"splined to the ZBL repulsive potential for interatomic distances less than
0.5 Å" was reported from Efficient Annealing of Radiation Damage Near
Grain Boundaries via Interstitial Emission 【Xian-Ming Bai, et al. Science
327, 1631 (2010)】and Supporting Online Material for it.

well, that quote just says, that the potential was parameterized
so it can handle those distances. it does not say what conditions
are needed to actually get atoms *that* close.

as i was saying before, MD simulations just do
what you tell it to do. nothing less, nothing more.

axel.

That is the input script.

units metal
boundary p s p
atom_style atomic
lattice fcc 3.615
region box block 0 8 0 8 0 8
create_box 1 box
create_atoms 1 box
pair_style eam
pair_coeff * * Cu_u3.eam
neighbor 1.0 bin
neigh_modify every 1 delay 5 check yes
group V1 id == 894
group al subtract all V1

run 0

compute 1 all pair/local dist

#set a thermostat for group al
fix 1 al nve
compute t1 al temp
velocity al create 300.0 546996 temp t1
fix 2 al temp/rescale 10 300.0 300.0 5.0 1.0
fix_modify 2 temp t1
timestep 0.001
thermo 10

#set velcotiy for group V1 and output
velocity V1 set 0.0 2000.0 0.0
dump 1 all local 10 cu..loc c_1
dump 2 all cfg 10 cu.
.cfg id type xs ys zs
run 10000

I think the above code can realize interatomic distances less than 1 Angstrom?

As I said initially, if you dump the
coords of all atoms, you can easily
check if there is any pair of atoms
at a distance of < 1.0 Angs. I suspect
when you do this you will find that the
minimum distance of any pair is
exactly what you are seeing in the
dump pair local output.

Until you do this, that is why neither Axel or I think this
is a LAMMPS issue, but rather a question
of your hunch that atoms should be
closer together.

Steve

I think the above code can realize interatomic distances less than 1
Angstrom?

this is just a guess and justified by what?

much better would be to generate proof.
you can easily do that by yourself using LAMMPS.

set up an input with the same box, but where you
define exactly two atoms and place them 1.0 \AA
apart. then you can do a "run 0" and get the potential
energy (it should be positive and quite large). this potential
energy us the *minimum* kinetic energy that an atom
has to have to get as close as 1.0 \AA to a second
with your model. now all you have to do is to compute
the velocity that would correspond to this kinetic energy
and set your projectile to this velocity.

no need to guess, but just application of
basic classical mechanics principles. plain
and simple. :wink:

axel.

Thanks.
your meaning is that I need to post-process the data in a dump file.
However, I found that a dump file had a number of data. For example, I used previous input script. After running, a dump file is the following.
Attention: there were 2048 atoms altogether. But there were 43540 data in the dump file. I am confused.
ITEM: NUMBER OF ENTRIES
43540
ITEM: ENTRIES c_1
2.34408
2.51693
4.40697
3.72339
2.51473
3.5455
4.15194
4.27591
4.45862
4.35418
2.50017
3.75511
2.57992
2.58358
4.35313
4.35419
4.45878
4.35369

2012/3/16 Steve Plimpton <[email protected]>

Thanks.
your meaning is that I need to post-process the data in a dump file.
However, I found that a dump file had a number of data. For example, I
used previous input script. After running, a dump file is the following.
Attention: there were 2048 atoms altogether. But there were 43540 data in
the dump file. I am confused.

why don't you *read* the documentation for a change
(and pay more attention to what people are telling you).

you have a "local" dump file and steve is talking
about an "atom" dump file. those are different.

axel.

Thank Steve’s good idea.
Thank Axel’s suggestion.
I set the closet two atoms(2.55619 Angstrom) as a group, then dumped their information by the compute pair/local command.
The result was:
#grep ‘^3’ cu..loc
cu.100.loc:2.37182
cu.1060.loc:2.44543
cu.1070.loc:2.44863
cu.1090.loc:2.47932
cu.110.loc:2.3694
cu.1110.loc:2.5437

#grep ‘2’ cu.
.loc
cu.0.loc:2.55619
cu.1000.loc:2.47729
cu.100.loc:2.37182
cu.1010.loc:2.47085
cu.1020.loc:2.46487
cu.1030.loc:2.45875
cu.1040.loc:2.45264
cu.1050.loc:2.44757
cu.1060.loc:2.44543
cu.1070.loc:2.44863
cu.1080.loc:2.45947
cu.1090.loc:2.47932
cu.10.loc:2.55205

Don’t find interatomic distances of less than 1 Angstrom.

2012/3/16 Axel Kohlmeyer <[email protected]>

no. your input is *seriously* flawed.

you are not time integrating the atom that you are accelerating.
so that atom is not moving and thus there is no impact.

as is said before. this is a case of PEBCAC.

axel.

Two atoms selected as a group was in group al.
So, they were integrated via fix nve command.

2012/3/17 Axel Kohlmeyer <[email protected]…33…24…>

so what??

group V1 is the one which you assign the high velocity

velocity V1 set 0.0 2000.0 0.0

and this contains only one atom and
that is *not* contained in al, so it is not
time integrated and hence there is no
impact *at all* and thus there *cannot*
be any atom closer than what you get
for a regular system at 300K.

i repeat for the last time: PEBCAC

not a LAMMPS problem.
it does *exactly* what you tell it to do.

case closed.

axel.