def main(): parser = argparse.ArgumentParser(description="do nested sampling on a Lennard Jones cluster") parser.add_argument("natoms", type=int, help="number of atoms") parser.add_argument("db", type=str, help="location of the database") parser.add_argument("--normalmodes", type=str, help="store the full normalmodes as well") args = parser.parse_args() system = LJCluster(args.natoms,) if False: # build the database database = system.create_database(args.db, createdb=True) bh = system.get_basinhopping(database) bh.run(1000) else: database = system.create_database(args.db, createdb=False) assert database.number_of_minima() > 0 print "computing the vibrational free energy and the point group order" get_thermodynamic_information(system, database) print "computing the normal modes" get_all_normalmodes(system, database)
def setUp1(self, nproc=1): self.set_up_system() self.nreplicas = 10 self.stepsize = 0.01 self.nproc = nproc self.database = self.system.create_database() # add some minima to the database bh = self.system.get_basinhopping(self.database, outstream=None) while self.database.number_of_minima() < 2: bh.run(1) # compute the thermodynamic information get_thermodynamic_information(self.system, self.database) get_all_normalmodes(self.system, self.database) self.minima = list(self.database.minima()) assert self.database.number_of_minima() > 1, "%d minima" % self.database.number_of_minima() self.mc_runner = self.system.get_mc_walker(mciter=200) self.energy_accuracy = 1e-4 self.ns = NestedSamplingSAExact(self.system, self.nreplicas, self.mc_runner, self.minima, self.energy_accuracy, mindist=self.system.get_mindist(), config_tests = self.system.get_config_tests(), stepsize=0.1, nproc=nproc, verbose=True, iprint=100) self.Emax0 = self.ns.replicas[-1].energy self.run_ns(max_iter=1000, Etol=.001)
def main(): parser = argparse.ArgumentParser( description="do nested sampling on a Lennard Jones cluster") parser.add_argument("natoms", type=int, help="number of atoms") parser.add_argument("db", type=str, help="location of the database") parser.add_argument("--normalmodes", type=str, help="store the full normalmodes as well") args = parser.parse_args() system = LJCluster(args.natoms, ) if False: # build the database database = system.create_database(args.db, createdb=True) bh = system.get_basinhopping(database) bh.run(1000) else: database = system.create_database(args.db, createdb=False) assert database.number_of_minima() > 0 print "computing the vibrational free energy and the point group order" get_thermodynamic_information(system, database) print "computing the normal modes" get_all_normalmodes(system, database)
def setUp(self): self.natoms = 6 self.system = LJCluster(self.natoms) # create a database self.database = self.system.create_database() # add some minima to the database bh = self.system.get_basinhopping(self.database, outstream=None) while self.database.number_of_minima() < 2: bh.run(1) get_thermodynamic_information(self.system, self.database) get_all_normalmodes(self.system, self.database) self.ndof = self.natoms * 3 - 6 self.sampler = SASampler(self.database.minima(), self.ndof)
def build_database(system, nminima, dbfname=None, maxiter=1000): if dbfname is None: db = system.create_database() else: db = system.create_database(dbfname) bh = system.get_basinhopping(db, outstream=None) i = 0 while db.number_of_minima() < nminima: bh.run(1) i += 1 if i >= maxiter: break get_thermodynamic_information(system, db) get_all_normalmodes(system, db) return db
def setUp1(self, nproc=1): self.set_up_system() self.nreplicas = 10# * nproc self.stepsize = 0.01 self.nproc = nproc self.database = self.system.create_database() # add some minima to the database bh = self.system.get_basinhopping(self.database, outstream=None) while self.database.number_of_minima() < 2: bh.run(1) # compute the thermodynamic information get_thermodynamic_information(self.system, self.database) get_all_normalmodes(self.system, self.database) self.minima = list(self.database.minima()) assert self.database.number_of_minima() > 1, "%d minima" % self.database.number_of_minima() self.mc_runner = self.system.get_mc_walker(mciter=200) self.energy_accuracy = 1e-4 self.hsa_sampler = HSASamplerCluster(self.minima, self.system.k, copy_minima=True, center_minima=True, energy_accuracy=self.energy_accuracy, compare_structures=self.system.get_compare_exact(), mindist=self.system.get_mindist(), minimizer=self.system.get_minimizer(), debug=True) replicas = _utils.create_replicas(self.system, self.nreplicas) potential = self.system.get_potential() potential.get_energy = potential.getEnergy self.ns = NestedSamplingSAExact(replicas, self.mc_runner, self.hsa_sampler, potential, config_tests=self.system.get_config_tests(), nproc=nproc, verbose=True, iprint=1, debug=True) self.Emax0 = self.ns.replicas[-1].energy self.run_ns(max_iter=1000, Etol=.001)
def setUp1(self, nproc=1): self.set_up_system() self.nreplicas = 10 self.stepsize = 0.01 self.nproc = nproc self.database = self.system.create_database() # add some minima to the database bh = self.system.get_basinhopping(self.database, outstream=None) while self.database.number_of_minima() < 2: bh.run(1) # compute the thermodynamic information get_thermodynamic_information(self.system, self.database) get_all_normalmodes(self.system, self.database) self.minima = list(self.database.minima()) assert self.database.number_of_minima( ) > 1, "%d minima" % self.database.number_of_minima() self.mc_runner = self.system.get_mc_walker(mciter=200) self.energy_accuracy = 1e-4 self.ns = NestedSamplingSAExact( self.system, self.nreplicas, self.mc_runner, self.minima, self.energy_accuracy, mindist=self.system.get_mindist(), config_tests=self.system.get_config_tests(), stepsize=0.1, nproc=nproc, verbose=True, iprint=100) self.Emax0 = self.ns.replicas[-1].energy self.run_ns(max_iter=1000, Etol=.001)
def setUp(self): super(TestGetNormalModes, self).setUp() get_all_normalmodes(self.system, self.database)