Différences entre les versions de « General guidelines for BOVB calculations »

De Workshops
Aller à la navigation Aller à la recherche
Ligne 1 : Ligne 1 :
 
= =
 
= =
  
=== General advices ===
+
=== Active space ===
* Do not use diffuse functions unless you deal with an anion, and do not use larger than triple-zeta basis sets
+
First, choose an active system of orbitals/electrons in the molecule under study. This is the part of the molecule that will be treated in a VB way : for example the bonds that are made/broken in a reaction, or the orbitals whose occupancy varies in a series of resonating VB structures. The occupancies of the active orbitals will change from one VB structure to the other. The other orbitals, called « inactive » or « spectator », are those that keep the same occupancy in all VB structures.
* Impose a high molecular symmetry if possible (case of a distorted molecule which slightly departs from a higher symmetry point group) ;
+
 
* Use ''orbtyp=hao'' together with ''fragtyp=sao'' as soon as you have some <math>\sigma</math>/<math>\pi</math> symmetry in your molecule,
+
=== BOVB levels ===
* In the $ctrl section of the XMVB input, you should use the "iscf=5" algorithm for VBSCF calculations, and change it to "iscf=2" for BOVB calculations.
+
Each active orbital must be defined as localized, either on a single atom or on a fragment (recommended, see next section below). The inactive orbitals may be kept localized (L-VBSCF or L-BOVB) or allowed to delocalize on the whole molecule (D-VBSCF or D-BOVB). Better accuracy is obtained in this latter case. Last, in the ionic structures the doubly occupied active orbitals may be "splitted" for a better description, leading to the S-BOVB (if inactive are kept localized) and SD-BOVB levels.
* Use the ''boys'' keyword at the VBSCF step, as it provides more physically meaningful orbitals for the subsequent BOVB calculations (this is particularly important if you want to go up to the S- or SD-BOVB levels)
 
* Always use a set of converged orbitals from the preceding step, ex : use converged VBSCF orbitals to start a L-BOVB calculation, converged L-BOVB to start a S-BOVB or a D-BOVB calculation, and converged S-BOVB orbitals to start a SD-BOVB calculation.
 
  
=== Definition of the orbital blocks ===
+
=== Recommended definition for the orbital blocks ===
The following rules define the orbital blocks of your orbitals, which will be used for the "L" levels (initial VBSCF and L-BOVB calculations) :
+
These rules leads to the definition of "orbital blocks" :
* First, choose a set of active electron pairs, which in turns define a set of active orbitals ;
+
* From your active orbitals divide your molecule into fragments, such as each pair of active orbitals involved into a covalent coupling in one of the structure should belong to a different fragment ;
* This set of active orbitals itself leads to a division of your molecule into fragments : each pair of active orbitals involved into a covalent coupling in one of the structure should belong to a different fragment ;
 
 
* To each fragment is associated a localization space : the orbitals belonging to a specific localization space can only span the basis functions centered onto atoms belonging to this fragment ;
 
* To each fragment is associated a localization space : the orbitals belonging to a specific localization space can only span the basis functions centered onto atoms belonging to this fragment ;
 
* The different localization spaces may then be further divided according to the symmetry of the molecule (<math>\sigma</math>/<math>\pi</math> separation for instance), which provides the different orbital blocks.
 
* The different localization spaces may then be further divided according to the symmetry of the molecule (<math>\sigma</math>/<math>\pi</math> separation for instance), which provides the different orbital blocks.
 +
 +
