1 |
|
/* |
2 |
< |
* Copyright (c) 2005 The University of Notre Dame. All Rights Reserved. |
2 |
> |
* Copyright (c) 2006 The University of Notre Dame. All Rights Reserved. |
3 |
|
* |
4 |
|
* The University of Notre Dame grants you ("Licensee") a |
5 |
|
* non-exclusive, royalty free, license to use, modify and |
43 |
|
#include <mpi.h> |
44 |
|
#endif |
45 |
|
|
46 |
+ |
#include <fstream> |
47 |
|
#include "utils/simError.h" |
48 |
|
#include "utils/CaseConversion.hpp" |
49 |
|
#include "brains/Register.hpp" |
50 |
|
#include "brains/SimCreator.hpp" |
51 |
|
#include "brains/SimInfo.hpp" |
52 |
|
#include "constraints/ZconstraintForceManager.hpp" |
53 |
+ |
#include "restraints/RestraintForceManager.hpp" |
54 |
|
#include "integrators/IntegratorFactory.hpp" |
55 |
|
#include "integrators/Integrator.hpp" |
56 |
|
#include "minimizers/MinimizerFactory.hpp" |
57 |
|
#include "minimizers/Minimizer.hpp" |
58 |
+ |
#include "restraints/ThermoIntegrationForceManager.hpp" |
59 |
+ |
|
60 |
|
using namespace oopse; |
61 |
|
|
62 |
+ |
|
63 |
|
int main(int argc,char* argv[]){ |
64 |
< |
|
64 |
> |
|
65 |
|
// first things first, all of the initializations |
66 |
|
|
67 |
|
#ifdef IS_MPI |
79 |
|
" | ____ ____ ____ _____ ______ The OpenSource, Object-oriented |\n" << |
80 |
|
" | / __ \\/ __ \\/ __ \\/ ___// ____/ Parallel Simulation Engine. |\n" << |
81 |
|
" | / / / / / / / /_/ /\\__ \\/ __/ |\n" << |
82 |
< |
" | / /_/ / /_/ / ____/___/ / /___ Copyright 2004-2005 by the |\n" << |
82 |
> |
" | / /_/ / /_/ / ____/___/ / /___ Copyright 2004-2008 by the |\n" << |
83 |
|
" | \\____/\\____/_/ /____/_____/ University of Notre Dame. |\n" << |
84 |
|
" | |\n" << |
85 |
|
" | version " << |
105 |
|
} |
106 |
|
#endif |
107 |
|
|
103 |
– |
#ifdef IS_MPI |
108 |
|
strcpy( checkPointMsg, "Successful number of arguments" ); |
109 |
< |
MPIcheckPoint(); |
106 |
< |
#endif |
109 |
> |
errorCheckPoint(); |
110 |
|
|
108 |
– |
|
109 |
– |
|
111 |
|
//register forcefields, integrators and minimizers |
112 |
|
registerAll(); |
113 |
|
|
148 |
|
} |
149 |
|
|
150 |
|
//Thermodynamic Integration Method |
151 |
< |
//ForceManager* fman = new ThermodynamicForceManager(info); |
152 |
< |
//myIntegrator->setForceManager(fman); |
151 |
> |
//set the force manager for thermodynamic integration if specified |
152 |
> |
if (simParams->getUseThermodynamicIntegration()){ |
153 |
> |
ForceManager* fman = new ThermoIntegrationForceManager(info); |
154 |
> |
myIntegrator->setForceManager(fman); |
155 |
> |
} |
156 |
|
|
157 |
+ |
// Restraints |
158 |
+ |
if (simParams->getUseRestraints() && !simParams->getUseThermodynamicIntegration()) { |
159 |
+ |
ForceManager* fman = new RestraintForceManager(info); |
160 |
+ |
myIntegrator->setForceManager(fman); |
161 |
+ |
} |
162 |
|
|
163 |
|
//Zconstraint-Method |
164 |
|
if (simParams->getNZconsStamps() > 0) { |
175 |
|
painCave.isFatal = 1; |
176 |
|
simError(); |
177 |
|
} |
169 |
– |
|
170 |
– |
|
178 |
|
|
179 |
|
delete info; |
180 |
|
|
181 |
< |
#ifdef IS_MPI |
182 |
< |
strcpy( checkPointMsg, "Yoikes! It worked!" ); |
183 |
< |
MPIcheckPoint(); |
184 |
< |
|
181 |
> |
|
182 |
> |
strcpy( checkPointMsg, "Great googly moogly! It worked!" ); |
183 |
> |
errorCheckPoint(); |
184 |
> |
|
185 |
> |
#ifdef IS_MPI |
186 |
|
MPI_Finalize(); |
187 |
|
#endif |
188 |
|
|