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 469 by mmeineke, Mon Apr 7 20:06:31 2003 UTC vs.
Revision 670 by mmeineke, Thu Aug 7 21:47:18 2003 UTC

# Line 23 | Line 23 | DumpWriter::DumpWriter( SimInfo* the_entry_plug ){
23  
24    entry_plug = the_entry_plug;
25  
26  std::cerr << "Look at me I'm a freebird!\n";
27
26   #ifdef IS_MPI
27    if(worldRank == 0 ){
28   #endif // is_mpi
29      
32
33    
30      strcpy( outName, entry_plug->sampleName );
31      
32      outFile.open(outName, ios::out | ios::trunc );
# Line 44 | Line 40 | DumpWriter::DumpWriter( SimInfo* the_entry_plug ){
40        simError();
41      }
42  
47    std::cerr << "me TOO!\n";
48
43      //outFile.setf( ios::scientific );
44  
45   #ifdef IS_MPI
# Line 81 | Line 75 | void DumpWriter::writeDump( double currentTime ){
75    DirectionalAtom* dAtom;
76    int nAtoms = entry_plug->n_atoms;
77    Atom** atoms = entry_plug->atoms;
78 +
79 +  double pos[3], vel[3];
80      
81  
82   #ifndef IS_MPI
83      
84    outFile << nAtoms << "\n";
85      
86 <  outFile << currentTime << "\t"
87 <          << entry_plug->box_x << "\t"
88 <          << entry_plug->box_y << "\t"
89 <          << entry_plug->box_z << "\n";
86 >  outFile << currentTime << ";\t"
87 >          << entry_plug->Hmat[0][0] << "\t"
88 >          << entry_plug->Hmat[1][0] << "\t"
89 >          << entry_plug->Hmat[2][0] << ";\t"
90 >
91 >          << entry_plug->Hmat[0][1] << "\t"
92 >          << entry_plug->Hmat[1][1] << "\t"
93 >          << entry_plug->Hmat[2][1] << ";\t"
94 >
95 >          << entry_plug->Hmat[0][2] << "\t"
96 >          << entry_plug->Hmat[1][2] << "\t"
97 >          << entry_plug->Hmat[2][2] << ";\n";
98      
99    for( i=0; i<nAtoms; i++ ){
100        
101 +    atoms[i]->getPos(pos);
102 +    atoms[i]->getVel(vel);
103  
104      sprintf( tempBuffer,
105               "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
106               atoms[i]->getType(),
107 <             atoms[i]->getX(),
108 <             atoms[i]->getY(),
109 <             atoms[i]->getZ(),
110 <             atoms[i]->get_vx(),
111 <             atoms[i]->get_vy(),
112 <             atoms[i]->get_vz());
107 >             pos[0],
108 >             pos[1],
109 >             pos[2],
110 >             vel[0],
111 >             vel[1],
112 >             vel[2]);
113      strcpy( writeLine, tempBuffer );
114  
115      if( atoms[i]->isDirectional() ){
# Line 144 | Line 150 | void DumpWriter::writeDump( double currentTime ){
150    
151    if( worldRank == 0 ){
152      outFile << mpiSim->getTotAtoms() << "\n";
153 +  
154 +    outFile << currentTime << ";\t"
155 +            << entry_plug->Hmat[0][0] << "\t"
156 +            << entry_plug->Hmat[1][0] << "\t"
157 +            << entry_plug->Hmat[2][0] << ";\t"
158 +      
159 +            << entry_plug->Hmat[0][1] << "\t"
160 +            << entry_plug->Hmat[1][1] << "\t"
161 +            << entry_plug->Hmat[2][1] << ";\t"
162 +      
163 +            << entry_plug->Hmat[0][2] << "\t"
164 +            << entry_plug->Hmat[1][2] << "\t"
165 +            << entry_plug->Hmat[2][2] << ";\n";
166      
148    outFile << currentTime << "\t"
149            << entry_plug->box_x << "\t"
150            << entry_plug->box_y << "\t"
151            << entry_plug->box_z << "\n";
167      outFile.flush();
168      for (i = 0 ; i < mpiSim->getTotAtoms(); i++ ) {
169        // Get the Node number which has this atom;
# Line 165 | Line 180 | void DumpWriter::writeDump( double currentTime ){
180          }
181          if (local_index != -1) {
182            //format the line
183 +          
184 +          atoms[local_index]->getPos(pos);
185 +          atoms[local_index]->getVel(vel);
186 +
187            sprintf( tempBuffer,
188                     "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
189                     atoms[local_index]->getType(),
190 <                   atoms[local_index]->getX(),
191 <                   atoms[local_index]->getY(),
192 <                   atoms[local_index]->getZ(),
193 <                   atoms[local_index]->get_vx(),
194 <                   atoms[local_index]->get_vy(),
195 <                   atoms[local_index]->get_vz()); // check here.
190 >                   pos[0],
191 >                   pos[1],
192 >                   pos[2],
193 >                   vel[0],
194 >                   vel[1],
195 >                   vel[2]); // check here.
196            strcpy( writeLine, tempBuffer );
197            
198            if( atoms[local_index]->isDirectional() ){
# Line 255 | Line 274 | void DumpWriter::writeDump( double currentTime ){
274        }
275        if (local_index != -1) {
276          //format the line
277 +
278 +        atoms[local_index]->getPos(pos);
279 +        atoms[local_index]->getVel(vel);
280 +
281          sprintf( tempBuffer,
282                   "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
283                   atoms[local_index]->getType(),
284 <                 atoms[local_index]->getX(),
285 <                 atoms[local_index]->getY(),
286 <                 atoms[local_index]->getZ(),
287 <                 atoms[local_index]->get_vx(),
288 <                 atoms[local_index]->get_vy(),
289 <                 atoms[local_index]->get_vz()); // check here.
284 >                 pos[0],
285 >                 pos[1],
286 >                 pos[2],
287 >                 vel[0],
288 >                 vel[1],
289 >                 vel[2]); // check here.
290          strcpy( writeLine, tempBuffer );
291          
292          if( atoms[local_index]->isDirectional() ){
# Line 313 | Line 336 | void DumpWriter::writeFinal(){
336   #endif // is_mpi
337   }
338  
339 < void DumpWriter::writeFinal(){
339 > void DumpWriter::writeFinal(double finalTime){
340  
341    char finalName[500];
342    ofstream finalOut;
# Line 328 | Line 351 | void DumpWriter::writeFinal(){
351    Atom** atoms = entry_plug->atoms;
352    int i, j, which_node, done, game_over, which_atom, local_index;
353    
354 +  double pos[3], vel[3];
355    
356   #ifdef IS_MPI
357    if(worldRank == 0 ){
# Line 359 | Line 383 | void DumpWriter::writeFinal(){
383      
384    finalOut << nAtoms << "\n";
385      
386 <  finalOut << entry_plug->box_x << "\t"
387 <           << entry_plug->box_y << "\t"
388 <           << entry_plug->box_z << "\n";
386 >  finalOut << finalTime << ";\t"
387 >           << entry_plug->Hmat[0][0] << "\t"
388 >           << entry_plug->Hmat[1][0] << "\t"
389 >           << entry_plug->Hmat[2][0] << ";\t"
390 >    
391 >           << entry_plug->Hmat[0][1] << "\t"
392 >           << entry_plug->Hmat[1][1] << "\t"
393 >           << entry_plug->Hmat[2][1] << ";\t"
394 >    
395 >           << entry_plug->Hmat[0][2] << "\t"
396 >           << entry_plug->Hmat[1][2] << "\t"
397 >           << entry_plug->Hmat[2][2] << ";\n";
398    
399    for( i=0; i<nAtoms; i++ ){
400        
401 +    atoms[i]->getPos(pos);
402 +    atoms[i]->getVel(vel);
403 +    
404      sprintf( tempBuffer,
405               "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
406               atoms[i]->getType(),
407 <             atoms[i]->getX(),
408 <             atoms[i]->getY(),
409 <             atoms[i]->getZ(),
410 <             atoms[i]->get_vx(),
411 <             atoms[i]->get_vy(),
412 <             atoms[i]->get_vz());
407 >             pos[0],
408 >             pos[1],
409 >             pos[2],
410 >             vel[0],
411 >             vel[1],
412 >             vel[2]);
413      strcpy( writeLine, tempBuffer );
414  
415      if( atoms[i]->isDirectional() ){
# Line 417 | Line 453 | void DumpWriter::writeFinal(){
453    if( worldRank == 0 ){
454      finalOut << mpiSim->getTotAtoms() << "\n";
455      
456 <    finalOut << entry_plug->box_x << "\t"
457 <            << entry_plug->box_y << "\t"
458 <            << entry_plug->box_z << "\n";
456 >    finalOut << finalTime << ";\t"
457 >             << entry_plug->Hmat[0][0] << "\t"
458 >             << entry_plug->Hmat[1][0] << "\t"
459 >             << entry_plug->Hmat[2][0] << ";\t"
460 >      
461 >             << entry_plug->Hmat[0][1] << "\t"
462 >             << entry_plug->Hmat[1][1] << "\t"
463 >             << entry_plug->Hmat[2][1] << ";\t"
464 >      
465 >             << entry_plug->Hmat[0][2] << "\t"
466 >             << entry_plug->Hmat[1][2] << "\t"
467 >             << entry_plug->Hmat[2][2] << ";\n";
468      
469      for (i = 0 ; i < mpiSim->getTotAtoms(); i++ ) {
470        // Get the Node number which has this molecule:
# Line 433 | Line 478 | void DumpWriter::writeFinal(){
478          for (j=0; (j<mpiSim->getMyNlocal()) && (local_index < 0); j++) {
479            if (atoms[j]->getGlobalIndex() == which_atom) local_index = j;
480          }
481 <        if (local_index != -1) {        
481 >        if (local_index != -1) {    
482 >
483 >          atoms[local_index]->getPos(pos);
484 >          atoms[local_index]->getVel(vel);
485 >          
486            sprintf( tempBuffer,
487                     "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
488                     atoms[local_index]->getType(),
489 <                   atoms[local_index]->getX(),
490 <                   atoms[local_index]->getY(),
491 <                   atoms[local_index]->getZ(),
492 <                   atoms[local_index]->get_vx(),
493 <                   atoms[local_index]->get_vy(),
494 <                   atoms[local_index]->get_vz());
489 >                   pos[0],
490 >                   pos[1],
491 >                   pos[2],
492 >                   vel[0],
493 >                   vel[1],
494 >                   vel[2]);
495            strcpy( writeLine, tempBuffer );
496            
497            if( atoms[local_index]->isDirectional() ){
# Line 522 | Line 571 | void DumpWriter::writeFinal(){
571        }
572        if (local_index != -1) {
573  
574 +        atoms[local_index]->getPos(pos);
575 +        atoms[local_index]->getVel(vel);
576 +
577          //format the line
578          sprintf( tempBuffer,
579                   "%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t",
580                   atoms[local_index]->getType(),
581 <                 atoms[local_index]->getX(),
582 <                 atoms[local_index]->getY(),
583 <                 atoms[local_index]->getZ(),
584 <                 atoms[local_index]->get_vx(),
585 <                 atoms[local_index]->get_vy(),
586 <                 atoms[local_index]->get_vz()); // check here.
581 >                 pos[0],
582 >                 pos[1],
583 >                 pos[2],
584 >                 vel[0],
585 >                 vel[1],
586 >                 vel[2]); // check here.
587          strcpy( writeLine, tempBuffer );
588          
589          if( atoms[local_index]->isDirectional() ){

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines