I would like to estimate the XPS core level binding energies (BEs) by means of ab initio calculation methods (e.g. using Koopmans theorem: BE=-E and delta-SFC method: BE=-E+Rel with Rel=relaxation of the orbitals). Publications I found so far used throughout the commercial Gaussian-package. However, from what I read so far, I am almost sure it is possible to do this with PSI4.
How I would start, and where I have some troubles (as an ex. I chose vinyl alcohol):
(PSI4 is installed on windows 10 subsystem linux via anaconda, and I am using Jupyter for scripting the calculations)
Q1(Initial Question): I do not 100% how psi4 is implemented in python. If I would have implemented the code the most intuitive way for me would to make a class instance for each molecule e.g. benzen = instance_psi4(), and than performing all the operations on the class instance. benzen.geomentry/energy/… So if i perform several calc. on different molecules i do not want to overwrite the data every time. So what is the best way to work?
- Def. the structure: vinyl_alc = psi4.geometry(’’’… ‘’’)
- Optimize the structure self consistently (i.e. find a minimum local or global): psi4.optimize( ‘scf/6-311G(d,p)’,molecule=vinyl_alc) (e…g using sfc and a gaussian basis set)
This gives me a total energy of the system (Etot). And in vinyl_alc the optimized structure is now stored.
To obtain electron core levels binding energies, I need now to calculate also the energy of the ionized system. And for delta SFC it is also necessary to swap the specific core hole (e.g C1s for C or O1s for O in vinyl alc) with the HOMO (Source: DOI: 10.1002/sia.6319)
Q2: how can i perform this swap in psi4? (I think this step stands for the Rel. part in the equation above and Koopmans theory does not need this step)
- psi4.energy(‘scf/6-311G(d,p)’,molecule=vinyl_alc) Now I need to perform this on the system with a hole in the C1s at the alpha pos. ( E1) and one more time with a hole in O1s (E2).
The Binding energies (BE) should result from BE(C1s)=Etot-E1 and BE(O1s)=Etot-E2.
Q3: However, I am not jet sure how to correctly ionize a specific atom in the molecule.
I think somehow like this:
3.1. load relaxed (and orbital swapt structure)
1 2 #first no is the charge second no. the spin multipl.
C … …
Q3 ad: If i want this for a specific atom in the geometry, where/how do I have to place it??
Many thx for your time