地域密着型エリア広告配信リクルートの地域密着型広告ドコイク?アドネットワーク Ads by ドコイク?[無料でホームページを作成] [通報・削除依頼]
[無料でホームページを作成] [通報・削除依頼]

Elk

  ここではElkを用いて状態密度分布やバンド図、吸収スペクトルを描く方法を解説する。
------------------------------------------------------------------------------
Elk: http://elk.sourceforge.net/
dowonload: http://sourceforge.net/projects/elk/files/
Tutorial: http://elk.sourceforge.net/cecam.html
■ Discussion: http://sourceforge.net/p/elk/discussion/search/?q=mpirun&project=0 
■ Forum: http://sourceforge.net/p/elk/discussion/ 
  -> Elk Users: http://sourceforge.net/p/elk/discussion/897820/
Theroy: http://www2.mpi-halle.mpg.de/theory_department/research/elk_code_development/
Information: http://elk.sourceforge.net/CECAM/Dewhurst-Elk.pdf
References:
[1] http://www.ims.tsukuba.ac.jp/~diffraction_lab/news/2011_poster.pdf
[2] http://arxiv.org/pdf/1402.5755v1.pdf
[3] http://journals.aps.org/prb/pdf/10.1103/PhysRevB.84.132405http://arxiv.org/pdf/1107.0887v2.pdf, http://escholarship.org/uc/item/6k33p9br#page-6
[4] http://journals.aps.org/prl/pdf/10.1103/PhysRevLett.107.216402
[5] http://journals.aps.org/prl/pdf/10.1103/PhysRevLett.107.186401
[6] http://iopscience.iop.org/1367-2630/14/5/053052/pdf/1367-2630_14_5_053052.pdf
elk*/docs
  Brillouin_zones.pdf, spacegroup.pdf, elk.pdf
------------------------------------------------------------------------------
特徴

利点
・ FP-LAPW法であるので擬ポテンシャルよりも精度が高い計算方法である。
・ Abinit と 入力ファイルの形式が似ている。examplesファイルが豊富に揃っているので計算も比較的容易。
 非常に簡単に入力ファイルを作れるようになっている。一方、excit!ngはチュートリアルが豊富であるが初学者には難しい。
・ 無償のコードであるため企業で導入させやすい(Abinitも無償である)。
・ Abinitは擬ポテンシャルを用いているので計算負荷が軽くスーパーセルでの計算に適している。しかし、計算が上手くいっているかを検証するために、他のコードで比較することが良い。例えば、それにelkの結果を用いるなども良いだろう。
・ 原子座標から空間群を自動認識してくれる。どの対称性で認識されたかは、INFO.OUTでの Number of Bravais Lattice symmetries : 対称操作の個数(=Point group Ord.) と Number of crystal symmetries に記載されている。
・BSEが計算できる(古いヴァージョンの方が良いらしい){東大生産研の溝口先生などが試されている)

欠点
・ 無償のコードなので、大きな系で計算できるかどうかという不安がある。WIEN2kであれば、3x3x3のスーパーセルで計算できることは私も確認しているが、elkで可能かはまだ検証していない(情報を求めています)。
・ ユーザー数がVASPやWIEN2kほど多くないので情報を得るのが難しい(このHP以外で解説しているHPがあれば教えてください)。
・ 理論ではなく、計算する方法について詳細に述べられたチュートリアルがあまりない(情報を求めています)。

※ 私のPCでは1日程度でフォノンが計算できなかった。2x2x2のスーパーセルの計算も1日では終わらない。スーパーセルでの計算はAbinitやPWscfが良いだろう。スーパーセルを用いてk-edgeの吸収構造を計算するにはPWscfがオススメとなる。TiO2などでの吸収スペクトルはelkでも良いかもしれない。
------------------------------------------------------------------------------
■ OpenMPI (Intel Fortran) (OpenMPIを自分でコンパイルする場合)
□ インストール
1) http://www.open-mpi.org/ 
2) tar zxvf openmpi-1.4.5.tar.gz
3) cd openmpi-1.4.5
4) コンパイラにより下記のように設定
./configure -prefix=/usr/local/openmpi CXX=icpc CC=icc FC=ifort F90=ifort F77=ifort
5) make
6) su
7) make all install
□ 環境設定 ( .bashrc in home and root directory )
# OpenMPI environmental setting
export MPIROOT=/usr/local/openmpi
export PATH=$MPIROOT/bin:$PATH
export LD_LIBRARY_PATH=$MPIROOT/lib:$LD_LIBRARY_PATH
export MANPATH=$MPIROOT/share/man:$MANPATH
------------------------------------------------------------------------------
■ OpenMPI (gfortran) (OpenMPIを自分でコンパイルする場合)
□ インストール
1) http://www.open-mpi.org/
2) tar zxvf openmpi-1.4.5.tar.gz
3) cd openmpi-1.4.5
4) コンパイラにより下記のように設定
./configure -prefix=/usr/local/gnu/openmpi CXX=icpc CC=icc FC=gfortran F90=gfortran F77=gfortran
5) make
6) su
7) make all install
□ 環境設定 ( .bashrc in home and root directory )
# OpenMPI environmental setting
export MPIROOT=/usr/local/gnu/openmpi
export PATH=$MPIROOT/bin:$PATH
export LD_LIBRARY_PATH=$MPIROOT/lib:$LD_LIBRARY_PATH
export MANPATH=$MPIROOT/share/man:$MANPATH
------------------------------------------------------------------------------
■ libxc
CentOS 6.4 (Final), i7-2700K
libxc-2.2.0
1) tar zxvf libxc-2.2.0
2) ./condifure
3) make
4) su
5) make install
Libraries have been installed in: /opt/etsf/lib
------------------------------------------------------------------------------
Install
CentOS 6.4 (Final)
Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
Memory 31.1 GiB
( make all -> ./setup -> make clean -> make all)
-----
◆ gfortran  + OpenMP
1. dowonload: http://sourceforge.net/projects/elk/files/
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 2
6. make all
7. export OMP_NUM_THREADS=4
8. make test
CPU time: 20:08:26 - 20:12:49 = 04:23 s (i7-920)
-----
◆ gfortran  + OpenMP + OpenMPI
1. dowonload: http://sourceforge.net/projects/elk/files/
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 2
6. gedit make.inc
  #SRC_MPI = mpi_stub.f90
  F90 = mpif90
  F77 = mpif90
  SRC_MPI =
7. make all
8. export OMP_NUM_THREADS=4
9. gedit tests/tests.sh
10. make test

export OMP_NUM_THREADS=1
mpirun -np 4 $HOME/elk-2.3.22/src/elk
-----
◆ gfortran  + OpenMP + OpenMPI
1. dowonload: http://sourceforge.net/projects/elk/files/
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 2
6. gedit make.inc
  #F90_OPTS = -O3 -ffast-math -funroll-loops -fopenmp
  #F90_OPTS = -O3 -ffast-math -funroll-loops -march=native -ftree-vectorize -fopenmp
  F90_OPTS = -O3 -ffast-math -funroll-loops -fopenmp -mtune=native -march=native -m64
  #F77_OPTS = -O3 -ffast-math -funroll-loops -fopenmp
  #F77_OPTS = -O3 -ffast-math -funroll-loops -march=native -ftree-vectorize -fopenmp
  F77_OPTS = -O3 -ffast-math -funroll-loops -fopenmp -mtune=native -march=native -m64
  #SRC_MPI = mpi_stub.f90
  F90 = mpif90
  F77 = mpif90
  SRC_MPI =
7. make all
8. export OMP_NUM_THREADS=4
9. gedit tests/tests.sh
10. make test
CPU time: 4m24 s (i7-920)
CPU time: 2m33 s (i7-3820)
Fe2VAl(TDDFT-LRC): 3:49 s (i7-3820)

export OMP_NUM_THREADS=1
mpirun -np 4 $HOME/elk-2.3.22/src/elk
-----
◆ gfortran  + OpenMP + OpenMPI + LAPACK(Netlib)

OS: CentOS 6.4 case
su
yum install gcc-gfortran.x86_64
yum install netcdf
yum install netcdf-devel
yum install atlas
yum install atlas-devel
yum install atlas-sse3
yum install atlas-sse3-devel
yum install fftw3
yum install fftw3-devel
yum install openmpi
yum install openmpi-devel
yum install mpich2
yum install mpich2-devel
yum install libxc
yum install libxc-devel
yum install patch
yum install blas
yum install blas-devel
yum install lapack
yum install lapack-devel


OS: Ubuntu 12.04 case
sudo apt-get -y install gcc g++ gfortran
sudo apt-get -y install patch
sudo apt-get -y install libnetcdf-dev
sudo apt-get -y install fftw3 libfftw3-dev
sudo apt-get -y install libatlas-base-dev  libatlas3gf-base
sudo apt-get -y install liblapack3gf liblapack-dev
sudo apt-get -y install libblas3gf libblas-dev
sudo apt-get -y install openmpi-bin openmpi-common libopenmpi-dev

1. dowonload: http://sourceforge.net/projects/elk/files/
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 2
6. gedit make.inc
 MAKE = make
 F90 = mpif90
# F90_OPTS = -O3 -ffast-math -funroll-loops -fopenmp
 F90_OPTS = -O3 -pipe -ffast-math -funroll-loops -fopenmp -mtune=native -march=native -m64
 F77 = mpif90
# F77_OPTS = -O3 -ffast-math -funroll-loops -fopenmp
 F77_OPTS = -O3 -pipe -ffast-math -funroll-loops -fopenmp -mtune=native -march=native -m64
 AR = ar
 LIB_SYS =
 LIB_LPK = -L/usr/lib64 -lblas -llapack -fopenmp
# LIB_LPK = -L/usr/lib -lblas -llapack -L/usr/lib -fopenmp #Ubuntu12.04
 SRC_MPI =
# LIB_libxc = libxcf90.a libxc.a
 LIB_FFT = fftlib.a
# SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90
 SRC_libxc = libxcifc_stub.f90
 SRC_FFT = zfftifc.f90
7. make all
8. export OMP_NUM_THREADS=4
9. gedit tests/tests.sh
10. make test

export OMP_NUM_THREADS=1
mpirun -np 4 $HOME/elk-2.3.22/src/elk
examples, Al, INFO.OUT, total:
-----
◆ gfortran  + OpenMP + OpenMPI + LAPACK(Netlib) + FFTW(Netlib)

OS: CentOS 6.4 case
su
yum install gcc-gfortran.x86_64
yum install netcdf
yum install netcdf-devel
yum install atlas
yum install atlas-devel
yum install atlas-sse3
yum install atlas-sse3-devel
yum install fftw3
yum install fftw3-devel
yum install openmpi
yum install openmpi-devel
yum install mpich2
yum install mpich2-devel
yum install libxc
yum install libxc-devel
yum install patch
yum install blas
yum install blas-devel
yum install lapack
yum install lapack-devel


OS: Ubuntu 12.04 case
sudo apt-get -y install gcc g++ gfortran
sudo apt-get -y install patch
sudo apt-get -y install libnetcdf-dev
sudo apt-get -y install fftw3 libfftw3-dev
sudo apt-get -y install libatlas-base-dev  libatlas3gf-base
sudo apt-get -y install liblapack3gf liblapack-dev
sudo apt-get -y install libblas3gf libblas-dev
sudo apt-get -y install openmpi-bin openmpi-common libopenmpi-dev

1. dowonload: http://sourceforge.net/projects/elk/files/
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 2
6. gedit make.inc
 MAKE = make
 F90 = mpif90
# F90_OPTS = -O3 -ffast-math -funroll-loops -fopenmp
 F90_OPTS = -O3 -pipe -ffast-math -funroll-loops -fopenmp -mtune=native -march=native -m64
 F77 = mpif90
# F77_OPTS = -O3 -ffast-math -funroll-loops -fopenmp
 F77_OPTS = -O3 -pipe -ffast-math -funroll-loops -fopenmp -mtune=native -march=native -m64
 AR = ar
 LIB_SYS =
 LIB_LPK = -L/usr/lib64 -lblas -llapack -L/usr/lib64 -lfftw3_threads -lfftw3 -fopenmp
