def setUp(self):
     natoms = 10
     minimiser = PeleMinimiser(BLJCluster(natoms, 5))
     self.factory = ClusterFactory(natoms,
                                   minimiser,
                                   composition=[5, 5],
                                   labels=["A", "B"])
 def test_cluster(self):
     natoms=3
     minimiser=PeleMinimiser(LJCluster(natoms))
     factory=ClusterFactory(natoms,minimiser)
     with open("restart.xyz",'r') as xyz_file:
         cluster=factory.read_xyz(xyz_file)
     self.assertEquals(-5.,cluster.get_energy())
Exemplo n.º 3
0
 def __init__(self,
              natoms,
              minimiser,
              composition="default",
              labels=("X", ),
              pop_size=10,
              max_generation=10,
              selector=TournamentSelector(3),
              offspring=8,
              mutant_rate=0.1,
              remove_duplicates=False,
              mutator=MutateReplace(),
              crossover=DeavenHo()):
     #Parameters
     self.max_generation = max_generation
     self.mutant_rate = mutant_rate
     self.offspring = offspring
     self.pop_size = pop_size
     self.remove_duplicates = remove_duplicates
     self.selector = selector
     self.mutator = mutator
     self.crossover = crossover
     #Factory
     self.factory = ClusterFactory(natoms, minimiser, composition, labels)
     #PopulationList
     self.population = PopulationList(natoms, self.factory, pop_size)
     #Evolutionary progress
     self.mean_energy_series = []
     self.min_energy_series = []
     self.db = Database(db="mydatabase.sqlite")
     self.storage = self.db.minimum_adder()
 def setUp(self):
     natoms = 10
     minimiser = PeleMinimiser(lj.LJ())
     factory = ClusterFactory(natoms, minimiser)
     self.population = PopulationList(natoms, factory, max_size=5)
     while len(self.population) < self.population.max_size:
         self.population.append(factory.get_random_cluster())
Exemplo n.º 5
0
 def test_replace(self):
     natoms=10
     minimiser=PeleMinimiser(lj.LJ())
     factory=ClusterFactory(natoms,minimiser)
     parent = factory.get_random_cluster()   
     mutator = MutateReplace()
     mutant = mutator.get_mutant(parent)
     self.assertLess(mutant.get_energy(), 0)
 def test_population(self):
     natoms=3
     minimiser=PeleMinimiser(LJCluster(natoms))
     factory=ClusterFactory(natoms,minimiser)
     with open("restart.xyz",'r') as xyz_file:
         population=PopulationList(natoms,factory)
         population.read_xyz(xyz_file)
     self.assertEquals(-5.,population[0].get_energy())
     self.assertEquals(-4.,population[1].get_energy())
Exemplo n.º 7
0
 def test_mutant(self):
     natoms = 10
     minimiser = PeleMinimiser(lj.LJ())
     factory = ClusterFactory(natoms, minimiser)
     parent_a = factory.get_random_cluster()
     parent_b = factory.get_random_cluster()
     crossover = DeavenHo()
     offspring = crossover.get_offspring(parent_a, parent_b)
     self.assertLess(offspring.get_energy(), 0)
Exemplo n.º 8
0
 def test_exchange(self):
     natoms=20
     minimiser=PeleMinimiser(BLJCluster(natoms,10))
     factory=ClusterFactory(natoms,minimiser,
                                 composition=[10,10],
                                 labels=["A","B"])
     cluster = factory.get_random_cluster()
     mutator = MutateExchange()
     for i in range(0,50):
         mutant=mutator.get_mutant(cluster)
         self.assertEquals(mutant.atom_types[9],0)
         self.assertEquals(mutant.atom_types[10],1)
 def __init__(self,
              natoms,
              minimiser,
              composition="default",
              labels=("X", ),
              pop_size=10,
              max_generation=10,
              selector=TournamentSelector(3),
              offspring=8,
              mutant_rate=0.1,
              remove_duplicates=False,
              mass_extinction=False,
              epoch_thresh=1.e-6,
              restart=False,
              mutator=MutateReplace(),
              crossover=DeavenHo()):
     #Parameters
     self.max_generation = max_generation
     self.mutant_rate = mutant_rate
     self.offspring = offspring
     self.pop_size = pop_size
     self.remove_duplicates = remove_duplicates
     self.mass_extinction = mass_extinction
     self.epoch_thresh = epoch_thresh
     self.selector = selector
     self.mutator = mutator
     self.crossover = crossover
     #Factory
     self.factory = ClusterFactory(natoms, minimiser, composition, labels)
     #PopulationList
     self.population = PopulationList(natoms, self.factory, pop_size)
     if restart is False:
         while len(self.population) < self.population.max_size:
             self.population.append(self.factory.get_random_cluster())
         self.population.sort_energy()
     else:
         with open("restart.xyz", 'r') as xyz_file:
             self.population.read_xyz(xyz_file)
     #Evolutionary progress
     self.mean_energy_series = []
     self.mean_energy_series.append(self.population.get_mean_energy())
     self.min_energy_series = []
     self.min_energy_series.append(self.population.get_lowest_energy())
 def setUp(self):
     natoms = 10
     minimiser = PeleMinimiser(lj.LJ())
     self.factory = ClusterFactory(natoms, minimiser)