Adjusting system desnity

Dear lammps users

I am trying to simulate polyethylene using airebo potential. Initially I run the system with langevin thermostat 500K. Then I try to equilibrate it at NPT. But in the initial stage of NPT itself, I get an error non-numeric pressure value. I even tried with nve ensemble but here I get atom lost error even if I use periodic boundary conditions. How is it with pbc conditions?

Now I am thinking to start the simulation with very low density so that during equilibration I can adjust system density. So, I want to know is there any command in lammps so that I can bring the system to desired density value (experimental)? Please, also suggest any software to model the polymer.

Thank you.

Rajesh

Most of the tools which can be used to build polymers and other molecules are listed at
http://lammps.sandia.gov/prepost.html
and there is also:
https://sourceforge.net/projects/moleculardynami/

— moltemplate specific —

There’s an example of polyethylene on the moltemplate example page using the OPLSAA force field (more specifically the LOPLSAA force field) at:
http://www.moltemplate.org/visual_examples.html
If you want to change the force field, you will have to edit the “ch2group.lt”, “ch3group.lt”, and “alkane50.lt” files to replace the “inherits OPLSAA”, with “inherits MYFORCEFIELD” and you will have to create a file containing the contents of the “MYFORCEFIELD” object and edit the “ch2group.lt” and “ch3group.lt” files to change the names of the @atom types accordingly.

You can control the size of the simulation box by editing the “system.lt” file. You can also do this later on by editing the header portion at the top of the “system.data” file generated by moltemplate.

If you want to have multiple chains, you can follow the “hexadecane” example, “examples” directory distributed with moltemplate (available using both the OPLSAA and AMBER force fields). You control the spacing between molecules by editing the .move() commands, and changing the “Data Boundary” section of the “system.lt” file.

If you want to create a large polymer melt instead of a few short polymers, then you can generate the initial backbone coordinates using the “ndmansfield” utility, and “wrap” your polymer along the direction of the curve either by writing your own script (with a simple for-loop to generate part of the text file which moltemplate reads), or by using the “genpoly_lt.py” utility which is distributed with moltemplate, and is documented here:
https://github.com/jewettaij/moltemplate/blob/master/doc/utils/docs_genpoly_lt.txt
and shown graphically here:
https://github.com/jewettaij/ndmansfield#moltemplate-interoperability

If your system contains multiple polymers, use the “-cuts cut_locations.txt” command line argument with “genpoly_lt.py” (warning: this feature is untested)

You will have to use the “minimize” command to relax the polymer coordinates before you can begin running a simulation. To make it easier to minimize the coordinates of your polymer, you can interpolate the curve beforehand. One way to do this is to use the “interpolate_curve.py” script. (Currently available at: http://www.moltemplate.org/other/index.html Ignore the “polymers_follow_a_curve_simplest_method.jpg” file. Those instructions are somewhat out of date.)

These tools are not trivial to use, but they work.
Hope this helps

Andrew

Dear Andrew,
Thank you for your advice. I will try with moltemplate.