# LIB_LPK = -L/usr/lib -lblas -llapack -L/usr/lib -lfftw3_threads -lfftw3 -fopenmp #Ubuntu12.04
 SRC_MPI =
# LIB_libxc = libxcf90.a libxc.a
# SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90
 SRC_libxc = libxcifc_stub.f90
 SRC_FFT = zfftifc_fftw.f90
7. make all
8. export OMP_NUM_THREADS=4
9. gedit tests/tests.sh
10. make test

export OMP_NUM_THREADS=1
mpirun -np 4 $HOME/elk-2.3.22/src/elk
examples, Al, INFO.OUT, total:
-----
◆ gfortran  + OpenMP + OpenMPI + ATLAS + FFTW(Netlib)

OS: CentOS 6.4 case
su
yum install gcc-gfortran.x86_64
yum install netcdf
yum install netcdf-devel
yum install atlas
yum install atlas-devel
yum install atlas-sse3
yum install atlas-sse3-devel
yum install fftw3
yum install fftw3-devel
yum install openmpi
yum install openmpi-devel
yum install mpich2
yum install mpich2-devel
yum install libxc
yum install libxc-devel
yum install patch
yum install blas
yum install blas-devel
yum install lapack
yum install lapack-devel


OS: Ubuntu 12.04 case
sudo apt-get -y install gcc g++ gfortran
sudo apt-get -y install patch
sudo apt-get -y install libnetcdf-dev
sudo apt-get -y install fftw3 libfftw3-dev
sudo apt-get -y install libatlas-base-dev  libatlas3gf-base
sudo apt-get -y install liblapack3gf liblapack-dev
sudo apt-get -y install libblas3gf libblas-dev
sudo apt-get -y install openmpi-bin openmpi-common libopenmpi-dev

1. dowonload: http://sourceforge.net/projects/elk/files/ 
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 2
6. gedit make.inc
 MAKE = make
 F90 = mpif90
# F90_OPTS = -O3 -fopenmp -mtune=native -march=native -m64
 F90_OPTS = -O3 -pipe -fopenmp -mtune=native -march=native -m64
 F77 = mpif90
# F77_OPTS = -O3 -fopenmp -mtune=native -march=native -m64
 F77_OPTS = -O3 -pipe -fopenmp -mtune=native -march=native -m64
 AR = ar
 LIB_SYS =
 LIB_LPK = -L/usr/lib64/atlas -llapack -lf77blas -lcblas -latlas -L/usr/lib64 -lblas -llapack -L/usr/lib64 -lfftw3_threads -lfftw3 -fopenmp
# LIB_LPK = -L/usr/lib/atlas -llapack -lf77blas -lcblas -latlas -L/usr/lib -lblas -llapack -L/usr/lib -lfftw3_threads -lfftw3 -fopenmp #Ubuntu12.04
 SRC_MPI =
# LIB_libxc = libxcf90.a libxc.a
# SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90
 SRC_libxc = libxcifc_stub.f90
 SRC_FFT = zfftifc_fftw.f90
7. make all
8. export OMP_NUM_THREADS=4
9. gedit tests/tests.sh
10. make test

export OMP_NUM_THREADS=1
mpirun -np 4 $HOME/elk-2.3.22/src/elk
examples, BN-ELNES, INFO.OUT, total: 110181.43 s = 30.6 h = 1.28 days (but, tasks 140 not success.)
-----
◆ Intel Fortran + OpenMP
1. dowonload: http://sourceforge.net/projects/elk/files/
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 1
6. make all
7. export OMP_NUM_THREADS=4
8. make test
CPU time: 20:18:20 - 20:21:56 = 03:36 s (i7-920)
-----
◆ Intel Fortran + OpenMP + OpenMPI
1. dowonload: http://sourceforge.net/projects/elk/files/
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 1
6. gedit make.inc
  #SRC_MPI = mpi_stub.f90
  #F90 = mpif90
  #F77 = mpif90
  F90 = mpif90
  F77 = mpif90
7. make all
8. export OMP_NUM_THREADS=1
9. gedit tests/tests.sh
10. make test
-----
◆ Intel Fortran + OpenMP + OpenMPI + MKL
1. dowonload: http://sourceforge.net/projects/elk/files/
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 1
6. gedit make.inc
 MKLROOT = /opt/intel/composer_xe_2013/mkl
 MAKE = make
 F90 = mpif90
 F90_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include
 F77 = mpif90
 F77_OPTS = -O3 -ip -openmp
 AR = ar
 LIB_SYS =
 LIB_LPK = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm -openmp
 SRC_MPI =
# LIB_libxc = libxcf90.a libxc.a
# SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90
 SRC_libxc = libxcifc_stub.f90
 SRC_FFT = zfftifc_fftw.f90
7. make all
8. export OMP_NUM_THREADS=1
9. gedit tests/tests.sh
10. make test

mpirun -np 4 $HOME/elk-2.3.22/src/elk
-----
◆ Intel Fortran + OpenMP + OpenMPI + MKL + FFTW(Netlib)
1. dowonload: http://sourceforge.net/projects/elk/files/
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 1
6. gedit make.inc
 MKLROOT = /opt/intel/composer_xe_2013/mkl
 MAKE = make
 F90 = mpif90
 F90_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include
# F90_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -axAVX2,AVX,SSE4.2,SSE4.1,SSSE3,SSE3
 F77 = mpif90
 F77_OPTS = -O3 -ip -openmp
# F77_OPTS = -O3 -ip -openmp -axAVX2,AVX,SSE4.2,SSE4.1,SSSE3,SSE3
 AR = ar
 LIB_SYS =
 LIB_LPK = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm -openmp -L/usr/local/lib  -lfftw3_threads -lfftw3
 SRC_MPI =
# LIB_libxc = libxcf90.a libxc.a
# SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90
 SRC_libxc = libxcifc_stub.f90
 SRC_FFT = zfftifc_fftw.f90
7. make all
8. export OMP_NUM_THREADS=1
9. gedit tests/tests.sh
10. make test

mpirun -np 4 $HOME/elk-2.3.22/src/elk
-----
◆ Intel Fortran + OpenMP + OpenMPI + MKL + FFTW(Intel)

FFTW (Intel)
su
cd /opt/intel/composer_xe_2013/mkl/interfaces/fftw3xf
make libintel64 compiler=intel
cp /opt/intel/mkl/include/mkl_dfti.f90 /home/username/elk-2.3.22/src/mkl_dfti.f90

1. dowonload: http://sourceforge.net/projects/elk/files/
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 1
6. gedit make.inc
 MKLROOT = /opt/intel/composer_xe_2013/mkl
 MAKE = make
 F90 = mpif90
# F90_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include
# F90_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -unroll -no-prec-div -traceback -mkl=sequential -xCORE-AVX-I -pc80 -mp1 -pad
# F90_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -axAVX2,AVX,SSE4.2,SSE4.1,SSSE3,SSE3 -unroll -no-prec-div -traceback -mkl=sequential -pc80 -mp1 -pad
 F90_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -xhost -unroll -no-prec-div -traceback -mkl=sequential -pc80 -mp1 -pad
 F77 = mpif90
# F77_OPTS = -O3 -ip -openmp
# F77_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -unroll -no-prec-div -traceback -mkl=sequential -xCORE-AVX-I -pc80 -mp1 -pad
# F77_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -axAVX2,AVX,SSE4.2,SSE4.1,SSSE3,SSE3 -unroll -no-prec-div -traceback -mkl=sequential -pc80 -mp1 -pad
 F77_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -xhost -unroll -no-prec-div -traceback -mkl=sequential -pc80 -mp1 -pad
 AR = ar
 LIB_SYS =
 LIB_LPK = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm -openmp -L/opt/intel/composer_xe_2013/mkl/interfaces/fftw3xf -lfftw3xf_intel
 SRC_MPI =
# LIB_libxc = libxcf90.a libxc.a
# SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90
 SRC_libxc = libxcifc_stub.f90
 SRC_FFT = mkl_dfti.f90 zfftifc_mkl.f90
7. make all
8. export OMP_NUM_THREADS=1
9. gedit tests/tests.sh
10. make test

mpirun -np 4 $HOME/elk-2.3.22/src/elk

Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz, 15.6 GiB
examples, Al, INFO.OUT, total: 0.78 s
examples, TiC-eg-t2g: 13 s
examples, diamond-rho3D: 17 s
examples, FeAl-LDA+U-AMF: 1m10 s
examples, LiF-BSE: 2m03 s ( 1GB)
examples, Cu-ELNES: 6m30 ( 1 GB)
examples, BaTiO3-lattice-opt: 2h14m58 s (1.4 GB)
examples, Fe-XMCD: 7m06 s
examples, CaO-BSE-core: 32m43 s

Fe2VAl primitive cell (4 atoms)
Fe2VAl(cif2cell, TiC-eg-t2g base): 1m19 s (0.9 GB)
Fe2VAl band (cif2cell, AlAs-fatbands base): 54 s ( 0.92 GB)
Fe2VAl lattce constant optimiation (cif2cell): 12m43 s
Fe2VAl LDA+U(FLL) (cif2cell): 1m32 s (1 GB)
Fe2VAl HSE06:  not finishied ! (1.7 GB)
Fe2VAl BSE: 09:40:48 - not finished !
Fe2VAl XMCD ( Fe_lo.in, 2x2x2 k): 20m28 (1.1 GB)
Fe2VAl BSE-core(Fe_lo.in, 2x2x2 k) 7h54m52 s
Fe2VAl Mn2CoGa XMCD ( Mn_lo.in, Co_lo.in, 8x8x8 k ) 3h56m
-----
◆ Intel Fortran + OpenMP + OpenMPI + MKL + FFTW(Intel) + libxc

FFTW (Intel)
su
cd /opt/intel/composer_xe_2013/mkl/interfaces/fftw3xf
make libintel64 compiler=intel
cp /opt/intel/mkl/include/mkl_dfti.f90 /home/username/elk-2.3.22/src/mkl_dfti.f90

1. dowonload: http://sourceforge.net/projects/elk/files/
2. tar zxvf elk-2.3.22.tgz
3. cd  elk*
4. ./setup
5. 1
6. gedit make.inc
 MKLROOT = /opt/intel/composer_xe_2013/mkl
 MAKE = make
 F90 = mpif90
# F90_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include
# F90_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -unroll -no-prec-div -traceback -mkl=sequential -xCORE-AVX-I -pc80 -mp1 -pad
# F90_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -axAVX2,AVX,SSE4.2,SSE4.1,SSSE3,SSE3 -unroll -no-prec-div -traceback -mkl=sequential -pc80 -mp1 -pad
 F90_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -xhost -unroll -no-prec-div -traceback -mkl=sequential -pc80 -mp1 -pad
 F77 = mpif90
# F77_OPTS = -O3 -ip -openmp
# F77_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -unroll -no-prec-div -traceback -mkl=sequential -xCORE-AVX-I -pc80 -mp1 -pad
# F77_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -axAVX2,AVX,SSE4.2,SSE4.1,SSSE3,SSE3 -unroll -no-prec-div -traceback -mkl=sequential -pc80 -mp1 -pad
 F77_OPTS = -O3 -ip -openmp -I$(MKLROOT)/include -xhost -unroll -no-prec-div -traceback -mkl=sequential -pc80 -mp1 -pad
 AR = ar
 LIB_SYS =
 LIB_LPK = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm -openmp -L/opt/intel/composer_xe_2013/mkl/interfaces/fftw3xf -lfftw3xf_intel
 SRC_MPI =
 LIB_libxc = /opt/etsf/lib/libxcf90.a /opt/etsf/lib/libxc.a
 SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90
# SRC_libxc = libxcifc_stub.f90
 SRC_FFT = mkl_dfti.f90 zfftifc_mkl.f90
7. make all
8. export OMP_NUM_THREADS=1
9. gedit tests/tests.sh
10. make test
-----
Refereces
http://sourceforge.net/p/elk/discussion/897820/thread/110d1ad6/
------------------------------------------------------------------------------
Install
CentOS 6.4 (Final)
Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz
Memory 31.1 GiB

