Multiwfn official website: http://sobereva.com/multiwfn. Multiwfn forum in Chinese: http://bbs.keinsci.com/wfn
You are not logged in.
Dear Developer
I am trying to obtain Fe(III) electromer of iron-porphyrin system published in this paper:
Reference: J. Phys. Chem. Lett. 2011, 2, 2229–2235; DOI: 10.1021/jz2007534
I am using Gaussian16.
Figure 2a, I am able to obtain 4I(IV) state, successfully and the spin densities match with the reported values. But I could not obtain the Fe(III) state 4I(III) in gas phase, given in Figure 2 from the above-mentioned paper.
The problem is that while solving the SCF, every time it falls to Fe(IV) state.
Is there a way to generate the desired guess for Fe(III) state from Fe(IV) fchk/chk files using Multiwfn? That guess can then be used in gaussian calculation.
Thanks in advance.
Offline
You can use the method described in Section "3.100.8 Generate Gaussian input file with initial guess combined from
fragment wavefunctions" of Multiwfn manual to generate initial guess. According to Table S2 of the paper, Fe in (III) and (IV) states have evidently different net charge and spin population, which may guide you to choose a proper state for calculation of isolated Fe atom.
Offline
Thanks for the suggestion,
I created three fragments viz. 1.) Fe-OH (0,2) 2.) Porphyrin (0,2) 3.) cyclohexyl radical (0,2)
Using these fragments, the input generated by Multiwfn, I did a scf calculation as a single point using Gaussian, and it gave me spin populations for Fe(IV).
Using "guess=only" gave the desired spin populations for Fe(III). From here, I tried reading the guess from the .chk file but it gave the error "Basis set data is not on the checkpoint file".
Any suggestions on how do I solve the scf while keeping the Fe(III) state.
Last edited by tsingh (2024-12-05 11:07:30)
Offline
guess=only only perform guessing, while the orbitals may not be saved to .chk file. Perhaps you should use guess(only,save), and after that you can use guess=read to read information from it.
Offline
Yes, Now I am able to save the guess but when I do guess=read to read this wavefunction and do a scf calculation it goes to Fe(IV) with spin pop at Fe centre ~1.8. So I am still not able to get the desired state.
Offline
You may try constraint DFT (CDFT) via NWChem or CP2K. First performing geometry optimization with CDFT to constraint Fe to the expected atomic charge and spin population, and then use the wavefunction at final geometry step as initial guess for subsequent calculations without CDFT.
I have a blog article about CDFT: http://sobereva.com/271 (written in Chinese)
Offline
Thanks for the suggestion.
I used Q-Chem to perform CDFT and got the desired electromer (optimized). I used the generated checkpoint in two ways:
1.) I converted the cdft.fchk generated by Q-Chem to .chk and read in Gaussian. For this I used Multiwfn (100 -> 2 -> .fch)
2.) I prepared a Gaussian input using cdft.fchk, with wavefunction written in the input using Multiwfn.
In both cases guess=(read,only,save) gave the Fe(III) (as expected) but everytime it went to Fe(IV) during SCF. So, the problem still persists.
Offline
em... I think some critical computational details were not explicitly mentioned in their work. Perhaps the best way is contacting the authors.
By the way, you may also try to use different SCF convergence algorithms, such as SCF=QC. According to my experience, SCF=QC has a higher probability than default algorithm to converge to a unstable wavefunction, perhaps the "unstable" wavefunction is what you actually need.
Offline
As of I know, Authors generated the Gaussian input based on the wavefunction for Fe(III) derived from Jaguar.
I tried SCF convergence algorithms like SCF=QC, but got the same result. Although, you are right that I need the unstable wavefunction, which is evident from the fact that when I tried the calculation using scf=(qc,conver=2), it gave me a spin pop at Fe ~ 1.3 which is close to the Fe(III), but that is not much use to me.
Thanks
Offline