w90_gyrotropic Module

This module computes various "gyrotropic" effects as described in : TAS17 = arXiv:1710.03204 (2017) Gyrotropic effects in trigonal tellurium studied from first principles S.S.Tsirkin, P. Aguado Puente, I. Souza


Uses

  • module~~w90_gyrotropic~~UsesGraph module~w90_gyrotropic w90_gyrotropic module~w90_berry w90_berry module~w90_gyrotropic->module~w90_berry module~w90_constants w90_constants module~w90_gyrotropic->module~w90_constants module~w90_berry->module~w90_constants

Used by

  • module~~w90_gyrotropic~~UsedByGraph module~w90_gyrotropic w90_gyrotropic program~postw90 postw90 program~postw90->module~w90_gyrotropic

Contents


Variables

TypeVisibility AttributesNameInitial
integer, private, parameter, dimension(3):: alpha_A =(/2, 3, 1/)
integer, private, parameter, dimension(3):: beta_A =(/3, 1, 2/)
integer, private, parameter, dimension(6):: alpha_S =(/1, 2, 3, 1, 1, 2/)
integer, private, parameter, dimension(6):: beta_S =(/1, 2, 3, 2, 3, 3/)

Subroutines

public subroutine gyrotropic_main()

Computes the following quantities: (i) D tensor (ii) K tensor (iii) C tensor (iv) current-induced optical activity (v) natural optical activity

Arguments

None

private subroutine gyrotropic_get_k_list(kpt, kweight, gyro_K_spn, gyro_K_orb, gyro_D, gyro_Dw, gyro_C, gyro_DOS, gyro_NOA_orb, gyro_NOA_spn, eval_K, eval_D, eval_Dw, eval_NOA, eval_spn, eval_C, eval_dos)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in) :: kpt(3)
real(kind=dp), intent(in) :: kweight
real(kind=dp), intent(inout), dimension(:, :, :):: gyro_K_spn
real(kind=dp), intent(inout), dimension(:, :, :):: gyro_K_orb
real(kind=dp), intent(inout), dimension(:, :, :):: gyro_D
real(kind=dp), intent(inout), dimension(:, :, :, :):: gyro_Dw
real(kind=dp), intent(inout), dimension(:, :, :):: gyro_C
real(kind=dp), intent(inout), dimension(:):: gyro_DOS
real(kind=dp), intent(inout), dimension(:, :, :, :):: gyro_NOA_orb
real(kind=dp), intent(inout), dimension(:, :, :, :):: gyro_NOA_spn
logical, intent(in) :: eval_K
logical, intent(in) :: eval_D
logical, intent(in) :: eval_Dw
logical, intent(in) :: eval_NOA
logical, intent(in) :: eval_spn
logical, intent(in) :: eval_C
logical, intent(in) :: eval_dos

private subroutine gyrotropic_get_curv_w_k(eig, AA, curv_w_k)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in) :: eig(:)
complex(kind=dp), intent(in) :: AA(:,:,:)
real(kind=dp), intent(out), dimension(:, :, :):: curv_w_k

private subroutine gyrotropic_get_NOA_k(kpt, kweight, eig, del_eig, AA, UU, gyro_NOA_orb, gyro_NOA_spn)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in) :: kpt(3)
real(kind=dp), intent(in) :: kweight
real(kind=dp), intent(in), dimension(:):: eig
real(kind=dp), intent(in), dimension(:, :):: del_eig
complex(kind=dp), intent(in), dimension(:, :, :):: AA
complex(kind=dp), intent(in), dimension(:, :):: UU
real(kind=dp), intent(inout), dimension(:, :, :, :):: gyro_NOA_orb
real(kind=dp), intent(inout), optional dimension(:, :, :, :):: gyro_NOA_spn

private subroutine gyrotropic_get_NOA_Bnl_orb(eig, del_eig, AA, num_occ, occ_list, num_unocc, unocc_list, Bnl)

Arguments

Type IntentOptional AttributesName
real(kind=dp), intent(in), dimension(:):: eig
real(kind=dp), intent(in), dimension(:, :):: del_eig
complex(kind=dp), intent(in), dimension(:, :, :):: AA
integer, intent(in) :: num_occ
integer, intent(in), dimension(:):: occ_list
integer, intent(in) :: num_unocc
integer, intent(in), dimension(:):: unocc_list
complex(kind=dp), intent(out), dimension(:, :, :, :):: Bnl

private subroutine gyrotropic_get_NOA_Bnl_spin(S_h, num_occ, occ_list, num_unocc, unocc_list, Bnl)

Arguments

Type IntentOptional AttributesName
complex(kind=dp), intent(in), dimension(:, :, :):: S_h
integer, intent(in) :: num_occ
integer, intent(in), dimension(:):: occ_list
integer, intent(in) :: num_unocc
integer, intent(in), dimension(:):: unocc_list
complex(kind=dp), intent(out), dimension(:, :, :, :):: Bnl

private subroutine gyrotropic_outprint_tensor(f_out_name, arrEf, arrEf1D, arrEfW, units, comment, symmetrize)

Arguments

Type IntentOptional AttributesName
character(len=30), intent(in) :: f_out_name
real(kind=dp), intent(in), optional dimension(:, :, :):: arrEf
real(kind=dp), intent(in), optional dimension(:):: arrEf1D
real(kind=dp), intent(in), optional dimension(:, :, :, :):: arrEfW
character(len=30), intent(in), optional :: units
character(len=120), intent(in), optional :: comment
logical, intent(in), optional :: symmetrize

private subroutine gyrotropic_outprint_tensor_w(file_unit, omega, arr33N, arrN, symmetrize)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: file_unit
real(kind=dp), intent(in) :: omega
real(kind=dp), intent(in), optional dimension(:, :, :):: arr33N
real(kind=dp), intent(in), optional dimension(:):: arrN
logical, intent(in), optional :: symmetrize