def position_sort(self, coordinate="z", height=None, symbol=None): col = {"x": 0, "y": 1, "z": 2} pos = geomread(self.posfile).get_positions() data = list() for i in range(len(self.atom_list)): atom = self.atom_list[i] + str(i) charge = self.bader_charges[atom] data.append([atom, pos[i, 0], pos[i, 1], pos[i, 2], charge]) index = col[coordinate] + 1 data = sorted(data, key=lambda t: t[index]) # for dat in data: # print dat # for i in range(len(data)-1): # print '%-10s%-10s%10.5f%10.5f%10.5f' % (data[i][0], data[i+1][0], data[i+1][3], data[i][3], data[i+1][3] - data[i][3]) info = list() if (height) and (symbol): for i in range(len(data)): if (symbol in data[i][0]) and (data[i][3] >= height): # print data[i][0], data[i][3] print data[i] info.append([data[i][1], data[i][2], data[i][4]]) else: print "nice try!" info = np.array(info) print info for i in range(len(info)): print info[i, 0], info[i, 1] return info
def __init__(self, restart=False, chgcar="CHGCAR", chgcarsum="CHGCARsum", posfile="POSCAR", datafile="ACF.dat"): self.restart = restart self.chgcar = chgcar self.chgcarsum = chgcarsum self.posfile = posfile self.datafile = datafile # self.atom_list = list() self.atom_list = geomread(self.posfile).get_atom_list() self.bader_charges = dict()
def __init__(self, dosfile='DOSCAR', posfile='POSCAR', status='r'): DensityOfStates.__init__(self, dosfile=dosfile, posfile=posfile, status=status) # print 'Doscar.__init__() called' if (posfile is None): posfile = 'POSCAR' try: pos = geomread(posfile) self.set_atom_types(pos.get_atom_list()) except IOError: print 'POSCAR file %s cannot be found. Atoms types are set to default.' % poscar if (status == 'r'): self.read_dosfile(dosfile)
def __init__(self, chgfile='CHGCAR', posfile='POSCAR', status='r'): ChargeDensity.__init__(self, chgfile=chgfile, status=status) pos = geomread(posfile) self.atomlist = pos.get_atom_list() self.coordinates = pos.get_positions()