Molcas Forum

Support and discussions for Molcas and OpenMolcas users and developers

You are not logged in.

Announcement

Welcome to the Molcas forum.

Please note: The forum's URL has changed. The new URL is: https://molcasforum.univie.ac.at. Please update your bookmarks!

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,085

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:59:45