[lammps-users] how to stop the vibration of surface atoms

Dear Joe,

To me it looks like you have a lot to learn about LAMMPS, and how to create input scripts. You have plenty of quite unnecessary and strange commands in your input script, so I suggest that you read a lot more on the LAMMPS documentation pages to really understand what you are doing.

I have commented a bit in the code below, but you should really go more carefully through your script and understand the details of the different commands.

Hi Christer,

Thanks for the comments. Sorry about the unclear input file. I think I should make it clear. So let me explain it a little more.

My original model is two-block system, with Cu upper block and Al lower block. By this one, I get wield result, however, previously, I used one block Au system, with the same procedure, I can get pretty good result. So I simplify the model as two Au-Au block system as below, and want to check what is the result. That is why I have defined lattice twice, because I just change it from Cu and Al.

atom_style atomic
lattice fcc 4.08
region up block 0 52 0 15 30.4 44
region both block 0 212 0 61 -40 300 units box
create_box 2 both
create_atoms 1 region up
lattice fcc 4.08
region down block 0 52 0 15 0 30
create_atoms 2 region down

And my model is kind of thin film model, which the upper block has thinner thickness than the lower block, with periodic boundary in x and y directions, and I want to apply displacement loading in z direction. I changed the C++ code inside to set this loading. That is what you mentioned about ‘fix indent’ command. Those numbers in command are used as parameters of my loading form, which is applied to ‘replace’ region. And the ‘replace’ region is part of top surface. What I want to get is the displacement of top surface atoms after loading displacement in ‘replace’ region.

fix 6 replace indent 1 sphere 0.01 1.5 1.0 3.0 units box

So since I will apply displacement in z direction, I have to fix bottom layers, otherwise, the whole system will move down. So do I need to fix both ends during equilibrium? I tried to fix the both ends during relax, and then unfix top during loading, and I also tried ‘no fix’ during relax as you said, and fix bottom layers during loading. Both results are not good, and pretty similar. The input I attached here is my former try.

fix 3 all npt temp 300.0 300.0 100.0 x 0.0 0.0 1000.0 y 0 0 1000.0

As to the NPT command, I think this is very important. I am very clear about the how to use this command. I have to say there is not correct when I used ‘fix NPT’ here. Because like you said, Tdamp should be 0.1, and Pdamp should 1.0. This case is the first case I used, and I find out that I tried a long time, like 20ps, during equilibrium (relax), the atoms on the top surface still move up and down, not stable (here I mean stable, meaning that the amplitude they move up and down should much less than what I will apply displacement loading later). In addition, it costs me very long time to relax. I am not sure if I simulate like 50ps, or 100ps, the top surface atoms will be stable.

Why I use the command ‘fix NPT’ as above? Actually, when I used that command, I know the system can NOT be controlled at temperature with 300K and pressure in x and y with 0Pa. I check the output data, it shows that when I use this command, the system will relax at T around 0K. Then I am thinking, ok, I just try what the result at T around 0K. That is why I used that here. Of course, I can change it as <<<< fix npt temp 1.0 1.0 0.1 x 0.0 0.0 1.0 y 0.0 0.0 1.0

I hope this can explain my input clear. The input here is my draft, which modified some conditions from my original one, like different materials, different conditions. So it looks like unreasonable.
However, my problem is still here. Like after long time equilibrium or relax, the top surface atoms will still move up and down a lot. I want to decrease this, because after relax, I need to apply displacement loading on part of top surface. So you can imagine, if the top atoms are moving up and down, and I still add the loading displacement. Then it likes there are two sources from the top atoms. At last, I need to check the displacement result of top surface. So you can imagine, the result I get is based on two sources, not just my loading displacement. If the vibration of atoms after relax is pretty small than my loading, then I can say the result is mostly based on my loading. However, now it is not this case. So I need to figure out the methods to decrease the vibration during relax, I want to make sure after relax, (before loading) the vibration will be pretty small, then I can add the loading.