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

De Workshops
Aller à la navigation Aller à la recherche
 
(13 versions intermédiaires par le même utilisateur non affichées)
Ligne 5 : Ligne 5 :
 
=== Active space ===
 
=== 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.
 
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.
 +
 +
=== Selection of structures ===
 +
BOVB calculations should be carried out only on a selected subset of the most chemically meaningful structures. If the total number of possible VB structures<sup>*</sup> is not very large (<100), the best option is to run first a VB calculation using the ''str=full'' option (which will generate the full basis of VB structures), and then select for the subsequent VB calculation the structures which have a weight superior to ~1%. If the total number of possible structure is very large, then a selection of structures at the VBSCF based on chemical ground should be done first.
 +
 +
<small>* To calculate what is the total number of structures you can use the Weyl formula, see [http://wiki.lct.jussieu.fr/workshop/images/7/73/VB-ab-initio.pdf slide 12 in Philippe Hiberty's second lecture]</small>
  
 
=== BOVB levels ===
 
=== BOVB levels ===
Ligne 46 : Ligne 51 :
 
# 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, 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).
+
# then perform the D-BOVB calculation : starting from the converged L-BOVB orbital as guess, delocalize all inactive orbitals, and 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).
 +
 
 
====High symmetry case:====
 
====High symmetry case:====
 
This is even simpler. This case is encoutered when the inactive orbitals that we wish to delocalize can be distinguished from the active orbitals by symmetry. Example : we wish to delocalize the inactive π orbitals of F2, while the active orbitals are of σ type. In such a case, one may let the VBSCF wave function converge directly in a single step (called D-VBSCF), by defining the π orbitals as delocalized, and the active orbitals and remaining inactive orbitals as localized with σ symmetry. Note that in this case the σ inactive lone pairs of F2 will not be delocalized. Since the delocalization of inactive orbital is not complete, we may refer this calculation as π-D-VBSCF.
 
This is even simpler. This case is encoutered when the inactive orbitals that we wish to delocalize can be distinguished from the active orbitals by symmetry. Example : we wish to delocalize the inactive π orbitals of F2, while the active orbitals are of σ type. In such a case, one may let the VBSCF wave function converge directly in a single step (called D-VBSCF), by defining the π orbitals as delocalized, and the active orbitals and remaining inactive orbitals as localized with σ symmetry. Note that in this case the σ inactive lone pairs of F2 will not be delocalized. Since the delocalization of inactive orbital is not complete, we may refer this calculation as π-D-VBSCF.
The π-D-BOVB is got the same way, taking the as D-VBSCF as a guess. We recommend this choice whenever possible.
+
 
 +
The π-D-BOVB is got the same way, we recommend this choice whenever possible. The procedure will then be the following :
 +
# Perform directly a π-D-VBSCF calculation together with the keyword ''boys'' in the $orb section (you may start with delocalized MOs for the π system as guess orbitals) ;
 +
# then perform directly the π-D-BOVB calculation, starting from the converged π-D-VBSCF orbital as guess, optimizing ''all'' orbitals (active orbitals are not frozen in this procedure).
 +
 
 +
Note : in cases when the π system is active and all inactive electrons occupy <math>\sigma</math> orbitals (benzene, allyl,...), the procedure is the same, but the role of <math>\sigma</math> / π systems are reversed. You may refer to the <math>\sigma</math>-D-VBSCF and <math>\sigma</math>-D-BOVB methods respectively.
 +
 
 
See also [[General_guidelines_for_BOVB_calculations#Recommended_definition_for_the_orbital_blocks|the picture above]] for an illustration of the π-D-BOVB method on the  Cl-(Me<sub>3</sub>)C-Cl<sup>-</sup> SN2 linear transition state.
 
See also [[General_guidelines_for_BOVB_calculations#Recommended_definition_for_the_orbital_blocks|the picture above]] for an illustration of the π-D-BOVB method on the  Cl-(Me<sub>3</sub>)C-Cl<sup>-</sup> SN2 linear transition state.
  
Ligne 67 : Ligne 79 :
 
=== General advices ===
 
=== General advices ===
 
* Do not use diffuse functions unless you deal with an anion, and do not use larger than triple-zeta basis sets  
 
* 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) ;  
+
* 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,
+
* Discard from your BOVB wave functions all structures which have a small weight at the VBSCF level (Coulson-Chirgwin weight of ≈1% or less) ;  
 +
* Use ''orbtyp=hao'' together with ''fragtyp=sao'' specification (''fragtyp=atom'' is not recommended for BOVB calculations), and use all the possible (pseudo-)symmetry you have in your system ;
 
* 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.
 
* 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)
 
* 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)
Ligne 78 : Ligne 91 :
 
|-
 
|-
 
|
 
|
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 ?
+
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 Coulson-Chirgwin definition. Then, how do I know whether or not 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%) ;
* large negative weights (<-0.05) Coulson-Chrigwin weights are also a sign of convergence on an unphysical solution ;
+
* large negative weights (<-0.05) Coulson-Chirgwin weights are also a sign of convergence on an unphysical solution ;
 
* the overlap matrix between 2 given structures should not exceed ~0.7
 
* the overlap matrix between 2 given structures should not exceed ~0.7
 
* the total energy : when an instability occur, it may become too low, leading to, for instance, dissociation energies which might be (sometimes significantly) larger than exact ones ;
 
* the total energy : when an instability occur, it may become too low, leading to, for instance, dissociation energies which might be (sometimes significantly) larger than exact ones ;
* 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 orbitals : it should not change dramatically between VBSCF and BOVB levels, and corresponding BOVB orbitals in different structures should have a large (>0.9) overlap. When it is not the case : inspect the corresponding orbitals, comparing them coefficient by coefficient with the original VBSCF orbitals to check what it has become. '''In general, this allows to understand what is the source of the BOVB instability, which is a prerequisite to find a solution.''' 
  
 
'''What can I do if I encounter an instability or convergence issue ?'''
 
'''What can I do if I encounter an instability or convergence issue ?'''
Ligne 93 : Ligne 106 :
 
* 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 ?
* Did I eliminate all structures which have shown to be negligible (<1% weight) at the VBSCF level in the subsequent BOVB calculation ?
+
* Did I eliminate all structures which have shown to be negligible (≈1% weight or less) at the VBSCF level in the subsequent BOVB calculation ?
 
* 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 ?
 +
 +
If the above points are ok, try to identify where the problem comes from :
 +
* Compare the VBSCF and BOVB orbital overlap matrix (in the ''.xdat'' file) : very often an instability results in one (or several) BOVB orbitals being dramatically modified as compared with the original VBSCF ones. Looking to significant changes in orbital overlap allow to identify the orbital(s) at the root cause of the instability.
 +
* Then compare the VBSCF and BOVB orbital(s) identified at the previous step ("ORBITAL IN PRIMITIVE BASIS FUNCTIONS" in the ''.xmo'' file), to try to understand the origin of the instability.
  
 
'''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 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 :
+
* try to modify slightly the definition of the orbitals, 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 ;
 
** 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.
 
** 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.
 +
* If the instability occurs at the BOVB or BOVB, and is due to some inactive orbital(s) : you can do a partial BOVB calculation, in one of the two following possible ways :
 +
** work at the VBSCF and L-BOVB levels with inactive orbitals fully localized on one atom (lone pairs) or two atoms (bonding MOs), then at the D-BOVB level the active orbitals are frozen while the inactive orbitals are delocalized over the whole molecule ;
 +
** freeze this (those) inactive orbitals inducing the instability at one of the (S)L/(S)D-BOVB step(s) ;
 +
* try modifying the definition of the wave-functions : you may use BDOs to implicitely include some minor ionic structures for instance, treat as active the electron pair inducing the instability, or split it if it is already an active pair  ;
 
* try to work in a different basis set.
 
* try to work in a different basis set.
 
|}
 
|}
  
 
</big>
 
</big>

Dernière version du 20 mai 2015 à 15:17

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.

Selection of structures

BOVB calculations should be carried out only on a selected subset of the most chemically meaningful structures. If the total number of possible VB structures* is not very large (<100), the best option is to run first a VB calculation using the str=full option (which will generate the full basis of VB structures), and then select for the subsequent VB calculation the structures which have a weight superior to ~1%. If the total number of possible structure is very large, then a selection of structures at the VBSCF based on chemical ground should be done first.

* To calculate what is the total number of structures you can use the Weyl formula, see slide 12 in Philippe Hiberty's second lecture

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 lead to the definition of "orbital blocks" :

  • From your active orbitals divide the molecule into fragments, such as two active orbitals involved in a covalent coupling in one of the structures belong to different fragments;
  • To each fragment is associated a localization space : the orbitals belonging to a specific localization space can only span the basis functions centered on 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.
BOVB-blocks.png BOVB-blocks2.png
Two example choices of orbital blocks definitions for Cl-(Me3)C-Cl- SN2 linear transition state geometry. Note that the r.h.s. choice corresponds to the so-called π-D-VBSCF and π-D-BOVB levels (see also example 2 below). This is the recommended option in cases where a <math>\sigma</math> / <math>\pi</math> separation is present.


Procedure for doing a D-BOVB calculation

General case (low symmetry):

  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, delocalize all inactive orbitals, and 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).

High symmetry case:

This is even simpler. This case is encoutered when the inactive orbitals that we wish to delocalize can be distinguished from the active orbitals by symmetry. Example : we wish to delocalize the inactive π orbitals of F2, while the active orbitals are of σ type. In such a case, one may let the VBSCF wave function converge directly in a single step (called D-VBSCF), by defining the π orbitals as delocalized, and the active orbitals and remaining inactive orbitals as localized with σ symmetry. Note that in this case the σ inactive lone pairs of F2 will not be delocalized. Since the delocalization of inactive orbital is not complete, we may refer this calculation as π-D-VBSCF.

The π-D-BOVB is got the same way, we recommend this choice whenever possible. The procedure will then be the following :

  1. Perform directly a π-D-VBSCF calculation together with the keyword boys in the $orb section (you may start with delocalized MOs for the π system as guess orbitals) ;
  2. then perform directly the π-D-BOVB calculation, starting from the converged π-D-VBSCF orbital as guess, optimizing all orbitals (active orbitals are not frozen in this procedure).

Note : in cases when the π system is active and all inactive electrons occupy <math>\sigma</math> orbitals (benzene, allyl,...), the procedure is the same, but the role of <math>\sigma</math> / π systems are reversed. You may refer to the <math>\sigma</math>-D-VBSCF and <math>\sigma</math>-D-BOVB methods respectively.

See also the picture above for an illustration of the π-D-BOVB method on the Cl-(Me3)C-Cl- SN2 linear transition state.

>>> SD-BOVB calculations (expert level)

Computing bond energies

Note that the (π-)D-BOVB wave function dissociation limit corresponds to the individual fragments computed separately at the R(O)HF level. So computation of bond energies requires a D-BOVB calculation for the molecule at equilibrium distances only, and two R(O)HF calculations for the separate fragments.

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) ;
  • Discard from your BOVB wave functions all structures which have a small weight at the VBSCF level (Coulson-Chirgwin weight of ≈1% or less) ;
  • Use orbtyp=hao together with fragtyp=sao specification (fragtyp=atom is not recommended for BOVB calculations), and use all the possible (pseudo-)symmetry you have in your system ;
  • 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.