--- trunk/OOPSE/libmdtools/DumpWriter.cpp 2003/07/02 21:26:55 572 +++ trunk/OOPSE/libmdtools/DumpWriter.cpp 2003/09/25 19:27:15 787 @@ -1,3 +1,5 @@ +#define _FILE_OFFSET_BITS 64 + #include #include #include @@ -70,42 +72,50 @@ void DumpWriter::writeDump( double currentTime ){ char tempBuffer[BUFFERSIZE]; char writeLine[BUFFERSIZE]; - int i, j, which_node, done, which_atom, local_index; + int i; +#ifdef IS_MPI + int j, which_node, done, which_atom, local_index; +#else //is_mpi + int nAtoms = entry_plug->n_atoms; +#endif //is_mpi + double q[4]; DirectionalAtom* dAtom; - int nAtoms = entry_plug->n_atoms; Atom** atoms = entry_plug->atoms; + double pos[3], vel[3]; #ifndef IS_MPI outFile << nAtoms << "\n"; - outFile << currentTime << "\t" - << entry_plug->Hmat[0] << "\t" - << entry_plug->Hmat[1] << "\t" - << entry_plug->Hmat[2] << "\t" + outFile << currentTime << ";\t" + << entry_plug->Hmat[0][0] << "\t" + << entry_plug->Hmat[1][0] << "\t" + << entry_plug->Hmat[2][0] << ";\t" - << entry_plug->Hmat[3] << "\t" - << entry_plug->Hmat[4] << "\t" - << entry_plug->Hmat[5] << "\t" + << entry_plug->Hmat[0][1] << "\t" + << entry_plug->Hmat[1][1] << "\t" + << entry_plug->Hmat[2][1] << ";\t" - << entry_plug->Hmat[6] << "\t" - << entry_plug->Hmat[7] << "\t" - << entry_plug->Hmat[8] << "\n"; + << entry_plug->Hmat[0][2] << "\t" + << entry_plug->Hmat[1][2] << "\t" + << entry_plug->Hmat[2][2] << ";\n"; for( i=0; igetPos(pos); + atoms[i]->getVel(vel); sprintf( tempBuffer, "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t", atoms[i]->getType(), - atoms[i]->getX(), - atoms[i]->getY(), - atoms[i]->getZ(), - atoms[i]->get_vx(), - atoms[i]->get_vy(), - atoms[i]->get_vz()); + pos[0], + pos[1], + pos[2], + vel[0], + vel[1], + vel[2]); strcpy( writeLine, tempBuffer ); if( atoms[i]->isDirectional() ){ @@ -147,19 +157,19 @@ void DumpWriter::writeDump( double currentTime ){ if( worldRank == 0 ){ outFile << mpiSim->getTotAtoms() << "\n"; - outFile << currentTime << "\t" - << entry_plug->Hmat[0] << "\t" - << entry_plug->Hmat[1] << "\t" - << entry_plug->Hmat[2] << "\t" + outFile << currentTime << ";\t" + << entry_plug->Hmat[0][0] << "\t" + << entry_plug->Hmat[1][0] << "\t" + << entry_plug->Hmat[2][0] << ";\t" - << entry_plug->Hmat[3] << "\t" - << entry_plug->Hmat[4] << "\t" - << entry_plug->Hmat[5] << "\t" + << entry_plug->Hmat[0][1] << "\t" + << entry_plug->Hmat[1][1] << "\t" + << entry_plug->Hmat[2][1] << ";\t" - << entry_plug->Hmat[6] << "\t" - << entry_plug->Hmat[7] << "\t" - << entry_plug->Hmat[8] << "\n"; - ; + << entry_plug->Hmat[0][2] << "\t" + << entry_plug->Hmat[1][2] << "\t" + << entry_plug->Hmat[2][2] << ";\n"; + outFile.flush(); for (i = 0 ; i < mpiSim->getTotAtoms(); i++ ) { // Get the Node number which has this atom; @@ -176,15 +186,19 @@ void DumpWriter::writeDump( double currentTime ){ } if (local_index != -1) { //format the line + + atoms[local_index]->getPos(pos); + atoms[local_index]->getVel(vel); + sprintf( tempBuffer, "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t", atoms[local_index]->getType(), - atoms[local_index]->getX(), - atoms[local_index]->getY(), - atoms[local_index]->getZ(), - atoms[local_index]->get_vx(), - atoms[local_index]->get_vy(), - atoms[local_index]->get_vz()); // check here. + pos[0], + pos[1], + pos[2], + vel[0], + vel[1], + vel[2]); // check here. strcpy( writeLine, tempBuffer ); if( atoms[local_index]->isDirectional() ){ @@ -266,15 +280,19 @@ void DumpWriter::writeDump( double currentTime ){ } if (local_index != -1) { //format the line + + atoms[local_index]->getPos(pos); + atoms[local_index]->getVel(vel); + sprintf( tempBuffer, "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t", atoms[local_index]->getType(), - atoms[local_index]->getX(), - atoms[local_index]->getY(), - atoms[local_index]->getZ(), - atoms[local_index]->get_vx(), - atoms[local_index]->get_vy(), - atoms[local_index]->get_vz()); // check here. + pos[0], + pos[1], + pos[2], + vel[0], + vel[1], + vel[2]); // check here. strcpy( writeLine, tempBuffer ); if( atoms[local_index]->isDirectional() ){ @@ -335,10 +353,15 @@ void DumpWriter::writeFinal(double finalTime){ double q[4]; DirectionalAtom* dAtom; - int nAtoms = entry_plug->n_atoms; Atom** atoms = entry_plug->atoms; - int i, j, which_node, done, game_over, which_atom, local_index; + int i; +#ifdef IS_MPI + int j, which_node, done, which_atom, local_index; +#else //is_mpi + int nAtoms = entry_plug->n_atoms; +#endif //is_mpi + double pos[3], vel[3]; #ifdef IS_MPI if(worldRank == 0 ){ @@ -370,30 +393,33 @@ void DumpWriter::writeFinal(double finalTime){ finalOut << nAtoms << "\n"; - finalOut << finalTime << "\t" - << entry_plug->Hmat[0] << "\t" - << entry_plug->Hmat[1] << "\t" - << entry_plug->Hmat[2] << "\t" + finalOut << finalTime << ";\t" + << entry_plug->Hmat[0][0] << "\t" + << entry_plug->Hmat[1][0] << "\t" + << entry_plug->Hmat[2][0] << ";\t" - << entry_plug->Hmat[3] << "\t" - << entry_plug->Hmat[4] << "\t" - << entry_plug->Hmat[5] << "\t" + << entry_plug->Hmat[0][1] << "\t" + << entry_plug->Hmat[1][1] << "\t" + << entry_plug->Hmat[2][1] << ";\t" - << entry_plug->Hmat[6] << "\t" - << entry_plug->Hmat[7] << "\t" - << entry_plug->Hmat[8] << "\n"; + << entry_plug->Hmat[0][2] << "\t" + << entry_plug->Hmat[1][2] << "\t" + << entry_plug->Hmat[2][2] << ";\n"; for( i=0; igetPos(pos); + atoms[i]->getVel(vel); + sprintf( tempBuffer, "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t", atoms[i]->getType(), - atoms[i]->getX(), - atoms[i]->getY(), - atoms[i]->getZ(), - atoms[i]->get_vx(), - atoms[i]->get_vy(), - atoms[i]->get_vz()); + pos[0], + pos[1], + pos[2], + vel[0], + vel[1], + vel[2]); strcpy( writeLine, tempBuffer ); if( atoms[i]->isDirectional() ){ @@ -437,18 +463,18 @@ void DumpWriter::writeFinal(double finalTime){ if( worldRank == 0 ){ finalOut << mpiSim->getTotAtoms() << "\n"; - finalOut << finalTime << "\t" - << entry_plug->Hmat[0] << "\t" - << entry_plug->Hmat[1] << "\t" - << entry_plug->Hmat[2] << "\t" + finalOut << finalTime << ";\t" + << entry_plug->Hmat[0][0] << "\t" + << entry_plug->Hmat[1][0] << "\t" + << entry_plug->Hmat[2][0] << ";\t" - << entry_plug->Hmat[3] << "\t" - << entry_plug->Hmat[4] << "\t" - << entry_plug->Hmat[5] << "\t" + << entry_plug->Hmat[0][1] << "\t" + << entry_plug->Hmat[1][1] << "\t" + << entry_plug->Hmat[2][1] << ";\t" - << entry_plug->Hmat[6] << "\t" - << entry_plug->Hmat[7] << "\t" - << entry_plug->Hmat[8] << "\n"; + << entry_plug->Hmat[0][2] << "\t" + << entry_plug->Hmat[1][2] << "\t" + << entry_plug->Hmat[2][2] << ";\n"; for (i = 0 ; i < mpiSim->getTotAtoms(); i++ ) { // Get the Node number which has this molecule: @@ -462,16 +488,20 @@ void DumpWriter::writeFinal(double finalTime){ for (j=0; (jgetMyNlocal()) && (local_index < 0); j++) { if (atoms[j]->getGlobalIndex() == which_atom) local_index = j; } - if (local_index != -1) { + if (local_index != -1) { + + atoms[local_index]->getPos(pos); + atoms[local_index]->getVel(vel); + sprintf( tempBuffer, "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t", atoms[local_index]->getType(), - atoms[local_index]->getX(), - atoms[local_index]->getY(), - atoms[local_index]->getZ(), - atoms[local_index]->get_vx(), - atoms[local_index]->get_vy(), - atoms[local_index]->get_vz()); + pos[0], + pos[1], + pos[2], + vel[0], + vel[1], + vel[2]); strcpy( writeLine, tempBuffer ); if( atoms[local_index]->isDirectional() ){ @@ -551,16 +581,19 @@ void DumpWriter::writeFinal(double finalTime){ } if (local_index != -1) { + atoms[local_index]->getPos(pos); + atoms[local_index]->getVel(vel); + //format the line sprintf( tempBuffer, "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t", atoms[local_index]->getType(), - atoms[local_index]->getX(), - atoms[local_index]->getY(), - atoms[local_index]->getZ(), - atoms[local_index]->get_vx(), - atoms[local_index]->get_vy(), - atoms[local_index]->get_vz()); // check here. + pos[0], + pos[1], + pos[2], + vel[0], + vel[1], + vel[2]); // check here. strcpy( writeLine, tempBuffer ); if( atoms[local_index]->isDirectional() ){