CASSCF Notes

Note for using CASSCF methods.


General Workflow

  • Decide a input initial orbital (MO or UNO or GVB orbital)
  • Select a active space base on the fractional occupancy of the initial orbital (The active space is inital orbital depended)
  • Do CASSCF:
    • Take active space and inital guess orbitals
    • optimize casscf orbital (canonical)
    • result in Natural Orbital
  • Analyze and rationalize the fractional occupancy of the corresponding orbital

Active Space Selection

UNO-CAS method

https://aip.scitation.org/doi/10.1063/1.4922352

calculate natural orbitals with UHF and natural orbitals with fractional occupancy (e.g., between 0.02 and 1.98) constitute the active space.

GVB method

https://pubs.acs.org/doi/10.1021/acs.jpca.0c05216

Use GVB orbital’s occupation to determine the active space and serve as initial guess, which converge faster. especially for metal systems. In most cases it gives smaller active space and results in lower energy.
The GVB orbital can be constituted by pairing UNO

Software Practice

GAUSSIAN

http://sobereva.com/264
https://cloud.tencent.com/developer/article/1690190

DETERMINE Active Space (UNO)

  • #P UHF/BasisSet guess=mix
  • #P HF/BasisSet guess=(naturalorbitals,read,save,only)

CASSCF

sometimes need to use guess=alter and indexes at the end of the file to indicate the correct orbital.

  • #p cas(6,6)/BS guess=(read,alter) geom=allcheck

    19,17
  • energy is found after EIGENVALUE. (Containing solvation if SMD applied)

MOKIT

https://gitlab.com/jxzou/mokit/-/blob/master/doc/MOKIT_manual.pdf
GVB CAS method:
https://pubs.acs.org/doi/10.1021/acs.jpca.0c05216

The automr module autometicaly determining the workflow and the active space based on the input gjf file.
See syntax of gjfs for automr in the manual.
automr in.gjf > out.out

  • workflow: UHF(UNO) -> GVB -> CASSCF
  • Need to install pyscf and gamess
  • Need to modify GAMESS (see Manual 4.4.9)
  • if use ist != 0 than fchk is needed.

    Environment Settings Runing on Hoffman2

    sub.cmd >folded
    > # >>> conda initialize >>>
    > # !! Contents within this block are managed by 'conda init' !!
    > __conda_setup="$('/u/home/s/shaoqz/project-houk/bin/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
    > if [ $? -eq 0 ]; then
    > eval "$__conda_setup"
    > else
    > if [ -f "/u/home/s/shaoqz/project-houk/bin/anaconda3/etc/profile.d/conda.sh" ]; then
    > . "/u/home/s/shaoqz/project-houk/bin/anaconda3/etc/profile.d/conda.sh"
    > else
    > export PATH="/u/home/s/shaoqz/project-houk/bin/anaconda3/bin:$PATH"
    > fi
    > fi
    > unset __conda_setup
    > # <<< conda initialize <<<
    > # load gaussian
    > . /u/local/Modules/default/init/modules.sh
    > module load gaussian/g16_sse4
    > export GAUSS_SCRDIR=$TMPDIR
    > export GAUSS_EXEDIR=$g16root/g16/bsd:$g16root/g16 #need to redirect the EXEDIR
    > module li
    > # load mokit
    > export MOKIT_ROOT=/u/home/s/shaoqz/project-houk/bin/mokit
    > export PATH=$MOKIT_ROOT/bin:$PATH
    > export PYTHONPATH=$MOKIT_ROOT/lib:$PYTHONPATH
    > # load gamess
    > export PATH=$PATH:/u/project/houk/shaoqz/bin/gamess
    > export GMS=/u/project/houk/shaoqz/bin/gamess
    >

Analysis

Compare different initial orbital and active space

SCF energy can only be compared when active space is in the same size. Low energy means better solution.
e.g.: UNO-CAS(5,5) vs GVB-CAS(1,1) is invalid. Even though CAS are determined to be so by UNO and GVB.

Based on natural orbitals

Most CASSCF results are presented by NO and their fractional occupancy. Most analysis do wavefunction analysis base on these NO. (like a better wavefunction)
e.g.: Radical coupling: The occupancy of the bonding and antibonding orbital shows the weight of diradical.

Based on CASSCF orbitals

Determine configuration coefficients (ratio)
do population analysis for each configuration (understand its chemical meaning)

Problem: chemical meaning of configurations are often ambiguous. Most software do not export casscf orbitals.
Software support:

Misc

CASSCF vs UCASSCF

Most CASSCF practice use one set of orbital and fractional occupation of the orbital. (like UNO-CAS and GVB-CAS) Only pyscf support UCASSCF treating alpha and beta orbital, but just for develop use.

Radical systems are oftwn treat with UNO method or UNO-GVB method to make the CASSCF initial orbital. And result in natural orbital.