--- trunk/src/applications/randomBuilder/randomBuilder.cpp 2006/10/10 14:52:20 1065 +++ trunk/src/applications/randomBuilder/randomBuilder.cpp 2015/03/07 21:41:51 2071 @@ -5,19 +5,10 @@ * redistribute this software in source and binary code form, provided * that the following conditions are met: * - * 1. Acknowledgement of the program authors must be made in any - * publication of scientific results based in part on use of the - * program. An acceptable form of acknowledgement is citation of - * the article in which the program was described (Matthew - * A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher - * J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented - * Parallel Simulation Engine for Molecular Dynamics," - * J. Comput. Chem. 26, pp. 252-271 (2005)) - * - * 2. Redistributions of source code must retain the above copyright + * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - * 3. Redistributions in binary form must reproduce the above copyright + * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. @@ -37,12 +28,21 @@ * University of Notre Dame has been advised of the possibility of * such damages. * + * SUPPORT OPEN SCIENCE! If you use OpenMD or its source code in your + * research, please cite the appropriate papers when you publish your + * work. Good starting points are: + * + * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). + * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). + * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008). + * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). + * [4] , Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). * * * randomBuilder.cpp * * Created by Charles F. Vardeman II on 10 Apr 2006. * @author Charles F. Vardeman II - * @version $Id: randomBuilder.cpp,v 1.5 2006-10-10 14:52:20 gezelter Exp $ + * @version $Id$ * */ @@ -69,7 +69,7 @@ using namespace std; #include "utils/StringUtils.hpp" using namespace std; -using namespace oopse; +using namespace OpenMD; void createMdFile(const std::string&oldMdFileName, const std::string&newMdFileName, @@ -77,8 +77,6 @@ int main(int argc, char *argv []) { int main(int argc, char *argv []) { - // register force fields - registerForceFields(); registerLattice(); gengetopt_args_info args_info; @@ -105,7 +103,7 @@ int main(int argc, char *argv []) { density = args_info.density_arg; //get lattice type - latticeType = UpperCase(args_info.latticetype_arg); + latticeType = "FCC"; simpleLat = LatticeFactory::getInstance()->createLattice(latticeType); @@ -170,18 +168,18 @@ int main(int argc, char *argv []) { std::vector molFractions; std::vector molecularMasses; std::vector nMol; - int nComponents = components.size(); - + std::size_t nComponents = components.size(); + if (nComponents == 1) { molFractions.push_back(1.0); } else { if (args_info.molFraction_given == nComponents) { - for (int i = 0; i < nComponents; i++) { + for (std::size_t i = 0; i < nComponents; i++) { molFractions.push_back(args_info.molFraction_arg[i]); } } else if (args_info.molFraction_given == nComponents-1) { RealType remainingFraction = 1.0; - for (int i = 0; i < nComponents-1; i++) { + for (std::size_t i = 0; i < nComponents-1; i++) { molFractions.push_back(args_info.molFraction_arg[i]); remainingFraction -= molFractions[i]; } @@ -198,7 +196,7 @@ int main(int argc, char *argv []) { RealType totalFraction = 0.0; - for (int i = 0; i < nComponents; i++) { + for (std::size_t i = 0; i < nComponents; i++) { if (molFractions.at(i) < 0.0) { sprintf(painCave.errMsg, "One of the requested molFractions was" " less than zero!"); @@ -220,7 +218,7 @@ int main(int argc, char *argv []) { } int remaining = nSites; - for (int i=0; i < nComponents-1; i++) { + for (std::size_t i=0; i < nComponents-1; i++) { nMol.push_back(int((RealType)nSites * molFractions.at(i))); remaining -= nMol.at(i); } @@ -230,11 +228,11 @@ int main(int argc, char *argv []) { int totalMolecules = 0; RealType totalMass = 0.0; - for (int i=0; i < nComponents; i++) { + for (std::size_t i=0; i < nComponents; i++) { molFractions[i] = (RealType)(nMol.at(i))/(RealType)nSites; totalMolecules += nMol.at(i); - molecularMasses.push_back(getMolMass(oldInfo->getMoleculeStamp(i), - oldInfo->getForceField())); + molecularMasses.push_back(MoLocator::getMolMass(oldInfo->getMoleculeStamp(i), + oldInfo->getForceField())); totalMass += (RealType)(nMol.at(i)) * molecularMasses.at(i); } RealType avgMass = totalMass / (RealType) totalMolecules; @@ -285,8 +283,7 @@ int main(int argc, char *argv []) { createMdFile(inputFileName, outputFileName, nMol); - if (oldInfo != NULL) - delete oldInfo; + delete oldInfo; // We need to read in the new SimInfo object, then Parse the // md file and set up the system @@ -317,12 +314,12 @@ int main(int argc, char *argv []) { // Randomize a vector of ints: vector ids; - for (int i = 0; i < sites.size(); i++) ids.push_back(i); + for (std::size_t i = 0; i < sites.size(); i++) ids.push_back(i); std::random_shuffle(ids.begin(), ids.end()); Molecule* mol; int l = 0; - for (int i = 0; i < nComponents; i++){ + for (std::size_t i = 0; i < nComponents; i++){ locator = new MoLocator(newInfo->getMoleculeStamp(i), newInfo->getForceField()); for (int n = 0; n < nMol.at(i); n++) { @@ -348,9 +345,10 @@ int main(int argc, char *argv []) { delete writer; - sprintf(painCave.errMsg, "A new OOPSE MD file called \"%s\" has been " + sprintf(painCave.errMsg, "A new OpenMD file called \"%s\" has been " "generated.\n", outputFileName.c_str()); painCave.isFatal = 0; + painCave.severity = OPENMD_INFO; simError(); return 0; } @@ -370,12 +368,12 @@ void createMdFile(const std::string&oldMdFileName, oldMdFile.getline(buffer, MAXLEN); - int i = 0; + std::size_t i = 0; while (!oldMdFile.eof()) { //correct molecule number if (strstr(buffer, "nMol") != NULL) { - if(i