--- trunk/OOPSE/libmdtools/DumpWriter.cpp 2003/04/09 04:06:43 483 +++ trunk/OOPSE/libmdtools/DumpWriter.cpp 2003/08/07 21:47:18 670 @@ -75,29 +75,41 @@ void DumpWriter::writeDump( double currentTime ){ 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->box_x << "\t" - << entry_plug->box_y << "\t" - << entry_plug->box_z << "\n"; + outFile << currentTime << ";\t" + << entry_plug->Hmat[0][0] << "\t" + << entry_plug->Hmat[1][0] << "\t" + << entry_plug->Hmat[2][0] << ";\t" + + << entry_plug->Hmat[0][1] << "\t" + << entry_plug->Hmat[1][1] << "\t" + << entry_plug->Hmat[2][1] << ";\t" + + << 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() ){ @@ -138,11 +150,20 @@ void DumpWriter::writeDump( double currentTime ){ if( worldRank == 0 ){ outFile << mpiSim->getTotAtoms() << "\n"; + + outFile << currentTime << ";\t" + << entry_plug->Hmat[0][0] << "\t" + << entry_plug->Hmat[1][0] << "\t" + << entry_plug->Hmat[2][0] << ";\t" + + << entry_plug->Hmat[0][1] << "\t" + << entry_plug->Hmat[1][1] << "\t" + << entry_plug->Hmat[2][1] << ";\t" + + << entry_plug->Hmat[0][2] << "\t" + << entry_plug->Hmat[1][2] << "\t" + << entry_plug->Hmat[2][2] << ";\n"; - outFile << currentTime << "\t" - << entry_plug->box_x << "\t" - << entry_plug->box_y << "\t" - << entry_plug->box_z << "\n"; outFile.flush(); for (i = 0 ; i < mpiSim->getTotAtoms(); i++ ) { // Get the Node number which has this atom; @@ -159,15 +180,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() ){ @@ -249,15 +274,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() ){ @@ -307,7 +336,7 @@ void DumpWriter::writeDump( double currentTime ){ #endif // is_mpi } -void DumpWriter::writeFinal(){ +void DumpWriter::writeFinal(double finalTime){ char finalName[500]; ofstream finalOut; @@ -322,6 +351,7 @@ void DumpWriter::writeFinal(){ Atom** atoms = entry_plug->atoms; int i, j, which_node, done, game_over, which_atom, local_index; + double pos[3], vel[3]; #ifdef IS_MPI if(worldRank == 0 ){ @@ -353,21 +383,33 @@ void DumpWriter::writeFinal(){ finalOut << nAtoms << "\n"; - finalOut << entry_plug->box_x << "\t" - << entry_plug->box_y << "\t" - << entry_plug->box_z << "\n"; + finalOut << finalTime << ";\t" + << entry_plug->Hmat[0][0] << "\t" + << entry_plug->Hmat[1][0] << "\t" + << entry_plug->Hmat[2][0] << ";\t" + + << entry_plug->Hmat[0][1] << "\t" + << entry_plug->Hmat[1][1] << "\t" + << entry_plug->Hmat[2][1] << ";\t" + + << 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() ){ @@ -411,9 +453,18 @@ void DumpWriter::writeFinal(){ if( worldRank == 0 ){ finalOut << mpiSim->getTotAtoms() << "\n"; - finalOut << entry_plug->box_x << "\t" - << entry_plug->box_y << "\t" - << entry_plug->box_z << "\n"; + finalOut << finalTime << ";\t" + << entry_plug->Hmat[0][0] << "\t" + << entry_plug->Hmat[1][0] << "\t" + << entry_plug->Hmat[2][0] << ";\t" + + << entry_plug->Hmat[0][1] << "\t" + << entry_plug->Hmat[1][1] << "\t" + << entry_plug->Hmat[2][1] << ";\t" + + << 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: @@ -427,16 +478,20 @@ void DumpWriter::writeFinal(){ 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() ){ @@ -516,16 +571,19 @@ void DumpWriter::writeFinal(){ } 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() ){