def test_clusters_from_file(self):

        clusters1 = clusters_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp",
            rcut=4.0,
            elements={"Li"},
        )
        tort.tort_mod.tear_down()
        clusters2 = clusters_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp",
            rcut=3.5,
            elements={"Li"},
        )
        tort.tort_mod.tear_down()

        self.assertEqual(len(clusters1), 1)
        self.assertEqual(len(clusters2), 2)
    def test_cluster_periodic(self):

        clusters1 = clusters_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp",
            rcut=4.0,
            elements={"Li"},
        )
        tort.tort_mod.tear_down()

        clusters2 = clusters_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp",
            rcut=3.5,
            elements={"Li"},
        )
        tort.tort_mod.tear_down()

        self.assertEqual(clusters1.pop().periodic, 3)
        if clusters2.pop().periodic == 3:
            self.assertEqual(clusters2.pop().periodic, 0)
        else:
            self.assertEqual(clusters2.pop().periodic, 3)
    def test_periodic(self):

        clusters1 = clusters_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_periodic_1.vasp",
            rcut=4.0,
            elements={"Li"},
        )
        clusters2 = clusters_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_periodic_2.vasp",
            rcut=4.0,
            elements={"Li"},
        )
        clusters3 = clusters_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_periodic_3.vasp",
            rcut=4.0,
            elements={"Li"},
        )

        self.assertEqual(clusters1.pop().periodic, 1)
        self.assertEqual(clusters2.pop().periodic, 2)
        self.assertEqual(clusters3.pop().periodic, 3)
Пример #4
0
    def test_torture_cluster(self, value):
        cluster = clusters_from_file(filename="tests/STRUCTURE_FILES/" + value,
                                     rcut=4.0,
                                     elements={"Li"})
        clusterf = cluster.pop()
        clusterf.grow_cluster()
        clusterf.torture_fort()
        tort.tort_mod.tear_down()

        self.assertEqual(
            set([
                node.tortuosity
                for node in clusterf.return_key_nodes(key="Halo", value=False)
            ]),
            set([4, 3, 3, 3, 3, 3, 3, 3]),
        )
    def test_graph_from_structure(self):
        clusters1 = clusters_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp",
            rcut=4.0,
            elements={"Li"},
        )
        structure = Structure.from_file("tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp")
        graph = graph_from_structure(structure, rcut=4.0, elements={"Li"})

        neigh_set_1 = set(
            [frozenset(node.neighbours_ind) for node in clusters1.pop().nodes]
        )
        neigh_set_2 = set(
            [frozenset(node.neighbours_ind) for node in graph.clusters.pop().nodes]
        )

        self.assertEqual(neigh_set_1, neigh_set_2)
Пример #6
0
    def test_graph_from_file(self):
        graph = graph_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp",
            rcut=4.0,
            elements={"Li"},
        )
        tort.tort_mod.tear_down()

        clusters = clusters_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp",
            rcut=4.0,
            elements={"Li"},
        )
        tort.tort_mod.tear_down()
        c_nodes = set([node.index for node in clusters.pop().nodes])
        g_nodes = set([node.index for node in graph.clusters.pop().nodes])

        self.assertEqual(g_nodes, c_nodes)
Пример #7
0
    def test_minimal_cluster(self, value):

        graph = graph_from_file(filename="tests/STRUCTURE_FILES/" + value,
                                rcut=4.0,
                                elements={"Li"})

        cluster = clusters_from_file(filename="tests/STRUCTURE_FILES/" + value,
                                     rcut=4.0,
                                     elements={"Li"})
        clusterf = cluster.pop()
        clusterf.grow_cluster()
        clusterf.torture_fort()
        graph.torture()

        self.assertEqual(
            set([c.tortuosity for c in graph.minimal_clusters]),
            set([c.tortuosity for c in list(graph.clusters)]),
        )
Пример #8
0
    def test_output_clusters_cif(self):
        graph = graph_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp",
            rcut=4.0,
            elements={"Li"},
        )

        graph.output_clusters(fmt="cif")
        subprocess.run("mv *CLUS* tests/STRUCTURE_FILES/", shell=True)
        clusters = clusters_from_file(
            filename="tests/STRUCTURE_FILES/POSCAR_CLUS_0.cif",
            rcut=4.0,
            elements={"Li"},
        )

        c_nodes = set([node.index for node in clusters.pop().nodes])
        g_nodes = set([node.index for node in graph.clusters.pop().nodes])

        self.assertEqual(g_nodes, c_nodes)