VASP modifes IMAGES in NEB calculation and how to deal with?
Posted: Sat Dec 09, 2006 12:16 pm
Dear all:
When performing NEB calculation I specified IMAGES=2 and created four subfolders named
00, 01, 02, 03, respectively.
But I found that only 01/ contained output files, so I doubted that the IMAGES may be changed in the executing.
I added some tracking statements to the source file and recompiled VASP. Rerunning VASP in my system by typing:
bsub -q rms -n 16 -e err.1 -o log.1 ~/bin/vasp_NEB
The information in output files told me that VASP had really modified the IMAGES.
Source file was modified like this: (in main_mpi.F, line 81)
IF (IMAGES>0) THEN
write(tiu6,*)"IN main_mpi.F call M_divide! IMAGES= ", IMAGES !ADD
CALL M_divide( COMM_WORLD, IMAGES, COMM_CHAIN, COMM, .TRUE. )
write(tiu6,*)"Returning from M_divide,IMAGES= ", IMAGES !ADD
Output information was:
IN main_mpi.F call M_divide! IMAGES= 2
Returning from M_divide,IMAGES= 1
IMAGES was changed! So endpoints of images were not 00/POSCAR, 03/POSCAR, and became 00/POSCAR, 02/POSCAR.
As indicated by this information generated from neb_init(chain_init, calls neb_init)
(Some output statements were added to the source file)
POSCAR: SYS:Pt100(2x2)+Nb+Ob 01
positions in cartesian coordinates
No initial velocities read in
CHAIN: Read ICHAIN 0
CHAIN: Running the NEB
Call neb_init
NEB Params: spring, spring2, efirst, elast, ispring, spower:
-5.00000000000000 -7.00000000000000 -103.462770000000
-102.541359000000 2 1.00000000000000
images= 1
POSCAR: System: Pt100(2x2)+NO Upright 00
positions in direct lattice
velocities in cartesian coordinates
idir=images+1 = 2
POSCAR: SYS:Pt100(2x2)TST 02
positions in direct lattice
No initial velocities read in
Current node is: 1
Return from neb_init
I have analyst the reason why IMAGES was changed to be 1. It was passed as a parameter to the subroutine M_divide
IF (IMAGES>0) THEN !(main_mpi.F line 81)
CALL M_divide( COMM_WORLD, IMAGES, COMM_CHAIN, COMM, .TRUE. )
and was modified by this statement in subroutine M_divide
IF (NPAR >= COMM%NCPU) NPAR=COMM%NCPU
Because COMM%NCPU here was equaled to 1. But I requested 16 CPUs, Why?
I specified NPAR=16 and IMAGES=2, following are top lines of OUTCAR:
vasp.4.6.9 24Apr03 complex
executed on True64 date 2006.12.09 17:56:06
running on 1 nodes
each image running on 1 nodes
distr: one band on 1 nodes, 1 groups
Why running on 1 nodes and each image running on 1 nodes?
I suppose above lines should be:
vasp.4.6.25 17Sep03 complex
executed on True64 date 2006.12.09 17:56:06
running on 16 nodes
each image running on 8 nodes
distr: one band on 1 nodes, 8 groups
My system is:
Compaq Tru64 UNIX V5.1A (Rev. 1885); Tue Mar 25 12:25:36 CST 2003
This is sigma-x, a Compaq AlphaServer SC V2.5 system
LSF version is:
Platform LSF AlphaServer SC V2.5 UK1, Feb 21 2003
Thanks a lot for your kind consideration.
When performing NEB calculation I specified IMAGES=2 and created four subfolders named
00, 01, 02, 03, respectively.
But I found that only 01/ contained output files, so I doubted that the IMAGES may be changed in the executing.
I added some tracking statements to the source file and recompiled VASP. Rerunning VASP in my system by typing:
bsub -q rms -n 16 -e err.1 -o log.1 ~/bin/vasp_NEB
The information in output files told me that VASP had really modified the IMAGES.
Source file was modified like this: (in main_mpi.F, line 81)
IF (IMAGES>0) THEN
write(tiu6,*)"IN main_mpi.F call M_divide! IMAGES= ", IMAGES !ADD
CALL M_divide( COMM_WORLD, IMAGES, COMM_CHAIN, COMM, .TRUE. )
write(tiu6,*)"Returning from M_divide,IMAGES= ", IMAGES !ADD
Output information was:
IN main_mpi.F call M_divide! IMAGES= 2
Returning from M_divide,IMAGES= 1
IMAGES was changed! So endpoints of images were not 00/POSCAR, 03/POSCAR, and became 00/POSCAR, 02/POSCAR.
As indicated by this information generated from neb_init(chain_init, calls neb_init)
(Some output statements were added to the source file)
POSCAR: SYS:Pt100(2x2)+Nb+Ob 01
positions in cartesian coordinates
No initial velocities read in
CHAIN: Read ICHAIN 0
CHAIN: Running the NEB
Call neb_init
NEB Params: spring, spring2, efirst, elast, ispring, spower:
-5.00000000000000 -7.00000000000000 -103.462770000000
-102.541359000000 2 1.00000000000000
images= 1
POSCAR: System: Pt100(2x2)+NO Upright 00
positions in direct lattice
velocities in cartesian coordinates
idir=images+1 = 2
POSCAR: SYS:Pt100(2x2)TST 02
positions in direct lattice
No initial velocities read in
Current node is: 1
Return from neb_init
I have analyst the reason why IMAGES was changed to be 1. It was passed as a parameter to the subroutine M_divide
IF (IMAGES>0) THEN !(main_mpi.F line 81)
CALL M_divide( COMM_WORLD, IMAGES, COMM_CHAIN, COMM, .TRUE. )
and was modified by this statement in subroutine M_divide
IF (NPAR >= COMM%NCPU) NPAR=COMM%NCPU
Because COMM%NCPU here was equaled to 1. But I requested 16 CPUs, Why?
I specified NPAR=16 and IMAGES=2, following are top lines of OUTCAR:
vasp.4.6.9 24Apr03 complex
executed on True64 date 2006.12.09 17:56:06
running on 1 nodes
each image running on 1 nodes
distr: one band on 1 nodes, 1 groups
Why running on 1 nodes and each image running on 1 nodes?
I suppose above lines should be:
vasp.4.6.25 17Sep03 complex
executed on True64 date 2006.12.09 17:56:06
running on 16 nodes
each image running on 8 nodes
distr: one band on 1 nodes, 8 groups
My system is:
Compaq Tru64 UNIX V5.1A (Rev. 1885); Tue Mar 25 12:25:36 CST 2003
This is sigma-x, a Compaq AlphaServer SC V2.5 system
LSF version is:
Platform LSF AlphaServer SC V2.5 UK1, Feb 21 2003
Thanks a lot for your kind consideration.