Beispiel #1
0
    def create_slab(self, vacuum=12, thickness=10):
        """
        set the vacuum spacing, slab thickness and call sd_flags
        for top 2 layers

        returns the poscar corresponding to the modified structure
        """
        strt_structure = self.input_structure.copy()
        if self.from_ase:
            slab_struct = get_ase_slab(strt_structure,
                                       hkl=self.system['hkl'],
                                       min_thick=thickness,
                                       min_vac=vacuum)
        else:
            slab_struct = SlabGenerator(initial_structure=strt_structure,
                                        miller_index=self.system['hkl'],
                                        min_slab_size=thickness,
                                        min_vacuum_size=vacuum,
                                        lll_reduce=False,
                                        center_slab=True,
                                        primitive=False).get_slab()
        slab_struct.sort()
        sd = self.set_sd_flags(slab_struct)
        comment = 'VAC' + str(vacuum) + 'THICK' + str(thickness)
        return Poscar(slab_struct, comment=comment, selective_dynamics=sd)
Beispiel #2
0
    def create_slab(self, vacuum=12, thickness=10):
        """
        set the vacuum spacing, slab thickness and call sd_flags
        for top 2 layers

        returns the poscar corresponding to the modified structure
        """ 
        strt_structure = self.input_structure.copy()
        if self.from_ase:
            slab_struct = get_ase_slab(strt_structure, hkl=self.system['hkl'],
                                        min_thick=thickness, min_vac=vacuum)
        else:
            slab_struct= SlabGenerator(initial_structure= strt_structure,
                                       miller_index= self.system['hkl'], 
                                       min_slab_size= thickness,
                                       min_vacuum_size=vacuum, 
                                       lll_reduce=False, center_slab=True,
                                       primitive=False).get_slab()
        slab_struct.sort()
        sd = self.set_sd_flags(slab_struct)
        comment = 'VAC'+str(vacuum)+'THICK'+str(thickness)
        return Poscar(slab_struct, comment=comment,
                      selective_dynamics=sd)