Dear LAMMPS users,
I have a system of a protein in a triclinic box that runs fine in NAMD. I have run equilibration for longer than 100ns with this system. However, when I convert the equilibrated structure to LAMMPS and try to run further equilibration I get the following error:
ERROR: Fix npt/nph has tilted box too far in one step - periodic cell is too far from equilibrium state (…/fix_nh.cpp:1214)
I have done the same before (equilibrated a structure in NAMD and converted its final trajectory to LAMMPS using charmm2lammps.pl) with a different structure but didn’t get this error message. This other structure was larger, but had an orthogonal box.
I’m stuck in this problem for several weeks and have already tried many different things. I hope someone here can give some advice on how to overcome it.
Some more information:
-
charmm2lammps exports a .data file with orthogonal box dimensions. However, I managed, following 8.2.3. Triclinic (non-orthogonal) simulation boxes — LAMMPS documentation, to compute LAMMPS box sizes and tilt factors that correspond to the triclinic simulation box of the converted pdb. I read the data file in vmd (topo readlammpsdata *.data) and the box looks ok.
-
I use
box tilt large
command before reading the data file (otherwise LAMMPS complains about the tilt factors). -
I combine fix_lang and fix_nph
-
I tried to:
reduce the timestep (from 2 to 0.1fs),
increase minimization steps,
reduce the dump frequency to 1 (so I can visualize the structure right after the first step, but LAMMPS gives error at the 1st step)
increase the Pdamp of the nph -
Change box from orthorombic to triclinic to reduce vacuum between periodic images
at the end of this discussion Axel Kohlmeyer mentions that “some functionality does not work with triclinic boxes”. Am I hitting one of these functionality? Which?
Please, let me know if I can provide any other information to help people better understand the problem. I tried attaching a compressed file, but it says that new users can’t do that.
Thank you in advance for any comments/suggestion/help!
Amadeus
Beginning of data file:
LAMMPS data file. CGCMM Style. atom_style full. Created by charmm2lammps v1.9.2 on Wed Jan 18 06:07:58 PM EST 2023
316058 atoms
279667 bonds
405516 angles
632430 dihedrals
33185 impropers
15740 crossterms
36 atom types
65 bond types
150 angle types
359 dihedral types
23 improper types
-7.023765421836 32.762234578164 xlo xhi
-0.809697875847 26.206920075237 ylo yhi
330.857656154946 3047.891164180654 zlo zhi
-7.3706424743813 -257.3278266819468 -28.2351575993900 xy xz yz
input file:
##########################################################################
############################# INITIALIZATION #############################
##########################################################################
units real
dimension 3
boundary p p p
atom_style full
##########################################################################
############################## FORCE FIELDS ##############################
##########################################################################
pair_style lj/charmmfsw/coul/long 12 14
bond_style harmonic
angle_style charmm
dihedral_style charmmfsw
improper_style harmonic
pair_modify mix arithmetic
special_bonds charmm
##########################################################################
############################### READ DATA ###############################
##########################################################################
box tilt large
fix cmap all cmap charmm36.cmap
fix_modify cmap energy yes
read_data sys_EQ_TER.data fix cmap crossterm CMAP
pair_coeff 29 31 0.154919 3.24019863787641 0.154919 3.24019863787641
#change_box all triclinic # xy final -7.2750966277473 xz final -237.6912825182827 yz final -26.8525803784517 remap
kspace_style pppm 1e-6 # requires coul/long pair_style
##########################################################################
########################## VARIABLE DEFINITIONS ##########################
##########################################################################
variable T equal 310 # Temperature of the system in K
variable P equal 1.0 # Pressure of the system in atm
variable dt equal 0.1 # Timestep in fs
variable EqNpt equal 50000 # No. of steps of NPT Equilibration
variable ThermoFreq equal 1000 # Freq. (in time steps) in which the thermodynamic info is printed on the screen
variable DumpFreq equal 1 #50000 # Freq. (in time steps) in which data is saved in dump files
variable ResFreq equal 50000 # Freq. (in time steps) in which restart files are generated
variable TempDamp equal 100*{dt} # LAMMPS manual fix npt
variable PressDamp equal 1000*{dt} # LAMMPS manual fix npt
##########################################################################
########################## SIMULATION SETTINGS ###########################
##########################################################################
timestep ${dt}
neighbor 5.0 bin
neigh_modify every 1 delay 0 check yes
##########################################################################
############################# MINIMIZATION ##############################
##########################################################################
thermo 10
thermo_style custom step pe press fnorm fmax
thermo_modify flush yes
fix 1 all box/relax aniso 0.0
min_style cg
minimize 0.0 0.0 1000 10000 # 0.0 1.0e-10 1000 10000
unfix 1
write_restart restart.min1
###########################################################################
############################## EQUILIBRATION ##############################
##########################################################################
reset_timestep 0
thermo ${ThermoFreq}
thermo_style custom step ke pe lx ly lz vol temp press
thermo_modify flush yes
compute peratom all pe/atom
fix fix_H all shake 1e-8 100 0 t 1 2 3 4 5 6 7 8 9 10
velocity all create $T 1234567 mom yes rot yes
Langevin thermostat
fix fix_lang all langevin $T T {TempDamp} 48279
Nose-Hoover barostat
fix fix_nph all nph aniso $P P {PressDamp} nreset 1000
dump 1 all custom ${DumpFreq} dump_sys_EQ_eq1.lammpstrj id type x y z
restart ${ResFreq} sys_EQ_eq1.restart
run ${EqNpt}