Author Topic: Maximum Overlap Method and broken symmetry state optimization  (Read 44766 times)

hherbol

  • Newbie
  • *
  • Posts: 6
  • Karma: +0/-0
Hi everyone,
 
I noticed that the TURBOMOLE documentation's outline of the Maximum Overlap Method (MOM) is very limited.  I was playing around with it and benzene to try to minimize the S1 state, and I can't tell if what I'm doing is correct.
 
First I did a standard S0 geometry optimization (b3-lyp/6-31g*  scfconv=6).  From that starting point, I tried a few different approaches:

Approach #1 (Edits to control file)
------------------------------------
 
$scfdamp   start=5.000  step=0.050  min=0.500
$scforbitalshift automatic=1.0
$uhf
$mom on
$alpha shells   1-20,22    ( 1 )
$beta shells    1-21       ( 1 )
 
 
Approach #2 (Edits to control file)
------------------------------------
 
$scfdamp   start=5.000  step=0.050  min=0.500
$scforbitalshift automatic=1.0
$uhf
$alpha shells   1-20,22    ( 1 )
$beta shells    1-21       ( 1 )
 
 
Approach #3 (Edits to control file)
------------------------------------
 
$scfdamp   start=5.000  step=0.050  min=0.500
$scforbitalshift automatic=1.0
$fermi
$uhf
$alpha shells   1-20,22    ( 1 )
$beta shells    1-21       ( 1 )
 
 
Keeping all else the same, I ran jobex.
 
My expectations were:
 
    Approach #1 -> Should converge to the S1 state.
    Approach #2 -> Should fall back to the S0 state?
    Approach #3 -> Should fall back to the S0 state due to fermi.
 
Instead what I found was the following:
 
    Approach #1 -> Converged to what I think is the S1 state.
    Approach #2 -> Converged to what I think is the S1 state.
    Approach #3 -> Converged to the S0 state.
 
 
Note - In regards to the high scfdamp and scforbitalshift values, I took these from page 94 of the manual (4.3.5 Start-MOs for broken symmetry treatments ("flip")).  I also made sure to loosen these up back to the default values after converging.
 
So my question is as follows:
 
What is TURBOMOLE doing? Specifically when running a geometry optimization with jobex when starting from a broken symmetry state.  The MOM method is the constraint that allows for me to maintain this broken symmetry state.  So why is it that when $mom is not supplied, I'm getting the same results?  Note, when I say same, I mean the total energy, orbital energies, and occupations are identical between the two calculations (within convergence criteria).
 
I've also noted that when I don't increase scfdamp and scforbitalshift, the calculation fails if $mom is on... but it succeeds without $mom (giving the same results as above).  This leads me to believe that  TURBOMOLE is not inherently just turning MOM on when a broken symmetry state is defined.

chris.hol

  • Full Member
  • ***
  • Posts: 29
  • Karma: +1/-0
Re: Maximum Overlap Method and broken symmetry state optimization
« Reply #1 on: June 12, 2025, 10:34:05 PM »
Hi hherbol,

$mom engages a special algorithm that favors a new state "close" to the old one; with close being defined via the overlap of the old and new state. It may however be possible to "trap" an excited state even without mom, especially if it has a different symmetry, or is generally far away from true ground state.

Also, the default settings of $scfdamp   start=5.000  apply a quite strong initial damping, with old:new Fock matrices being mixed at a 5:1 ratio. This is, in your case, probably more important than actually using $mom. The latter was, as far as I can remember, specifically designed to trap core excited states.

Converging excited states using ground state DFT is however never straightforward and always can require a significant amount of attempts till the correct state is converged.

Best,
Christof