Orbital reordering in CASSCF

Help me.

How can I reorder the molecular orbitals in casscf calculations?

For example, there are eight MOs: 1, 2, 3, 4, 5, 6, 7 and 8;
and I want to select 1, 2, 5, 6, 7 and 8 as active orbitals.
Here, 1-5 are occupied and 6-8 are unoccupied.

In GAMESS, we use IORDER option:

IORDER(1)=3,4,1,2 and set NCORE=2 NDOC=3 NVAL=3

Then, the orbitals are reordered from 1,2,3,4,5,6,7,8 to 3,4,1,2,5,6,7,8.
MOs 3 and 4 are treated as doubly occupied orbitals.
MOs 1, 2, 5, 6, 7 and 8 are selected as active orbitals.

Which options should I use in Psi4?

Thanks.

Psi4 has a more general feature, orbital rotations. Orbital rotations allow you to mix any two orbitals in the same irreducible representation, however much you want. Swapping them is a special case.

You can use mcscf_rotate, which takes in a list of rotations. The first number specifies the irreducible representation (0-indexed) of the two orbitals you want to swap. The second and third specifies the orbitals you want to rotate, based on their index within the irrep. The fourth specifies the rotation angle. 90 degrees specifies a swap. You should be able to specify multiple rotations via a list of lists.

This example should swap the two lowest orbitals of the B1 orbital in water.

molecule {
O
H 1 1.00
H 1 1.00 2 103.1
}

set {
    basis           6-31G**
    reference       rhf 
    frozen_docc     [1, 0, 0, 0]
    active          [3, 0, 1, 2]  
    print            5   
}

energy('casscf')

set {
   mcscf_rotate     [[2, 0, 1, 90]]
}

energy('casscf')

Thank you for your prompt response! It sounds promising.

Hi, “jmisiewicz”. Thank you for your helpful information
I copied the input you given, and executed.
Then, I obtained two MCSCF energies as follows.

Total MCSCF energy =  -76.073773084579329
Total MCSCF energy =  -76.073773085717107

The energies are only slightly different. Are they expected results?
Can I confirm the switching between the orbitals 0 and 1?

And, I’m sorry, I have one more question.
Could you let me know whether the option, “mcscf_rotate”, is also effective in DMRG-CASSCF or not?

The MCSCF iteration 0 energies are quite different, rotating the orbitals increases the energy by almost a hartree. Since that orbital can be rotated we quickly optimize out the rotation we performed to give us the same energy.

mcscf_rotate is not available for DMRG unfortunately.

Excuse me for the belated reply. I’m most grateful to you for helpful information.
The option “mcscf_rotate” seems to be successful also in other calculations.
Thank you.

Meanwhile, orbital reordering in DMRG calculations is my new challenge …