The WFA module – Automatic analysis of excited-state character

Assigning excited-state character in transition metal complexes is not only tedious work but sometimes it is hard to even make any assignment at all. That is why we were developing methods to assign the excited-state character automatically [1] and [2]. Within this post, I want to present the implementation of these tools within the new WFA module of OpenMolcas, based on the wavefunction analysis library libwfa. The functionality is available in the newest version of OpenMolcas available from GitLab.

The toy model I am looking at for this tutorial is a small model complex originally described in [1]. It is an iridium atom coordinated by three bidentate iminopropene ligands.

Structure of the complex studied in this tutorial.

The computational method is CASSCF(12,9) and I am computing 10 singlets as well as 9 triplet states. You can find the full input file here. The crucial part are the last two modules as printed below

2 10 9
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9

H5FILE $Project.rassi.h5
1 *
2 23 6 16 7 5 15 14 *
3 25 12 22 13 9 20 21 * 
4 11 19 10 18 8 17 24 *

RASSI is run as usual but the keyword TRD1 is added to make sure that the transition density matrices are printed to the HDF5 file, which stores the relevant data. Then I call the new module WFA. First, the HDF5 file to read is specified, which is $Project.rassi.h5 if we are using RASSI. Then I specify CTNUMMODE 3 to tell the program that I am interested in the analysis of transition metal complexes. Finally, I have to define ATLISTS. This is the definition of the fragments used in the analysis. The first index corresponds to the transition metal and in the subsequent lines, the indices of the different ligands are given.

Run OpenMolcas as usual

pymolcas MOLCAS.input > molcas.log

And after this is finished, run

grep '^|' molcas.log

This will produce the following output (shown in abbreviated form here).

| State  dE(eV)  f      MC    LC    MLCT  LMCT  LLCT  
| --------------------------------------------------
| S0-S1   3.905  0.003  0.03  0.05  0.76  0.00  0.13
| S0-S2   3.925  0.081  0.16  0.08  0.63  0.03  0.07
| S0-S3   3.925  0.081  0.16  0.08  0.63  0.03  0.07
| S0-T1   3.239  0.000  0.02  0.52  0.31  0.06  0.06
| S0-T2   3.291  0.000  0.06  0.53  0.26  0.08  0.05
| S0-T3   3.291  0.000  0.06  0.53  0.26  0.08  0.05

What this tells you is that the first singlet state S1 is 76% metal-to-ligand charge transfer (MLCT) character and 13% ligand-to-ligand CT (LLCT). S2 and S3 are also mostly MLCT but also have non-vanishing metal-centered (MC) contributions. The three lowest triplets, on the other hand, are dominated by ligand centered (LC) character and show only secondary MLCT contributions.

The natural transition orbitals NTOs are written to the HDF5 file. To extract them, you can use molpy. To extract all the NTOs (as well as other types of orbitals) make sure that you have the last version of molcas.rassi.h5 in your work directory and run:

penny molcas.rassi.h5 --wfaorbs molden

To see the NTOs that refer to the S0/S1 transition open the file molcas.rassi.S0-S1_NTO.molden. And you will see that the hole NTO is a metal-centered d‑orbital while the particle is an π* on the ligands. This yields overall MLCT character as discussed above.


Thank you to Feng Chen from Loughborough University’s Research Software Engineering program for implementing the new code.

One Reply to “The WFA module – Automatic analysis of excited-state character”

Leave a Reply

Your email address will not be published. Required fields are marked *