Hello SIESTA community, I am in the process of writing an implementation of the Nudged Elastic Band method for SIESTA (2.0.2). I have a pretty good idea of how I am going to program the modules and and merge it with the current version, but I have no MPI programming experience. I am not too worried about this as I am able to view existing code and adjust pretty well for what I want to do. I am just one issue, I do not know exactly how to distribute the images to the nodes (processors).
A quick intro to the Nudged Elastic Band (NEB). The NEB is used to find the transition state between an initial and final configuration. A NEB job would consist of a set of N interpolated "image" geometric configurations between an initial and final configuration. Each of the images are linked to each of their two neighbors by a virtual spring force. The job would be run in parallel with each processor handling a number of images. My plan is to prepare each of the images before running the job in sequential directories (i.e. NEB00, NEB01, ... , NEB0N) which are located in a working directory from which SIESTA will be called. So when SIESTA is run, it will read the number of images from the FDF file and will go into each directory and distribute each image to a processor. This is where I run into problems. In my fortran source file, I am creating a module which contains the necessary subroutines to initalise this chain of images linked with springs as well as routines to calculate forces and tangents between images. I have the appropriate "#ifdef MPI" lines, but I need some help using SIESTA's implemented MPI structure. I assume I need to use the mpi_siesta and m_mpi_utils modules, but I help broadcasting the images to the nodes. Like I said, I do not know how to program with MPI and if anybody could offer some advice I would very much appreciate it. When I complete my implementation of the NEB, I will gladly share it with this community. Thanks, Daniel J. Backlund Texas Tech University - Physics [email protected]