success
◆ gfortran  + OpenMP
◆ Intel Fortran + OpenMP + OpenMPI + MKL + FFTW(Netlib)
◆ Intel Fortran + OpenMP + OpenMPI + MKL + FFTW(Intel)
------------------------------------------------------------------------------
Input variables (elk.pdf に記述がある)
 後ほど記述するが、VESTAで構造を入力して cif で出力し、cif2cell を用いて結晶構造に関するデータを用いて examples にあるファイルを書き換える。
  • tasks (ディフォルト -1: ヴァージョンが表示される)
続けて他の計算を行うに examples にあるように次の行に指定していく。例えば、ELNESなら 0 (基底状態の計算) と 140(ELNES)を書き込む。examples ファイルを基にすれば tasks を書き換える必要はない。参考によく使うtasksを記す。
0: 基底状態の計算
1: 電子密度分布が記述されている STATE.out を用いた基底状態の再計算
2: 構造最適化計算
3: 構造最適化の再計算
10: DOS 計算
20: バンド図のプロット
21: 各原子に対するバンド図のプロット
25: 有効質量の計算
33: 3D 電子密度分布
102: 3D フェルミ面を描く(XcrySDen用)
120: 運動量行列要素の出力(XAS計算に用いる)
121: RPAを用いた線形光学応答テンソル計算(XAS計算に用いる)
140: ELNES計算
205: DFPTを用いたフォノン計算
210: フォノンDOSのプロット
220: フォノン分散のプロット
  • xctype (default: 3 = LDA, PW92)
交換相関ポテンシャルの指定。下記の二つがよく用いられる。
3: LSDA (スピンを考慮したLDAのことで、PW92とも記述される。ファンデルワールス力が強い場合はこちらを指定する)
20: GGA-PBE (非常に有名な交換相関ポテンシャル。WIEN2kなど多くの系で用いられている。通常はこちらを用いればよい)
  • spinpol (ディフォルト .false.)
スピンを入れた計算をする場合には、.true. を記述する。
  • spinorb (ディフォルト .false.)
価電子帯にスピン軌道相互作用を入れた計算をする場合には、.true. を記述する。
  • avec
3つの格子ベクトルを指定する。Bohr 単位
  • scale (ディフォルト 1.0)
avec で指定した格子ベクトルを何倍するかを指定する。
  • sppath
原子種の情報が記述されたファイルの場所を指定する。
  • atoms
原子種の個数 を記述する。これ以降は、原子種の数だけ[原子種のファイル名から原子位置]の記述を繰り返す。
'原子種 i の情報が記されたファイル名'
原子種 i の数
原子種 i の原子位置 (原子種 i の数 だけ記述される)
  • ngridk
k点数(k点グリッド)の指定。
  • vkloff
k点グリッドのシフト。これを指定すると少ないk点で多くのk点を採用したのとほぼ等価の計算ができる。この機能はAbinitと似ている。左欄のAbiniti(input files)の shiftk と同じシフトを設定すればよい。

以上を理解しておけば、基底状態とDOSが計算出来る。

□ space group
  • primcell:  .true. にするとプリミティブセルが存在する場合、プリミティブセルを用いて計算してくれる。(ディフォルト: .false.)
□ バンド分散やフォノン分散の計算に必要な指定
  • plot1d: バンド分散やフォノン分散で用いる。指定する各点の数と各点間のメッシュ数を記述する。
  • plot3d: 3Dでの電子密度分布をプロットするときの原点と3つのベクトル、そして、メッシュ数を記述する。
  • ngridq: フォノン計算でのグリッド。フォノンに対するメッシュ点であるという以外、k点とほぼ同じである。k点に重なるようにフォノン用のメッシュ点(q点)を指定する。vkloffを指定している場合にはk点がシフトしているので、それを考慮することが必要。よく分からなければ、vkloff を設定せずに、ngridk = ngridq * 整数 となるようにすればよい。
□ 構造最適化に関わる指定(フォノンの計算の前には構造最適化した構造が必要)
  • latvopt: ディフォルトは0で格子定数の最適化をしない。1は格子定数の最適化、2は体積を一定にして格子ベクトルが最適化される。これらの計算では空間群は保持される。1や2を設定した場合には、tasks を2か3を設定する。
  • epspot: ポテンシャルと場の収束条件を指定する。ディフォルトは 1x10^-6 である。
  • epsstress: ストレステンソルの収束条件。ディフォルトは 5 x 10^-4 である。
□ LDA+U
  • dft+u:
・ Fully localised limit (FLL) の場合
1 1
原子種 軌道(pやdやfなど) U 値 J値

・ Around mean eld (AFM) の場合
2 1
原子種 軌道(pやdやfなど) U 値 J値

FLLとAFMで大きな違いは無い。論文などで記述がある方を採用すれば良いだろう。

□ ELNES計算に関する指定
  • emaxelnes: ELNES計算における許される最大の初期状態の固有値。ディフォルトは-1.2である。
  • wplot:
DOSまたはオプティクスをプロットするための周波数またはエネルギーの点数(ディフォルトは500)、ブリルアンゾーンでの積分関数で用いるk点グリッド数(ディフォルトは100)、スムーズイングレベル(ディフォルトは1)
DOSまたはオプティクスをプロットするための周波数またはエネルギー範囲
  • vecql:
  • nempty: 原子とスピンあたりの空の状態の数。ディフォルトは4.0である。
□ BES計算に関する指定
  • scissor: フェルミエネルギーよりも上にある状態へ作用するscissorシフトである。ディフォルトは0.0である。
  • nvbse: BSE計算で用いる価電子帯の状態数(ディフォルトは2)
  • ncbse: BSE計算で用いる伝導帯の状態数(ディフォルトは3)
  • gmaxrf: 応答関数を計算するために用いる|G|の最大値(ディフォルトは3.0)
  • swidth: ディラックデルタ関数を近似するスムージングの幅(ディフォルトは0.001)
  • istxbse:
□ XMCD計算に関する指定
  • optcomp: 計算される一次と二次との光学テンソルの成分
  • bfieldc: カーテシアン座標での外部磁場
  • reducebf: 外部磁場のreduction factor (ディフォルトは1.0)
□ 計算精度と計算時間に関わる指定(基本的にディフォルトでよい)
  • 全エネルギーでの収束条件。ディフォルトは 1x10^-4 である。計算時間が掛かる場合には、1 meV/atomとなるように値を変える。
  • rgkmax: ディフォルトは7.0で充分である。計算に時間が掛かりすぎて困るという場合には、6.0 に小さくしてみるのも良いだろう。
  • gmaxvr: 原子間での電子密度とポテンシャルを記述するための|G|の値。WIEN2kもディフォルトを12.0にしている。
  • lmaxmat: 角運動量のカットオフ。ディフォルトは6.0である。
  • mixtype: 前回と今回の電子密度分布のミキシングの方法である。ディフォルトは1である。2はPulay mixing で、3はBroyden mixingである。どれも非常に有名である。
  • xctype: 交換相関ポテンシャルの指定。100 を指定して後に、交換と相関ポテンシャルを指定できる。

------------------------------------------------------------------------------
◆ cif2cell
  VESTAで構造を入力して cif で出力し、cif2cell を用いて結晶構造に関するデータを用いて examples にあるファイルを書き換える。
1. cif2cell -p elk case.cif
2. you can get GEOMETRY.OUT
3. elk.int 中にGEOMETRY.OUTの記述をコピー&ペーストする

◆ spacegroup.in を用いたプリミティブセルの探し方
1. spacegroup.in というファイルを作成する
  docにある spacegroupのpdfを参考にして結晶構造のデータを入力する
  2x2x2 supercell を作成して欲しい場合には ncell に該当する行の1 1 1 を 2 2 2 にする。
2. $HOME/elk-2.3.22/src/spacegrop/spacegroup
3. プリミティブセルでのGEOMETRY.OUTで得ることができる

◆ XcrySDen を用いたプリミティブセルの探し方
Display -> Primitive Cell Mode
または、F3 (Primitive Cell Mode), F4(Conventional Cell Mode) を押してみてもよい。

◆ 対称性を探してくれるサイト
FINDSYM: http://stokes.byu.edu/iso/findsym.php (2014年7月 2x2x2スーパーセルでは駄目だった)
ISOTROPY Software Suite: http://stokes.byu.edu/iso/isotropy.php

◆ VESTA を用いて空間群を探す方法
VESTA -> case.cif
-> Edit -> Edit Data -> Unit cell -> Space group: 230 + Apply -> 229 + Apply -> ...
-> stop when you can get nochange structure -> OK -> File -> Export Data.. -> cif
として、空間群の数値が高いところから低いところへと数値を下げていって、同じ構造がとなる空間群を手作業で探す。
※ PやFCC, BCC, HCPということが分かっていれば、左欄のAbinit(input files)を参考にして空間群を更に絞り込むと良い。
※ 結晶構造にn回回転対称やミラー対称があると分かれば空間群の番号とともに記載されている記号から更に絞り込める。
------------------------------------------------------------------------------
◆ Tutorial

-------------------
SCF + DOS
-----
tasks
  0
  10

sppath
  '../../species/'

ngridk
  8  8  8
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)

gnuplot
plot TODS.OUT w l


-------------------
SCF + BAND
-----
tasks
   0
  21

sppath
  '../../species/'

ngridk
  8  8  8

plot1d
  3 200                                   : nvp1d, npp1d
  0.5   0.0   0.0                       : vlvp1d,  L piont
  0.0   0.0   0.0                       : Gamma point
  0.5   0.5   0.0                       : X point
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)

gnuplot
set yrange[-0.5:0.2]
plot BAND_S01_A0001.OUT w l


-------------------
SCF + 3D
-----
tasks
  0


  33

! define box corners and grid size for 3D plot, first point is the origin
plot3d
 0.0  0.0  0.0      : vclp3d
 1.0  0.0  0.0
 0.0  1.0  0.0
 0.0  0.0  1.0
 56  56  56

sppath
  '../../species/'

ngridk
  8  8  8
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)

http://sourceforge.net/p/elk/discussion/897820/thread/0979b76b/


-------------------
Structure optimiation (optimize Lattice constant)
-----
tasks
  2

! use Broyden mixing of the potential
mixtype
  3

latvopt
  1

sppath
  '../../species/'

ngridk
  8  8  8
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)


-------------------
■ LDA+U
-----
tasks
  0
  10

DFT+U block
! here FLL double counting is used (dftu=1)
! inpdftu=1 corresponds to provide U and J in Hartree as input
dft+u
  1 1                            : dftu,inpdftu
  1 2 0.039399 0.00000   : is, l, U, J
  2 2 0.025399 0.00000   : is, l, U, J

! fairly high number of empty states
nempty
  8

sppath
  '../../species/'

! this grid is too small for accurate magnetic moment
ngridk
  4  4  4
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)


-------------------
TDDFT - ALDA (adiabatic local density approximation)
Theory: http://www.yambo-code.org/
-----
! Dielectric function of diamond calculated at finite q-vector using ALDA.

tasks
  0
  120
  320

! q-vector in lattice coordinates
vecql
  0.5 0.5 0.5

xctype
  3

fxctype
  3

! G-vector cut-off for the RPA and ALDA response function
gmaxrf
  2.0

wplot
  500 100 1
  0.0 1.5

sppath
  '../../species/'

ngridk
  4  4  4
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)

EELS_TDDFT.OUT, EPSILON_TDDFT.OUT ( first real part, second imaginary part)
remove real part
gnuplot
set xrange[-0.5:40]
set xlabel "Energy / eV"
set ylabel "Absorption / arb.unit"
plot EELS_TDDFT.OUT u  ($1*13.602*2):2  w l
plot EPSILON_TDDFT.OUT u  ($1*13.602*2):2  w l


-------------------
TDDFT - LRC (long-range contribution) (altanative BSE, but there is parameter alpha)
Theory: http://www.yambo-code.org/tutorials/fantastic_dimensions/LiF.php 
-----
tasks
  0         ! ground-state calculation
  120       ! compute momentum matrix elements
  121       ! compute RPA dielectric function with no local field contributions
  320       ! compute TDDFT dielectric function with local field contributions

