The following table summarizes the supported program systems and methods. There are three different levels of support:
In the case of TDDFT, "Exact" is used for cases where the whole X or X + Y vector is parsed.
Use the rtype keyword in dens_ana.in to specify the respective method.
| Program | Method | Trans. dens. mat. | State. dens. mat. | rtype |
|---|---|---|---|---|
| Q-Chem | ADC | Integrated | Integrated | qcadc |
| Q-Chem | TDDFT | Integrated | Integrated | qctddft |
| libwfa | generic output | Integrated | Integrated | libwfa |
| Columbus | MCSCF | Exact | Exact | colmcscf / nos |
| Columbus | MR-CI | Exact | Exact | colmrci / nos |
| Molcas | RASSCF | Integrated | Integrated | rassi / nos |
| Turbomole | CC2 | Approximate | None | ricc2 |
| Turbomole | TDDFT | Exact | None | escf |
| Terachem | TDDFT | Approximate | Approximate | terachem / nos |
| Any | Nat. orb. | None | Exact | nos |
| Orca | TDDFT | Exact | None | cclib |
| Gaussian | TDDFT | Approximate | None | cclib |
| Firefly | TDDFT | Approximate | None | cclib |
| ADF | TDDFT | Exact | None | adf |
| DFTB+ | TDDFTB | Exact | None | tddftb |
In general, TheoDORE needs two types of information: density matrices and MO coefficients. This page contains specific information about how to obtain this information from the different quantum chemistry programs.
The ADCMAN module of Q-Chem is already interfaced to the wavefunction analysis library libwfa. Therefore, most analysis steps can be performed within Q-Chem. The main purpose of TheoDORE is to enable plotting of electron-hole correlation plots. Futhermore, specific analysis descriptors can be parsed and put into a convenient table.
To run the libwfa analysis set in the input file:
state_analysis true
adc_print 3
The CIS/TDDFT module of Q-Chem is directly interfaced to the wavefunction analysis library libwfa (see DOI: 10.1063/1.4935178 for more details). Most analysis steps are performed within Q-Chem and the main purpose of TheoDORE is to enable plotting of electron-hole correlation plots.
To run the libwfa analysis set in the input file:
state_analysis true
Alternatively, the standard output can be parsed. To do this set read_libwfa=False in dens_ana.in. In this case, the X vector is parsed and interpreted as the 1TDM while the Y vector is ignored. The following non-standard options have to be set in the input file:
cis_ampl_print 1
print_orbitals 5000
molden_format true
The first one assures that enough amplitudes are printed for a meaningful semi-quantitative analysis. The second and third cause the print-out of all orbitals in Molden format, written to the end of the standard output file. This Molden file has to be extracted and copied to a new file qchem.mld.
Per default RPA vectors are parsed. If you are interested in TDA vectors, specify
TDA=True
in dens_ana.in.
It is also possible to parse formatted checkpoint (fchk) files generated using the
state_analysis true
option. In this case, TheoDORE can read the transition density matrices and do the full analysis.
It is also possible to parse generic libwfa output by using the libwfa keyword.
MCSCF transition density matrices are written by the program mcscf.x. To compute these, it is either possible to compute non-adiabatic coupling vectors or to use the shortcut of creating an mcdenin file. This file has the same structure as the transmomin file, e.g.
MCSCF
1 2 1 1
1 3 1 1
1 4 1 1
1 5 1 1
1 6 1 1
will compute all transition moments between the 1st and the 2nd through 6th states in DRT 1.
After the computation call write_den.bash to convert the binary files into a form that can be read by TheoDORE. For this purpose the $COLUMBUS variable has to be set.
State density matrix analysis is possible when the computation of dipole moments was requested. In this case it is possible to use the above procedure or to simply analyze the NO coefficient files in the MOLDEN directory.
The MR-CI transition density analysis works in the case that transition moments were requested in the job control stage. After this it is assumed that LISTINGS/trncils.... files with the transition density matrices are available. Frozen core orbitals have to be specified explicitly in the input file to get correct results. To specify, for example, four frozen orbitals of a symmetry and three of b use:
ncore={'a':4, 'b':3}
In addition, the MO-coefficients of the preceeding MCSCF calculation have to be made available, typically in MOLDEN/molden_mo_mc.sp.
For a state density analysis at the MR-CI level, the NO files should be read in rather than using the colmrci functionality. Alternatively, an attachment/detachment analysis can be done with the densav.x (www.univie.ac.at) functionality of COLUMBUS.
The prefered way to use Molcas is through the libwfa library, which is available through OpenMolcas. In this way it is possible to analyze RASSCF and MS-CASPT2 computatoins.
First, run Molcas using the &WFA module
&RASSI
TRD1
&WFA
h5file = $Project.rassi.h5
and copy back the *.om files. In theoinp specify "y" for
Did you use &WFA? (read_libwfa):
Choice (y/n): [y]
and proceed as usual.
It is also possible to parse Molcas RASSI output but this only works for singlet states.
In the case of Molcas, the output of the RASSI program is parsed. This gives access to RASSCF density and transition density matrices, so far without explicit point group symmetry. Note: The output is only parsed correctly if all states in the RASSI computation derive from the same RASSCF computation and if the specified Molden file derives from this calculation.
First run a RASSCF + RASSI job with the (undocumented) TRD1 keyword:
&RASSI
TRD1
Then copy the transition densities to a directory TRD:
mkdir TRD && cp $WorkDir/TRD2* TRD
Alternatively, a state density matrix analysis can be performed by using the natural orbitals created by Molcas. However, for an analysis of unpaired electrons the NOs have to be changed from spin-orbitals to spatial orbitals.
For an MS-CASPT2 calculation, the following input sections can be used
&CASPT2
multistate = 4 1 2 3 4
imag = 0.3
>> SAVE $Project.JobMix JOB001
&RASSI
NROFJOBIPHS
1 4
1 2 3 4
CIPR
TRD1
This will yield density matrices mixed according to the MS-CASPT2 calculation, which can in turn be analyzed by TheoDORE.
Unfortunately, it is not possible to use the EJOB keyword in connection with this procedure. Therefore, the energies and oscillator strengths given are not consistent!
If you have the binary CCRE0* files, written by Turbomole, available, then choose the option
read_binary=True
in dens_ana.in. Use tm2molden without further options to create the MO file. For printing the NTOs, it is not possible to use jmol_orbitals in this case, but only molden_orbitals.
Alternatively, approximate transition density matrices can be read directly from the standard output of ricc2. The MO file is again created with tm2molden. However, it is important that also the frozen orbitals are contained in the MO file. This can be achieved by running the following commands:
#!/bin/bash
sed -i "/implicit core/d" control
echo -e "\n\n"|tm2molden
In the TDDFT case, the sing_a or trip_a files are parsed and interpreted as 1TDMs. Unfortunately, this analysis only works if no explicit symmetry is chosen in the initial job setup.
MO-coefficients have to be supplied by tm2molden.
For a trans. dens. mat. analysis, the CI vectors are read from standard output and the MO coefficients from a Molden file produced by Terachem. To print more CI vector elements, use
cisprintthresh 0.01
A state/difference density matrix analysis is possible by using the NO files produced when using
cisnos yes
NO files can be parsed directly using either analyze_sden.py or analyze_NOs.py. In this case it is important that one reference file is given, which contains the full, invertible MO-matrix.
TheoDORE assumes that the NO files are given with respect to spatial orbitals (occupation between 0 and 2). If spin NOs are given, then the analysis of unpaired electrons will not give suitable results.
Starting in TheoDORE 2.0.1, the preferred version of parsing ORCA TDDFT jobs uses a Molden format file and the orca.cis file.
orca.gbw and orca.cis filesorca.cis is hardcoded in TheoDOREorca_2mkl orca -molden13 atType of job (rtype):
...
[12] cclib - Use external cclib library: Gaussian, GAMESS, ...
[13] orca - ORCA TDDFT (using a Molden file and cclib)
...
Choice: 13
Alternatively, ORCA can be parsed entirely with the cclib library. If you want to do that, set the following output options:
%output
PrintLevel Normal
Print[ P_MOs ] 1
Print[ P_Overlap ] 1
end
It is recommended also in this case to read the CI-vectors from the binary file orca.cis rather than from standard output. To do this, set
read_binary=True
In the case of TDA both options work, for RPA read_binary=True has to be used.
Gaussian is parsed with the cclib library. Set the pop=full iop(9/40=3) option to increase the number of CI vector elements printed. Use GFINPUT to print the basis functions and iop(3/33=4) to get the overlap matrix.
Example input:
#p PBEPBE/6-31G* td=(singlets, nstates=10) pop=full iop(9/40=3) GFINPUT
For some applications, in particular in connection with ORBKIT, it is advisable to supply an externally generated molden file with orbital information. For this purpose, open the Gaussian-log file in Molden. Choose "Write - Molden Format" and save as orbs.mld. Then specify this file in dens_ana.in:
mo_file=orbs.mld
Firefly has been succesfully interfaced with TheoDORE, see EXAMPLES/SnH4-ecp.firefly (sourceforge.net). Firefly output is parsed with the cclib library.
In the new ADF interface all information is read from the binary TAPE21 file. Use the rfile option to point to this file.
To run the analysis, you need to activate the ADF scripts and license, e.g.
. ~/adfrc.sh
export SCMLICENSE=/usr/license/adf/licenses/license.txt
export PYTHONPATH=$PYTHONPATH:/usr/license/adf/adf2016.101/scripting
The interface analyzes the eigenvectors of the reduced dimensional problem as printed out by ADF. Note, that these are only normalized in the case of the Tamm-Dancoff approximation.
It is not possible to visualize NTOs using the TheoDORE/ADF interface since Slater type orbitals, as employed by ADF, are not supported. It is, however, possible to compute NTOs within ADF itself.
The atom-numbering for at_lists pertains to the original ordering in the input file rather than the internal ordering used by ADF.
An interface to DFTB+ was written by Ljiljana Stojanovic. This interface currently reads the following files:
In principle all third party programs, which are parsed by the cclib library can be used. These are: ADF, Firefly, GAMESS, Gaussian, Jaguar, Molpro, ORCA. But not all of these have been tested by the developers and it may be necessary to set some additional program specific options. Please report, if you did so successfully.
To quickly check whether a logfile can be parsed by cclib, simply type:
cc_check.py <logfile>
Wiki: Home
Wiki: Input
Wiki: Keywords
Wiki: News
Wiki: Quick start