Révision 15

ase/embed.py (revision 15)
16 16

  
17 17
class Embed(Atoms):
18 18
    #--- constructor of the Embed class ---
19
    def __init__(self, system=None, cluster=None, cell_cluster = "Auto"):
19
    def __init__(self, system, cluster, cell_cluster = "Auto", cluster_pos = True):
20 20
        super(Embed, self).__init__()
21 21
        # define the atom map
22 22
        self.atom_map_sys_cl = []
......
28 28
        # set the search radius for link atoms
29 29
        self.d = 10
30 30
        # define the systems for calculations
31
        if system is None or cluster is None:
32
            raise RuntimeError("Embed: system or cluster is not definied")
31 33
        self.set_system(system)
32
        self.set_cluster(cluster)
34
        if cluster_pos:
35
            self.set_cluster(cluster)
36
        else:
37
            self.set_cluster_by_numbers(cluster)
38
            
33 39
        # set the cell of the system
34 40
        self.set_cell(system.get_cell())
35 41
        self.cell_cluster = cell_cluster
......
58 64
        # set the cluster for low and high level calculation
59 65
        self.atoms_cluster = atoms
60 66
        return
67
        
68
    #--- set cluster by atom numbers ---
69
    def set_cluster_by_numbers(self, numbers):
70
        cluster = Atoms()
71
        nat = len(self.atoms_system)
72
        for number in numbers:
73
            if nat > numbers:
74
                raise RuntimeError("QMX: The number of the cluster atom ", number, "is bigger than the number of atoms")
75
            cluster.append(self.atoms_system[number-1])
76
        self.set_cluster(cluster)
61 77

  
62 78
    #--- set the system ---
63 79
    def set_system(self, atoms):

Formats disponibles : Unified diff