def make_nacl_lattice(symbols, a): assert len(symbols) == 2 cell = latt.CubicUnitCell(a) node_pos = graingen.fcc_nodes[:] node_atoms = [ (symbols[0], 0.0, 0.0, 0.0), (symbols[1], 0.5, 0.5, 0.5), ] return make_lattice(cell, node_pos, node_atoms)
def make_zincblende_lattice(symbols, a): assert len(symbols) == 2 cell = latt.CubicUnitCell(a) # nodes in unit cell (as fraction of unit cell parameters) node_pos = graingen.fcc_nodes[:] # atoms in node (as fraction of unit cell parameters) node_atoms = [ (symbols[0], 0.0, 0.0, 0.0), (symbols[1], 0.25, 0.25, 0.25), ] return make_lattice(cell, node_pos, node_atoms)
def make_diamond_lattice(symbol, a): cell = latt.CubicUnitCell(a) node_pos = get_diamond_node_pos() node_atoms = [(symbol, 0.0, 0.0, 0.0)] return make_lattice(cell, node_pos, node_atoms)
def make_bcc_lattice(symbol, a): cell = latt.CubicUnitCell(a) node_pos = graingen.bcc_nodes[:] node_atoms = [(symbol, 0.0, 0.0, 0.0)] return make_lattice(cell, node_pos, node_atoms)
def make_simple_cubic_lattice(symbol, a): cell = latt.CubicUnitCell(a) node = latt.Node((0.0, 0.0, 0.0), [(symbol, 0.0, 0.0, 0.0)]) return latt.CrystalLattice(cell, [node])