Localized Molecular Orbitals¶
Boys-Foster and Pipek-Mezey localization¶
With the LOCORB key ADF provides the Boys-Foster method and Pipek-Mezey method for localization of Molecular Orbitals [1] [2] [3]. This implies a unitary transformation of the occupied molecular orbitals as computed in the SCF procedure, with the objective to obtain a (transformed) set of orbitals that represent exactly the same charge density but with molecular orbitals that are more localized in space than the original MOs.
These localization methods can not be used in case of spin-orbit coupling.
The goal of orbital-localization lies in analysis: the localized orbitals provide an easier-to-interpret picture. The localized molecular orbitals can be visualized with the ADF-GUI.
Orbital localization procedures require a measure of the localization of the orbitals which can then be optimized in the space of the allowed unitary transformations. Methods advocated in the literature differ in the definition of this measure. The Boys-Foster method minimizes the mean extension of the occupied orbitals around their center of gravity; see the literature for details. The Pipek-Mezey localization maximizes the sum of orbital-dependent partial charges on the nuclei, see literature for details. Both Boys-Foster localization method and Pipek-Mezey localization method have been implemented in ADF, see Ref. [1].
Occasionally it is useful to apply the localization only to a subset of the MOs, with the objective to expose certain features better. This is accomplished by performing the localization in a number of distinct steps, where at each step the localization is restricted by keeping a subset of the MOs frozen. A case is worked out in the Examples document.
The computation of localized orbitals is controlled with the block-type key. By default (if the key is not supplied in input) no orbital localization is carried out.
LOCORB {nopop store}
{Criterion <BOYS|PM>}
Spintype FrozenMOs
Spintype FrozenMOs
...
end
nopop
Specifies that no SFO population analysis is to be carried out on the localized MOs. By default this population analysis will be printed in the output file.
store
Specifies that the transformation from MOs to localized MOs is stored on adf.rkf (TAPE21).
Criterion <BOYS|PM>
By default the Boys-Foster localization method is used if Criterion is not specified and in case ‘Criterion BOYS’ is specified. If ‘Criterion PM’ is specified, the Pipek-Mezey localization method is used.
Spintype
Must be either alfa or beta (not case sensitive) and refers to spin-A and spin-B orbitals respectively. In a spin-restricted run beta records are meaningless and must not be used.
FrozenMOs
A list (possibly empty) of integers, referring to a list of MOs from the SCF, and/or labels of irreducible representations. The integers and/or labels may be given in any order.
Each record Spintype FrozenMOs in the data block defines a localization cycle in which the localization procedure is carried out on all orbitals (of the indicated spin), except those indicated by the FrozenMOs.
For either spin at least one localization cycle is carried out. If no data record for that spin is found in the data block, a full localization is performed, without any MOs excluded.
The data block may be completely empty (but the record end must be supplied since the key is block-type) and would be equivalent with specifying two records, one for either spin, without any FrozenMOs:
LOCORB {nopop}
end
is equivalent with
LOCORB {nopop}
alfa
beta
end
The integers in FrozenMOs refer to an overall list of SCF MOs consisting of all valence MOs in each symmetry representation up to and including the highest non-empty one. So, when for instance in the first irrep MO #4 is the highest non-empty one and in the second irrep mo #2 is the highest non-empty one, then in the overall list the first 4 are the orbitals of the first irrep, the no.s 5 and 6 are from the second irrep, et cetera.
Each symmetry label in FrozenMOs collectively denotes in one stroke all molecular orbitals of that representation up to and including the highest occupied one (in that symmetry). The label may be the name of an irreducible representation or of a subspecies. In the former case all partner representations are denoted collectively. In an atom symmetry for instance, specifying P would be equivalent to P:x P:y P:z.
Note that if the final SCF has in any symmetry representation empty orbitals below the highest non-empty orbital in that symmetry - violating the Aufbau principle - then these empty orbitals are included in the above-defined overall list and hence a FrozenMOs specification is necessary, namely to avoid mixing MOs with different occupation numbers in the localization.
Note
It is imperative that in a particular localization cycle only MOs from the SCF are combined that have identical occupation numbers. If this is violated the program will carry out the localization without error message, but the results are incorrect in the sense that the density defined by the localized orbitals is not the same anymore as the SCF density.
So, if any of the MOs in the overall list defined above is not fully occupied (open shell, excited state, …) you need to define precisely the localization cycles - localizing in each cycle only MOs with identical occupations and freezing all others - in order to obtain sensible results.
In the output file the localized MOs are printed as expansions in SFOs and (optionally) a population analysis is given, again in terms of the SFOs. Furthermore, each localized MO has associated with it an energy value and an occupation number. The energy is the expectation value of the Fock operator for the orbital. The occupation number is obtained as a weighted sum from the SCF MOs that were combined into the localized orbital. As mentioned before one should combine only SCF MOs with identical occupations into a localized orbital, in which case its occupation number will be the same. The printout of the occupation number of the localized orbital allows therefore a verification that a correct localization procedure has been carried out.
Perturbed Localized Molecular Orbitals¶
Perturbed localized molecular orbitals, correct to first order in an applied field, can be calculated in case of AORESPONSE. Can be used if the applied field changes the density in first order. Ref. [1] describes this functionality and the implementation in ADF in detail, and gives some examples. The perturbed localized molecular orbitals can be visualized with the ADF-GUI. In addition to the AORESPONSE and the LOCORB key one has to specify the PERTLOC key in order to calculate these perturbed localized molecular orbitals. The optional subkeywords of the block key PERTLOC are described below.
LOCORB ..
..
End
AORESPONSE
..
End
PERTLOC
efield
bfield
alfa
gprime
beta
<static|dynamic>
<diag|fulltens>
End
efield
The perturbation is an electric field (default).
bfield
The perturbation is a magnetic field. Should be consistent with AORESPONSE.
alfa
Analyze the static or dynamic polarizability.
gprime
Analyze the G’ (gyration) tensor, for optical rotation dispersion. Requires a frequency dependent perturbation field, with a frequency (omega) unequal to zero.
beta
Analyze the optical rotation parameter beta. The relation to G’ is beta = -G’/omega. The optical rotation parameter beta is calculated directly [4] and has a well-defined static limit, i.e. omega can be zero or non-zero.
<static|dynamic>
The static or dynamic (frequency dependent) subkeyword should be consistent with what is used in AORESPONSE. Static is default, should be used for a static field. Dynamic should be used for a frequency dependent perturbation field.
<diag|fulltens>
Diag is default, which will only analyze the diagonal of the response tensor. If fulltens is specified the full tensor is analyzed.
Reduction of Orbital Space Extent (ROSE)¶
ROSE (Reduction of Orbital Space Extent) aims at constructing intrinsic fragment orbitals (IFOs) and intrinsic localized molecular orbitals (ILMOs), see Ref. [5] [6]. In Ref. [6] it is explained how to generate a set of re-canonicalized intrinsic localized molecular orbitals (RILMOs). With the external ROSE package (https://gitlab.com/quantum_rose/rose), which has an interface to ADF, one can calculate such localized orbitals. In AMS2025 part of what is implemented in this ROSE package has been implemented inside ADF. In particular, only the so called RILMOs are used inside ADF. Note that the external ROSE package is not distributed by SCM.
The basic idea used in ROSE is to define an intrinsic minimal basis set of polarized orbitals which span the occupied space exactly. The localized orbitals are obtained by operating projections between the molecular orbitals of the full molecule or complex and a minimal basis set of molecular orbitals obtained from fragment calculations. The same procedure is also applied to localize additional ‘hard’ virtuals, see Ref. [6]. These will resemble a set of reference virtuals defined on the fragments, in mathematically exactly the same way as the localized occupied orbitals resemble the occupied reference fragment orbitals. Next these localized molecular orbitals are re-canonicalized within a fragment to form the so called RILMOs. While almost fully localized on individual fragments, RILMOs are delocalized within a fragment. The ROSE localized occupied orbitals and localized ‘hard virtual’ orbitals are not very basis set dependent. The rest of the ROSE virtuals are more basis set dependent. The occupied RILMOs span the occupied space of the supermolecular calculation exactly. ROSE typically truncates the virtual space.
The localized orbitals that ROSE calculates can be used in time-dependent DFT calculations using ADF, see section on exciton transfer integrals with ROSE and Ref. [6].
Next we only discuss the part of ROSE that has been implemented inside ADF. In this implementation spin-orbit coupling can not be used, spin-restricted orbitals should be used, and all electron basis sets should be used.
Suppose a full molecule or complex could be divided into 2 or more fragments. In order to use ROSE one needs to calculate the fragments using SYMMETRY NOSYM, and the fragment nuclear coordinates should match the corresponding coordinates in the full molecule or complex. Next the ADF calculation on the full molecule or complex should also use symmetry NOSYM, and the same basis set should be used as were used in the fragments. Remark: one could also do a fragment calculation with ADF using the fragments that were created, but that is not necessary.
An input that calculates intrinsic orbitals with the ROSE implementation in ADF could look like
AMS_JOBNAME=Frag1 $AMSBIN/ams <<eor
System
atoms
coordinates Frag1
end
end
Task SinglePoint
Engine ADF
basis
...
core None
end
symmetry nosym
...
EndEngine
eor
AMS_JOBNAME=Frag2 $AMSBIN/ams <<eor
System
atoms
coordinates Frag2
end
end
Task SinglePoint
Engine ADF
basis
...
core None
end
symmetry nosym
...
EndEngine
eor
$AMSBIN/ams <<eor
System
atoms
coordinates Frag1
coordinates Frag2
end
end
Task SinglePoint
Engine ADF
basis
...
core None
end
symmetry nosym
ROSE
fragmentfile Frag1.results/adf.rkf
fragmentfile Frag2.results/adf.rkf
End
...
EndEngine
eor
The calculated intrinsic orbitals can be visualized with the AMS-GUI.
The ROSE block key should contain the fragment files. Other keys are optional.
ROSE
Additional_virtuals_cutoff float
Exponent integer
Frag_bias float_list
Frag_threshold float
Frag_valence integer_list
FragmentFile string
Version [Stndrd_2013 | Simple_2013 | Simple_2014]
nfragments integer
End
ROSE
- Type:
Block
- Description:
Options for orbital localization
Additional_virtuals_cutoff
- Type:
Float
- Default value:
2.0
- Unit:
Hartree
- GUI name:
Additional virtuals cutoff
- Description:
Specifies the energy threshold to determine the number of additional hard virtuals to localize for the supermolecule. If not specified the default value is used.
Exponent
- Type:
Integer
- Description:
The value of the exponent (for the default Pipek-Mezey type of localization, the exponent is equal to 2. A higher value of 3 or 4 is sometimes useful.).
Frag_bias
- Type:
Float List
- Description:
Expert key. Specifies the bias applied to each fragment when assigning the localized orbitals to a particular fragment. Use a negative value for default behavior for a given fragment. If not specified, or if the number of items is unequal the number of fragments, a default bias is used.
Frag_threshold
- Type:
Float
- Default value:
10.0
- Unit:
Hartree
- GUI name:
Frag threshold
- Description:
Specifies energy threshold to determine number of reference hard virtuals to use for the fragments (needed to localize the additional hard virtuals). The total number of reference virtuals should be larger than the number of virtual MOs to localize (similar to having more reference valence orbitals than occupied valence orbitals to localize), so it is advisable to use a relatively high value for this parameter. If not specified the default value is used.
Frag_valence
- Type:
Integer List
- Description:
Expert key. Specifies the number of valence orbitals for each fragment. Use a negative value for default behavior for a given fragment. If not specified, or if the number of items is unequal the number of fragments, by default the code generates the valence space for each fragment as the sum of valence orbitals of individual atoms within each fragment.
FragmentFile
- Type:
String
- Recurring:
True
- Description:
Path (either absolute or relative) of each fragment file. The number of fragments used to project on will be number of occurrences of this key.
Version
- Type:
Multiple Choice
- Options:
[Stndrd_2013, Simple_2013, Simple_2014]
- Description:
Specifies version of the IAO generation. If not specified a default value is used.
nfragments
- Type:
Integer
- Default value:
2
- Description:
Expert key, preferably use the FragmentFile key for each fragment instead, and do not use this key. If the FragmentFile key is not used, then with this key one can specify the number of fragments used to project on. If this key is used the fragment file names should be called frag1.rkf, frag2.rkf, etcetera, and should be present at the directory where ams is started.
Natural Bond Orbitals (NBO)¶
See the section on NBO analysis for localized orbitals that are calculated in case of NBO.
References