ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/DumpWriter.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/DumpWriter.cpp (file contents):
Revision 586 by mmeineke, Wed Jul 9 22:14:06 2003 UTC vs.
Revision 723 by mmeineke, Tue Aug 26 20:12:51 2003 UTC

# Line 1 | Line 1
1 + #define _FILE_OFFSET_BITS 64
2 +
3   #include <cstring>
4   #include <iostream>
5   #include <fstream>
# Line 75 | Line 77 | void DumpWriter::writeDump( double currentTime ){
77    DirectionalAtom* dAtom;
78    int nAtoms = entry_plug->n_atoms;
79    Atom** atoms = entry_plug->atoms;
80 +
81 +  double pos[3], vel[3];
82      
83  
84   #ifndef IS_MPI
# Line 82 | Line 86 | void DumpWriter::writeDump( double currentTime ){
86    outFile << nAtoms << "\n";
87      
88    outFile << currentTime << ";\t"
89 <          << entry_plug->Hmat[0] << "\t"
90 <          << entry_plug->Hmat[1] << "\t"
91 <          << entry_plug->Hmat[2] << ";\t"
89 >          << entry_plug->Hmat[0][0] << "\t"
90 >          << entry_plug->Hmat[1][0] << "\t"
91 >          << entry_plug->Hmat[2][0] << ";\t"
92  
93 <          << entry_plug->Hmat[3] << "\t"
94 <          << entry_plug->Hmat[4] << "\t"
95 <          << entry_plug->Hmat[5] << ";\t"
93 >          << entry_plug->Hmat[0][1] << "\t"
94 >          << entry_plug->Hmat[1][1] << "\t"
95 >          << entry_plug->Hmat[2][1] << ";\t"
96  
97 <          << entry_plug->Hmat[6] << "\t"
98 <          << entry_plug->Hmat[7] << "\t"
99 <          << entry_plug->Hmat[8] << ";\n";
97 >          << entry_plug->Hmat[0][2] << "\t"
98 >          << entry_plug->Hmat[1][2] << "\t"
99 >          << entry_plug->Hmat[2][2] << ";\n";
100      
101    for( i=0; i<nAtoms; i++ ){
102        
103 +    atoms[i]->getPos(pos);
104 +    atoms[i]->getVel(vel);
105  
106      sprintf( tempBuffer,
107               "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
108               atoms[i]->getType(),
109 <             atoms[i]->getX(),
110 <             atoms[i]->getY(),
111 <             atoms[i]->getZ(),
112 <             atoms[i]->get_vx(),
113 <             atoms[i]->get_vy(),
114 <             atoms[i]->get_vz());
109 >             pos[0],
110 >             pos[1],
111 >             pos[2],
112 >             vel[0],
113 >             vel[1],
114 >             vel[2]);
115      strcpy( writeLine, tempBuffer );
116  
117      if( atoms[i]->isDirectional() ){
# Line 147 | Line 153 | void DumpWriter::writeDump( double currentTime ){
153    if( worldRank == 0 ){
154      outFile << mpiSim->getTotAtoms() << "\n";
155    
156 <    outFile << currentTime << "\t"
157 <            << entry_plug->Hmat[0] << "\t"
158 <            << entry_plug->Hmat[1] << "\t"
159 <            << entry_plug->Hmat[2] << "\t"
156 >    outFile << currentTime << ";\t"
157 >            << entry_plug->Hmat[0][0] << "\t"
158 >            << entry_plug->Hmat[1][0] << "\t"
159 >            << entry_plug->Hmat[2][0] << ";\t"
160        
161 <            << entry_plug->Hmat[3] << "\t"
162 <            << entry_plug->Hmat[4] << "\t"
163 <            << entry_plug->Hmat[5] << "\t"
161 >            << entry_plug->Hmat[0][1] << "\t"
162 >            << entry_plug->Hmat[1][1] << "\t"
163 >            << entry_plug->Hmat[2][1] << ";\t"
164        
165 <            << entry_plug->Hmat[6] << "\t"
166 <            << entry_plug->Hmat[7] << "\t"
167 <            << entry_plug->Hmat[8] << "\n";
168 <    ;
165 >            << entry_plug->Hmat[0][2] << "\t"
166 >            << entry_plug->Hmat[1][2] << "\t"
167 >            << entry_plug->Hmat[2][2] << ";\n";
168 >    
169      outFile.flush();
170      for (i = 0 ; i < mpiSim->getTotAtoms(); i++ ) {
171        // Get the Node number which has this atom;
# Line 176 | Line 182 | void DumpWriter::writeDump( double currentTime ){
182          }
183          if (local_index != -1) {
184            //format the line
185 +          
186 +          atoms[local_index]->getPos(pos);
187 +          atoms[local_index]->getVel(vel);
188 +
189            sprintf( tempBuffer,
190                     "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
191                     atoms[local_index]->getType(),
192 <                   atoms[local_index]->getX(),
193 <                   atoms[local_index]->getY(),
194 <                   atoms[local_index]->getZ(),
195 <                   atoms[local_index]->get_vx(),
196 <                   atoms[local_index]->get_vy(),
197 <                   atoms[local_index]->get_vz()); // check here.
192 >                   pos[0],
193 >                   pos[1],
194 >                   pos[2],
195 >                   vel[0],
196 >                   vel[1],
197 >                   vel[2]); // check here.
198            strcpy( writeLine, tempBuffer );
199            
200            if( atoms[local_index]->isDirectional() ){
# Line 266 | Line 276 | void DumpWriter::writeDump( double currentTime ){
276        }
277        if (local_index != -1) {
278          //format the line
279 +
280 +        atoms[local_index]->getPos(pos);
281 +        atoms[local_index]->getVel(vel);
282 +
283          sprintf( tempBuffer,
284                   "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
285                   atoms[local_index]->getType(),
286 <                 atoms[local_index]->getX(),
287 <                 atoms[local_index]->getY(),
288 <                 atoms[local_index]->getZ(),
289 <                 atoms[local_index]->get_vx(),
290 <                 atoms[local_index]->get_vy(),
291 <                 atoms[local_index]->get_vz()); // check here.
286 >                 pos[0],
287 >                 pos[1],
288 >                 pos[2],
289 >                 vel[0],
290 >                 vel[1],
291 >                 vel[2]); // check here.
292          strcpy( writeLine, tempBuffer );
293          
294          if( atoms[local_index]->isDirectional() ){
# Line 339 | Line 353 | void DumpWriter::writeFinal(double finalTime){
353    Atom** atoms = entry_plug->atoms;
354    int i, j, which_node, done, game_over, which_atom, local_index;
355    
356 +  double pos[3], vel[3];
357    
358   #ifdef IS_MPI
359    if(worldRank == 0 ){
# Line 370 | Line 385 | void DumpWriter::writeFinal(double finalTime){
385      
386    finalOut << nAtoms << "\n";
387      
388 <  finalOut << finalTime << "\t"
389 <           << entry_plug->Hmat[0] << "\t"
390 <           << entry_plug->Hmat[1] << "\t"
391 <           << entry_plug->Hmat[2] << "\t"
388 >  finalOut << finalTime << ";\t"
389 >           << entry_plug->Hmat[0][0] << "\t"
390 >           << entry_plug->Hmat[1][0] << "\t"
391 >           << entry_plug->Hmat[2][0] << ";\t"
392      
393 <           << entry_plug->Hmat[3] << "\t"
394 <           << entry_plug->Hmat[4] << "\t"
395 <           << entry_plug->Hmat[5] << "\t"
393 >           << entry_plug->Hmat[0][1] << "\t"
394 >           << entry_plug->Hmat[1][1] << "\t"
395 >           << entry_plug->Hmat[2][1] << ";\t"
396      
397 <           << entry_plug->Hmat[6] << "\t"
398 <           << entry_plug->Hmat[7] << "\t"
399 <           << entry_plug->Hmat[8] << "\n";
397 >           << entry_plug->Hmat[0][2] << "\t"
398 >           << entry_plug->Hmat[1][2] << "\t"
399 >           << entry_plug->Hmat[2][2] << ";\n";
400    
401    for( i=0; i<nAtoms; i++ ){
402        
403 +    atoms[i]->getPos(pos);
404 +    atoms[i]->getVel(vel);
405 +    
406      sprintf( tempBuffer,
407               "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
408               atoms[i]->getType(),
409 <             atoms[i]->getX(),
410 <             atoms[i]->getY(),
411 <             atoms[i]->getZ(),
412 <             atoms[i]->get_vx(),
413 <             atoms[i]->get_vy(),
414 <             atoms[i]->get_vz());
409 >             pos[0],
410 >             pos[1],
411 >             pos[2],
412 >             vel[0],
413 >             vel[1],
414 >             vel[2]);
415      strcpy( writeLine, tempBuffer );
416  
417      if( atoms[i]->isDirectional() ){
# Line 437 | Line 455 | void DumpWriter::writeFinal(double finalTime){
455    if( worldRank == 0 ){
456      finalOut << mpiSim->getTotAtoms() << "\n";
457      
458 <    finalOut << finalTime << "\t"
459 <             << entry_plug->Hmat[0] << "\t"
460 <             << entry_plug->Hmat[1] << "\t"
461 <             << entry_plug->Hmat[2] << "\t"
458 >    finalOut << finalTime << ";\t"
459 >             << entry_plug->Hmat[0][0] << "\t"
460 >             << entry_plug->Hmat[1][0] << "\t"
461 >             << entry_plug->Hmat[2][0] << ";\t"
462        
463 <             << entry_plug->Hmat[3] << "\t"
464 <             << entry_plug->Hmat[4] << "\t"
465 <             << entry_plug->Hmat[5] << "\t"
463 >             << entry_plug->Hmat[0][1] << "\t"
464 >             << entry_plug->Hmat[1][1] << "\t"
465 >             << entry_plug->Hmat[2][1] << ";\t"
466        
467 <             << entry_plug->Hmat[6] << "\t"
468 <             << entry_plug->Hmat[7] << "\t"
469 <             << entry_plug->Hmat[8] << "\n";
467 >             << entry_plug->Hmat[0][2] << "\t"
468 >             << entry_plug->Hmat[1][2] << "\t"
469 >             << entry_plug->Hmat[2][2] << ";\n";
470      
471      for (i = 0 ; i < mpiSim->getTotAtoms(); i++ ) {
472        // Get the Node number which has this molecule:
# Line 462 | Line 480 | void DumpWriter::writeFinal(double finalTime){
480          for (j=0; (j<mpiSim->getMyNlocal()) && (local_index < 0); j++) {
481            if (atoms[j]->getGlobalIndex() == which_atom) local_index = j;
482          }
483 <        if (local_index != -1) {        
483 >        if (local_index != -1) {    
484 >
485 >          atoms[local_index]->getPos(pos);
486 >          atoms[local_index]->getVel(vel);
487 >          
488            sprintf( tempBuffer,
489                     "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
490                     atoms[local_index]->getType(),
491 <                   atoms[local_index]->getX(),
492 <                   atoms[local_index]->getY(),
493 <                   atoms[local_index]->getZ(),
494 <                   atoms[local_index]->get_vx(),
495 <                   atoms[local_index]->get_vy(),
496 <                   atoms[local_index]->get_vz());
491 >                   pos[0],
492 >                   pos[1],
493 >                   pos[2],
494 >                   vel[0],
495 >                   vel[1],
496 >                   vel[2]);
497            strcpy( writeLine, tempBuffer );
498            
499            if( atoms[local_index]->isDirectional() ){
# Line 551 | Line 573 | void DumpWriter::writeFinal(double finalTime){
573        }
574        if (local_index != -1) {
575  
576 +        atoms[local_index]->getPos(pos);
577 +        atoms[local_index]->getVel(vel);
578 +
579          //format the line
580          sprintf( tempBuffer,
581                   "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
582                   atoms[local_index]->getType(),
583 <                 atoms[local_index]->getX(),
584 <                 atoms[local_index]->getY(),
585 <                 atoms[local_index]->getZ(),
586 <                 atoms[local_index]->get_vx(),
587 <                 atoms[local_index]->get_vy(),
588 <                 atoms[local_index]->get_vz()); // check here.
583 >                 pos[0],
584 >                 pos[1],
585 >                 pos[2],
586 >                 vel[0],
587 >                 vel[1],
588 >                 vel[2]); // check here.
589          strcpy( writeLine, tempBuffer );
590          
591          if( atoms[local_index]->isDirectional() ){

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines