Carbon sheet does not move with applying any force

Hi,

I established a simple structure as follows: water molecules have been confined between two graphene sheets and there is channel which connects it into another the same box.

Hereby, I applied different force strengths ( fix ave/force command) into graphene sheet to flow the water molecules into channel. But, I don’t know why the graphene sheet does not move! Moreover, as times go, It is strange that water molecules at left hand box move into left graphene sheet, while water molecules at right hand box move into right graphene sheet.

I used spc/e for water molecules and airebo for carbon molecules.

pair_style       hybrid lj/charmm/coul/long 9 10 airebo 3.0 
pair_coeff      *  *   airebo CH.airebo NULL NULL C
pair_coeff     1  1   lj/charmm/coul/long   0.0     0.0     #H-H
pair_coeff     2  2   lj/charmm/coul/long   0.1553    3.166     #O-O
pair_coeff     1  2   lj/charmm/coul/long   0.0     0.0     #H-O
pair_coeff     1  3   lj/charmm/coul/long   0.0     0.19924     #H-C
pair_coeff     2  3   lj/charmm/coul/long   0.104264088     1.78224     #O-C

Could you please put any comments how to improve this problem?

The information you provide is not sufficient to make any suggestions.

config.in (2.9 KB)
config.data (2.6 MB)

Thanks @akohlmey for your reply. Hereby I attached input and data file for more details.
I don’t know what’s wrong with it. Maybe, some problem with pair style and coefficients (I guess).

Would you mind letting me know how to overcome this problem.
Thanks in advance

There multiple things wrong with your input, and not only because you don’t see the motion you are looking for. More specifically:

  • you are using the AIREBO pair style with real units. The parameter file bundled with LAMMPS requires metal units. The manual says so, too. Almost all manybody potentials in LAMMPS are like that. You must be using a rather old version of LAMMPS (from early 2020 or older) because more recent versions would terminate with an error right away. recent versions of LAMMPS can convert the parameters transparently between metal and real units for some pair styles (e.g. eam, tersoff, or sw), for other pair styles, that conversion must be done by hand. Given the complexity of AIREBO, it would be a major undertaking to do that. but considering that you keep your carbon atoms mostly immobile and want to move them as rigid objects, there is no need at all for using a sophisticated manybody potential here. it is only applied to carbon-carbon interactions anyway, but you ignore them completely in your chosen setup. so just using the CHARMM parameters for aromatic carbon will do just fine.

  • your system has gaps in x- and y- direction so atoms could “move around” your piston. that can be easily seen by enabling display of periodic images when visualizing your system.

  • finally, the reason for the piston sheet not moving is simply that there is no time integration for those atoms. you only have time integration for the water atoms. thus adding a force to those atoms won’t make a difference. adding a line like fix push piston nve, however, should make those atoms move and follow the applied force.

1 Like

Thanks @akohlmey for your fruitful reply. I appreciate it.

Based on your comments, time integration for carbon atoms was activated and piston moves now. But Unfortunately the remaining problem is the piston is not stop when it touches the next graphene sheet. It means LJ potential is not exist between carbon atoms, although the following commands exist:

pair_style       hybrid lj/charmm/coul/long 8 10 airebo 3.0 
pair_coeff      *  *   airebo CH.airebo NULL NULL C
pair_coeff     1  1    lj/charmm/coul/long  0.0     0.0     #H-H
pair_coeff     2  2    lj/charmm/coul/long  0.1553    3.166     #O-O
pair_coeff     1  2    lj/charmm/coul/long  0.0     0.0     #H-O
pair_coeff     1  3      lj/charmm/coul/long  0.0     1.7     #H-C
pair_coeff     2  3     lj/charmm/coul/long  0.104264     3.283     #O-C

I did some experiments, added pair_coeff command between C-C atoms

pair_coeff 3 3 lj/charmm/coul/long 0.07 3.4 #C-C

and run the program but again the same as before, piston passed through next carbon sheet. I also looked carefully and understood that carbon bonds were not exist at my data file (plz see bound section at attached config.data). Is this problem originated from it? I basically create my data file for solvent with autopsf builder from VMD (use CHARMM topology file) and then add carbon coordinates manually.

I appreciate any comments which develop my basic understanding,
Thanks

Please provide the modified input file as well as the corrected data file

config.data (2.7 MB)
config2.in (4.0 KB)

Attached files are input and data files.

Thanks for the time and energy you put in yours to develop our understandings …

problems:

  • you are still using pair style airebo with real units which is an error.
  • you are obviously also using a rather old version of LAMMPS (or else it would error out) so you have a version of LAMMPS with known bugs that were fixed in later versions
  • you are using fix setforce on all atoms that your describe with AIREBO rendering the use of that potential useless.
  • you are using fix force piston setforce 0 0 0.0005 on the piston atoms. That will wipe out all previous forces so they will not “see” any other atoms. check out fix aveforce to be used instead.

I am using 27 Oct 2021 version of LAMMPS program on windows. The reason that I am not getting an error (when starting) is because I pasted CH.airebo file at my data file directory.

So, in this case (carbon atom is not moving ) is airebo or tersoff get the same results? and finally, I didn’t understand your previous reply “so just using the CHARMM parameters for aromatic carbon will do just fine”. Does it mean delete the pair_style and pair_coeff for C atoms and use the following for all atom types?

pair_style lj/charmm/coul/long 8 10

I am really beginner but eagerly tries to improve my basic knowledge. So, Thank you very much for all your previous patient replies.

At this point there is not much more that I can (and want) to do for you. I am not your adviser and everything you are asking about now is something that you can easily figure out by yourself through creating (very) small test inputs (with a small number of atoms) and comparing energy and dump outputs (including per-atom forces). I don’t like to explain the same things multiple times anyway.
As a beginner you should make it a habit to build an input deck in small stages and double and triple check at every stage that everything is working as expected (though visualization and looking at numbers).

Removing the potential file metadata to bypass an error is a very, very bad idea. We put in those checks for good reason.