ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-1.0/src/oopse.cpp
Revision: 1334
Committed: Fri Jul 16 18:58:03 2004 UTC (19 years, 11 months ago) by gezelter
File size: 3213 byte(s)
Log Message:
Initial import of OOPSE-1.0 source tree

File Contents

# User Rev Content
1 gezelter 1334 #ifdef IS_MPI
2     #include <iostream>
3     #include <fstream>
4     #include <cstdlib>
5     #include <cmath>
6     #include <cstring>
7     #include <mpi.h>
8    
9     #ifdef PROFILE
10     #include "mdProfile.hpp"
11     #endif // PROFILE
12    
13     #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     #include "OOPSEMinimizer.hpp"
21    
22     char* program_name;
23     using namespace std;
24    
25     int main(int argc,char* argv[]){
26    
27     char* in_name;
28     SimSetup* startMe;
29     SimInfo* entry_plug;
30    
31     // first things first, all of the initializations
32    
33     MPI_Init( &argc, &argv ); // the MPI communicators
34    
35     initSimError(); // the error handler
36     srand48( 1337 ); // the random number generator.
37    
38     #ifdef PROFILE
39     initProfile();
40     #endif //profile
41    
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     std::cerr <<
48     " +----------------------------------------------------------------------+\n" <<
49     " | ____ ____ ____ _____ ______ The OpenSource, Object-oriented |\n" <<
50     " | / __ \\/ __ \\/ __ \\/ ___// ____/ Parallel Simulation Engine. |\n" <<
51     " | / / / / / / / /_/ /\\__ \\/ __/ |\n" <<
52     " | / /_/ / /_/ / ____/___/ / /___ Copyright 2004 by the |\n" <<
53     " | \\____/\\____/_/ /____/_____/ University of Notre Dame. |\n" <<
54     " | http://www.oopse.org |\n" <<
55     " | |\n" <<
56     " | OOPSE is an OpenScience project. All source code is available for |\n" <<
57     " | any use subject to only one condition: |\n" <<
58     " | |\n" <<
59     " | Any published work resulting from the use of this code must cite the |\n" <<
60     " | following paper: M. A. Meineke, C. F. Vardeman II, T. Lin, |\n" <<
61     " | C. J. Fennell, and J. D. Gezelter, |\n" <<
62     " | J. Comp. Chem. XX, XXXX (2004). |\n" <<
63     " +----------------------------------------------------------------------+\n" <<
64     "\n";
65    
66     if( argc < 2 ){
67     strcpy( painCave.errMsg, "Error, bass file is needed to run.\n" );
68     painCave.isFatal = 1;
69     simError();
70     }
71     }
72    
73     in_name = argv[1];
74    
75     strcpy( checkPointMsg, "Successful number of arguments" );
76     MPIcheckPoint();
77    
78     // create the simulation objects, and get the show on the road
79    
80     entry_plug = new SimInfo;
81     startMe = new SimSetup;
82    
83     startMe->setSimInfo( entry_plug );
84    
85    
86     startMe->parseFile( in_name );
87    
88    
89     startMe->createSim();
90    
91     delete startMe;
92    
93     if (!entry_plug->has_minimizer)
94     entry_plug->the_integrator->integrate();
95     else
96     entry_plug->the_minimizer->minimize();
97    
98     #ifdef PROFILE
99     writeProfiles();
100     #endif //profile
101    
102     strcpy( checkPointMsg, "Oh what a lovely Tea Party!" );
103     MPIcheckPoint();
104    
105     MPI_Finalize();
106     return 0 ;
107     }
108    
109     #endif