I would like to do a simulation with an initial spin population contrained to a certain site in my molecule. This would mean that I want a majority spin (up) on a site as an initial guess. Is there a way to do this in Psi4?
In the documentation I only found that the default behaviour is SAD which does a spin-averaged sum of atomic UHF computations.
What’s your scientific background? Your post reads like you’re a physicist interested in spin systems rather than molecules, and I expect that the language gap is why I’m having trouble understanding your question. Does “site” represent an atom? When you say majority spin, majority of what?
yes I am and your assumptions are correct.
Suppose I have an open shell singlet and want to set one atom as a spin down, while another as spin up, or I have a doublet molecule where I want to influence where the spin up is located. Is that possible?
Alright. The way I understood for example SAD to work is that is assumes all spins equally distributed over my system (molecule). I wanted to initially separate them for example on two ends of a graphene nano ribbon
In principle this can be done with SAD. However, like many other codes, Psi4 lacks the flexibility to specify atomic charges and spin states at the moment. Hopefully a future version with a more flexible atomic solver (I am hoping to finish one next year) will solve this issue.
psi4 has no capabilities to automatically flip the spin on an atom or automatically provide a broken-symmetry solution.
Possibly there is a manual way doing the spin-flipping yourself. First converge the high-spin UHF solution and then flip/swap the spin-density on the desired atom in some sensible fashion and try to converge the new state. Not overly familiar with the details on how other programs or the literature does it.
ORCA has some advanced features for it to handle multi-transition metal systems
I am afraid it would be a whole project on it’s own to implement it and not 2-3 lines of code. (Molecular) Alpha/beta densities are available on the wfn object, which you can modify at the python level and feed back into an SCF.
Exact details are to be figured out or searched in the literature.