! long-range contribution kernel
fxctype
  200

! parameter alpha for long-range contribution kernel
fxclrc
  5.5

! G-vector cut-off of exchange-correlation kernel and response function
gmaxrf
  1.0

swidth
  0.01

nempty
  8

lradstp
  2

wplot
  800 100 0 : nwplot, ngrkf, nswplot
  0.0 1.5   : wplot

sppath
  '../../species/'

ngridk
  4  4  4
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)

EELS_TDDFT.OUT, EPSILON_TDDFT.OUT, EPSILON_11.OUT ( first real part, second imaginary part)
remove real part
gnuplot
set xrange[-0.5:40]
set xlabel "Energy / eV"
set ylabel "Absorption / arb.unit"
plot EELS_TDDFT.OUT u  ($1*13.602*2):2  w l
plot EPSILON_TDDFT.OUT u  ($1*13.602*2):2  w l
plot EPSILON_11.OUT u  ($1*13.602*2):2  w l


-------------------
TDDFT - bootstrap (altanative BSE, parameter-free approximation)
-----
! Time-dependent density functional theory (TDDFT) optical spectrum of lithium
! fluoride. This material has a prominent excitonic peak, which is absent in the
! usual RPA dielectric function. The 'bootstrap' TDDFT kernel is used, see:
! arXiv:1107.0199v1 [cond-mat.mtrl-sci]
tasks
  0         ! ground-state calculation
  120       ! compute momentum matrix elements
  121       ! compute RPA dielectric function with no local field contributions
  320       ! compute TDDFT dielectric function with local field contributions

! The scissor shift is taken to be the difference between the experimental gap,
! 14.2 eV [Phys. Rev. B 13, 5530 (1976)], and the LDA gap, 8.97 eV.
! scissor shift
scissor
  0.192

xctype
  3

! bootstrap kernel
fxctype
  210

! smearing width
swidth
  0.01

! G-vector cut-off of exchange-correlation kernel and response function
gmaxrf
  0.0

nempty
  8

lradstp
  2

wplot
  800 100 0 : nwplot, ngrkf, nswplot
  0.0 1.5   : wplot

sppath
  '../../species/'

ngridk
  8  8  8

vkloff
  0.25 0.5 0.625
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)


-------------------
XAS, XMCD, XMLD
-----
tasks
  0
  120
  121

sppath
  './'

wplot
  400 200 0
  25.0 26.5

! compute the xx, xy, and zz components
optcomp
  1 1
  1 2
  3 3

spinpol
  .true.

! Spin-orbit coupling has to be included for 2p 1/2 - 2p 3/2 splitting
spinorb
  .true.

! use GGA-PBE
xctype
  20

ngridk
  8 8 8

! start with a large magnetic field and reduce at each iteration
bfieldc
  0.0  0.0  2.0

reducebf
  0.8

! large number of empty states necessary for "continuum" absorption
nempty
  20

! a Lorentzian broadening is applied to the spectrum
swidth
  0.01
-----
+ GEOMETRY.OUT(cif2cell) + atom_lo.in + atom.in

! Fe is cubic, hence the following relations hold for B || z:
! XAS = 1/3 * Im[ 2*eps_xx + eps_zz ] = 1/3 * Tr(Im[eps])
! XMCD = Im[ sigma_xy ] = -2*Re[ eps_xy ]
! XMLD = Im[ eps_xx - eps_zz ]

※ k点グリッド数(ngridk)が少ないと、2p 1/2 と 2p 3/2 などの間に余分なピーク構造が現れる。vkloffを設定すると少ないk点グリッドで済む場合がある。
※ Mn2CoGa の場合は、Mn_loとCo_loを共に導入しないと計算で警告が表示される。


-------------------
BSE
Theory: http://www.yambo-code.org/tutorials/fantastic_dimensions/LiF.php 
-----
! BSE optical spectrum of lithium fluoride. This material has a prominent
! excitonic peak, which is absent in the usual RPA dielectric function.

tasks
  0         ! ground-state calculation
  120       ! compute momentum matrix elements
  121       ! compute RPA dielectric function with no local field contributions
  180       ! generate RPA dielectric function with local field contributions
  185       ! write BSE Hamiltonian matrix
  186       ! diagonalise BSE matrix
  187       ! generate BSE dielectric function

! The scissor shift is taken to be the difference between the experimental gap,
! 14.2 eV [Phys. Rev. B 13, 5530 (1976)], and the LDA gap, 8.97 eV.
scissor
  0.21

lmaxvr
  5

! automatically determine the smallest possible G-vector grid
gmaxvr
  0.0

! number of BSE valence states
nvbse
  3

! number of BSE conduction states
ncbse
  4

! G-vector cut-off of local contribution to RPA
gmaxrf
  3.0

swidth
  0.005

nempty
  8

wplot
  800 100 0 : nwplot, ngrkf, nswplot
  0.0 1.5   : wplot

sppath
  '../../species/'

ngridk
  4  4  4
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)

EPSILON_11.OUT, EPSILON_BSE_11.OUT  ( first real part, second imaginary part)
remove real part
gnuplot
set xrange[-0.5:40]
set xlabel "Energy / eV"
set ylabel "Absorption / arb.unit"
plot EPSILON_BSE_11.OUT u  ($1*13.602*2):2  w l


-------------------
BSE-core
-----
tasks
  0      ! ground-state calculation
  120    ! compute momentum matrix elements
  121    ! compute RPA dielectric function without local field contributions
  180    ! generate RPA dielectric function with local field contributions
  185    ! write the BSE Hamiltonian matrix to file
  186    ! diagonalise BSE matrix
  187    ! compute BSE dielectric function

! do not include valence bands right below E_F
nvbse
  0

! additional valence bands for the BSE calculation - these are the six 2p states
! of Ca (check EIGVAL.OUT)
istxbse
  1
  2
  3
  4
  5
  6

! number of conduction band states for the BSE calculation
ncbse
  20

! large number of empty states required
nempty
  20

! enhanced G-vector cut-off of local contribution to RPA
gmaxrf
  5.0

! automatically determine the smallest possible G vector cutoff
gmaxvr
  0.0

! the spectrum is very sensitive to the k-point mesh
ngridk
  2 2 2

! use a symmetry breaking shift for more efficient use of the k-points
vkloff
  0.05 0.15 0.25

! Broyden mixing for fast convergence
mixtype
  3

! the energy window for the plot starts at zero by default;
! sufficient energy points needed
wplot
  5000 100 0
  0.0 14.0

! include spin-orbit coupling for the 2p 1/2 - 2p 3/2 splitting
spinorb
 .true.

! about 0.27 eV Lorentzian broadening to simulate lifetime effects
swidth
  0.01

sppath
  './'
-----
+ GEOMETRY.OUT(cif2cell or spacegroup) + atom_lo.in + atom.in


-------------------
ELNES
No supercell is required because of the strong metallic screening of copper.
http://www.wien2k.at/reg_user/textbooks/WIEN2k_lecture-notes_2011/Blaha_xas_eels.pdf
-----
tasks
  0
  140

! spin-orbit coupling required for accurate description of deep valence states
spinorb
 .true.

! maximum allowed energy for the initial state in the double differential
! cross-section formula
emaxelnes
 -30.0

! energy range for ELNES plot
wplot
  500 200 1    : nwplot, ngrkf, nswplot
  0.0 30.0    : wplot (suitable for the XX K edge)

vecql
  0.0 0.0 0.1

rgkmax
  8.0

gmaxvr
  14.0

nempty
  20

ngridk
  10 10 10
-----
+ GEOMETRY.OUT(cif2cell) + atom+.in + atom.in

vecql = momentum transfer q ?

momentum trasfer q, polarization vector e
EELS Intensity ||^2
EELS Intensity ||^2

The polarization vector in XAS plays the same role as momentum transfer in (nonrelativistic) ELNES within the dipole approximation.
qR << 1 -> exp(iqR) = 1 + iqR + ...
EELS Intensity ||^2
XAS Intensity |εR|F>|^2
core-valence spectroscopies give information on the local DOS (vexause of ) of angular momentum character l + 1 or  l -1


-------------------
■ hybrid functional
-----
! Hybrid functional using the native PBE functional.
! Example by Tyrel McQueen.

tasks
  0
  5

xctype
 20

hybrid
 .true.

!hybridc


! hybrid mixing parameter
hybmix
 0.25

nempty
 8

ngridk
  4  4  4
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)


-------------------
■ libxc
-----

! first run
tasks
  0

! second run
! tasks
! 5
! 10

! first run task=0 with PBE....  not uncomment at seconf run
xctype
  100 101 130

! second run
!xctype
! 100  0  428

nempty
 8

ngridk
  4  4  4
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)

! libxc is selected with xctype(1)=100. The remaining two numbers are the
! exchange and correlation functionals, respectively - in this case Slater
! exchange and Perdew-Wang correlation. Refer to the file
! 'elk/src/libxc_funcs.f90' for the complete list of functionals and
! associated numbers.

!HSE03 = 427
xctype
 100  0  427

!HSE06 = 428
xctype
 100  0  428

