def load(self): "Rewrite load method" PosCar.load(self) with open(self.filename(), 'r') as f: for i in xrange(self.totline): f.readline() #get dimension of 3d array grid = f.readline().strip(whitespace) empty = not grid # empty row while empty: grid = f.readline().strip(whitespace) empty = not grid x, y, z = line2list(grid, dtype=int) #read electron localization function data elf_data = [] for line in f: datalist = line2list(line) elf_data.extend(datalist) ######################################### # # # !!! Notice !!! # # NGX is the length of the **0th** axis # # NGY is the length of the **1st** axis # # NGZ is the length of the **2nd** axis # # # ######################################### #reshape to 3d array elf_data = np.array(elf_data).reshape((x, y, z), order='F') #set attrs self.grid = x, y, z self.elf_data = elf_data return
def load(self): "Rewrite load method" PosCar.load(self) with open(self.filename, 'r') as f: for i in range(self.totline): f.readline() #get dimension of 3d array grid = f.readline().strip(whitespace) empty = not grid # empty row while empty: grid = f.readline().strip(whitespace) empty = not grid x, y, z = line2list(grid, dtype=int) #read electron localization function data elf_data = [] for line in f: datalist = line2list(line) elf_data.extend(datalist) ######################################### # # # !!! Notice !!! # # NGX is the length of the **0th** axis # # NGY is the length of the **1st** axis # # NGZ is the length of the **2nd** axis # # # ######################################### #reshape to 3d array elf_data = np.array(elf_data).reshape((x, y, z), order='F') #set attrs self.grid = x, y, z self.elf_data = elf_data return
def __init__(self, filename='ELFCAR'): """ Create a ELFCAR file class. Example: >>> a = ElfCar() Class attributes descriptions ============================================================== Attribute Description ============== ============================================= filename string, name of the ELFCAR file ------------- ame as PosCar ------------ bases_const float, lattice bases constant bases np.array, bases of POSCAR atoms list of strings, atom types ntot int, the number of total atom number natoms list of int, same shape with atoms atom number of atoms in atoms tf list of list, T&F info of atoms data np.array, coordinates of atoms, dtype=float64 ------------- ame as PosCar ------------ elf_data 3d array plot_contour method, use matplotlib to plot contours plot_mcontours method, use Mayavi.mlab to plot beautiful contour plot_contour3d method, use mayavi.mlab to plot 3d contour plot_field method, plot scalar field for elf data ============== ============================================= """ PosCar.__init__(self, filename=filename)