Exemple #1
0
    tprnfor=True,  # kwargs added to parameters
    input_data=input_data)

atoms.calc = calc
atoms.get_potential_energy()

# Get the valence band maximum
efermi = calc.get_fermi_level()
Nk = len(calc.get_ibz_k_points())
Ns = calc.get_number_of_spins()
eigval = np.array([[calc.get_eigenvalues(kpt=k, spin=s) for k in range(Nk)]
                   for s in range(Ns)])
evbm = np.max(eigval[eigval < efermi])

# Next, a band structure calculation
input_data['control'].update({
    'calculation': 'bands',
    'restart_mode': 'restart',
    'verbosity': 'high'
})
calc.set(kpts={'path': spath, 'npoints': 50}, input_data=input_data)
calc.calculate(atoms)

bs_qe = calc.band_structure()
bs_qe.reference = evbm
bs_qe.plot(filename='bs_qe_data.png',
           show=False,
           emax=evbm + 5.,
           emin=evbm - 15.)
write_json('bs_qe.json', bs_qe)
Exemple #2
0
from ase.build import bulk
from ase.calculators.espresso import Espresso
atoms = bulk("Cu")
pseudopotentials = {'Cu':'Cu.pz-d-rrkjus.UPF'}
input_data = {
    'system': {
        'ecutwfc': 30,
        'ecutrho': 240,
        'nbnd' : 35,
    'occupations' : 'smearing',
        'smearing':'gauss',
        'degauss' : 0.01},
    'disk_io': 'low'}  # automatically put into 'control'
calc = Espresso(pseudopotentials=pseudopotentials,kpts=(4, 4, 4),input_data=input_data,pseudo_dir = './')
atoms.set_calculator(calc)
atoms.get_potential_energy()
fermi_level = calc.get_fermi_level()
print(fermi_level)
#----
input_data.update({'calculation':'bands',
                              'restart_mode':'restart',
                               'verbosity':'high'})
calc.set(kpts={'path':'GXWLGK', 'npoints':100},
          input_data=input_data)
calc.calculate(atoms)
#----
import matplotlib.pyplot as plt
bs = calc.band_structure()
bs.reference = fermi_level
bs.plot(emax=40,emin=5)