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()
Exemplo n.º 2
0
                                   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)
Exemplo n.º 3
0
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)
Exemplo n.º 5
0
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,
Exemplo n.º 6
0
                                               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)
Exemplo n.º 7
0
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()
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
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,
Exemplo n.º 10
0
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,