Then it is recommended that at the VBSCF and L-BOVB levels all your orbitals, active and inactive, belongs to one of these orbital blocks according to their localization. This will lead to more stable wave functions.
  
 
{| class="collapsible collapsed wikitable"
 
{| class="collapsible collapsed wikitable"
Ligne 21 : Ligne 20 :
 
|-
 
|-
 
|  
 
|  
 +
* within this definition all orbitals will be fragment orbitals, and both active/inactives orbitals belonging to the same orbital block will share the same definition in terms of basis function expansion ;
 
* if this definition is strictly followed, there is no common basis functions between orbital blocks ;
 
* if this definition is strictly followed, there is no common basis functions between orbital blocks ;
 
* orbital blocks belonging to different localization spaces and containing only inactive orbitals can be grouped together (see example 2 below)
 
* orbital blocks belonging to different localization spaces and containing only inactive orbitals can be grouped together (see example 2 below)
Ligne 34 : Ligne 34 :
 
|
 
|
 
# for the F<sub>2</sub> molecule, six blocks can be defined : <math>\sigma</math>(F<sub>1</sub>), <math>\pi_{x}</math>(F<sub>1</sub>), <math>\pi_{y}</math>(F<sub>1</sub>), <math>\sigma</math>(F<sub>2</sub>), <math>\pi_{x}</math>(F<sub>2</sub>), <math>\pi_{y}</math>(F<sub>2</sub>)
 
# for the F<sub>2</sub> molecule, six blocks can be defined : <math>\sigma</math>(F<sub>1</sub>), <math>\pi_{x}</math>(F<sub>1</sub>), <math>\pi_{y}</math>(F<sub>1</sub>), <math>\sigma</math>(F<sub>2</sub>), <math>\pi_{x}</math>(F<sub>2</sub>), <math>\pi_{y}</math>(F<sub>2</sub>)
# However, if the  <math>\sigma</math> bond is taken as the active electron pair, four blocks could as well be used from the beginning : <math>\sigma</math>(F<sub>1</sub>), <math>\sigma</math>(F<sub>2</sub>), <math>\pi_{x}</math>(F<sub>1</sub>-F<sub>2</sub>), <math>\pi_{y}</math>(F<sub>1</sub>-F<sub>2</sub>)  
+
# However, if the  <math>\sigma</math> bond is taken as the active electron pair, four blocks could as well be used from the beginning : <math>\sigma</math>(F<sub>1</sub>), <math>\sigma</math>(F<sub>2</sub>), <math>\pi_{x}</math>(F<sub>1</sub>-F<sub>2</sub>), <math>\pi_{y}</math>(F<sub>1</sub>-F<sub>2</sub>). Then, you can choose to keep the <math>\sigma</math> lone pair localized all along the calculation (as its delocalization brings very minor energy lowering), this level has been referred to as π-D-VBSCF and π-D-BOVB ;
 
# for the (Me<sub>3</sub>)C-Cl molecule, where we choose the C-Cl bond to be the active electron pair, the inactive orbitals are defined on the (Me<sub>3</sub>)C and Cl fragments respectively
 
# for the (Me<sub>3</sub>)C-Cl molecule, where we choose the C-Cl bond to be the active electron pair, the inactive orbitals are defined on the (Me<sub>3</sub>)C and Cl fragments respectively
 
# for Cl-(Me<sub>3</sub>)C-Cl<sup>-</sup> SN2 transition state, the two Cl-C and C-Cl bonds are chosen as active pairs, which in turns define three fragments : Cl<sub>1</sub> / (Me<sub>3</sub>)C / Cl<sub>2
 
# for Cl-(Me<sub>3</sub>)C-Cl<sup>-</sup> SN2 transition state, the two Cl-C and C-Cl bonds are chosen as active pairs, which in turns define three fragments : Cl<sub>1</sub> / (Me<sub>3</sub>)C / Cl<sub>2
Ligne 44 : Ligne 44 :
 
# Perform a ("L") VBSCF calculation together with the keyword ''boys'' in the $orb section ;
 
# Perform a ("L") VBSCF calculation together with the keyword ''boys'' in the $orb section ;
 
# perform the L-BOVB calculation, '''''always''''' starting from converged VBSCF orbitals ;
 
# perform the L-BOVB calculation, '''''always''''' starting from converged VBSCF orbitals ;
# then perform the D-BOVB calculation : starting from the converged L-BOVB orbital as guess, freeze the active orbitals (put "0" as coefficient in first $orb line) and delocalize the inactive orbitals onto the whole molecule ;
+
# then perform the D-BOVB calculation : starting from the converged L-BOVB orbital as guess, run the calculation by optimizing the delocalized inactive orbitals, while '''''freezing the active orbitals''''' during the optimization (put "0" as coefficient in first $orb line).
  
 
{| class="collapsible collapsed wikitable"
 
{| class="collapsible collapsed wikitable"
Ligne 55 : Ligne 55 :
  
 
[[The SD_BOVB method|>> How to perform a SD-BOVB calculation (advanced user)]]
 
[[The SD_BOVB method|>> How to perform a SD-BOVB calculation (advanced user)]]
 +
 +
=== General advices ===
 +
* Do not use diffuse functions unless you deal with an anion, and do not use larger than triple-zeta basis sets
 +
* Impose a high molecular symmetry if possible (case of a distorted molecule which slightly departs from a higher symmetry point group) ;
 +
* Use ''orbtyp=hao'' together with ''fragtyp=sao'' as soon as you have some <math>\sigma</math>/<math>\pi</math> symmetry in your molecule,
 +
* In the $ctrl section of the XMVB input, you should use the "iscf=5" algorithm for VBSCF calculations, and change it to "iscf=2" for BOVB calculations.
 +
* Use the ''boys'' keyword at the VBSCF step, as it provides more physically meaningful orbitals for the subsequent BOVB calculations (this is particularly important if you want to go up to the S- or SD-BOVB levels)
 +
* Always use a set of converged orbitals from the preceding step, ex : use converged VBSCF orbitals to start a L-BOVB calculation, converged L-BOVB to start a S-BOVB or a D-BOVB calculation, and converged S-BOVB orbitals to start a SD-BOVB calculation.
  
 
{| class="collapsible collapsed wikitable"
 
{| class="collapsible collapsed wikitable"
Ligne 61 : Ligne 69 :
 
|-
 
|-
 
|
 
|
 +
Sometimes, BOVB calculations are subject to instabilities that it is important to detect. They may manifest as incredibly high bonding energies, generally associated with strongly negative weights of the VB structures according to the Choiirgwin-Coulson definition. Then, how I know whether or not my BOVB calculation went well ?
  
=== How can I know if my BOVB calculation went well ? ===
 
 
'''Check the following quantities :
 
'''Check the following quantities :
 
* The BOVB weights should not change dramatically as compared with VBSCF weights (not more than +/- ~5%) ;
 
* The BOVB weights should not change dramatically as compared with VBSCF weights (not more than +/- ~5%) ;
Ligne 70 : Ligne 78 :
 
* the orbital overlap (in the ".xdat" file) between active orbitals : corresponding active orbitals in different structures should have almost 1. overlap (~0.98/0.99x). When it is not the case : inspect the corresponding orbital  to check what it has become
 
* the orbital overlap (in the ".xdat" file) between active orbitals : corresponding active orbitals in different structures should have almost 1. overlap (~0.98/0.99x). When it is not the case : inspect the corresponding orbital  to check what it has become
  
=== What can I do if I encounter an instability or convergence issue ? ===
+
'''What can I do if I encounter an instability or convergence issue ?'''
==== Check the following points : ====
+
 
* Did I use a non-redundant description, and in particular did I kept my active orbitals all strictly localized onto molecular fragments ?
+
Check the following points :
 +
* Did I use a non-redundant description, and in particular did I kept my active orbitals all strictly localized ?
 
* Did I ask for boys localization at the initial VBSCF step ?
 
* Did I ask for boys localization at the initial VBSCF step ?
 
* Did I start the different steps of BOVB calculations from orbital properly converged from the previous step ?
 
* Did I start the different steps of BOVB calculations from orbital properly converged from the previous step ?
Ligne 78 : Ligne 87 :
 
* Did I use a basis set with diffuse functions, or a basis set larger than triple-zeta (which could cause trouble) ?
 
* Did I use a basis set with diffuse functions, or a basis set larger than triple-zeta (which could cause trouble) ?
 
* Generally speaking : did I '''''precisely''''' follow the guidelines and procedure described above ?
 
* Generally speaking : did I '''''precisely''''' follow the guidelines and procedure described above ?
==== How to cure the problem - if I haven't done any particular "mistake" : ====
+
 
 +
'''How to cure the problem - if I haven't done any particular "mistake" :'''
 
* try, if possible, to work in a higher symmetry point group for your molecule ;
 
* try, if possible, to work in a higher symmetry point group for your molecule ;
* try, if possible, to modify the definition for your orbital blocks (for instance, by localizing further the inactive orbitals) ;
 
 
* try to restart from the VBSCF level with another orbital guess (localized MOs for instance) ;
 
* try to restart from the VBSCF level with another orbital guess (localized MOs for instance) ;
 +
* try to modify slightly the definition of the wave-function, and proceed step-by-step :
 +
** in a first VBSCF step : localize further the inactive orbitals if possible, and use active orbitals localized on one atom instead of a fragment. Together with the ''boys'' option, this step should generate clean and physically meaningful orbitals ;
 +
** then, in a second VBSCF step : delocalize your active/inactive orbitals onto fragments, using as closely as possible the above recommendation for the definition of your orbital blocks.
 
* try to work in a different basis set.
 
* try to work in a different basis set.
 
 
|}
 
|}

Version du 1 juillet 2012 à 02:36

Active space

First, choose an active system of orbitals/electrons in the molecule under study. This is the part of the molecule that will be treated in a VB way : for example the bonds that are made/broken in a reaction, or the orbitals whose occupancy varies in a series of resonating VB structures. The occupancies of the active orbitals will change from one VB structure to the other. The other orbitals, called « inactive » or « spectator », are those that keep the same occupancy in all VB structures.

BOVB levels

Each active orbital must be defined as localized, either on a single atom or on a fragment (recommended, see next section below). The inactive orbitals may be kept localized (L-VBSCF or L-BOVB) or allowed to delocalize on the whole molecule (D-VBSCF or D-BOVB). Better accuracy is obtained in this latter case. Last, in the ionic structures the doubly occupied active orbitals may be "splitted" for a better description, leading to the S-BOVB (if inactive are kept localized) and SD-BOVB levels.

Recommended definition for the orbital blocks

These rules leads to the definition of "orbital blocks" :

  • From your active orbitals divide your molecule into fragments, such as each pair of active orbitals involved into a covalent coupling in one of the structure should belong to a different fragment ;
  • To each fragment is associated a localization space : the orbitals belonging to a specific localization space can only span the basis functions centered onto atoms belonging to this fragment ;
  • The different localization spaces may then be further divided according to the symmetry of the molecule (<math>\sigma</math>/<math>\pi</math> separation for instance), which provides the different orbital blocks.

Then it is recommended that at the VBSCF and L-BOVB levels all your orbitals, active and inactive, belongs to one of these orbital blocks according to their localization. This will lead to more stable wave functions.

Procedure

To perform a D-BOVB calculation :

  1. Perform a ("L") VBSCF calculation together with the keyword boys in the $orb section ;
  2. perform the L-BOVB calculation, always starting from converged VBSCF orbitals ;
  3. then perform the D-BOVB calculation : starting from the converged L-BOVB orbital as guess, run the calculation by optimizing the delocalized inactive orbitals, while freezing the active orbitals during the optimization (put "0" as coefficient in first $orb line).

>> How to perform a SD-BOVB calculation (advanced user)

General advices

  • Do not use diffuse functions unless you deal with an anion, and do not use larger than triple-zeta basis sets
  • Impose a high molecular symmetry if possible (case of a distorted molecule which slightly departs from a higher symmetry point group) ;
  • Use orbtyp=hao together with fragtyp=sao as soon as you have some <math>\sigma</math>/<math>\pi</math> symmetry in your molecule,
  • In the $ctrl section of the XMVB input, you should use the "iscf=5" algorithm for VBSCF calculations, and change it to "iscf=2" for BOVB calculations.
  • Use the boys keyword at the VBSCF step, as it provides more physically meaningful orbitals for the subsequent BOVB calculations (this is particularly important if you want to go up to the S- or SD-BOVB levels)
  • Always use a set of converged orbitals from the preceding step, ex : use converged VBSCF orbitals to start a L-BOVB calculation, converged L-BOVB to start a S-BOVB or a D-BOVB calculation, and converged S-BOVB orbitals to start a SD-BOVB calculation.