Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gyrotropic module #160

Merged
merged 38 commits into from
Jan 17, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
6fabea3
started writing gyrotropic
stepats Oct 14, 2017
0000acc
some further changes
stepats Oct 15, 2017
2701328
wrote the parameters read. Need to write the NOA calc, and tests and …
stepats Oct 15, 2017
b0892b5
added the "gyrotropic.F90" file
stepats Oct 16, 2017
b19bc3f
improved the gyrotropic parameters read, almost wrote the NOA
stepats Oct 17, 2017
6da96b4
basically written the gyrotropic midule. it compiles at least
Oct 17, 2017
5d69d0b
fixed some bugs, but still not always workig
stepats Oct 18, 2017
bf73c89
fixed a bug in wan_ham
stepan-tsirkin Oct 18, 2017
23335fe
splitted long lines in gyrotropic.f90
stepan-tsirkin Oct 18, 2017
894f385
dded a n input variable "uHu_formatted (equivalent of
stepats Oct 19, 2017
fa3a962
fixed an io_error line
stepats Oct 19, 2017
7ca6505
fixed bugs in the gyrotropic module
stepats Oct 19, 2017
58cc7ec
Merge branch 'develop' into gyrotropic
stepan-tsirkin Oct 19, 2017
2720fed
few lines in parameters
stepats Oct 20, 2017
ad25bad
Merge branch 'gyrotropic' of https://github.com/stepan-tsirkin/wannie…
stepats Oct 20, 2017
4504449
wrote a first shot on the user guide
stepan-tsirkin Nov 8, 2017
39bdf20
Merge branch 'gyrotropic' of https://github.com/stepan-tsirkin/wannie…
stepan-tsirkin Nov 8, 2017
63f89d7
Please enter the commi mple for gyrotropic
stepats Nov 10, 2017
fb97708
Merge pull request #1 from wannier-developers/develop
stepan-tsirkin Dec 28, 2017
7acce73
dos2unix on berry.F90
stepan-tsirkin Dec 28, 2017
67e5baa
took features from the develop branch for wan_ham
stepan-tsirkin Dec 28, 2017
cb16135
Merge branch 'develop' into gyrotropic+dev
stepan-tsirkin Dec 28, 2017
bf8c4cf
finelly resolved conflicts in merged with developers
stepan-tsirkin Dec 28, 2017
ad4d617
added bands to the referencey
stepats Dec 29, 2017
a84825a
improvement in documentation and tutorial
stepan-tsirkin Jan 2, 2018
a349f90
change of parameters in example24
stepan-tsirkin Jan 3, 2018
e585a45
ithe example reference added
stepats Jan 3, 2018
985d7d8
small changes in the tutorial
stepan-tsirkin Jan 3, 2018
4d2c18c
some cleaning
stepan-tsirkin Jan 3, 2018
38649df
removed old example
stepan-tsirkin Jan 3, 2018
4733af4
removed a wrong line
stepan-tsirkin Jan 3, 2018
7da870c
removed a rubbish folder
stepan-tsirkin Jan 3, 2018
381d0d8
fixed a bug on line 874
stepan-tsirkin Jan 17, 2018
2913d70
added a test example for gyrotropic module
stepats Jan 17, 2018
35ebcaa
Merge branch 'gyrotropic' of https://github.com/stepan-tsirkin/wannie…
stepats Jan 17, 2018
8a10ef7
small changes in the gyrotropic test script
stepats Jan 17, 2018
e150d27
fixed the Makefile.2 (added dependency of gyrotropic.o on berry.o
stepats Jan 17, 2018
d7b5df0
Merge branch 'develop' into gyrotropic
jryates Jan 17, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 115 additions & 0 deletions doc/tutorial/tutorial.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2578,6 +2578,121 @@ \subsection*{Further ideas}
%\cleardoublepage


\sectiontitle{24: Tellurium -- gyrotropic effects}


\begin{itemize}
\item{Outline: {\it Calculate the gyrotropic effects in trigonal right-handed Te} Similar to the calculations of \cite{tsirkin-arxiv17}}
\item{Directory: {\tt examples/example24/}}
\item{Input files}
\begin{itemize}
\item{ {\tt Te.scf} {\it The \pwscf\ input file for ground state
calculation}}
\item{ {\tt Te.nscf} {\it The \pwscf\ input file to obtain Bloch
states on a uniform grid}}
\item{ {\tt Te.pw2wan} {\it The input file for {\tt pw2wannier90}}}
\item{ {\tt Te.win} {\it The {\tt wannier90} input
file}}
\end{itemize}
\end{itemize}

To make things easy, the example treats Te without spin-orbit


One may skip steps 1-4, by copying the files {\tt Te.eig, Te.mmn, Te.amn, Te.uHu}
from the directory {\tt examples/example24/wan\_files}. However, this steps are needed
to perform a calculation on a denser grid, or include spin-orbit coupling.

\begin{enumerate}
\item Run \pwscf\ to obtain the ground state of tellurium\\
{\tt pw.x < Te.scf > scf.out}

\item Run \pwscf\ to obtain the Bloch states on a uniform {\tt 3x3x4} k-point
grid\\
{\tt pw.x < Te.nscf > nscf.out}

\item Run \wannier\ to generate a list of the required overlaps (written
into the {\tt Te.nnkp} file).\\
{\tt wannier90.x -pp Te}

\item Run {\tt pw2wannier90} to compute:
\begin{itemize}

\item[{\bf --}] The overlaps $\langle u_{n{\bf k}}\vert u_{m{\bf k}+{\bf
b}}\rangle$ (written in the {\tt Te.mmn} file)

\item[{\bf --}] The projections for the starting guess (written in the {\tt
Te.amn} file)

\item[{\bf --}] The matrix elements $\langle u_{n{\bf k}+{\bf b}_1}\vert
H_{\bf k}\vert u_{m{\bf k}+{\bf b}_2}\rangle$ (written in the
{\tt Te.uHu} file)

\item[{\bf --}] The spin matrix elements $\langle \psi_{n{\bf
k}}\vert \sigma_i\vert \psi_{m{\bf k}}\rangle$ (would be written in the
{\tt Te.spn} file, but only if spin-orbit is included, which is not the case for the present example)

\end{itemize}
{\tt pw2wannier90.x < Te.pw2wan > pw2wan.out}

\item Run \wannier\ to compute the MLWFs.\\
{\tt wannier90.x Te}

\item Add the following lines to the {\tt wannier90.win} file:\\
{\tt gyrotropic=true \\
gyrotropic\_task=-C-dos-D0-Dw-K \\
fermi\_energy\_step=0.0025\\
fermi\_energy\_min=5.8\\
fermi\_energy\_max=6.2\\
gyrotropic\_freq\_step=0.0025\\
gyrotropic\_freq\_min=0.0\\
gyrotropic\_freq\_max=0.1\\
gyrotropic\_smr\_fixed\_en\_width=0.01\\
gyrotropic\_smr\_max\_arg=5\\
gyrotropic\_degen\_thresh=0.001\\
gyrotropic\_box\_b1=0.2 0.0 0.0\\
gyrotropic\_box\_b2=0.0 0.2 0.0\\
gyrotropic\_box\_b3=0.0 0.0 0.2\\
gyrotropic\_box\_center=0.33333 0.33333 0.5\\
gyrotropic\_kmesh=50 50 50
}



\item Run \postw\ \\to compute the gyrotropic properties: tensors $D$, $\widetilde{D}$, $K$, $C$ (See the User Guide):.\\
{\tt postw90.x Te} (serial execution)\\
{\tt mpirun -np 8 postw90.x Te} (example of parallel execution with
8 MPI processes) \\


The integraton in the $k$-space is limited to a small area around the H point. Thus it is valid only for Fermi levels near the band gap.
And one needs to multiply the results by 2, to account forthe H' point. To integrate over the entire Brillouin zone, one needs to remove the
{\tt gyrotropic\_box\_$\ldots$} parameters

\item Now change the above lines to \\ {\tt
gyrotropic=true\\
gyrotropic\_task=-NOA\\
fermi\_energy=5.95\\
gyrotropic\_freq\_step=0.0025\\
gyrotropic\_freq\_min=0.0\\
gyrotropic\_freq\_max=0.3\\
gyrotropic\_smr\_fixed\_en\_width=0.01\\
gyrotropic\_smr\_max\_arg=5\\
gyrotropic\_band\_list=4-9\\
gyrotropic\_kmesh=50 50 50\\
}

and compute the interband natural optical activity\\

{\tt postw90.x Te} (serial execution)\\
{\tt mpirun -np 8 postw90.x Te} (example of parallel execution with
8 MPI processes) \\


\end{enumerate}



\bibliographystyle{apsrev4-1}
\bibliography{../wannier90}

Expand Down
1 change: 1 addition & 0 deletions doc/user_guide/berry.tex
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ \section{Background: Berry connection and curvature}
\begin{equation}
{\bf A}_{nm}({\bf k})=\langle u_{n{\bf k}}\vert i\bm{\nabla}_{\bf k}\vert
u_{m{\bf k}}\rangle={\bf A}_{mn}^*({\bf k}),
\label{eq:berry-connection-matrix}
\end{equation}
%
and write the curvature as an antisymmetric tensor,
Expand Down
159 changes: 159 additions & 0 deletions doc/user_guide/gyrotropic.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
\chapter{Overview of the {\tt gyrotropic} module \label{ch:gyrotropic}}


The {\tt gyrotropic} module of {\tt postw90} is called by setting {\tt
gyrotropic = true} and choosing one or more of the available options for
{\tt gyrotropic\_task}. The module computes the quantities, studied in
\cite{tsirkin-arxiv17}, where more details may be found.

\section{{\tt berry\_task=-d0}: the Berry curvature dipole }

The traceless dimensionless tensor
\begin{equation}
\label{eq:D_ab}
D_{ab}=\int\dk\sum_n
\frac{\partial E_n}{\partial{k_a}}
\Omega_n^b
\left(-\frac{\partial f_0}{\partial E}\right)_{E=E_n},
\end{equation}


\section{{\tt berry\_task=-dw}: the finite-frequency generalization of the Berry curvature dipole }

\begin{equation}
\label{eq:D-tilde}
\widetilde{D}_{ab}(\ww)=\int\dk\sum_n
\frac{\partial E_n}{\partial{k_a}}\widetilde\Omega^b_n(\ww)
\left(-\frac{\partial f_0}{\partial E}\right)_{E=E_n},
\end{equation}

where $\widetilde{\bm\Omega}_{\kk n}(\ww)$ is a finite-frequency
generalization of the Berry curvature:
%
%
\begin{equation}
\label{eq:curv-w}
\widetilde{\bm\Omega}_{\kk n}(\ww)=-
\sum_m\,\frac{\ww^2_{\kk mn}}{\ww^2_{\kk mn}-\ww^2}
\im\left({\bm A}_{\kk nm}\times{\bm A}_{\kk mn}\right)
\end{equation}
Contrary to the Berry
curvature, the divergence of $\tilde{\bm\Omega}_{\kk n}(\ww)$ is
generally nonzero. As a result, $\wt D(\ww)$
can have a nonzero trace at finite frequencies, $\tilde{D}_\|\neq-2\tilde{D}_\perp$ in Te.

\section{{\tt berry\_task=-C}: the ohmic conductivity }

In the constant relaxation-time
approximation the ohmic conductivity is expressed as
$\sigma_{ab}=(2\pi e\tau/\hbar)C_{ab}$, with
%
\beq
\label{eq:C_ab}
C_{ab}=\frac{e}{h}\int\dk\sum_n\,
\frac{\partial E_n}{\partial{k_a}} \frac{\partial E_n}{\partial{k_b}}
\left(-\frac{\partial f_0}{\partial E}\right)_{E=E_n}
\eeq
a positive quantity with
units of surface current density (A/cm).


\section{{\tt berry\_task=-K}: the kinetic magnetoelectric effect (kME) }

A microscopic theory of the intrinsic kME effect in bulk crystals was
recently developed~\cite{yoda-sr15,zhong-prl16}.

The response is described by
\beq
\label{eq:K_ab}
K_{ab}=\int\dk\sum_n\frac{\partial E_n}{\partial{k_a}} m_n^b
\left(-\frac{\partial f_0}{\partial E}\right)_{E=E_n},
\eeq
%
which has the same form as \eq{D_ab}, but with the Berry
curvature replaced by the intrinsic magnetic moment ${\bm m}_{\kk n}$
of the Bloch electrons, which has the spin and orbital components
given by~\cite{xiao-rmp10}
%
\bea
\label{eq:m-spin}
m^{\rm spin}_{\kk n}&=&-\frac{1}{2}g_s\mu_{\rm B} \me{\psi_{\kk
n}}{\bf \sigma}{\psi_{\kk n}}\\
\label{eq:m-orb}
{\bm m}^{\rm orb}_{\kk n}&=&\frac{e}{2\hbar}\im
\bra{{\bm\partial}_\kk u_{\kk n}}\times
(H_\kk-E_{\kk n})\ket{{\bm\partial}_\kk u_{\kk n}},
\eea
%
where $g_s\approx 2$ and we chose $e>0$.

\section{{\tt berry\_task=-dos}: the density of states }

The density of states is calculated with the same width and type of smearing, as the other properties of the {\tt gyrotropic} module

\section{{\tt berry\_task=-noa}: the interband contributionto the natural optical activity }

Natural optical rotatory power is given by \cite{ivchenko-spss75}
%
\beq
\label{eq:rho-c}
\rho_0(\ww)=\frac{\ww^2}{2c^2}\re\,\gamma_{xyz}(\ww).
\eeq
%
for light propagating ling the main symmetry axis of a crystal $z$. Here $\gamma_{xyz}(\ww)$
is an anti-symmetric (in $xy$) tensor with units of length, which has both inter- and intraband contributions.

Following Ref.~\cite{malashevich-prb10} for the interband contribution we writewe write,
with $\partial_c\equiv\partial/\partial k_c$,
%
\begin{multline}
\re\,\gamma_{abc}^{\mathrm{inter}}(\ww)=\frac{e^2}{\varepsilon_0\hbar^2}
\int[d\kk]
\sum_{n,l}^{o,e}\,
\Bigl[ \frac{1}{\ww_{ln}^2-\ww^2}
\re\left(A_{ln}^bB_{nl}^{ac}-A_{ln}^aB_{nl}^{bc}\right) \\
-\frac{3\ww_{ln}^2-\ww^2}{(\ww_{ln}^2-\ww^2)^2}
\partial_c(E_l+E_n)\im\left(A_{nl}^aA_{ln}^b\right)
\Bigr].
\label{eq:gamma-inter}
\end{multline}
%
The summations over $n$ and $l$ span the occupied ($o$) and empty
($e$) bands respectively, $\ww_{ln}=(E_l-E_n)/\hbar$,
and ${\bm A}_{ln}(\kk)$ is given by (\ref{eq:berry-connection-matrix}) Finally, the matrix
$B_{nl}^{ac}$ has both orbital and spin contributions given by
%
\beq
\label{eq:B-ac-orb}
B_{nl}^{ac\,({\rm orb})}=
\bra{u_n}(\partial_aH)\ket{\partial_c u_l}
-\bra{\partial_c u_n}(\partial_aH)\ket{u_l}
\eeq
%
and
%
\beq
\label{eq:B-ac-spin}
B_{nl}^{ac\,({\rm spin})}=-\frac{i\hbar^2}{m_e}\epsilon_{abc}
\bra{u_n}\sigma_b\ket{u_l}.
\eeq
%
The spin matrix elements contribute less than 0.5\% of the total
$\rho_0^{\rm inter}$ of Te. Expanding
$H=\sum_m \ket{u_m} E_m \bra{u_m}$ we obtain for the orbital matrix
elements
\beq
B_{nl}^{ac\,({\rm orb})}=-i\partial_a(E_n+E_l)A_{nl}^c \sum_m \Bigl\{ (E_n-E_m) A_{nm}^aA_{ml}^c -(E_l-E_m) A_{nm}^cA_{ml}^a \Bigr\}.
\label{eq:Bnl-sum}
\eeq
%
This reduces the calculation of $B^{\text{(orb)}}$ to the evaluation
of band gradients and off-diagonal elements of the Berry connection
matrix. Both operations can be carried out efficiently in a
Wannier-function basis following Ref.~\cite{yates-prb07}.


\section{{\tt berry\_task=-spin}: compute also the spin component of NOA and KME }

Unless this task is specified, only the orbital contributions are calcuated in NOA and KME, thus contributions from \eqs{m-spin}{B-ac-spin} are omitted.

Loading