Codebase list votca-xtp / debian/1.5-1 manual / theory / dft.tex
debian/1.5-1

Tree @debian/1.5-1 (Download .tar.gz)

dft.tex @debian/1.5-1raw · history · blame

\subsection{DFT-based transfer integrals using DIPRO}
\label{sec:dft}
\index{electronic coupling!DFT}
% While the use of the semiempirical ZINDO method provides an efficient on-the-fly technique to determine electronic coupling elements, it is not generally applicable to all systems. For instance, its predictive capacity with regards to atomic composition and localization behavior of orbitals within more complex structures is reduced. Moreover, transition- or semi-metals are often not even parametrized. In this case, {\it ab-initio} based approaches, e.g., density-functional theory can remedy the situation~\cite{huang_intermolecular_2004,huang_validation_2005,valeev_effect_2006,yin_balanced_2006,yang_theoretical_2007,baumeier_density-functional_2010}. 

The calculation of one electronic coupling element based on DFT using the \dipro method requires the overlap matrix of atomic orbitals $\matr{\mathcal{S}}$, the expansion coefficients for monomer $\vctr{\boldsymbol{\lambda}}_{(k)} = \{ \lambda_\alpha^{(k)}\}$ and dimer orbitals $\vctr{D}_{(n)} = \{ D^{(n)}_{\alpha} \}$, as well as the orbital energies $E_{n}$ of the dimer are required as input. In practical situations, performing self-consistent quantum-chemical calculations for each individual monomer and one for the dimer to obtain this input data is extremely demanding. Several simplifications can be made to reduce the computational effort, such as using non-Counterpoise basis sets for the monomers (thereby decoupling the monomer calculations from the dimer run) and performing only a single SCF step in a dimer calculation starting from an initial guess formed from a superposition of monomer orbitals. This ''noCP+noSCF'' variant of \dipro is shown in \fig{dipro_scheme}(a) and recommended for production runs. 
A detailed comparative study of the different variants can be found in~\cite{baumeier_density-functional_2010}.

The code currently contains supports evaluation of transfer integrals from quantum-chemical calculations performed with the \gaussian, \turbomole, and \nwchem packages. The interfacing procedure consists of three main steps: generation of input files for monomers and dimers, performing the actual quantum-chemical calculations, and calculating the transfer integrals. 

\subsubsection{Monomer calculations}
\label{sec:edft}
First, \slink{sec:segments}{hopping sites} and a \slink{sec:neighborlist}{neighbor list} need to be generated from the atomistic topology and trajectory and written to the \sqlstate file. Then the parallel \calc{edft} \calculator manages the calculation of the monomer properties required for the determination of electronic coupling elements. Specifically, the individual steps it performs are:
%
\begin{enumerate}
\item Creation of a job file containing the list of molecules to be calculated with DFT 
\votcacommand{Writing job file for \calc{edft}}{\xtpparallel \opt \xmloptions \sql \sqlstate \exe \calc{edft} \job \wrt }
\item Running of all jobs in job file 
\votcacommand{Running all \calc{edft} jobs}{\xtpparallel \opt \xmloptions \sql \sqlstate \exe \calc{edft} \job \run }
which includes
\begin{itemize}
\item creating the input files for the DFT calculation (using the package specified in \xmloptions) in the directory 
\begin{verbatim}
OR_FILES/package/frame_F/mol_M
\end{verbatim}
where {\tt F} is the index of the frame in the trajectory, {\tt M} is the index of a molecule in this frame,
\item executing the DFT run, and
\item after completion of this run, parsing the output (number of electrons, basis set, molecular orbital expansion coefficients), and saving it in compressed form to 
\begin{verbatim}
 OR_FILES/molecules/frame_F/molecule_M.orb 
\end{verbatim}
\end{itemize}
\end{enumerate}


\subsubsection{Calculating the transfer integrals}
\label{sec:idft}
After the momomer calculations have been completed successfully, the respective runs for dimers from the neighborlist can be performed using the parallel \calc{idft} \calculator, which manages the DFT runs for the hopping pairs and determines the coupling element using \dipro. Again, several steps are required:
\begin{enumerate}
\item Creation of a job file containing the list of pairs to be calculated with DFT 
\votcacommand{Writing job file for \calc{idft}}{\xtpparallel \opt \xmloptions \sql \sqlstate \exe \calc{idft} \job \wrt }
\item Running of all jobs in job file 
\votcacommand{Running all \calc{idft} jobs}{\xtpparallel \opt \xmloptions \sql \sqlstate \exe \calc{idft} \job \run }
which includes
\begin{itemize}
\item creating the input files (including the merged guess for a noSCF calculation, if requested) for the DFT calculation (using the package specified in \xmloptions) in the directory 
\begin{verbatim}
OR_FILES/package/frame_F/pair_M_N
\end{verbatim}
where {\tt M} and {\tt N} are the indices of the molecules in this pair,
\item executing the DFT run, and
\item after completion of this run, parsing the output (number of electrons, basis set, molecular orbital expansion coefficients and energies, atomic orbital overlap matrix), and saving the pair information in compressed form to
\begin{verbatim}
 OR_FILES/pairs/frame_F/pair_M_N.orb 
\end{verbatim}
\item loading the monomer orbitals from the previously saved {\tt *.orb files}.
\item calculating the coupling elements and write them to the job file
\end{itemize}
\item Reading the coupling elements from the job file and saving them to the \sqlstate file
\votcacommand{Saving \calc{idft} results from job file to \sqlstate}{\xtpparallel \opt \xmloptions \sql \sqlstate \exe \calc{idft} \job \rd }
\end{enumerate}