ell-2.3.22/src/libxc_funcs.f90
-----
  XC_LDA_X             =   1  !  Exchange                     
  XC_LDA_C_WIGNER      =   2  !  Wigner parametrization       
  XC_LDA_C_RPA         =   3  !  Random Phase Approximation   
  XC_LDA_C_HL          =   4  !  Hedin & Lundqvist            
  XC_LDA_C_GL          =   5  !  Gunnarson & Lundqvist        
  XC_LDA_C_XALPHA      =   6  !  Slater Xalpha                
  XC_LDA_C_VWN         =   7  !  Vosko, Wilk, & Nussair (5)   
  XC_LDA_C_VWN_RPA     =   8  !  Vosko, Wilk, & Nussair (RPA)
  XC_LDA_C_PZ          =   9  !  Perdew & Zunger              
  XC_LDA_C_PZ_MOD      =  10  !  Perdew & Zunger (Modified)   
  XC_LDA_C_OB_PZ       =  11  !  Ortiz & Ballone (PZ)         
  XC_LDA_C_PW          =  12  !  Perdew & Wang                
  XC_LDA_C_PW_MOD      =  13  !  Perdew & Wang (Modified)     
  XC_LDA_C_OB_PW       =  14  !  Ortiz & Ballone (PW)         
  XC_LDA_C_2D_AMGB     =  15  !  Attaccalite et al             
  XC_LDA_C_2D_PRM      =  16  !  Pittalis, Rasanen & Marques correlation in 2D
  XC_LDA_C_vBH         =  17  !  von Barth & Hedin            
  XC_LDA_C_1D_CSC      =  18  !  Casula, Sorella, and Senatore 1D correlation     
  XC_LDA_X_2D          =  19  !  Exchange in 2D
  XC_LDA_XC_TETER93    =  20  !  Teter 93 parametrization                
  XC_LDA_X_1D          =  21  !  Exchange in 1D     
  XC_LDA_C_ML1         =  22  !  Modified LSD (version 1) of Proynov and Salahub
  XC_LDA_C_ML2         =  23  !  Modified LSD (version 2) of Proynov and Salahub
  XC_LDA_C_GOMBAS      =  24  !  Gombas parametrization       
  XC_LDA_C_PW_RPA      =  25  !  Perdew & Wang fit of the RPA
  XC_LDA_C_1D_LOOS     =  26  !  P-F Loos correlation LDA     
  XC_LDA_C_RC04        =  27  !  Ragot-Cortona
  XC_LDA_C_VWN_1       =  28  !  Vosko, Wilk, & Nussair (1)   
  XC_LDA_C_VWN_2       =  29  !  Vosko, Wilk, & Nussair (2)   
  XC_LDA_C_VWN_3       =  30  !  Vosko, Wilk, & Nussair (3)   
  XC_LDA_C_VWN_4       =  31  !  Vosko, Wilk, & Nussair (4)   
  XC_LDA_K_TF          =  50  !  Thomas-Fermi kinetic energy functional
  XC_LDA_K_LP          =  51  !  Lee and Parr Gaussian ansatz           
  XC_GGA_C_Q2D         =  47  !  Chiodo et al  
  XC_GGA_X_Q2D         =  48  !  Chiodo et al  
  XC_GGA_X_PBE_MOL     =  49  !  Del Campo, Gazquez, Trickey and Vela (PBE-like)
  XC_GGA_K_TFVW        =  52  !  Thomas-Fermi plus von Weiszaecker correction
  XC_GGA_K_REVAPBEINT  =  53  !  interpolated version of REVAPBE                
  XC_GGA_K_APBEINT     =  54  !  interpolated version of APBE                   
  XC_GGA_K_REVAPBE     =  55  !  revised APBE                                   
  XC_GGA_X_AK13        =  56  !  Armiento & Kuemmel 2013
  XC_GGA_K_MEYER       =  57  !  Meyer,  Wang, and Young
  XC_GGA_X_LV_RPW86    =  58  !  Berland and Hyldgaard
  XC_GGA_X_PBE_TCA     =  59  !  PBE revised by Tognetti et al                  
  XC_GGA_X_PBEINT      =  60  !  PBE for hybrid interfaces                      
  XC_GGA_C_ZPBEINT     =  61  !  spin-dependent gradient correction to PBEint       
  XC_GGA_C_PBEINT      =  62  !  PBE for hybrid interfaces                          
  XC_GGA_C_ZPBESOL     =  63  !  spin-dependent gradient correction to PBEsol       
  XC_GGA_XC_OPBE_D     =  65  !  oPBE_D functional of Goerigk and Grimme   
  XC_GGA_XC_OPWLYP_D   =  66  !  oPWLYP-D functional of Goerigk and Grimme
  XC_GGA_XC_OBLYP_D    =  67  !  oBLYP-D functional of Goerigk and Grimme  
  XC_GGA_X_VMT84_GE    =  68  !  VMT{8,4} with constraint satisfaction with mu = mu_GE  
  XC_GGA_X_VMT84_PBE   =  69  !  VMT{8,4} with constraint satisfaction with mu = mu_PBE  
  XC_GGA_X_VMT_GE      =  70  !  Vela, Medel, and Trickey with mu = mu_GE  
  XC_GGA_X_VMT_PBE     =  71  !  Vela, Medel, and Trickey with mu = mu_PBE
  XC_GGA_C_N12_SX      =  79  !  N12-SX functional from Minnesota         
  XC_GGA_C_N12         =  80  !  N12 functional from Minnesota            
  XC_GGA_X_N12         =  82  !  N12 functional from Minnesota    
  XC_GGA_C_VPBE        =  83  !  variant PBE                                        
  XC_GGA_C_OP_XALPHA   =  84  !  one-parameter progressive functional (XALPHA version)  
  XC_GGA_C_OP_G96      =  85  !  one-parameter progressive functional (G96 version)     
  XC_GGA_C_OP_PBE      =  86  !  one-parameter progressive functional (PBE version)     
  XC_GGA_C_OP_B88      =  87  !  one-parameter progressive functional (B88 version)     
  XC_GGA_C_FT97        =  88  !  Filatov & Thiel correlation
  XC_GGA_C_SPBE        =  89  !  PBE correlation to be used with the SSB exchange   
  XC_GGA_X_SSB_SW      =  90  !  Swarta, Sola and Bickelhaupt correction to PBE  
  XC_GGA_X_SSB         =  91  !  Swarta, Sola and Bickelhaupt  
  XC_GGA_X_SSB_D       =  92  !  Swarta, Sola and Bickelhaupt dispersion  
  XC_GGA_XC_HCTH_407P  =  93  !  HCTH/407+                                
  XC_GGA_XC_HCTH_P76   =  94  !  HCTH p=7/6                               
  XC_GGA_XC_HCTH_P14   =  95  !  HCTH p=1/4                               
  XC_GGA_XC_B97_GGA1   =  96  !  Becke 97 GGA-1                           
  XC_GGA_XC_HCTH_A     =  97  !  HCTH-A                                   
  XC_GGA_X_BPCCAC      =  98  !  BPCCAC (GRAC for the energy)
  XC_GGA_C_REVTCA      =  99  !  Tognetti, Cortona, Adamo (revised)
  XC_GGA_C_TCA         = 100  !  Tognetti, Cortona, Adamo
  XC_GGA_X_PBE         = 101  !  Perdew, Burke & Ernzerhof exchange             
  XC_GGA_X_PBE_R       = 102  !  Perdew, Burke & Ernzerhof exchange (revised)   
  XC_GGA_X_B86         = 103  !  Becke 86 Xalfa,beta,gamma                      
  XC_GGA_X_HERMAN      = 104  !  Herman et al original GGA                  
  XC_GGA_X_B86_MGC     = 105  !  Becke 86 Xalfa,beta,gamma (with mod. grad. correction)
  XC_GGA_X_B88         = 106  !  Becke 88
  XC_GGA_X_G96         = 107  !  Gill 96                                        
  XC_GGA_X_PW86        = 108  !  Perdew & Wang 86
  XC_GGA_X_PW91        = 109  !  Perdew & Wang 91
  XC_GGA_X_OPTX        = 110  !  Handy & Cohen OPTX 01                          
  XC_GGA_X_DK87_R1     = 111  !  dePristo & Kress 87 (version R1)               
  XC_GGA_X_DK87_R2     = 112  !  dePristo & Kress 87 (version R2)               
  XC_GGA_X_LG93        = 113  !  Lacks & Gordon 93
  XC_GGA_X_FT97_A      = 114  !  Filatov & Thiel 97 (version A)
  XC_GGA_X_FT97_B      = 115  !  Filatov & Thiel 97 (version B)
  XC_GGA_X_PBE_SOL     = 116  !  Perdew, Burke & Ernzerhof exchange (solids)    
  XC_GGA_X_RPBE        = 117  !  Hammer, Hansen & Norskov (PBE-like)
  XC_GGA_X_WC          = 118  !  Wu & Cohen
  XC_GGA_X_MPW91       = 119  !  Modified form of PW91 by Adamo & Barone
  XC_GGA_X_AM05        = 120  !  Armiento & Mattsson 05 exchange                
  XC_GGA_X_PBEA        = 121  !  Madsen (PBE-like)
  XC_GGA_X_MPBE        = 122  !  Adamo & Barone modification to PBE             
  XC_GGA_X_XPBE        = 123  !  xPBE reparametrization by Xu & Goddard         
  XC_GGA_X_2D_B86_MGC  = 124  !  Becke 86 MGC for 2D systems
  XC_GGA_X_BAYESIAN    = 125  !  Bayesian best fit for the enhancement factor
  XC_GGA_X_PBE_JSJR    = 126  !  JSJR reparametrization by Pedroza, Silva & Capelle
  XC_GGA_X_2D_B88      = 127  !  Becke 88 in 2D
  XC_GGA_X_2D_B86      = 128  !  Becke 86 Xalfa,beta,gamma                      
  XC_GGA_X_2D_PBE      = 129  !  Perdew, Burke & Ernzerhof exchange in 2D          
  XC_GGA_C_PBE         = 130  !  Perdew, Burke & Ernzerhof correlation              
  XC_GGA_C_LYP         = 131  !  Lee, Yang & Parr
  XC_GGA_C_P86         = 132  !  Perdew 86
  XC_GGA_C_PBE_SOL     = 133  !  Perdew, Burke & Ernzerhof correlation SOL          
  XC_GGA_C_PW91        = 134  !  Perdew & Wang 91
  XC_GGA_C_AM05        = 135  !  Armiento & Mattsson 05 correlation             
  XC_GGA_C_XPBE        = 136  !  xPBE reparametrization by Xu & Goddard             
  XC_GGA_C_LM          = 137  !  Langreth and Mehl correlation          
  XC_GGA_C_PBE_JRGX    = 138  !  JRGX reparametrization by Pedroza, Silva & Capelle
  XC_GGA_X_OPTB88_VDW  = 139  !  Becke 88 reoptimized to be used with vdW functional of Dion et al
  XC_GGA_X_PBEK1_VDW   = 140  !  PBE reparametrization for vdW                  
  XC_GGA_X_OPTPBE_VDW  = 141  !  PBE reparametrization for vdW
  XC_GGA_X_RGE2        = 142  !  Regularized PBE                                
  XC_GGA_C_RGE2        = 143  !  Regularized PBE                                    
  XC_GGA_X_RPW86       = 144  !  refitted Perdew & Wang 86
  XC_GGA_X_KT1         = 145  !  Keal and Tozer version 1             
  XC_GGA_XC_KT2        = 146  !  Keal and Tozer version 2             
  XC_GGA_C_WL          = 147  !  Wilson & Levy
  XC_GGA_C_WI          = 148  !  Wilson & Ivanov
  XC_GGA_X_MB88        = 149  !  Modified Becke 88 for proton transfer
  XC_GGA_X_SOGGA       = 150  !  Second-order generalized gradient approximation
  XC_GGA_X_SOGGA11     = 151  !  Second-order generalized gradient approximation 2011
  XC_GGA_C_SOGGA11     = 152  !  Second-order generalized gradient approximation 2011
  XC_GGA_C_WI0         = 153  !  Wilson & Ivanov initial version
  XC_GGA_XC_TH1        = 154  !  Tozer and Handy v. 1
  XC_GGA_XC_TH2        = 155  !  Tozer and Handy v. 2
  XC_GGA_XC_TH3        = 156  !  Tozer and Handy v. 3
  XC_GGA_XC_TH4        = 157  !  Tozer and Handy v. 4
  XC_GGA_X_C09X        = 158  !  C09x to be used with the VdW of Rutgers-Chalmers     
  XC_GGA_C_SOGGA11_X   = 159  !  To be used with hyb_gga_x_SOGGA11-X  
  XC_GGA_X_LB          = 160  !  van Leeuwen & Baerends
  XC_GGA_XC_HCTH_93    = 161  !  HCTH functional fitted to  93 molecules  
  XC_GGA_XC_HCTH_120   = 162  !  HCTH functional fitted to 120 molecules  
  XC_GGA_XC_HCTH_147   = 163  !  HCTH functional fitted to 147 molecules  
  XC_GGA_XC_HCTH_407   = 164  !  HCTH functional fitted to 407 molecules  
  XC_GGA_XC_EDF1       = 165  !  Empirical functionals from Adamson, Gill, and Pople
  XC_GGA_XC_XLYP       = 166  !  XLYP functional
  XC_GGA_XC_B97        = 167  !  Becke 97                                 
  XC_GGA_XC_B97_1      = 168  !  Becke 97-1                               
  XC_GGA_XC_B97_2      = 169  !  Becke 97-2                               
  XC_GGA_XC_B97_D      = 170  !  Grimme functional to be used with C6 vdW term
  XC_GGA_XC_B97_K      = 171  !  Boese-Martin for Kinetics                
  XC_GGA_XC_B97_3      = 172  !  Becke 97-3                               
  XC_GGA_XC_PBE1W      = 173  !  Functionals fitted for water
  XC_GGA_XC_MPWLYP1W   = 174  !  Functionals fitted for water
  XC_GGA_XC_PBELYP1W   = 175  !  Functionals fitted for water
  XC_GGA_XC_SB98_1a    = 176  !  Schmider-Becke 98 parameterization 1a    
  XC_GGA_XC_SB98_1b    = 177  !  Schmider-Becke 98 parameterization 1b    
  XC_GGA_XC_SB98_1c    = 178  !  Schmider-Becke 98 parameterization 1c    
  XC_GGA_XC_SB98_2a    = 179  !  Schmider-Becke 98 parameterization 2a    
  XC_GGA_XC_SB98_2b    = 180  !  Schmider-Becke 98 parameterization 2b    
  XC_GGA_XC_SB98_2c    = 181  !  Schmider-Becke 98 parameterization 2c    
  XC_GGA_X_LBM         = 182  !  van Leeuwen & Baerends modified
  XC_GGA_X_OL2         = 183  !  Exchange form based on Ou-Yang and Levy v.2
  XC_GGA_X_APBE        = 184  !  mu fixed from the semiclassical neutral atom   
  XC_GGA_K_APBE        = 185  !  mu fixed from the semiclassical neutral atom   
  XC_GGA_C_APBE        = 186  !  mu fixed from the semiclassical neutral atom       
  XC_GGA_K_TW1         = 187  !  Tran and Wesolowski set 1 (Table II)           
  XC_GGA_K_TW2         = 188  !  Tran and Wesolowski set 2 (Table II)           
  XC_GGA_K_TW3         = 189  !  Tran and Wesolowski set 3 (Table II)           
  XC_GGA_K_TW4         = 190  !  Tran and Wesolowski set 4 (Table II)           
  XC_GGA_X_HTBS        = 191  !  Haas, Tran, Blaha, and Schwarz  
  XC_GGA_X_AIRY        = 192  !  Constantin et al based on the Airy gas
  XC_GGA_X_LAG         = 193  !  Local Airy Gas
  XC_GGA_XC_MOHLYP     = 194  !  Functional for organometallic chemistry
  XC_GGA_XC_MOHLYP2    = 195  !  Functional for barrier heights
  XC_GGA_XC_TH_FL      = 196  !  Tozer and Handy v. FL  
  XC_GGA_XC_TH_FC      = 197  !  Tozer and Handy v. FC  
  XC_GGA_XC_TH_FCFO    = 198  !  Tozer and Handy v. FCFO
  XC_GGA_XC_TH_FCO     = 199  !  Tozer and Handy v. FCO
  XC_GGA_C_OPTC        = 200  !  Optimized correlation functional of Cohen and Handy
  XC_GGA_K_VW          = 500  !  von Weiszaecker functional
  XC_GGA_K_GE2         = 501  !  Second-order gradient expansion (l = 1/9)
  XC_GGA_K_GOLDEN      = 502  !  TF-lambda-vW form by Golden (l = 13/45)
  XC_GGA_K_YT65        = 503  !  TF-lambda-vW form by Yonei and Tomishima (l = 1/5)
  XC_GGA_K_BALTIN      = 504  !  TF-lambda-vW form by Baltin (l = 5/9)
  XC_GGA_K_LIEB        = 505  !  TF-lambda-vW form by Lieb (l = 0.185909191)
  XC_GGA_K_ABSP1       = 506  !  gamma-TFvW form by Acharya et al [g = 1 - 1.412/N^(1/3)]
  XC_GGA_K_ABSP2       = 507  !  gamma-TFvW form by Acharya et al [g = 1 - 1.332/N^(1/3)]
  XC_GGA_K_GR          = 508  !  gamma-TFvW form by Gázquez and Robles
  XC_GGA_K_LUDENA      = 509  !  gamma-TFvW form by Ludeña
  XC_GGA_K_GP85        = 510  !  gamma-TFvW form by Ghosh and Parr
  XC_GGA_K_PEARSON     = 511  !  Pearson
  XC_GGA_K_OL1         = 512  !  Ou-Yang and Levy v.1
  XC_GGA_K_OL2         = 513  !  Ou-Yang and Levy v.2
  XC_GGA_K_FR_B88      = 514  !  Fuentealba & Reyes (B88 version)
  XC_GGA_K_FR_PW86     = 515  !  Fuentealba & Reyes (PW86 version)
  XC_GGA_K_DK          = 516  !  DePristo and Kress                    
  XC_GGA_K_PERDEW      = 517  !  Perdew                                
  XC_GGA_K_VSK         = 518  !  Vitos, Skriver, and Kollar            
  XC_GGA_K_VJKS        = 519  !  Vitos, Johansson, Kollar, and Skriver
  XC_GGA_K_ERNZERHOF   = 520  !  Ernzerhof
  XC_GGA_K_LC94        = 521  !  Lembarki & Chermette
  XC_GGA_K_LLP         = 522  !  Lee, Lee & Parr
  XC_GGA_K_THAKKAR     = 523  !  Thakkar 1992
  XC_GGA_X_WPBEH       = 524  !  short-range version of the PBE
  XC_GGA_X_HJS_PBE     = 525  !  HJS screened exchange PBE version
  XC_GGA_X_HJS_PBE_SOL = 526  !  HJS screened exchange PBE_SOL version
  XC_GGA_X_HJS_B88     = 527  !  HJS screened exchange B88 version
  XC_GGA_X_HJS_B97X    = 528  !  HJS screened exchange B97x version
  XC_GGA_X_ITYH        = 529  !  short-range recipe for exchange GGA functionals
  XC_GGA_X_SFAT        = 530  !  short-range recipe for exchange GGA functionals
  XC_HYB_GGA_X_N12_SX  =  81  !  N12-SX functional from Minnesota
  XC_HYB_GGA_XC_B3PW91 = 401  !  The original (ACM) hybrid of Becke    
  XC_HYB_GGA_XC_B3LYP  = 402  !  The (in)famous B3LYP                  
  XC_HYB_GGA_XC_B3P86  = 403  !  Perdew 86 hybrid similar to B3PW91    
  XC_HYB_GGA_XC_O3LYP  = 404  !  hybrid using the optx functional
  XC_HYB_GGA_XC_mPW1K  = 405  !  mixture of mPW91 and PW91 optimized for kinetics
  XC_HYB_GGA_XC_PBEH   = 406  !  aka PBE0 or PBE1PBE
  XC_HYB_GGA_XC_B97    = 407  !  Becke 97                                 
  XC_HYB_GGA_XC_B97_1  = 408  !  Becke 97-1                               
  XC_HYB_GGA_XC_B97_2  = 410  !  Becke 97-2                               
  XC_HYB_GGA_XC_X3LYP  = 411  !  maybe the best hybrid
  XC_HYB_GGA_XC_B1WC   = 412  !  Becke 1-parameter mixture of WC and PBE          
  XC_HYB_GGA_XC_B97_K  = 413  !  Boese-Martin for Kinetics                
  XC_HYB_GGA_XC_B97_3  = 414  !  Becke 97-3                               
  XC_HYB_GGA_XC_MPW3PW = 415  !  mixture with the mPW functional       
  XC_HYB_GGA_XC_B1LYP  = 416  !  Becke 1-parameter mixture of B88 and LYP         
  XC_HYB_GGA_XC_B1PW91 = 417  !  Becke 1-parameter mixture of B88 and PW91        
  XC_HYB_GGA_XC_mPW1PW = 418  !  Becke 1-parameter mixture of mPW91 and PW91      
  XC_HYB_GGA_XC_MPW3LYP = 419  !  mixture of mPW and LYP                
  XC_HYB_GGA_XC_SB98_1a = 420  !  Schmider-Becke 98 parameterization 1a    
  XC_HYB_GGA_XC_SB98_1b = 421  !  Schmider-Becke 98 parameterization 1b    
  XC_HYB_GGA_XC_SB98_1c = 422  !  Schmider-Becke 98 parameterization 1c    
  XC_HYB_GGA_XC_SB98_2a = 423  !  Schmider-Becke 98 parameterization 2a    
  XC_HYB_GGA_XC_SB98_2b = 424  !  Schmider-Becke 98 parameterization 2b    
  XC_HYB_GGA_XC_SB98_2c = 425  !  Schmider-Becke 98 parameterization 2c    
  XC_HYB_GGA_X_SOGGA11_X = 426  !  Hybrid based on SOGGA11 form
  XC_HYB_GGA_XC_HSE03  = 427  !  the 2003 version of the screened hybrid HSE
  XC_HYB_GGA_XC_HSE06  = 428  !  the 2006 version of the screened hybrid HSE
  XC_HYB_GGA_XC_HJS_PBE = 429  !  HJS hybrid screened exchange PBE version
  XC_HYB_GGA_XC_HJS_PBE_SOL = 430  !  HJS hybrid screened exchange PBE_SOL version
  XC_HYB_GGA_XC_HJS_B88 = 431  !  HJS hybrid screened exchange B88 version
  XC_HYB_GGA_XC_HJS_B97X = 432  !  HJS hybrid screened exchange B97x version
  XC_HYB_GGA_XC_CAM_B3LYP = 433  !  CAM version of B3LYP
  XC_HYB_GGA_XC_TUNED_CAM_B3LYP = 434  !  CAM version of B3LYP tunes for excitations
  XC_HYB_GGA_XC_BHANDH = 435  !  Becke half-and-half                              
  XC_HYB_GGA_XC_BHANDHLYP = 436  !  Becke half-and-half with B88 exchange            
  XC_HYB_GGA_XC_MB3LYP_RC04 = 437  !  B3LYP with RC04 LDA                   
  XC_HYB_GGA_XC_MPWLYP1M = 453  !  MPW with 1 par. for metals/LYP                   
  XC_HYB_GGA_XC_REVB3LYP = 454  !  Revised B3LYP                         
  XC_HYB_GGA_XC_CAMY_BLYP = 455  !  BLYP with yukawa screening
  XC_HYB_GGA_XC_PBE0_13 = 456  !  PBE0-1/3            
  XC_MGGA_XC_OTPSS_D   =  64  !  oTPSS_D functional of Goerigk and Grimme   
  XC_MGGA_C_CS         =  72  !  Colle and Salvetti
  XC_MGGA_C_MN12_SX    =  73  !  MN12-SX functional of Minnesota
  XC_MGGA_C_MN12_L     =  74  !  MN12-L functional of Minnesota  
  XC_MGGA_C_M11_L      =  75  !  M11-L functional of Minnesota   
  XC_MGGA_C_M11        =  76  !  M11 functional of Minnesota     
  XC_MGGA_C_M08_SO     =  77  !  M08-SO functional of Minnesota  
  XC_MGGA_C_M08_HX     =  78  !  M08-HX functional of Minnesota  
  XC_MGGA_X_LTA        = 201  !  Local tau approximation of Ernzerhof & Scuseria
  XC_MGGA_X_TPSS       = 202  !  Perdew, Tao, Staroverov & Scuseria exchange
  XC_MGGA_X_M06_L      = 203  !  M06-Local functional of Minnesota
  XC_MGGA_X_GVT4       = 204  !  GVT4 from Van Voorhis and Scuseria
  XC_MGGA_X_TAU_HCTH   = 205  !  tau-HCTH from Boese and Handy
  XC_MGGA_X_BR89       = 206  !  Becke-Roussel 89  
  XC_MGGA_X_BJ06       = 207  !  Becke & Johnson correction to Becke-Roussel 89  
  XC_MGGA_X_TB09       = 208  !  Tran & Blaha correction to Becke & Johnson  
  XC_MGGA_X_RPP09      = 209  !  Rasanen, Pittalis, and Proetto correction to Becke & Johnson  
  XC_MGGA_X_2D_PRHG07  = 210  !  Pittalis, Rasanen, Helbig, Gross Exchange Functional
  XC_MGGA_X_2D_PRHG07_PRP10 = 211  !  PRGH07 with PRP10 correction
  XC_MGGA_X_REVTPSS    = 212  !  revised Perdew, Tao, Staroverov & Scuseria exchange
  XC_MGGA_X_PKZB       = 213  !  Perdew, Kurth, Zupan, and Blaha
  XC_MGGA_X_M05        = 214  !  M05 functional of Minnesota
  XC_MGGA_X_M05_2X     = 215  !  M05-2X functional of Minnesota
  XC_MGGA_X_M06_HF     = 216  !  M06-HF functional of Minnesota
  XC_MGGA_X_M06        = 217  !  M06 functional of Minnesota
  XC_MGGA_X_M06_2X     = 218  !  M06-2X functional of Minnesota
  XC_MGGA_X_M08_HX     = 219  !  M08-HX functional of Minnesota
  XC_MGGA_X_M08_SO     = 220  !  M08-SO functional of Minnesota
  XC_MGGA_X_MS0        = 221  !  MS exchange of Sun, Xiao, and Ruzsinszky
  XC_MGGA_X_MS1        = 222  !  MS1 exchange of Sun, et al
  XC_MGGA_X_MS2        = 223  !  MS2 exchange of Sun, et al
  XC_MGGA_X_MS2H       = 224  !  MS2 hybrid exchange of Sun, et al
  XC_MGGA_X_M11_L      = 226  !  M11-L functional of Minnesota
  XC_MGGA_X_MN12_L     = 227  !  MN12-L functional from Minnesota  
  XC_MGGA_X_MN12_SX    = 228  !  MN12-SX functional from Minnesota
  XC_MGGA_C_CC06       = 229  !  Cancio and Chou 2006
  XC_MGGA_X_MK00       = 230  !  Exchange for accurate virtual orbital energies
  XC_MGGA_C_TPSS       = 231  !  Perdew, Tao, Staroverov & Scuseria correlation
  XC_MGGA_C_VSXC       = 232  !  VSxc from Van Voorhis and Scuseria (correlation part)
  XC_MGGA_C_M06_L      = 233  !  M06-Local functional of Minnesota
  XC_MGGA_C_M06_HF     = 234  !  M06-HF functional of Minnesota
  XC_MGGA_C_M06        = 235  !  M06 functional of Minnesota
  XC_MGGA_C_M06_2X     = 236  !  M06-2X functional of Minnesota
  XC_MGGA_C_M05        = 237  !  M05 functional of Minnesota
  XC_MGGA_C_M05_2X     = 238  !  M05-2X functional of Minnesota
  XC_MGGA_C_PKZB       = 239  !  Perdew, Kurth, Zupan, and Blaha
  XC_MGGA_C_BC95       = 240  !  Becke correlation 95
  XC_MGGA_C_REVTPSS    = 241  !  revised TPSS correlation
  XC_MGGA_XC_TPSSLYP1W = 242  !  Functionals fitted for water
  XC_MGGA_X_MK00B      = 243  !  Exchange for accurate virtual orbital energies (v. B)
  XC_MGGA_X_BLOC       = 244  !  functional with balanced localization
  XC_MGGA_X_MODTPSS    = 245  !  Modified Perdew, Tao, Staroverov & Scuseria exchange
  XC_HYB_MGGA_X_M11    = 225  !  M11 functional of Minnesota
  XC_HYB_MGGA_XC_M05   = 438  !  M05 functional of Minnesota                      
  XC_HYB_MGGA_XC_M05_2X = 439  !  M05-2X functional of Minnesota                   
  XC_HYB_MGGA_XC_B88B95 = 440  !  Mixture of B88 with BC95 (B1B95)                 
  XC_HYB_MGGA_XC_B86B95 = 441  !  Mixture of B86 with BC95                         
  XC_HYB_MGGA_XC_PW86B95 = 442  !  Mixture of PW86 with BC95                        
  XC_HYB_MGGA_XC_BB1K  = 443  !  Mixture of B88 with BC95 from Zhao and Truhlar   
  XC_HYB_MGGA_XC_M06_HF = 444  !  M06-HF functional of Minnesota                   
  XC_HYB_MGGA_XC_MPW1B95 = 445  !  Mixture of mPW91 with BC95 from Zhao and Truhlar
  XC_HYB_MGGA_XC_MPWB1K = 446  !  Mixture of mPW91 with BC95 for kinetics          
  XC_HYB_MGGA_XC_X1B95 = 447  !  Mixture of X with BC95                           
  XC_HYB_MGGA_XC_XB1K  = 448  !  Mixture of X with BC95 for kinetics              
  XC_HYB_MGGA_XC_M06   = 449  !  M06 functional of Minnesota                      
  XC_HYB_MGGA_XC_M06_2X = 450  !  M06-2X functional of Minnesota                   
  XC_HYB_MGGA_XC_PW6B95 = 451  !  Mixture of PW91 with BC95 from Zhao and Truhlar  
  XC_HYB_MGGA_XC_PWB6K = 452  !  Mixture of PW91 with BC95 from Zhao and Truhlar for kinetics
  XC_HYB_MGGA_XC_TPSSH = 457  !     TPSS hybrid
  XC_HYB_MGGA_XC_REVTPSSH = 458  !  revTPSS hybrid
