I am using LAMMPS to calculate the pairwise potential energy from a pre-saved xyz trajectory on group of atoms. I am using the LAMMPS (29 Aug 2024) version to compute this property. Unfortunately, I am getting the following MPI termination error:
Currently Loaded Modulefiles:
- compilers/intel.2017
Exception: stoi
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0
My input script is as follows:
units real
dimension 3
atom_style full
read_restart /home2/souravpc/research/WIBS/bulk/bisalt/5m/dG_hyd/OH-/equil/r2_nvt.restart
pair_style lj/cut/coul/long 12
pair_modify tail yes mix arithmetic
bond_style zero nocoeff
angle_style zero nocoeff
dihedral_style zero nocoeff
kspace_style pppm 0.00001
special_bonds lj/coul 0.0 0.0 0.5
include /home2/souravpc/research/WIBS/bulk/bisalt/5m/dG_hyd/OH-/equil/param.li_k_ac_wat_oh
group solute type 9 10
compute 1 solute pe/atom pair
thermo_style multi
thermo 1
thermo_modify flush yes
dump 1 solute custom 1 solute_pe.txt type c_1
dump_modify 1 sort id
rerun /home2/souravpc/research/WIBS/bulk/bisalt/5m/dG_hyd/OH-/equil/last20ns_20ps.xyz dump x y z box no format xyz
Any help to resolve this issue will be greatly appreciated.
Thanks
Sourav
There is not enough information here about where that error is happening and not enough data to reproduce it independently.
Thanks for your reply. The error happens right after this part:
LAMMPS (29 Aug 2024)
Reading restart file …
restart file = 29 Aug 2024, LAMMPS = 29 Aug 2024
WARNING: Restart file used different # of processors: 32 vs. 1 (…/read_restart.cpp:628)
restoring atom style full from restart
orthogonal box = (0 0 0) to (33.832 33.832 33.832)
1 by 1 by 1 MPI processor grid
restoring pair style lj/cut/coul/long from restart
restoring bond style harmonic from restart
restoring angle style harmonic from restart
restoring dihedral style multi/harmonic from restart
3801 atoms
2595 bonds
1849 angles
552 dihedrals
Finding 1-2 1-3 1-4 neighbors …
special bond factors lj: 0 0 0.5
special bond factors coul: 0 0 0.5
4 = max # of 1-2 neighbors
3 = max # of 1-3 neighbors
5 = max # of 1-4 neighbors
6 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_restart CPU = 0.014 seconds
2 atoms in group solute
WARNING: No fixes with time integration, atoms won’t move (…/verlet.cpp:60)
PPPM initialization …
WARNING: System is not charge neutral, net charge = -1 (…/kspace.cpp:327)
using 12-bit tables for long-range coulomb (…/kspace.cpp:342)
G vector (1/distance) = 0.25284724
grid = 24 24 24
stencil order = 5
estimated absolute RMS force accuracy = 0.0029421194
estimated relative force accuracy = 8.8601051e-06
using double precision KISS FFT
3d grid and FFT values/proc = 29791 13824
Generated 45 of 45 mixed pair_coeff terms from arithmetic mixing rule
Unused restart file global fix info:
fix style: nvt, fix ID: 2
Neighbor list info …
update: every = 1 steps, delay = 0 steps, check = yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 14
ghost atom cutoff = 14
binsize = 7, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d
bin: standard
Exception: stoi
Hi Axel,
Based on some discussions in Failure to correctly parse an XYZ file · Issue #4334 · lammps/lammps · GitHub, I realized that the newest version of LAMMPS can not read the xyz file having the format :
atom_name x_val y_val z_val
Instead, it can only read an xyz file in the format
atom_type x_val y_val z_val
So, I needed to replace the atom name strings with the numeric atom types in the xyz file which led to successful completion of the calculation. However, I remember that older versions of LAMMPS was capable to handle xyz file with atom_name string during the rerun job.
Thanks
Sourav
That is not correct. If you use version 29Aug2024_update1 or 19Nov2024, LAMMPS can read such .xyz files (and properly so instead of assigning an invalid atom type), only that you have to set up a suitable labelmap for atom types that maps the string labels in the first column to numerical atom types. See: labelmap command — LAMMPS documentation
It will also properly catch any exceptions during parsing.