Source code for ase2sprkkr.examples.A17_Au_ARPES.au_arpes

"""Calculate Au bulk DOS, angle-resolved photoemission and a Fermi map."""


[docs] def main(): from ase.build import bulk from ase2sprkkr import SPRKKR # The SCF step produces the converged potential required by all subsequent # spectroscopy tasks in this self-contained workflow. gold = bulk("Au", "fcc", a=4.08) scf_options = { "CONTROL.KRMT": 4, "TAU.NKTAB3D": 1000, "SCF.VXC": "VWN", "SCF.FULLPOT": False, "SCF.NITER": 2000, "SCF.MIX": 0.1, "SCF.TOL": 1e-5, } calculator = SPRKKR(atoms=gold, options=scf_options) calculator.calculate() # A DOS calculation is a useful check of the converged bulk potential. dos_result = calculator.calculate( input_parameters="dos", options={ "ENERGY.ImE": 0.001, "ENERGY.EMINEV": -12.0, "ENERGY.EMAXEV": 7.0, "ENERGY.NE": 1000, "TAU.NKTAB": 2500, }, ) dos_result.dos.plot() # One-step ARPES includes photon geometry, the surface orientation and the # detector scan in a single calculation. arpes_options = { "TAU.NKTAB": 500, "ENERGY.EMINEV": -4.0, "ENERGY.EMAXEV": 2.0, "ENERGY.EWORK_EV": 5.0, "ENERGY.NE": 300, "ENERGY.IMV_INI_EV": 0.02, "ENERGY.IMV_FIN_EV": 2.0, "TASK.MILLER_HKL": [1, 1, 1], "SPEC_PH.THETA": 45, "SPEC_PH.PHI": 90, "SPEC_PH.EPHOT": 50, "SPEC_STR.N_LAYDBL": [12, 12], "SPEC_STR.N_LAYER": 30, "SPEC_EL.THETA": [-20, 20], "SPEC_EL.NT": 200, "SPEC_EL.SPOL": 4, } arpes_result = calculator.calculate( input_parameters="arpes", options=arpes_options ) arpes_result.spc.plot() # Reuse the same experimental geometry on a two-dimensional k grid at EF. fermi_options = { **arpes_options, "ENERGY.EMINEV": 0.0, "ENERGY.EMAXEV": 0.0, "ENERGY.NE": 1, "SPEC_EL.KA": [-0.5, -0.5], "SPEC_EL.K1": [1, 0], "SPEC_EL.K2": [0, 1], "SPEC_EL.NK1": 120, "SPEC_EL.NK2": 120, "SPEC_EL.PSPIN": [0, 0, 1], } fermi_result = calculator.calculate( input_parameters="arpes", options=fermi_options ) fermi_result.spc.plot()
if __name__ == "__main__": main()