-----


-------------------
OEP + band
-----
tasks
  0
  20

! exact exchange only (no correlation)
xctype
 -1

! large number of OEP iterations to converge the gap
maxitoep
 200

! large number of empty states required
nempty
 15

sppath
  '../../species/'

ngridk
  4  4  4

! These are the vertices to be joined for the band structure plot
plot1d
  7 200                                  : nvp1d, npp1d
  0.0   0.0   1.0                      : vlvp1d, Gamma
  0.5   0.5   1.0                      : X
  0.0   0.0   0.0                      : Gamma
  0.5   0.0   0.0                      : L
  0.5   0.5   0.0                      : X
  0.5   0.25 -0.25                  : W
  0.5   0.0   0.0                      : L
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)


-------------------
Phonon (???)
-----
-----
+ GEOMETRY.OUT(cif2cell or spacegroup)

-------------------
------------------------------------------------------------------------------
◆ Core-hole
1. rmt, sprmax
  rmt -> around 0.8 - 0.83333 times (heavy element{ Lanthanoids and Actinoids} 2/3 times)
    (N 0.8, Cu 0.83, Pu 0.66)
  sprmax -> around 0.72 - 0.86 times
    (N 0.77, Cu 0.86, Pu 0.72)
2. spocc, spcore
  ---
  ! strong metallic screening effect case, e.g. Cu
  spocc 2.00000 -> 1.50000 (core)
  spocc +0.50000 (core -> condcution bands)
 
  ! weak screening effect case, e.g. MnO
  spocc 2.00000 -> 1.00000 (core)
  spocc +1.00000 (core -> condcution bands)
  ---
  spcore F -> T at core-hole state in core state
  spcore T -> F above core-hole state in core state
