Exemplo n.º 1
0
    def generate_slabs(self, film_millers, substrate_millers):
        """
        Generates the film/substrate slab combinations for a set of given
        miller indicies

        Args:
            film_millers(array): all miller indices to generate slabs for
                film
            substrate_millers(array): all miller indicies to generate slabs
                for substrate
        """

        for f in film_millers:
            film_slab = SlabGenerator(self.film, f, 20, 15,
                                      primitive=False).get_slab()
            film_vectors = reduce_vectors(film_slab.lattice_vectors()[0],
                                               film_slab.lattice_vectors()[1])
            film_area = vec_area(*film_vectors)

            for s in substrate_millers:
                substrate_slab = SlabGenerator(self.substrate, s, 20, 15,
                                               primitive=False).get_slab()
                substrate_vectors = reduce_vectors(
                    substrate_slab.lattice_vectors()[0],
                    substrate_slab.lattice_vectors()[1])
                substrate_area = vec_area(*substrate_vectors)

                yield [film_area, substrate_area, film_vectors,
                       substrate_vectors, f, s]
Exemplo n.º 2
0
    def generate_slabs(self, film_millers, substrate_millers):
        """
        Generates the film/substrate slab combinations for a set of given
        miller indicies

        Args:
            film_millers(array): all miller indices to generate slabs for
                film
            substrate_millers(array): all miller indicies to generate slabs
                for substrate
        """

        for f in film_millers:
            film_slab = SlabGenerator(self.film, f, 20, 15,
                                      primitive=False).get_slab()
            film_vectors = reduce_vectors(film_slab.lattice_vectors()[0],
                                          film_slab.lattice_vectors()[1])
            film_area = vec_area(*film_vectors)

            for s in substrate_millers:
                substrate_slab = SlabGenerator(self.substrate,
                                               s,
                                               20,
                                               15,
                                               primitive=False).get_slab()
                substrate_vectors = reduce_vectors(
                    substrate_slab.lattice_vectors()[0],
                    substrate_slab.lattice_vectors()[1])
                substrate_area = vec_area(*substrate_vectors)

                yield [
                    film_area, substrate_area, film_vectors, substrate_vectors,
                    f, s
                ]