| 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 |  |  | 
| 139 |  | //create Integrator | 
| 140 |  |  | 
| 141 |  | Integrator* myIntegrator = IntegratorFactory::getInstance()->createIntegrator(toUpperCopy(simParams->getEnsemble()), info); | 
| 142 | < |  | 
| 142 | > |  | 
| 143 |  | if (myIntegrator == NULL) { | 
| 144 |  | sprintf(painCave.errMsg, "Integrator Factory can not create %s Integrator\n", | 
| 145 |  | simParams->getEnsemble().c_str()); | 
| 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->haveNZconstraints()) { | 
| 165 | < | info->setNZconstraint(simParams->getNZconstraints()); | 
| 164 | > | if (simParams->getNZconsStamps() > 0) { | 
| 165 | > | info->setNZconstraint(simParams->getNZconsStamps()); | 
| 166 |  | ForceManager* fman = new ZconstraintForceManager(info); | 
| 167 |  | myIntegrator->setForceManager(fman); | 
| 168 |  | } | 
| 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 |  |  |