Report on NEB VASP installation
Posted: Wed Jun 27, 2007 12:10 pm
There is a contradiction in the VASP manual:
(i) p.23 section 3.5.16 MPI_CHAIN says: "In this case each image must run on one and only one node ..."
(ii) p.81 section 6.54 Elastic band method says "The number of nodes must be dividable by the number of images (...). VASP divides the nodes in groups, and each group then works on one "image"."
After finding this contradiction I had a problem what precompiler flag NGXhalf (serial version) or NGZhalf (parallel version) should be selected. By trial and fail method I found that NGZhalf flag should be used.
Dear VASP admin, it would be useful to make appropriate changes in the documentation.
The following problems were encountered during preprocessing and compilation:
1) The file "symbol.inc" contains the following macro
which is defined in the section #elif defined(MPI_CHAIN).
This macro produces recursion expanding STOP again and again.
Solution is simple and is used in the other section of "symbol.inc":
#define STOP CALL M_exit; stop
Preprocessor appears to be case sensitive and does not expand stop again.
2) Compilation errors were found for pardens.f. The reason was that some parts of the code, which should be compiled if MPI flag is defined, were missed when MPI_CHAIN flag was defined.
Solution was not so elegant: I replaced blockswith
In this way description and initialization of some variables is included both for MPI and MPI_CHAIN flags.
(i) p.23 section 3.5.16 MPI_CHAIN says: "In this case each image must run on one and only one node ..."
(ii) p.81 section 6.54 Elastic band method says "The number of nodes must be dividable by the number of images (...). VASP divides the nodes in groups, and each group then works on one "image"."
After finding this contradiction I had a problem what precompiler flag NGXhalf (serial version) or NGZhalf (parallel version) should be selected. By trial and fail method I found that NGZhalf flag should be used.
Dear VASP admin, it would be useful to make appropriate changes in the documentation.
The following problems were encountered during preprocessing and compilation:
1) The file "symbol.inc" contains the following macro
Code: Select all
#define STOP CALL M_exit; STOP
This macro produces recursion expanding STOP again and again.
Solution is simple and is used in the other section of "symbol.inc":
#define STOP CALL M_exit; stop
Preprocessor appears to be case sensitive and does not expand stop again.
2) Compilation errors were found for pardens.f. The reason was that some parts of the code, which should be compiled if MPI flag is defined, were missed when MPI_CHAIN flag was defined.
Solution was not so elegant: I replaced blocks
Code: Select all
#ifdef MPI
...
#endif
Code: Select all
#ifdef MPI
...
#elif defined(MPI_CHAIN)
... (here the same block of lines repeated as above)
#endif