I want to visualise MPSH (molecular projected self-consistent Hamiltonian) orbitals using SISL package of siesta, is there any manual or guide for it.
I have searched in internet but didn't get any proper information about it.
Thank you
I want to visualise MPSH (molecular projected self-consistent Hamiltonian) orbitals using SISL package of siesta, is there any manual or guide for it.
I have searched in internet but didn't get any proper information about it.
Thank you
Calculating the MPSH in sisl
is quite easy.
First recognize that one can calculate the eigenstates of the Hamiltonian as:
eigenstate = H.eigenstate(k=[0, 0, 0]) # at Gamma-point
An MPSH is nothing but the eigenstate of the sub-system of atoms that comprise the molecule. In sisl we can extract a subset like this:
Hsub = H.sub(range(10, 20)) # python is 0-based indexing
which will take out 10 atoms, starting at atom 11 (starting from index 1) up to and including atom 20.
Then subsequently you only need to plot the wavefunction. Please note that this will only work if the geometry contained in the Hamiltonian contains the radial grid information for all orbitals. Generally sisl will be able to read the information if you haven't deleted files.
The complete example is something like this:
import sisl
# read in the hamiltonian and basis set information from the files in the
# output directory, RUN.fdf should be your base fdf input file.
H = sisl.get_sile("RUN.fdf").read_hamiltonian()
# reduce the Hamiltonian to a subset of the atoms/orbitals
Hmolecule = H.sub([atomic indices for the MPSH])
# say H.sub(range(20, 50)) will take the atoms 21-50 as a molecule
# calculate the eigenstate at the Gamma-point
es = Hmolecule.eigenstate()
# initialize the grid we want to plot on
grid = sisl.Grid(0.075, sc=H.sc)
# reduce the eigenstate to only 1 value, it makes little sense to plot multiple eigenstates in one go
es.sub(2).wavefunction(grid)
grid.write("MPHS_3.cube")
This tutorial might be helpful: https://zerothi.github.io/sisl/tutorials/tutorial_es_1.html
Please note that sisl
is not restricted to Hamiltonians from Siesta, it can also process user defined TB models, wannier90 Hamiltonians, and hopefully soon OpenMX Hamiltonians.