Esempio n. 1
0
    def test_exchange_move_single(self):
        for cell in _cells:
            minimization.optimize(
                cell, {
                    (0, 0): potential.LennardJonesType(lambda_=-1),
                    (1, 1): potential.LennardJonesType(lambda_=-1),
                    (0, 1): potential.LennardJonesType()
                },
                6,
                log_level=2,
                basin_kwargs=dict(niter=10),
                exchange_move=1,
                vector_move=0,
                scale_move=0,
                atom_move=0,
                cluster_move=0,
                exchange_select=0.0)

        for cell in _cells:
            minimization.optimize(
                cell, {
                    (0, 0): potential.LennardJonesType(lambda_=-1),
                    (1, 1): potential.LennardJonesType(lambda_=-1),
                    (0, 1): potential.LennardJonesType()
                },
                6,
                log_level=2,
                basin_kwargs=dict(niter=10),
                exchange_move=1,
                vector_move=0,
                scale_move=0,
                atom_move=0,
                cluster_move=0,
                exchange_select=-1.0)
Esempio n. 2
0
def run_minimizations(test=None):
    for cell in _cells:
        if __name__ == "__main__":
            visualization.cell_mayavi(cell, [3] * cell.dimensions,
                                      [1] * cell.atom_types)
        from paccs import similarity
        results = minimization.optimize(
            cell,
            {
                (0, 0): potential.LennardJonesType(lambda_=-1, n=12),
                (1, 1): potential.LennardJonesType(lambda_=-1, n=12),
                (0, 1): potential.LennardJonesType(n=12)
            },
            6,
            log_level=2,
            initial_kwargs=dict(options=dict(disp=False)),
            # These options are chosen for testing speed, not accurate results!
            basin_kwargs=dict(T=0.3,
                              niter=25,
                              interval=5,
                              niter_success=10,
                              minimizer_kwargs=dict(options=dict(disp=False))),
            final_kwargs=dict(options=dict(disp=False)),
            save_count=10,
            save_filter=similarity.Energy(1e-2),
            save_all=False)
        last_result = results[-1]
        if test:
            test.assertLessEqual(len(results), 10)
            energies = [energy for cell, energy, wall, proc in results]
            for energy_index_1 in range(len(energies)):
                for energy_index_2 in range(energy_index_1 + 1, len(energies)):
                    test.assertGreater(
                        abs(energies[energy_index_1] -
                            energies[energy_index_2]), 1e-2)
            test.assertEqual(last_result,
                             min(results, key=lambda result: result[1]))
        if __name__ == "__main__":
            for index, (cell, energy) in enumerate(results):
                print("{} of {}: {} with E={}".format(index + 1, len(results),
                                                      cell, energy))
                visualization.cell_mayavi(cell, [3] * cell.dimensions,
                                          [1] * cell.atom_types)