ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/src/oopse.cpp
Revision: 888
Committed: Fri Dec 19 18:53:43 2003 UTC (20 years, 9 months ago) by mmeineke
File size: 1893 byte(s)
Log Message:
the profiling commands work now. Will start adding PROFILE ifdefs into the code

File Contents

# User Rev Content
1 mmeineke 377 #ifdef IS_MPI
2     #include <iostream>
3     #include <fstream>
4     #include <cstdlib>
5     #include <cmath>
6     #include <cstring>
7     #include <mpi.h>
8    
9 mmeineke 888 #ifdef PROFILE
10     #include "mdProfile.hpp"
11     #endif // PROFILE
12    
13 mmeineke 377 #include "simError.h"
14     #include "SimSetup.hpp"
15     #include "SimInfo.hpp"
16     #include "Atom.hpp"
17     #include "Integrator.hpp"
18     #include "Thermo.hpp"
19     #include "ReadWrite.hpp"
20    
21     char* program_name;
22     using namespace std;
23    
24     int main(int argc,char* argv[]){
25    
26     char* in_name;
27     SimSetup* startMe;
28     SimInfo* entry_plug;
29    
30    
31     // first things first, all of the initializations
32    
33     MPI_Init( &argc, &argv ); // the MPI communicators
34 mmeineke 888
35 mmeineke 377 initSimError(); // the error handler
36     srand48( 1337 ); // the random number generator.
37    
38 mmeineke 888 #ifdef PROFILE
39     initProfile();
40     #endif //profile
41 mmeineke 377
42     // check command line arguments, and set the input file
43    
44     program_name = argv[0]; // save the program name in case we need it
45    
46     if( worldRank == 0 ){
47     if( argc < 2 ){
48     strcpy( painCave.errMsg, "Error, bass file is needed to run.\n" );
49     painCave.isFatal = 1;
50     simError();
51     }
52     }
53    
54     in_name = argv[1];
55    
56     strcpy( checkPointMsg, "Successful number of arguments" );
57     MPIcheckPoint();
58    
59    
60     // create the simulation objects, and get the show on the road
61    
62     entry_plug = new SimInfo;
63     startMe = new SimSetup;
64    
65     startMe->setSimInfo( entry_plug );
66 mmeineke 888
67     #ifdef PROFILE
68     startProfile( pro1 );
69     #endif //profile
70    
71 mmeineke 377 startMe->parseFile( in_name );
72 mmeineke 888
73     #ifdef PROFILE
74     endProfile( pro1 );
75    
76     startProfile( pro2 );
77     #endif //profile
78    
79 mmeineke 377 startMe->createSim();
80    
81     delete startMe;
82 mmeineke 888
83     #ifdef PROFILE
84     endProfile( pro2 );
85 mmeineke 377
86 mmeineke 888 startProfile( pro3 );
87     #endif //profile
88    
89 mmeineke 377 entry_plug->the_integrator->integrate();
90    
91 mmeineke 888 #ifdef PROFILE
92     endProfile( pro3 );
93    
94     writeProfiles();
95     #endif //profile
96    
97 mmeineke 377 strcpy( checkPointMsg, "Oh what a lovely Tea Party!" );
98     MPIcheckPoint();
99    
100     MPI_Finalize();
101     return 0 ;
102     }
103    
104     #endif