As always there is a small work around to get it work.
I have attached a example of what I have done when I wanted the surface gold atoms to have a different basis set than the bulk gold atoms.
I will give a little recipe here for how to do it.
- Build your system the way you want it.
- Find the atoms which you want described in special way, and change to another element - choose something wild. In my case I selected Osmium, but it could be anything that is not present in your script already.
- Drop the configuration on the scripter, and setup the basis set the way you want it. So in my case I set Osium (the surface gold) to DZDP and the normal gold to szp.
- Drop the script on the editor and do a minor edit by hand.
Initially the code snippet for the basis set looked like this:
basis_set = [
LDABasis.Osmium_DoubleZetaDoublePolarized,
LDABasis.Gold_SingleZetaPolarized,
However I dont want Osium, I want gold. So I replace the
LDABasis.Osmium_DoubleZetaDoublePolarized with
LDABasis.Gold_DoubleZetaDoublePolarized,
but I need to tell ATK that for this gold basis set I want to use for my Surface Gold (Osmium) and using a gold pseudo-potential, so I enter:
basis_set = [
LDABasis.Gold_DoubleZetaDoublePolarized(element=Osmium,
pseudopotential = NormConservingPseudoPotential('normconserving/AU.LDAPZ.zip')),
LDABasis.Gold_SingleZetaPolarized,
]
And then you got a simulation with surface gold, labeled as Osmium, but with a different basis set than the rest.