Molcas Forum

Support and discussions for Molcas and OpenMolcas users and developers

You are not logged in.

Announcement

Welcome to the Molcas forum. You can choose an avatar and change the default style by going to "Profile" → "Personality" or "Display".

#1 2018-10-16 12:49:36

shuoshuo
Member
From: Beijing Normal University
Registered: 2017-10-18
Posts: 35

How to prevent orbital rotating?

Dear experts,

I'v encounter this orbital rotation problem many times. Every time I find the program rotating orbitals during RASSCF, I would like to ask myself whether the active space that I choose is right or not. The program seems to put correlated orbital pairs into active space. For example, if I remove a pi orbital out of the  active space, the correlated pi* orbital will also be removed.
Sometimes, a pi orbital is close to HOMO, while the correlated pi* orbital is far form LUMO and wouldn't get occupied at low excited-states according to TD-DFT . How could I keep the bonding orbital in but the correlated anti-bonding orbital out.

 ###    Large orbital rotation.                                              ###
 ###                                                                         ###
 ###                                                                         ###
 ###############################################################################
 ###############################################################################
      Molecular orbital 123 of symmetry 1 MO space 2  weight is    0.181508

The output reads "weight is    0.181508". Could I change the code setting to prevent orbital rotating, and what is the consequence?

c
c      Check for large rotations and phase of new orbital
c
 1010   FORMAT (6x,'Molecular orbital',i4,
     &             ' of symmetry',i2,' MO space',i2,'  weight is',f12.6)
        ii=1
        ist=0
        DO ni=1,no
          IF (ni.le.nio) THEN
            motype=1
            xn=0.0D0
            DO nii=1,nio
              xn=xn+x(ist+nii)**2
            END DO
            IF (xn.lt.0.5D0) Then
             IF(IPRLEV.GE.TERSE) THEN
              Call WarningMessage(1,'Large orbital rotation.')
              Write(LF,1010) ni,isym,motype,xn
             END IF
            End If
          END IF
          IF (ni.gt.nio.and.ni.le.noc) THEN
            motype=2
            xn=0.0D0
            nio1=nio+1
            DO nii=nio1,noc
              xn=xn+x(ist+nii)**2
            END DO
            IF (xn.lt.0.5D0) Then
             IF(IPRLEV.GE.TERSE) THEN
              Call WarningMessage(1,'Large orbital rotation.')
              Write(LF,1010) ni,isym,motype,xn
             END IF
            End If
          END IF
          IF (ni.gt.noc) THEN
            motype=3
            noc1=noc+1
            xn=0.0D0
            DO nii=noc1,no
              xn=xn+x(ist+nii)**2
            END DO
            IF (xn.lt.0.5D0) Then
             IF(IPRLEV.GE.TERSE) THEN
              Call WarningMessage(1,'Large orbital rotation.')
              Write(LF,1010) ni,isym,motype,xn
             END IF
            End If
          END IF
          ii=ii+no+1
          ist=ist+no
        END DO

Last edited by shuoshuo (2018-10-16 13:37:43)

Offline

#2 2018-10-17 08:26:59

Ignacio
Administrator
From: Uppsala
Registered: 2015-11-03
Posts: 1,203

Re: How to prevent orbital rotating?

shuoshuo wrote:

How could I keep the bonding orbital in but the correlated anti-bonding orbital out.

That is usually a very bad idea. But if you really want to do it, I guess you could use SUPSYM.

Offline

#3 2018-10-18 13:29:50

shuoshuo
Member
From: Beijing Normal University
Registered: 2017-10-18
Posts: 35

Re: How to prevent orbital rotating?

Thanks for your reply!

Offline

Board footer

Powered by FluxBB 1.5.11

Last refresh: Today 21:43:18