Skip to content

Calculation with IVO

Kohei Noda edited this page Nov 25, 2024 · 13 revisions

When you should use IVO program?

  • Virtual orbitals often consist of physically meaningless orbitals when you configure kramers pairs by using the DIRAC Hartree-Fock (HF) calculation.
    • Therefore, we recommend that you use the IVO program if you want to do a high accuracy calculation or a calculation in which virtual orbitals are important.

Attentions when you want to use the IVO program.

  • A DFPCMO file is required.
    • It can be obtained by DIRAC calculation with the .PCMOUT option
    • The DFPCMO file contains information such as the coefficients of atomic orbitals that constitute all kramers pair with energy eigenvalues after the HF calculation.
  • An IVO input requires following additional options compared to a CASPT2 input.
    • nvcut
    • nocc

Specific example of IVO calculation

  • We will show you a specific example of IVO calculation for H2O.
  1. Do a DIRAC calculation

    For example, if you want to include molecular orbitals from -21 to 10 a.u. in the dyall.cv2z basis,
    you should write an input file H2O.inp and a molecular coordinate file H2O.xyz as follows.
    (**GENERAL and .PCMOUT are required to obtain the files required for IVO calculation)

    H2O.inp

    **DIRAC
    .TITLE
    H2O
    .WAVE FUNCTION
    .4INDEX
    **GENERAL
    .PCMOUT
    **HAMILTONIAN
    .X2C
    **WAVE FUNCTIONS
    .SCF
    **MOLTRA
    .ACTIVE
    energy -21 10 1.0
    **MOLECULE
    *BASIS
    .DEFAULT
     dyall.cv2z
    *END OF
    

    H2O.xyz

    3
    
    O       0.0000000000        0.0000000000        0.1173000000
    H       0.0000000000        0.7572000000       -0.4692000000
    H       0.0000000000       -0.7572000000       -0.4692000000
    

    Then, execute DIRAC. get the required files for IVO calculation by using the --get option.

    pam --inp H2O.inp --mol H2O.xyz --get "MDCIN* MRCONEE DFPCMO"
  2. Calculate the number of options required for the IVO calculation

    Calculate the number of options required for the IVO calculation by looking at the output of the DIRAC calculation (in this example, H2O_H2O.out) after the HF calculation and the MOLTRA section of the DIRAC input.

    Output of Eigenvalues (a part of H2O_H2O.out)

                                    Eigenvalues
                                    -----------
    
    
    * Fermion symmetry E1
    * Closed shell, f = 1.0000
    -20.57500754273  ( 2)       -1.35172922939  ( 2)       -0.71498912659  ( 2)       -0.58119064918  ( 2)       -0.50652470586  ( 2)
    * Virtual eigenvalues, f = 0.0000
        0.12525462441  ( 2)        0.17612481281  ( 2)        0.46977812299  ( 2)        0.49282079306  ( 2)        0.57491000440  ( 2)
        0.58209044380  ( 2)        0.72423736575  ( 2)        0.97554667261  ( 2)        1.07928357170  ( 2)        1.08469378960  ( 2)
        1.21156563991  ( 2)        1.40251793839  ( 2)        1.53675468132  ( 2)        1.54751376936  ( 2)        1.81141432192  ( 2)
        1.90171844237  ( 2)        2.63508749104  ( 2)        2.65687044685  ( 2)        2.75223448746  ( 2)        3.20842976524  ( 2)
        3.23448391408  ( 2)        3.35078432406  ( 2)        3.76427935481  ( 2)        4.19569893573  ( 2)        5.22135505596  ( 2)
        6.00805748934  ( 2)        6.04778937084  ( 2)        9.21699232841  ( 2)        9.26352940970  ( 2)        9.35582919086  ( 2)
        22.14166797116  ( 2)       25.90929699167  ( 2)       25.91883181292  ( 2)       33.60701904118  ( 2)       33.66971511412  ( 2)
        33.74804236016  ( 2)       86.86350449127  ( 2)      151.87963183828  ( 2)      152.20644225041  ( 2)      152.25499148390  ( 2)
    156.77073309599  ( 2)      156.77777968817  ( 2)      311.81506155511  ( 2)     1135.43611542724  ( 2)     4467.59310146718  ( 2)
    19534.72031201707  ( 2)
    

    You don't need to divide into gerade and ungerade because Fermion symmetry is E1 in this example. Therefore, you need to consider the values of nvcut and nocc.

    • nocc

      • Set the number of closed shell eigenvalues in Eigenvalues. nocc=5
    • nvcut

      • Set the number of virtual eigenvalues that are not included in the MOLTRA section of the Eigenvalues.
        • The total number of virtual eigenvalues in the output is 46, but in this example, the molecular orbitals from -21 to 10 a.u. are included, so the number of molecular orbitals after 9.35582919086 a.u. is not included in nvcut.
        • Therefore, if you count the number of molecular orbitals after 9.35582919086 a.u., nvcut=16.

    Also, options such as nact and nsec are determined as follows.

    • ninact
      • It is recommended to set 0 in the IVO calculation.
    • nact
      • Set the number of spinors included in the MOLTRA section of the closed shell eigenvalues.
        • In this example, all spinors are included, so nact=10.
    • nsec
      • Set the number of spinors included in the MOLTRA section of the virtual eigenvalues.
        • In this example, 30 molecular orbitals up to 9.35582919086 a.u. are included in the MOLTRA section, so nsec=60.
    • nelec
      • It is recommended to be equal to nact in the IVO calculation.

    Therefore, the IVO input file is as follows.

    .ninact
    0
    .nact
    10
    .nsec
    60
    .nelec
    10
    .nocc
    5
    .nvcut
    16
    .diracver
    21
    end
    
  3. Execute the IVO calculation

    • To execute the IVO calculation, pass the --ivo option to the dcaspt2 command.
    • The new DFPCMO file after the IVO calculation is output as DFPCMONEW, so use the --get option to obtain it.
    dcaspt2 --ivo --inp active.ivo.inp --get "DFPCMONEW"