ccao / wannchi

Calculates susceptibility using wannier functions. RPA and self-energy correction is currently under internal tests.
2 stars 3 forks source link

WannChi: Susceptibility from Wannier Hamiltonians

This program was developed by Chao Cao, Siqi Wu, Chenchao Xu, and Guo-Xiang Zhi @ Zhejiang University.

Bugs and comments can be submitted via GitHub or email to:

ccao@zju.edu.cn

Installation

Some implementation of BLAS/LAPACK is required, MKL is tested. MPI is recommended.

  1. Modify "make.sys" according to your specification.

  2. Get into modules directory and make.

  3. Get into src directory and make.

Repeat 1-3 if you encountered compilation problems.

Run the program

Prepare some input files and use:

    mpirun -np ${NUM_PROC} wannchi.x > wannchi.log

Input Files:

Description of seed.pos file

POSCAR-like input for orbital-site information.

Format description:

line 1            : Some comment
line 2            : Universal Scale
line 4            : A1
line 5            : A2
line 6            : A3
line 7            :  nsite  soc
line 8 to nsite+7 : Zat  x1  x2  x3   nbasis

nsite: Number of sites soc : 0 (no SOC) or 1 (with SOC) Zat : Atomic number x1, x2, x3 : fractional coordinates nbasis : Number of Wannier orbitals on this site

Example 1: Perfect Kagome w/o SOC

Kagome
 1.0
     4.6669313530311989   -2.6944540729627522   -0.0000000000000000
     4.6669313530311989    2.6944540729627526   -0.0000000000000000
     0.0000000000000000    0.0000000000000000    9.8872122322434954
  3  0
1  0.5  0.0  0.0 1
1  0.0  0.5  0.0 1
1  0.5  0.5  0.0 1

Description of IBZKPT file

KPOINTS-like input for K-mesh.

Format description:

line 1 : Some comment
line 2 : switch
line 3 : Some other comment
  nk1  nk2  nk3

switch : 0 for automatic generation. Currently only 0 is supported. nk1, nk2, nk3 : K-mesh definition. Currently only Gamma-centered K-mesh is supported.

Example : A 96 x 96 x 1 Gamma-centered K-mesh

Automatically generated mesh
      0
Reciprocal lattice
  96  96  1

Description of QPOINTS file

Specifies q-points to be calculated. The format is controlled by the first line, which is a mode switch. Possible values are:

Example 1 : Single point calculation on ($\pi$, $\pi$, 0)

0
0.5  0.5  0.0

Example 2 : Line mode calculation for square lattice along G-M-X-G. Each segment is interpolated by 24 points.

1
3  24
0.0  0.0  0.0   0.5  0.5  0.0
0.5  0.5  0.0   0.5  0.0  0.0
0.5  0.0  0.0   0.0  0.0  0.0

Example 3 : Plane-mode calculation for a 48x48 mesh spanned by vectors (1.0, 0.0, 0.0) and (0.0, 1.0, 0.0), with one end at (0.0, 0.0, 0.5)

2
48 48
0.0  0.0  0.5
1.0  0.0  0.0
0.0  1.0  0.0

Example 4 : Body-mode calculation for a 24x24x24 mesh.

3
24 24 24

Description of RPA.inp file

Required if trace_only tag is set to .false.. It specifies the "FF" block as well as the interactions.

Format description:

line 1 : nFFblk : Number of FF blocks
line 2 : Dimension of the 1st FF block
line 3 : Global index of the 1st FF block orbitals
line 4 : Dimension of the 2nd FF block
line 5 : Global index of the 2nd FF block orbitals
...
line 2*nFFblk : Dimension of the last FF block
line 2*nFFblk+1 : Global index of the last FF block orbitals
line 2*nFFblk+2 : nUint : Number of interactions specified, can be 0
line 2*nFFblk+3 to line 2*nFFblk+nUint+2 : i1 i2  j1 j2  Uint

RPA feature is currently not released to public. The meaning of FF-trick will be explained in future paper.

Example 1: To obtain full matrix for Perfect Kagome.

1
3
1  2  3
0

Example 2: Full matrix calculation for iron-pnictides with first 10 orbitals being Fe-3d

2
 5
1 2 3 4 5
 5
6 7 8 9 10
0

Description of wannchi.inp

Main input file. Fortran namelist input format. Requires 2 blocks of namelist, namely "system" and "control".

Typical example:

&system
  seed='symm'
  beta=2000.d0,
  mu=2.0
  spectra_calc = .true.
/
&control
  use_lehman = .false.
  trace_only = .false.
  ff_only    = .false.
  npade = 40

  fast_calc  = .true.
  nnu=1
  emin = 0.0001
  emax = 0.0
/

Keywords are: