Atom("C", array([a * sqrt(3) / 2.0, a / 2.0, 0.0])), Atom("C", array([a * sqrt(3) / 2.0, 3 * a / 2.0, 0.0])), Atom("C", array([0.0, 2 * a, 0.0])), ] four_atoms_cell = deepcopy(system.atoms) shift_r = array([0.0, 3.0 * a, 0.0]) for i in range(1, n): for atom in four_atoms_cell: new_atom = deepcopy(atom) new_atom.r = new_atom.r + i * shift_r system.atoms.append(new_atom) system.spin_multiplier = 1 system.k_points = [array([-pi / sqrt(3) / a, 0.0, 0.0]), array([0.0, 0.0, 0.0]), array([pi / sqrt(3) / a, 0, 0])] system.make_k_mesh(150) system.parameters = { "C": {"ep": 1.2057, "ed": 24.1657, "lambda": 0.001}, "CC": {"Vppp": -3.26, "Vpps": 0.0, "Vpds": 0.0, "Vpdp": 2.4, "Vdds": 0.0, "Vddp": 3.6, "Vddd": -7.4}, } for i in xrange(len(system.atoms)): system.atoms[i].orbitals = ["pz"] # ,'dxy', 'dyz', 'dxz', 'dx2-y2', 'dz2'] system.just_do_main_magic() lst = system.find_indeces_for_ldos(atom_idx=0) print lst plt = Plotter(system.name) plt.plot_energy_bands_from_file() doser = LDOSCalculator(1, system.name, 200, 0, indeces_list=lst) doser.f()
array([0., a / sqrt(3), 0.])), Atom('C', i * system.vectors[0] / N + j * system.vectors[1] / N + array([0., 2 * a / sqrt(3), 0.]))]) system.atoms = atoms_lst system.k_points = [array([0., 0., 0.]), array([pi / a, -pi / sqrt(3) / a, 0]), array([4 * pi / 3 / a, 0, 0]), array([0., 0., 0.])] system.make_k_mesh(32) system.parameters = { 'C': { 'es': 0, 'ep': 7.4, }, 'CC': { 'Vsss': -3.8, 'Vsps': 4.44, 'Vppp': -1.325, 'Vpps': 4.9 } } for i in xrange(len(system.atoms)): system.atoms[i].orbitals = ['pz'] system.just_do_main_magic() tk = time.time() t = (tk - tp) / 39 ts.append(t) print ns_sq print ts plt.plot(ns_sq, ts)
system.parameters = { 'S': { 'es': 7.6595, 'ep': -2.1537, 'ed': 8.7689, 'lambda': 0.2129, }, 'Mo': { 'es': 5.5994, 'ep': 6.7128, 'ed': 2.6429, 'lambda': 1.0675, }, 'SMo': { 'Vsss': -0.0917, 'Vsps': 0.6656, 'Vpps': 1.4008, 'Vppp': -0.4812, 'Vsds': 0.2177, 'Vpds': -2.8732, 'Vpdp': 0.7739, 'Vdds': -3.1425, 'Vddp': 2.4975, 'Vddd': -0.3703, }, 'MoS': { 'Vsss': -0.0917, 'Vsps': -1.6515, 'Vpps': 1.4008, 'Vppp': -0.4812, 'Vsds': -1.0654, 'Vpds': 2.1898, 'Vpdp': -1.9408, 'Vdds': -3.1425, 'Vddp': 2.4975, 'Vddd': -0.3703, }, 'SS': { 'Vsss': 0.3093, 'Vsps': - 0.9210, 'Vpps': 0.7132, 'Vppp': - 0.1920, 'Vsds': - 0.2016, 'Vpds': - 0.5204, 'Vpdp': - 0.1203, 'Vdds': 0.8347, 'Vddp': 0.7434, 'Vddd': -0.1919, }, 'MoMo': { 'Vsss': 0.1768, 'Vsps': 1.0910, 'Vpps': - 0.3842, 'Vppp': 0.5203, 'Vsds': - 0.5635, 'Vpds': -0.2316, 'Vpdp': 0.0582, 'Vdds': 0.3602, 'Vddp': 0.0432, 'Vddd': 0.1108, } }
# system.atoms.append(Atom('C', array([0., 0., 0.]) + n * shift_r)) # system.atoms.append(Atom('C', array([0., 2 * a, 0.]) + n * shift_r)) system.spin_multiplier = 2 system.k_points = [array([0., - pi / 3 / a, 0.]), array([0., 0., 0.]), array([0., pi / 3 / a, 0]), ] system.make_k_mesh(150) system.parameters = { 'C': { 'ep': 1.2057, 'ed': 24.1657, 'lambda': 0.001 }, 'CC': { 'Vppp': -3.26, 'Vpps': 0.0, 'Vpds': 0.0, 'Vpdp': 2.4, 'Vdds': 0.0, 'Vddp': 3.6, 'Vddd': -7.4 } } for i in xrange(len(system.atoms)): system.atoms[i].orbitals = ['pz'] # , 'dxy', 'dyz', 'dxz', 'dx2-y2', 'dz2'] system.just_do_main_magic() plt = Plotter(system.name)
system.atoms = [Atom('C', array([d, 0., 0.])), Atom('C', array([2 * d, 0., 0.])), ] system.spin_multiplier = 2 system.k_points = [array([0., 0., 0.]), array([2 * pi / 3 / d, 2 * pi / 3 / sqrt(3) / d, 0]), array([2 * pi / 3 / d, 0, 0]), array([0., 0., 0.])] system.make_k_mesh(100) system.parameters = { 'C': { 'es': -8.7, 'ep': 0.0, 'lambda': 0.001, }, 'CC': { 'Vsss': - 6.7, 'Vsps': 5.5, 'Vpps': 5.1, 'Vppp': -3.1, } } system.s_parameters = { 'C': { 'es': 1., 'ep': 1., 'lambda': 0., }, 'CC': { 'Vsss': 0.2,
j * system.vectors[1] / N + k * system.vectors[2] / N + a / 4. * array([1., 1., 1.]))]) system.atoms = list_of_atoms system.k_points = [array([pi / a, pi / a, pi / a]), array([0., 0., 0.]), array([0., 2 * pi / a, 0.]), array([pi / 2 / a, 2 * pi / a, pi / 2 / a]), array([0., 0., 0.]), ] system.make_k_mesh(20) system.parameters = { 'C': { 'es': 0, 'ep': 7.4, }, 'CC': { 'Vsss': -3.8, 'Vsps': 4.44,#10.25 * sqrt(3) / 4., 'Vppp': -1.325, 'Vpps': 4.9 } } for i in xrange(len(system.atoms)): system.atoms[i].orbitals = ['s', 'px', 'py', 'pz'] system.just_do_main_magic() plt = Plotter(system.name) # plt.plot_energy_bands_from_file() tk = time.time() t = tk - tp print 'T ' + str(N) + ' = ' + str(t)
from dos.dos_calculator import DOSCalculator #############################1D_Chain################################### d = 1. t = 1. system = System([array([d, 0, 0])], mode='standard', name='chain2_1d') system.atoms = [Atom('A', array([d/2, 0., 0.])), Atom('A', array([0., 0., 0.])),] system.k_points = [array([- pi / d, 0., 0.]), array([0., 0., 0.]), array([pi / d, 0., 0.]), ] system.make_k_mesh(100) system.parameters = { 'A': { 'es': 0.0, }, 'AA': { 'Vsss': t, } } for i in xrange(len(system.atoms)): system.atoms[i].orbitals = ['s', ] system.just_do_main_magic() plt = Plotter(system.name) plt.plot_energy_bands_from_file() doser = DOSCalculator(system.dim, system.name, 70) doser.f()
for i in range(n): dx = j * sqrt(3) * a dy = 3. * a * i dr = array([dx, dy, 0.]) system.atoms += [ Atom('C', dr + array([0., 0., 0.])), Atom('C', dr + array([a * sqrt(3) / 2., a / 2., 0.])), Atom('C', dr + array([a * sqrt(3) / 2., 3 * a / 2., 0.])), Atom('C', dr + array([0., 2 * a, 0.])), ] system.spin_multiplier = 1 system.k_mesh = [array([0., 0., 0.]), ] system.parameters = { 'C': { 'ep': 0., }, 'CC': { 'Vppp': -3.26, } } for i in xrange(len(system.atoms)): system.atoms[i].orbitals = ['pz'] # ,'dxy', 'dyz', 'dxz', 'dx2-y2', 'dz2'] system.just_do_main_magic() with open(os.path.join(os.path.abspath('./outputs/'), system.name, 'energies'), 'r') as data: txt = data.read().strip().split(' ') energies = map(float, txt)
system = System([d / 2. * array([3., sqrt(3), 0.]), - d / 2. * array([3, -sqrt(3), 0.])], mode='standard', name='graphene_pz') system.atoms = [Atom('C', array([d, 0., 0.])), Atom('C', array([2 * d, 0., 0.])), ] system.k_points = [array([0., 0., 0.]), array([2 * pi / 3 / d, 2 * pi / 3 / sqrt(3) / d, 0]), array([2 * pi / 3 / d, 0, 0]), array([0., 0., 0.])] system.make_k_mesh(100) system.parameters = { 'C': { 'ep': 0.0, }, 'CC': { 'Vppp': t, } } for i in xrange(len(system.atoms)): system.atoms[i].orbitals = ['pz', ] system.just_do_main_magic() plotter = Plotter(system.name) plotter.plot_energy_bands_from_file() # plot with analytical functions with open(os.path.join(os.path.abspath('./outputs/'), system.name,
system.atoms = [Atom('C', array([0., a / sqrt(3), 0.])), Atom('C', array([0., 2 * a / sqrt(3), 0.])), ] system.num_of_bands = 4 system.k_points = [array([0., 0., 0.]), array([pi / a, -pi / sqrt(3) / a, 0]), array([4 * pi / 3 / a, 0, 0]), array([0., 0., 0.])] system.make_k_mesh(100) system.parameters = { 'C': { 'es': 8.370, 'ep': 0.0, }, 'CC': { 'Vsss': -5.729, 'Vsps': 5.618, 'Vppp': 6.050, 'Vpps': -3.070 } } system.s_parameters = { 'C': { 'es': 1., 'ep': 1., 'ed': 1., 'lambda': 0, }, 'CC': { 'Vsss': 0.102, 'Vsps': - 0.171,