3. nlorb
  nlorb+3 , (heavy element{Lanthanoids and Actinoids}: nlorb+0)
4. lorbe0, lorbdm, lorbve
  lorbve T when lorbe0 < 0.0
  ----- transition atom (local orbitals setting)
 add
     3   2                                    : lorbl (f orbit), lorbord
  0.1500   0  F                             : lorbe0, lorbdm, lorbve
  0.1500   1  F

     0   3                                    : lorbl (s orbit, unoccupied level), lorbord
  0.1500   0  F                             : lorbe0, lorbdm, lorbve
  0.1500   1  F
 -4.0000   0  T :threshold energy (Ha unit) at 3s Absorption (e.g. Cu 3s). see  Table 1-1 in X-Ray data booklet.
   1   3                : p orbit (unoccupied level)
  0.1500   0  F                             : lorbe0, lorbdm, lorbve
  0.1500   1  F
-34.0000   0  T :threshold energy (Ha unit) at 2pAbsorption (e.g. Cu 2p1/2). see  Table 1-1 in X-Ray data booklet.
   0   3                : s orbit (unoccupied level)
  0.1500   0  F                             : lorbe0, lorbdm, lorbve
  0.1500   1  F
-41.0000   0  T :threshold energy (Ha unit) at 2s Absorption (e.g. Cu 2s). see  Table 1-1 in X-Ray data booklet.
  ----- transition atom (local orbitals setting)
  lorbord = number of line (lorbe0, lorbdm, lorbve)

  ----- Lanthanoids and Actinoids (local orbitals setting)
  remove
   3   3                                    : lorbl (f orbit), lorbord
    0.1500   0  F                           : lorbe0, lorbdm, lorbve
    0.1500   1  F
   -0.0579   0  T
 
 add
     2   3                                    : lorbl (d orbit, unoccupied level), lorbord
  0.1500   0  F                             : lorbe0, lorbdm, lorbve
  0.1500   1  F
-30.0000   0  T  :threshold energy (Ha unit) at 3d Absorption (e.g. La 3d5/2). see  Table 1-1 in X-Ray data booklet.
  ----- Lanthanoids and Actinoids (local orbitals setting)
------------------------------------------------------------------------------
◆ Z+1
1. spzn
  spzn -1
2. spmass
  - 0.07292
3. rmt, sprmax
  rmt -> around 0.8 - 0.83333 times (heavy element 2/3 times) (N 0.8, Cu 0.83, Pu 0.66)
  sprmax -> around 0.72 - 0.86 times (N 0.77, Cu 0.86, Pu 0.72)
4. spocc, spcore
  ---
  spocc +1.00000 (valence -> condcution bands)
  ---
  spcore F -> T at core-hole state in core state
  spcore T -> F above core-hole state in core state
  T : if state is in the core and therefore treated with the Dirac equation in the spherical part of the muffin-tin Kohn-Sham potential.
5. nlorb
  +3 , (heavy element +0)
6. lorbe0, lorbdm, lorbve
  lorbve T when lorbe0 < 0.0
  ----- (local orbitals setting)
 add
     2   2            : d orbit
  0.1500   0  F                             : lorbe0, lorbdm, lorbve
  0.1500   1  F

     0   3            : s orbit (unoccupied level)
  0.1500   0  F
  0.1500   1  F
-20.0000   0  T  :threshold energy (Ha unit) at 1s Absorption (e.g. N 1s -> O 1s). see  Table 1-1 in X-Ray data booklet.
  ----- (local orbitals setting)
  lorbl, lorbord
  Respectively, the angular momentum l of the local-orbital; and the order of the radial derivative which goes to zero at the muffin-tin surface.

  lorbe0, lorbdm, lorbve
  Respectively, the default local-orbital linearisation energy; the order of the energy derivative of the local-orbital radial function; and .T. if the linearisation energy is allowed to vary.
------------------------------------------------------------------------------
◆  _lo (XAS, XMCD, XMLD)
1. rmt, sprmax
  rmt -> around 0.8 - 0.83333 times (heavy element{ Lanthanoids and Actinoids} 2/3 times)
    (N 0.8, Cu 0.83, Pu 0.66)
  sprmax -> around 0.72 - 0.86 times
    (N 0.77, Cu 0.86, Pu 0.72)
2. spcore T -> F (exitation core)
   2   1   1   2.00000    F
   2   1   2   4.00000    F
3. nlorb + 1
----- transition atom (local orbitals setting)
add
   1   3                                    : lorbl (p orbit core), lorbord
  0.1500   0  F                             : lorbe0, lorbdm, lorbve
  0.1500   1  F
-26.0000   0  T    :  threshold energy (Ha unit) at 2p3/2 Absorption, see  Table 1-1 in X-Ray data booklet. wplot = |this value|-0.5  |this value|+0.5
----- transition atom (local orbitals setting)
4. BSE core case (need 6x6x6 or more kpoint)
----- (local orbitals{unoccupied state} setting)
add
   2   3                                    : lorbl (d state, unoccupied state) , lorbord
  0.1500   0  F                             : lorbe0, lorbdm, lorbve
  0.1500   1  F
  0.5000   0  T
----- (local orbitals{unoccupied state} setting)

--BSE calculation MEMO
the calculation of the 2p 1/2 - 2p 3/2 (L2 / L3) x-ray absorption spectra
additional local orbitals are added to allow an accurate description of the unoccupied 3d states
Look at the imaginary part of the spectrum (EPSILON_BSE_11.OUT)
the independent-particle calculation (EPSILON_11.OUT)

------------------------------------------------------------------------------
◆ Benchmark
◆ gfortran  + OpenMP + OpenMPI + ATLAS + FFTW(Netlib)
CentOS 6.4 (Final)
Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
Memory 31.1 GiB
(See examples)

SCF calculation
  Al
DOS
  Al, TiC-eg-t2g (19 s)
Band Structure
  graphene (6:42 s), Si, Ge, Pb
LDA+U (AFM, FLL)
  FeAl-LDA+U-AMF, FeAl-LDA+U-INT, NiO-LDA+U-FLL, NiO-LDA+U-FLL-tensmom, NiO-LDA+U-FLL-Ykwa, NiO-LDA+U-optimized
BSE
  LiF-BSE (4:01 s), CaO-BSE-core, Si-BSE
XPS
ELNES
  BN-ELNES (15:20:03 - failed in my MPI case {mca_oob_tcp_msg_recv: readv failed: Connection timed out (110)}!, 2.7 GB), Cu-ELNES, Pu-ELNES
XAS, XMCD, XMLD
  Fe-XMCD (6:04 s <- i7 920)
lattice-optimization
  BaTiO3-lattice-opt, MgB2-lattice-opt
geometry optimisation
  Si-geom-opt
phonon (DFPT: density functional perturbation theory)
  Al-phonon-DFPT, Nb-phonon-DFPT (16:26:46 - not finishied (> 1 day) <- i7 920)
