User Guide
User Manual:
Open the PDF directly: View PDF
.
Page Count: 14
| Download | |
| Open PDF In Browser | View PDF |
User’s guide of EDRIXS code
Yilin Wang
December 13, 2018
Contents
1 Installation
1.1 Get EDRIXS . . . . . . . . . . . . . . . . .
1.2 Requirement of tools and libraries . . . . . .
1.3 Tips for compiling Arpack library . . . . . .
1.4 Compile the fortran source code . . . . . . .
1.5 Compile the documentation of Python API
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
3
4
4
2 Inputs and outputs
2.1 config.in . . . . . . . . . . . . . . . . . . . .
2.1.1 integer :: ed_solver . . . . . . . . . .
2.1.2 integer :: num_val_orbs . . . . . . .
2.1.3 integer :: num_core_orbs . . . . . .
2.1.4 integer :: neval . . . . . . . . . . . .
2.1.5 integer :: nvector . . . . . . . . . . .
2.1.6 integer :: ncv . . . . . . . . . . . . .
2.1.7 integer :: num_gs . . . . . . . . . .
2.1.8 integer :: maxiter . . . . . . . . . . .
2.1.9 integer :: min_ndim . . . . . . . . .
2.1.10 integer :: nkryl . . . . . . . . . . . .
2.1.11 integer :: linsys_max . . . . . . . . .
2.1.12 logical :: idump . . . . . . . . . . . .
2.1.13 real(kind=8) :: linsys_tol . . . . . .
2.1.14 real(kind=8) :: eigval_tol . . . . . .
2.1.15 real(kind=8) :: omega_in . . . . . .
2.1.16 real(kind=8) :: gamma_in . . . . . .
2.2 fock_x.in (x=i,n,f) . . . . . . . . . . . . . .
2.3 hopping_x.in (x=i,n) . . . . . . . . . . . . .
2.4 coulomb_x.in (x=i,n) . . . . . . . . . . . .
2.5 transop_xas.in & transop_rixs_x.in (x=i,f)
2.6 eigvals.dat . . . . . . . . . . . . . . . . . . .
2.7 denmat.dat . . . . . . . . . . . . . . . . . .
2.8 eigvec.i . . . . . . . . . . . . . . . . . . . .
2.9 xas_poles.i & rixs_poles.i . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
8
8
8
8
9
9
10
10
11
11
1
CONTENTS
2
3 Conventions used in the code
13
3.1 orbital orders . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Chapter 1
Installation
1.1
Get EDRIXS
Type the following command in a terminal to get the latest version of
EDRIXS code,
$ cd ${EDRIXS_DIR}
$ git clone https://github.com/shenmidelin/edrixs.git
1.2
Requirement of tools and libraries
We only test the code using Intel’s fortran compiler (ifort), so we strongly recommend it. A MPI library such as OpenMPI or MPICH3 is needed. For lapack library, we recommend Intel’s MKL. For Arpack library, we recommend
arpack-ng (https://github.com/opencollab/arpack-ng). Python3, Numpy,
Scipy, Sympy, Matplotlib, Sphinx and Numpydoc are required. We recommend to install the latest Anacona package (https://www.anaconda.com/)
for the Python3 enviroment and the libraries.
1.3
Tips for compiling Arpack library
Get the latest version of arpack-ng by typing,
$ git clone https://github.com/opencollab/arpack-ng.git
Compile it by typing,
$ sh bootstrap
$ ./configure --prefix=${ARPACK_DIR} --enable-mpi \
> --with-blas="-L${MKLROOT}/lib/intel64 -lmkl_core -lmkl_sequential -lmkl_rt" \
3
CHAPTER 1. INSTALLATION
4
> --with-lapack="-L${MKLROOT}/lib/intel64 -lmkl_core -lmkl_sequential -lmkl_rt" \
> FC=ifort F77=ifort MPIFC=mpif90 MPIF77=mpif90
$ make
$ make install
You may need to install autotools: autoconf, automake, libtool.
1.4
Compile the fortran source code
Go to the fortran source directory and edit the make.sys file to set the Fotran
compiler and Lapack and Arpack libraries.
$ cd edrixs/src/fortran
$ vim make.sys
F90 = mpif90 or F90 = mpiifort
LIBS = -L${MKLROOT}/lib/intel64 -lmkl_core -lmkl_sequential -lmkl_rt \\
${ARPACK_DIR}/lib/libparapck.a ${ARPACK_DIR}/lib/libarpack.a
where, MKLROOT is the root directory of MKL library and
ARPACK_DIR is the root directory of the Arpack libraries. Then, type
$ make
$ make install
to compile and install the executable files (.x) to edrixs/bin directory.
After that, please add the following two lines in .bashrc or .bash_profile,
export PATH=${EDRIXS_DIR}/edrixs/bin:$PATH
export PYTHONPATH=${EDRIXS_DIR}/edrixs/src/python:$PYTHONPATH
1.5
$
$
$
$
Compile the documentation of Python API
cd edrixs/docs
mkdir build
sphinx-build -b html source build
make html
Open the file
${EDRIXS_DIR}/edrixs/docs/build/index.html
in a browser to read the Python API documentation.
Chapter 2
Inputs and outputs
2.1
config.in
2.1.1
integer :: ed_solver
For ed.x
Default: 1
The type of ED solver:
ed_solver = 0, full diagonalization, all the eigenvalues can be obtained, for
small size problem n < 1000.
ed_solver = 1, standard Lanczos algorithm without re-orthogonalization,
for roughly finding one ground state.
ed_solver = 2, use parallel Arpack library, for finding a few lowest excited
states.
2.1.2
integer :: num_val_orbs
For ed.x, xas.x and rixs.x
Default : 2
Number of valence orbitals (including spin).
5
CHAPTER 2. INPUTS AND OUTPUTS
2.1.3
integer :: num_core_orbs
For xas.x and rixs.x
Default : 2
Number of deep core orbitals (including spin).
2.1.4
integer :: neval
For ed.x
Default : 1
Number of eigenvalues are obtained.
2.1.5
integer :: nvector
For ed.x
Default : 1
Number of eigenvectors are obtained.
2.1.6
integer :: ncv
For ed.x
Default : neval + 2
Used by ed_solver = 2, control the converged speed, ncv≥ neval +2.
2.1.7
integer :: num_gs
For xas.x and rixs.x
Default : 1
Number of ground states are used in XAS or RIXS calculations.
2.1.8
integer :: maxiter
For ed.x
Default : 500
Maximum Lanczos iterations.
6
CHAPTER 2. INPUTS AND OUTPUTS
2.1.9
integer :: min_ndim
For ed.x
Default : 1000
If the dimension of the Hamitlonian is smaller than min_ndim, ed_solver
will be automatically set to be 0, Lapack will be used.
2.1.10
integer :: nkryl
For xas.x and rixs.x
Default : 500
Maximum iterations of building Krylov subspace.
2.1.11
integer :: linsys_max
For rixs.x
Default : 500
Maximum iterations for solving the linear equations by using MINRES.
2.1.12
logical :: idump
For ed.x
Default : .false.
Whether to write out the eigenvectors to file eigvec.xxx.
2.1.13
real(kind=8) :: linsys_tol
For rixs.x
Default : 1E-8
Tolerance for solving the linear equations.
2.1.14
real(kind=8) :: eigval_tol
For ed.x
Default : 1E-8
Tolerance for finding eigenvalues.
7
CHAPTER 2. INPUTS AND OUTPUTS
2.1.15
real(kind=8) :: omega_in
For rixs.x
Default : 0.0
The energy of incident x-ray at which the RIXS spectrum is measured.
2.1.16
real(kind=8) :: gamma_in
For rixs.x
Default : 0.1
The broadening factor of the core-hole life-time (eV).
2.2
fock_x.in (x=i,n,f)
Input for ed.x, xas.x and rixs.x
Use decimal numbers to represent the Fock basis. The following is an
example,
220
511
767
895
959
991
...
The number “220” in the first line is the total number of Fock basis, and
the decimal numbers in the following lines are the Fock basis. Please note
that these numbers should be in an ascending order.
2.3
hopping_x.in (x=i,n)
Input for ed.x, xas.x and rixs.x
The nonzeros elments of the two-fermion terms tα,β in Hamiltonians Ĥi
and Ĥn or any other operators Ô. The following is an example,
8
CHAPTER 2. INPUTS AND OUTPUTS
1
1
1
1
1
1
1
1
1
1
...
112
0.175000000000
−0.021213203436
−0.247487373415
−0.000000000000
−0.000000000000
−0.073484692232
−0.103923048381
0.000000000219
−0.029393876893
0.014696938508
1
3
4
5
7
8
9
10
11
12
9
0.000000000000
−0.021213203436
0.000000000000
0.030000000000
0.146969384464
−0.073484692541
0.103923048381
−0.103923048600
−0.000000000000
−0.014696938446
The number in the first line is the number of the nonzeros of tα,β , the
following lines are the nonzero elements. The first column is the first index
α and the second column is the second index β. The third and fourth
columns are the real and imaginary parts of the element tα,β .
2.4
coulomb_x.in (x=i,n)
Input for ed.x, xas.x and rixs.x
The nonzeros elments of the four-fermion terms Uα,β,γ,δ in Hamiltonians Ĥi
and Ĥn or any other operators Ô. The following is an example,
152
1
1
1
1
1
1
1
1
1
1
...
1
2
3
3
4
4
5
5
5
6
1
2
1
3
2
4
1
3
5
2
1
1
3
1
3
1
5
3
1
5
0.850000000000
0.850000000000
0.150000000000
0.700000000000
0.150000000000
0.700000000000
0.300000000000
−0.150000000000
0.850000000000
0.300000000000
0.000000000000
0.000000000000
0.000000000000
0.000000000000
0.000000000000
0.000000000000
0.000000000000
0.000000000000
0.000000000000
0.000000000000
The number in the first line is the number of the nonzeros of Uα,β,γ,δ , the
following lines are the nonzero elements. The first to the fourth columns
are the indices α, β, γ, δ, respectively. The last two columns are the real
and imaginary parts of the element Uα,β,γ,δ .
2.5
transop_xas.in & transop_rixs_x.in (x=i,f)
Input for xas.x and rixs.x
CHAPTER 2. INPUTS AND OUTPUTS
10
The nonzeros elments of the transition operators Dα,β in XAS and RIXS
calculations. The following is an example,
1
1
2
2
3
3
4
4
...
15
17
16
18
13
17
14
18
24
0.080393652075
0.000000000000
0.080393652075
0.000000000000
0.080393652075
−0.080393652075
0.080393652075
−0.080393652075
0.488641941854
0.097631072228
0.488641941854
0.097631072228
−0.488641941854
−0.488641941854
−0.488641941854
−0.488641941854
The number in the first line is the number of the nonzeros Dα,β . The
following lines are the nonzero elements. The first column is the first index
α and the second column is the second index β. The third and fourth
columns are the real and imaginary parts of the element Dα,β .
2.6
eigvals.dat
Output from ed.x
The eigenvalues obtained from ED solver. The following is an example,
1
2
3
4
5
6
7
8
9
10
...
−64.3102435734
−64.3102435734
−64.3102435734
−64.3102435734
−63.5680930356
−63.5680930355
−63.5680930355
−63.3445562508
−63.3445562508
−63.3445562508
The first column is the index, and the second column is the eigenvalues
(eV).
2.7
denmat.dat
Output from ed.x
E
D
The density matrix Γi fˆα† fˆβ Γi obtained from ED solver. The following
is an example,
CHAPTER 2. INPUTS AND OUTPUTS
1
1
1
1
1
1
1
1
1
1
...
1
1
1
1
1
1
1
1
1
1
1
2
3
4
5
6
7
8
9
10
11
−0.0000000000
−0.0110465040
0.0280312207
0.0000000000
0.0082840204
−0.0076967959
0.0000000000
−0.0036560575
0.0100115957
0.0000000000
0.3970514690
0.0492650492
0.1641162863
−0.0428648754
−0.1046733922
−0.0047905834
−0.2227170168
0.0163052360
0.0615741278
−0.0136551480
The first column are the indices of the eigenstates |Γi i. The second and
third column are the orbital indices α, β, respectively. The last two column
are the real and imaginary parts of the elments of the densiy matrix.
2.8
eigvec.i
Output from ed.x, binary file
The wavefunction of each eigenvector obtatined from ED solver, used later
by xas.x and rixs.x.
2.9
xas_poles.i & rixs_poles.i
Output from xas.x and rixs.x
Parameters α, β of the tridiagonal matrix generated by Lanczos process,
α1 β2
β2 α2
β3
β3
α3
..
.
..
..
.
. βn
βn αn
The following is an example,
# number_of_poles :
# enegry :
# normalization :
1
−69.6522949784
2
−63.8752918165
3
−58.1138926713
4
−54.7529810716
5
−58.0794041399
500
-64.3102435734
0.6460959156
2.3222847588
2.9676823607
5.9882311024
8.2661269876
10.2511871133
CHAPTER 2. INPUTS AND OUTPUTS
6
7
8
9
...
−50.5589161715
−48.8412482141
−45.6761682831
−37.4086274742
12
10.0207070382
10.8058123445
12.7882369948
15.3864546117
The first line is the total number of α, β. The second line is the energy of
the ground state. The third line is a normalization factor. The following
lines are α, β, where, the first column are incides, the second and third
column are α, β, respectively.
Chapter 3
Conventions used in the code
3.1
orbital orders
All the valence orbitals should be put in front of all the core orbitals. For
example, for single atom 2p → 5d transition,
1−10
11−16
z
}|
{ z }| {
1101001100 111011
(3.1.1)
where, 1-10 are 5d valence orbitals and 11-16 are 2p core orbitals; for
two-site 2p → 5d transition, 1-20 are 5d valence orbitals and 21-32 are 2p
core orbitals.
When building Fock basis, only valence orbitals are considered. xas.x
and rixs.x will take care of the core orbitals internally.
13
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.5 Linearized : No Page Count : 14 Page Mode : UseOutlines Author : Title : Subject : Creator : LaTeX with hyperref package Producer : pdfTeX-1.40.17 Create Date : 2018:12:13 15:19:49-05:00 Modify Date : 2018:12:13 15:19:49-05:00 Trapped : False PTEX Fullbanner : This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) kpathsea version 6.2.2EXIF Metadata provided by EXIF.tools