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

# Content
1 #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