Eliashberg
  Al-Eliashberg
magnetic-response
  Ni-magnetic-response
magnon
  Ni-magnon
■ MOKE
  Ni-MOKE
Mossbauer
  Fe-Mossbauer
magnetc anisotropy energy (MAE)
  FeCo-MAE
Fermi-surface
rho3D
  diamond-rho3D
STM
  Al-STM
SOC
  US-LDA+SOC+U-tensmom
Linear optical spectrum
  Al-linopt, TiO2-linopt
TDDFT
  diamond-TDDFT-ALDA, LiF-TDDFT-LRC, LiF-TDDFT-bootstrap
OEP
  Si-OEP, HEG-OEP
libxc
  Al-libxc, Si-hybrid-libxc
AFM
  Fe-AFM
------------------------------------------------------------------------------
Elk / Discussion / Forums で良い記述を探してみた。まだまだ良い記述はたくさんあると思う。
----------
http://sourceforge.net/p/elk/discussion/897820/thread/d5490ec7/
  elk  produces the bandgap of 2.519eV in elk for MgS(Magnesium Sulfide) in the following calculation details 10x10x10 kpoints, PBE-GGA, rgkmax=8.0, (the structure is the optimized one in elk) while wien2k shows 2.768eV in the same calculation settings. The difference between elk and wien2k is 0.25eV.
  Have you tried to converge the calculations with respect to smearing width?
  I confirmed that  the calculations of MgS are converged with respect to smearing width trying 0.01, 0.001, and so on.
  one possible reason is a different choice of basis sets: FLAPW does not uniquely describe the basis set.
  You can check for errors of the augmentation by using different muffin-tin radii.
  varying muffin-tin radii does not change the bandgap more than 0.01eV.
----------
http://sourceforge.net/p/elk/discussion/897820/thread/ad83d8be/?limit=50#1083
  The projected density of states (decomposed in s, p,d, f contributions) is stored in PDOS_S01_A0001.OUT where S is the species and A is the atom number.
----------
http://sourceforge.net/p/elk/discussion/897820/thread/a7285676/?limit=25#458d
  Elk automatically finds the space group from the atomic positions (so you have to input these precisely). It can also automatically reduce a conventional cell to a primitive cell using

primcell
 .true.

  You can also use the 'spacegroup' utility to generate the coordinates for elk.in by supplying the space group symbol and Wykoff coordinates. Look in the 'elk/src/spacegroup' directory for this code, and take a look at the manual: http://elk.sourceforge.net/spacegroup.pdf
----------
http://sourceforge.net/p/elk/discussion/897820/thread/905a807b/?limit=50#0d8b
  ou first need to provide the vector 'vklem' in elk.in. This specifies the k-point at which you'd like to calculated the effective mass. Then run task=25.
  The file EFFMASS.OUT contains the effective mass tensor for your input k-point and for all states from 1 to nstsv.
----------
TDDFT ouput file: http://sourceforge.net/p/elk/discussion/897820/thread/735d2e5a/?limit=50#a078
  EELS_TDDFT.OUT: VEELs spectrum
  The real and imaginary parts of 1/epsilon(0,0,w) are written to EPSILON_11.OUT and EPSILON_TDDFT.OUT.
  The difference is that EPSILON_11.OUT is the macroscopic RPA dielectric function with no microscopic corrections, and EPSILON_TDDFT.OUT is the TDDFT version with microscopic corrections.
 

You're all quite correct: for epsilon read epsilon^{-1}.

To summarize:

EPSILON_11.OUT contains RPA 1/epsilon^{-1}(0,0,w) with no microscopic contributions. i.e. epsilon(0,0,w)

EPSILON_TDDFT.OUT contains TDDFT 1/epsilon^{-1}(0,0,w) with microscopic contributions.

EELS_TDDFT.OUT contains epsilon^{-1}(0,0,w) with microscopic contributions.

----------
http://sourceforge.net/p/elk/discussion/897820/thread/4ec66e06/?limit=50#400c

Dear elk users and developers,
I have a question regarding the basis, let's take for example 'Mn.in'
-----

The APW+lo and LAPW+LO refer to that there are essentially two types of basis functions.
So the first thing to understand is the difference of an augmented plane wave (APW/LAPW)and a local orbital (lo/LO)
They simply differ in the interstitial region, the APW is a plane wave and the LO vanishes.

However inside a muffin-tin both these are expanded in local spherical functions in essentially the same way.
For each angular momentum at each atom, the radial part can be expressed with one or several radial functions. Each radial functions corresponds to a partial wave solution at a certain energy or to an energy derivate of a certain order of that function at a given energy.

Now the lorbord parameter is the number of different radial functions for the given angular momentum lorbl.
However, in principle you can mix the energies and derivatives in any way you want for each lo (or apw). Hence the forms you find in Cottenier's description are only special cases, though the two most common.

Now you do not want to use many radial functions in the APW part, most often only one, due to slower convergence.
When you use two in the APW, for historically reasons it is referred to as a LAPW …

In the example you have given. The basis consists of:
1) APW's with one radial function (apword=1) for each atom and each l, with no exception (nlx=0). The number of APW's is determined by the PW-cutoff of the parameter, rgkmax.
and
2) six independent lo's
The first three with two radial functions. A function and its derivative at same energy, in all three cases.
The three last lo's use three radial functions. A function and its derivative at same energy plus another function at a lower energy.

The first three lo's are to cover the valence states, ie 4s, 4p and 3d.
the fourth and fifth cover the semicores, 3s, 3p,
while the last one add variational freedom for the 3d states in order to treat the fairly large exchange splitting of Mn.

In Wien2k-terminology (as used by Cottenier) the six lo's would best be described as: 3 lo, 2 LO and 1 lo, respectively.
However, the 6'th lo has three radial functions and therefore is in form close to the LO, but is not intended for semi-core states … I prefer to use "lo" for all kinds of lo's in order to avoid such confusion.

This input file is by no means unique, you can alter it in many ways and get the same result. If one wants to understand the basis set better that is the way to go! I give three examples below how to get your fingers dirty:

For instance I suggest that you try to use two exception (nlx=2), with two radial functions for the 4s and 4p partial waves and then skip the corresponding lo's, ending up with four lo's. This results in a somewhat smaller total basis set but probably give very similar results. Why? This would end up in a mixed APW/LAPW basis set. Therefore I prefer to use APW for all possible choices, other than the classical LAPW choice, with two radial function, the partial wave and its energy derivative at one given linearisation energy.

You never really have to go higher order (lorbord) than two. How would that look like in the Mn.in file?

Another thing is that in principle we never need to use energy derivatives, but instead partial waves at different energies. Try to rewrite the Mn.in file in order to do that. The energy derivatives are there for completeness and historical reasons, as they were introduced in the linearisation of the old APW-method, i.e. in the LAPW.

http://sourceforge.net/p/elk/discussion/897820/thread/5008c564/?limit=25#ba55

http://sourceforge.net/p/elk/discussion/897820/thread/8aa889df
----------
------------------------------------------------------------------------------
http://sourceforge.net/p/elk/discussion/897820/thread/00adc96c/?limit=25#bd31
  nvbse and ncbse refers to the number of occupied and unoccupied states respectively. These are the states used for setting up the BSE Hamiltonian. If you look at the EIGVAL.OUT file you can see how many occupied (with occupation number 2) and unoccupied (with occupation number 0) states there are. For the case of insulators/semiconductors this number is not k-point dependent. You must make sure that your nvbse is at most equal to or less than nuber of occupied stares and ncbse is at most equal to or less than number of unoccupied states.
------------------------------------------------------------------------------
http://sourceforge.net/p/elk/discussion/897820/thread/b303e0fe/
 
------------------------------------------------------------------------------
phonon: http://sourceforge.net/p/elk/discussion/897820/thread/e44cb16c/?limit=50#cf7a 
----------
------------------------------------------------------------------------------
http://journals.aps.org/prb/pdf/10.1103/PhysRevB.84.132405http://arxiv.org/pdf/1107.0887v2.pdf, http://escholarship.org/uc/item/6k33p9br#page-6
  The Brillouin zone integration was performed on a 16 × 16 × 16 k-point mesh in the irreducible wedge, the Perdew-Burke-Ernzerhof functional18 was chosen for exchange and correlation, and spin-orbit coupling was included in a second-variational scheme. The absorption and dichroic spectra were calculated within a first-order optical response formalism, i.e., core-hole correlations were not taken into account. half-metallic
ground statewas obtained with a total spin magnetic moment of 2 μB/f.u. and site-resolved spin (orbital) moments as follows: Co 1.03 μB (0.046 μB), Mn(B) 2.91 μB (0.011 μB), and Mn(C) −1.93 μB (−0.019 μB).Adetailed discussion of the electronic structure is given in Ref. 2.
  All these features are reproduced by the ab initio calculations [Figs. 1(c) and 1(d)], which are broadened with a Lorentzian of 0.3 eV width to account for lifetime effects.
  The asymmetric line shape and the broad tails of the resonances are a consequence of 2p-3d e-e correlation,19 which is neglected in our simulations. Electron-hole correlations can significantly alter the shape of the XAS or XMCD spectra of 3d transition elements, even in a metallic environment.20 Thus, the good agreement of our calculations with the experimental spectra indicates an effective screening of the 2p core hole.
------------------------------------------------------------------------------
http://journals.aps.org/prl/pdf/10.1103/PhysRevLett.107.216402
  In practice, however, the macroscopic dielectric function calculated using this kernel has two well-known deficiencies: the quasiparticle gap is too small, and the physics of the bound electron-hole pair is totally missing—in fact, ALDA does not improve on the results obtained within the random phase approximation (RPA) which corresponds to the trivial kernel fxc = 0. In the present work, we concentrate on the second of these problems, namely, the missing excitonic peak in the spectrum. There have been previous attempts to solve this problem, and there exist kernels which correctly reproduce the peaks in the optical spectrum associated with bound excitons. The nanoquanta kernel by Sottile et al., derived from the four-point Bethe-Salpeter kernel, is very accurate but has the drawback of being nearly as computationally demanding as solving the BSE itself. The long-range correction (LRC) kernel has a particularly simple form in reciprocal space, fxc = - alpha / q^2, which limits its computational cost. This kernel produces the desired excitonicpeak but depends on the choice of the parameter alpha, which  turns out to be strongly material-dependent, thereby limiting the predictiveness of this approximation. In the present Letter, we propose a new parameter-free approximation for fxc and demonstrate that this kernel gives accurate results with the computational cost of ALDA.

Good !
BSE: LiF, Ar?, Ne?
TDDFT-bootstrap: Ge, Si, GaAs, Diamond, AlN, SiC, NiO, TiO2
------------------------------------------------------------------------------
http://arxiv.org/pdf/1402.5755v1.pdf
  For comparison, the electronic structure was calculated with the elk code. Optical spectra were calculated
within the random phase approximation (RPA) and by solving the Bethe-Salpeter-Equation (BSE), for which the Brillouin zone was sampled with a shifted 8x8x8 k-point mesh. A Lorentzian broadening of 0.1 eV
was applied. The loss function -Im(1/epsilon(q = 0;E)) was calculated with time-dependent DFT (TDDFT) in
the adiabatic approximation including local eld e ects (LFE) with a broadening of 1 eV.

  The structure of the unoccupied Fe states was investigated with x-ray absorption spectroscopy at the Fe L2,3 edges. The x-ray absorption (XAS) and magnetic circular dichroism (XMCD) spectra were taken at temperatures down to 13K at beamline 4.0.2 of the Advanced Light Source, Berkeley. The substrate luminescence was detected with a photodiode in addition to the total electron yield to measure the absorption signal of the lms. The experimental spectrum in Fig. 4 shows a strong double-peak structure and some weaker features at the high-energy side of the absorption edge. X-ray absorption spectra were calculated in the random phase approximation without local elds and by solving the Bethe-Salpeter-Equation. Here, the Brillouin zone was sampled with a shifted 6 x 6 x 6 k-point mesh and spin-orbit coupling was included.
------------------------------------------------------------------------------


QRコード
携帯用QRコード
アクセス数
ページビュー数