Displacing independent groups of atoms simultaneously

Dear colleagues,

I am working on a di-atomic periodic 2D glass system and I am encountering some issues with defining the boundary conditions. I am utilizing the Wang-Tiling approach to generate a large system composed of different tiles i.e. square shaped construct.

My aim is to able to replicate an initial ‘square’ system repeatedly to form a larger system.

My LAMMPS input is capable of assembling the required number of tiles but post the assembly of the the system, I have the following observations:

  1. The left to right end and the top to down boundaries do not match,
  2. The tiles contain overlapping of atoms and large gaps are being observed.

Since I need to keep the boundaries ‘unmodified’ during simulations, I freeze this region and proceed to minimize the interior of the tiles. This does not improve the performance of the edges and I end up with a patterned surface that has high energy zones and low energy zones. The high energy zones represent the boundaries that were not minimized because they would change and no longer mimics Wang Tilings.

It would be of great help to be able to modify ALL boundaries at the same time in the same manner (ending up with the same boundary scheme in the full model). Has anybody been able to displace separate groups of atoms at the same time? I can provide you with the LAMMPS input file on request.​

Your email is unclear to me.

  1. The left to right end and the top to down boundaries do not match,

  2. The tiles contain overlapping of atoms and large gaps are being observed.

The LAMMPS domain is just a box. Presumably you are reading atoms

from a data file that you created. Or you are using the lattice and create_atoms

commands (you don’t say which).

In the former case, the atoms are where you put them in the file. In the latter

case, you also control where the atoms go, albeit in a different way. I don’t

know what “gaps” and overlapping mean, but LAMMPS put the atoms where

you told it to.

If you expect something to relax during minimization and you freeze it, then

why would you expect atoms in those regions (edges) to change?

Steve

Dear Mr.Steve,

Thanks for your reply.

You prediction is correct. I am reading atoms from a data file I created. This data file assembles the tiles.

Wang tiles are usually composed of ABCD sides and when assembling them, you have to ensure that the interacting sides are A-A, B-B, C-C, D-D. This has to be done for the four sides of the tiles (that is what I refer to as the left to right and top to bottom boundaries.

I am replicating a group of atoms on each side (A-A) and considering a small region as the boundary (usually 2rcut). The interior of the tiles are not important and can vary from one arrangement to another (ABCD, ACDB, ABBA…); only the boundaries need to match during the assembly.

Post assembly, the energies are high and that is why I am performing a minimization on the system, I am aware that freezing the boundary regions. The limitation being that I have not been able to move all A type boundaries simultaneously.

The “fix_poems" looks like an option but it is unclear if it is working accurately.

The script looks more or less like:

read_data filename.input
pair_style eam/fs
pair_coeff * * thefile.eam.fs A B

#Creating the 4 different regions I am using as boundaries
region r1 block x y z units box
.
.
.

#Creating groups
group g1 region r1
.
.
.

#Grouping the different groups
group g5 union g1 g2 g3 g4

#Freeze atoms (this is what I am trying to change… and am currently exploring poems)
fix f1 g5 setforce 0 0 0

#Since I am analyzing in 2D
fix f2 all enforce2d

#Minimize the energy
timestep 0.01
min_style fire
minimize 0.01 1.06e-06 100000 100000

I hope the above reply is able to give you a better understanding of the concept I am trying to model and the limitation I am facing.

Thanks for your time.
Regards
Roxana

Dear Mr.Steve,

Thanks for your reply.

You prediction is correct. I am reading atoms from a data file I created. This data file assembles the tiles.

Wang tiles are usually composed of ABCD sides and when assembling them, you have to ensure that the interacting sides are A-A, B-B, C-C, D-D. This has to be done for the four sides of the tiles (that is what I refer to as the left to right and top to bottom boundaries.

I am replicating a group of atoms on each side (A-A) and considering a small region as the boundary (usually 2rcut). The interior of the tiles are not important and can vary from one arrangement to another (ABCD, ACDB, ABBA…); only the boundaries need to match during the assembly.

Post assembly, the energies are high and that is why I am performing a minimization on the system, I am aware that freezing the boundary regions. The limitation being that I have not been able to move all A type boundaries simultaneously.

The “fix_poems" looks like an option but it is unclear if it is working accurately.

The script looks more or less like:

read_data filename.input

pair_style eam/fs

pair_coeff * * thefile.eam.fs A B

#Creating the 4 different regions I am using as boundaries

region r1 block x y z units box

.

.

.

#Creating groups

group g1 region r1

.

.

.

#Grouping the different groups

group g5 union g1 g2 g3 g4

#Freeze atoms (this is what I am trying to change… and am currently exploring poems)

fix f1 g5 setforce 0 0 0

#Since I am analyzing in 2D

fix f2 all enforce2d

#Minimize the energy

timestep 0.01

min_style fire

minimize 0.01 1.06e-06 100000 100000

I hope the above reply is able to give you a better understanding of the concept I am trying to model and the limitation I am facing.

Thanks for your time.

Regards

Roxana​

Your problem is probably the result of overlapping (or nearly overlapping) atoms at boundaries. It doesn’t matter at all if your structure is a composition of Wang tiles or Penrose tiles or Bravais tiles or any other fancy patterning periodic 2D scheme. You need to understand that matching boundaries and matching atoms are not the same thing (atoms, like people, have very low tolerance for each other when placed really close ;-). An illustrative simple example would be the generation of a periodic square lattice of atoms. You can achieve this by taking a “square tile” (also known as unit cell) with one atom located at one of the corners. If you replicate such structure over the 2D plane you get the desired 2D pattern (boundaries overlap atoms don’t). However, notice that you cannot place atoms at all corners of the unit tile as the replication process will place atoms on top of each other (thus reaching the “maximum hate” atomic state) due to the translational symmetry of the unit tile. Think about it and see how that relates to the configuration you have created. The script you provided is of little help as contains no info whatsoever about what your “filename.input” looks like.
Carlos