--- trunk/src/io/ZConsWriter.cpp 2010/05/10 17:28:26 1442 +++ trunk/src/io/ZConsWriter.cpp 2014/04/14 18:32:51 1981 @@ -35,20 +35,21 @@ * * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). - * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). - * [4] Vardeman & Gezelter, in progress (2009). + * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008). + * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). + * [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). */ +#ifdef IS_MPI +#include +#endif + #include #include #include - #include "io/ZConsWriter.hpp" #include "utils/simError.h" -#ifdef IS_MPI -#include -#endif namespace OpenMD { ZConsWriter::ZConsWriter(SimInfo* info, const std::string& filename) : info_(info) { @@ -98,23 +99,27 @@ namespace OpenMD { output_ << i->mol->getGlobalIndex() <<"\t" << i->fz << "\t" << i->zpos << "\t" << i->param.zTargetPos < tmpNFixedZmols(nproc, 0); std::vector nFixedZmolsInProc(nproc, 0); tmpNFixedZmols[myNode] = fixedZmols.size(); - //do MPI_ALLREDUCE to exchange the total number of atoms, rigidbodies and cutoff groups - MPI_Allreduce(&tmpNFixedZmols[0], &nFixedZmolsInProc[0], nproc, MPI_INT, - MPI_SUM, MPI_COMM_WORLD); + //do MPI_ALLREDUCE to exchange the total number of atoms, + //rigidbodies and cutoff groups + MPI_Allreduce(&tmpNFixedZmols[0], &nFixedZmolsInProc[0], + nproc, MPI_INT, MPI_SUM, MPI_COMM_WORLD); - MPI_Status ierr; + MPI_Status* ierr; int zmolIndex; RealType data[3]; - if (masterNode == 0) { + if (myNode == masterNode) { std::vector zconsData; ZconsData tmpData; @@ -131,8 +136,8 @@ namespace OpenMD { } else { for(int k =0 ; k < nFixedZmolsInProc[i]; ++k) { - MPI_Recv(&zmolIndex, 1, MPI_INT, i, 0, MPI_COMM_WORLD,&ierr); - MPI_Recv(data, 3, MPI_REALTYPE, i, 0, MPI_COMM_WORLD,&ierr); + MPI_Recv(&zmolIndex, 1, MPI_INT, i, 0, MPI_COMM_WORLD, ierr); + MPI_Recv(data, 3, MPI_REALTYPE, i, 0, MPI_COMM_WORLD, ierr); tmpData.zmolIndex = zmolIndex; tmpData.zforce= data[0]; tmpData.zpos = data[1]; @@ -160,8 +165,8 @@ namespace OpenMD { data[0] = j->fz; data[1] = j->zpos; data[2] = j->param.zTargetPos; - MPI_Send(&zmolIndex, 1, MPI_INT, masterNode, 0, MPI_COMM_WORLD); - MPI_Send(data, 3, MPI_REALTYPE, masterNode, 0, MPI_COMM_WORLD); + MPI_Send(&zmolIndex, 1, MPI_INT, masterNode, 0, MPI_COMM_WORLD); + MPI_Send(data, 3, MPI_REALTYPE, masterNode, 0, MPI_COMM_WORLD); } }