| Both sides previous revision Previous revision Next revision | Previous revision |
| the_scf_program [2025/09/24 14:44] – update spin+irrep doll | the_scf_program [2026/01/28 13:23] (current) – doll |
|---|
| |
| * **''NATORB''=//record//** Save natural charge orbitals in given record. | * **''NATORB''=//record//** Save natural charge orbitals in given record. |
| * **''UNOMIN''=//unomin//** Minimum occpation number for UNO-CAS (default 0.02) | * **''UNOMIN''=//unomin//** Minimum occupation number for UNO-CAS (default 0.02) |
| * **''UNOMAX''=//unomax//** Maximum occupation number for UNO-CAS (default 1.98) | * **''UNOMAX''=//unomax//** Maximum occupation number for UNO-CAS (default 1.98) |
| |
| |
| Note that these values take sensible defaults if any or all are not specified (see section [[general program structure#symmetry|symmetry]]). For example, ''%%{rhf; wf,sym=N,spin=M}%%'' gives the explicit values N for the symmetry and M for the spin of the wave function, but uses the default number of electrons. | Note that these values take sensible defaults if any or all are not specified (see section [[general program structure#symmetry|symmetry]]). For example, ''%%{rhf; wf,sym=N,spin=M}%%'' gives the explicit values N for the symmetry and M for the spin of the wave function, but uses the default number of electrons. |
| | |
| | In HF/RHF, the spin has to be equal to the number of singly occupied orbitals, i.e. the electrons couple to a high-spin state. For example, an open-shell singlet state cannot be described on this level. Instead, for states which are not high-spin, MCSCF has to be used. |
| |
| ==== Defining the number of occupied orbitals in each symmetry ==== | ==== Defining the number of occupied orbitals in each symmetry ==== |
| </code> | </code> |
| |
| Beware, however, that STO-3G is a very poor basis set and usually gives very bad starting vectors. This technique is best used in combination with reasonable small basis sets (e.g., cc-pVDZ or def2-SVP) or minimal basis sets with a proper repesentation of the occupied atomic orbitals (e.g, 6-31G or MINAO/MINAO-PP): | Beware, however, that STO-3G is a very poor basis set and usually gives very bad starting vectors. This technique is best used in combination with reasonable small basis sets (e.g., cc-pVDZ or def2-SVP) or minimal basis sets with a proper representation of the occupied atomic orbitals (e.g, 6-31G or MINAO/MINAO-PP): |
| |
| <code - examples/minao_startorb.inp> | <code - examples/minao_startorb.inp> |
| |
| * Whether your geometry is sensible (e.g., look for Angstrom/Bohr conversion issues). Note that Molpro prints bond distances in both Angstroms and atomic units at the top of an output. | * Whether your geometry is sensible (e.g., look for Angstrom/Bohr conversion issues). Note that Molpro prints bond distances in both Angstroms and atomic units at the top of an output. |
| * Whether you have selected the correct electronic state (spin and symmetry). Molpro tries to guess spatial symmetries of open-shell compounds automatically if none are provided. However, the guess is not always right. In such a case you need to give the symmetry manually (in the simplest case as ''%%wf,sym=N,spin=M%%''. See section [[the SCF program#defining the wavefunction|defining the wavefunction]]). Molpro does //not// attempt to guess the spin state of the input compound automatically; it defaults to spin=0 for systems with even numbers of electrons and spin=1 for odd-numbered species. | * Whether you have selected the correct electronic state (spin and symmetry). Molpro tries to guess spatial symmetries of open-shell compounds automatically if none are provided. However, the guess is not always right. In such a case you need to give the symmetry manually (in the simplest case as ''%%wf,sym=N,spin=M%%''. See section [[the SCF program#defining the wavefunction|defining the wavefunction]]). Molpro does attempts to find the ground state configuration from the Aufbau principle, but this may fail and then the wave function symmetry and spin need to be specified using a WF (wave function) directive |
| |
| If convergence problems persist, it is recommended to use the new mixed first-order/second-order MCSCF program (''%%MULTI,SO-SCI%%'', or (recommended for larger systems) ''%%DF-MULTI%%'' (SO-SCI is default for DF-MULTI) as described in D.A. Kreplin, P.J. Knowles and H.-J. Werner, J. Chem. Phys. 152, 074102 (2020); https://doi.org/10.1063/1.5142241. This provides very robust convergence, even in cases where RHF does not converge or converges to a wrong solution. Due to faster convergence and only small additional cost per iteration the overall computation time is often even smaller than for conventional RHF or DF-RHF. For MULTI it is necessary to specify the configuration uniquely using OCC, CLOSED, and WF directives. | If convergence problems persist, it is recommended to use the new mixed first-order/second-order MCSCF program (''%%MULTI,SO-SCI%%'', or (recommended for larger systems) ''%%DF-MULTI%%'' (SO-SCI is default for DF-MULTI) as described in D.A. Kreplin, P.J. Knowles and H.-J. Werner, J. Chem. Phys. 152, 074102 (2020); https://doi.org/10.1063/1.5142241. This provides very robust convergence, even in cases where RHF does not converge or converges to a wrong solution. Due to faster convergence and only small additional cost per iteration the overall computation time is often even smaller than for conventional RHF or DF-RHF. For MULTI it is necessary to specify the configuration uniquely using OCC, CLOSED, and WF directives. |
| * **Occupation freezing:** The option ''%%{rhf,nitord=N}%%'' can be used to freeze orbital occupations at iteration N. When the programs emits warnings about reassigned orbital occupations, you could try to freeze the occupations only later (give a higher N) or earlier (give a smaller N). By freezing the occupation pattern you tell the RHF program to try to lock on whatever solution it currently is pursuing. This often helps if multiple RHF solutions with similar energies are present and otherwise the program would oscillate between some of them. Note that ''%%{rhf,nitord=1} %%''will tell RHF to lock onto the initial occupation; if combined with orbital rotation or advanced initial guesses this can often be used to converge to specific solutions (e.g., some excited states). | * **Occupation freezing:** The option ''%%{rhf,nitord=N}%%'' can be used to freeze orbital occupations at iteration N. When the programs emits warnings about reassigned orbital occupations, you could try to freeze the occupations only later (give a higher N) or earlier (give a smaller N). By freezing the occupation pattern you tell the RHF program to try to lock on whatever solution it currently is pursuing. This often helps if multiple RHF solutions with similar energies are present and otherwise the program would oscillate between some of them. Note that ''%%{rhf,nitord=1} %%''will tell RHF to lock onto the initial occupation; if combined with orbital rotation or advanced initial guesses this can often be used to converge to specific solutions (e.g., some excited states). |
| * **Minimal-basis SCF guess:** Try to obtain a Hartree-Fock solution with a minimal-basis AO set first and to use this as initial guess for the actual Hartree-Fock calculation. For this purpose we provided the basis set definition "MINAO" (to complement cc-pVnZ basis sets) and "MINAO-PP" (to complement cc-pVnZ-PP sets with ECPs). See section [[the SCF program#initial orbital guess|initial orbital guess]] for an example. These sets simply consist of the AO part of the cc-pVTZ or cc-pVTZ-PP basis sets, stripped of all their polarization functions. Since a minimal basis has fewer degrees of freedom than a real basis set, convergence is often easier, and it can still provide reasonable guess for the valence electronic structure. Note: The MINAO basis sets are very small, so conventional Hartree-Fock (in integral-direct mode if necessary) is typically much faster than density-fitting Hartree-Fock. | * **Minimal-basis SCF guess:** Try to obtain a Hartree-Fock solution with a minimal-basis AO set first and to use this as initial guess for the actual Hartree-Fock calculation. For this purpose we provided the basis set definition "MINAO" (to complement cc-pVnZ basis sets) and "MINAO-PP" (to complement cc-pVnZ-PP sets with ECPs). See section [[the SCF program#initial orbital guess|initial orbital guess]] for an example. These sets simply consist of the AO part of the cc-pVTZ or cc-pVTZ-PP basis sets, stripped of all their polarization functions. Since a minimal basis has fewer degrees of freedom than a real basis set, convergence is often easier, and it can still provide reasonable guess for the valence electronic structure. Note: The MINAO basis sets are very small, so conventional Hartree-Fock (in integral-direct mode if necessary) is typically much faster than density-fitting Hartree-Fock. |
| * **Increasing the DIIS dimension:** In rare cases ''%%{rhf,maxdis=30,iptyp=’DIIS’,nitord=20; shift,-1.0,-0.5}%%'' can find solutions which are not found in the standard settings. Usually increasing the DIIS dimension beyond 10 (the default) just slows down convergence. It is also worthwile to try a variation of DIIS known as KAIN (Krylov-subspace accelerated inexact Newton): ''%%{rhf,maxdis=10,iptyp=’KAIN’,nitord=10; shift,-1.0,-0.5}%%'' which sometimes shows different convergence behavior than straight DIIS. | * **Increasing the DIIS dimension:** In rare cases ''%%{rhf,maxdis=30,iptyp=’DIIS’,nitord=20; shift,-1.0,-0.5}%%'' can find solutions which are not found in the standard settings. Usually increasing the DIIS dimension beyond 10 (the default) just slows down convergence. It is also worthwhile to try a variation of DIIS known as KAIN (Krylov-subspace accelerated inexact Newton): ''%%{rhf,maxdis=10,iptyp=’KAIN’,nitord=10; shift,-1.0,-0.5}%%'' which sometimes shows different convergence behavior than straight DIIS. |
| | * **AVAS** may be used to have a good initial guess for the orbitals. |
| | * **sym** may be used to exploit extra symmetries. |
| |
| Cationic or Anionic initial guess: | Cationic or Anionic initial guess: |
| ===== Stability check: Eigenvalues of the orbital Hessian ===== | ===== Stability check: Eigenvalues of the orbital Hessian ===== |
| |
| It is possible to calculate the eigenvalues of the orbital Hessian with the MCSCF program (see [[the MCSCF program MULTI#orbital Hessian eigenvalues|orbital Hessian eigenvalues]] ) for a RHF wavefuction. This requires a manually given orbital occupation in the MCSCF program (see ''CLOSED'' and ''OCC'') similar to the RHF solution. The computation of the orbital Hessian is considerably more expansive than the RHF optimization. Negative eigenvalues show that the solution is a saddle point, and a lower energy could be found. | It is possible to calculate the eigenvalues of the orbital Hessian with the MCSCF program (see [[the MCSCF program MULTI#orbital Hessian eigenvalues|orbital Hessian eigenvalues]] ) for a RHF wavefunction. This requires a manually given orbital occupation in the MCSCF program (see ''CLOSED'' and ''OCC'') similar to the RHF solution. The computation of the orbital Hessian is considerably more expansive than the RHF optimization. Negative eigenvalues show that the solution is a saddle point, and a lower energy could be found. |
| |
| ===== Advanced use: Core-excited states ===== | ===== Advanced use: Core-excited states ===== |