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
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private, | parameter, dimension(3) | :: | alpha_A | = | (/2, 3, 1/) | |
| integer, | private, | parameter, dimension(3) | :: | beta_A | = | (/3, 1, 2/) |
Computes the following quantities: (i) D tensor (ii) K tensor (iii) C tensor (iv) current-induced optical activity (v) natural optical activity
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(pw90_berry_mod_type), | intent(in) | :: | pw90_berry | |||
| type(dis_manifold_type), | intent(in) | :: | dis_manifold | |||
| real(kind=dp), | intent(in), | allocatable | :: | fermi_energy_list(:) | ||
| type(pw90_gyrotropic_type), | intent(in) | :: | pw90_gyrotropic | |||
| type(kmesh_info_type), | intent(in) | :: | kmesh_info | |||
| real(kind=dp), | intent(in) | :: | kpt_latt(:,:) | |||
| type(pw90_physical_constants_type), | intent(in) | :: | physics | |||
| type(pw90_oper_read_type), | intent(in) | :: | pw90_oper_read | |||
| type(pw90_band_deriv_degen_type), | intent(in) | :: | pw90_band_deriv_degen | |||
| type(ws_region_type), | intent(in) | :: | ws_region | |||
| type(w90_system_type), | intent(in) | :: | w90_system | |||
| type(print_output_type), | intent(in) | :: | print_output | |||
| type(wannier_data_type), | intent(in) | :: | wannier_data | |||
| type(wigner_seitz_type), | intent(inout) | :: | wigner_seitz | |||
| type(ws_distance_type), | intent(inout) | :: | ws_distance | |||
| complex(kind=dp), | intent(inout), | allocatable | :: | AA_R(:,:,:,:) | ||
| complex(kind=dp), | intent(inout), | allocatable | :: | BB_R(:,:,:,:) | ||
| complex(kind=dp), | intent(inout), | allocatable | :: | CC_R(:,:,:,:,:) | ||
| complex(kind=dp), | intent(inout), | allocatable | :: | HH_R(:,:,:) | ||
| complex(kind=dp), | intent(inout), | allocatable | :: | SS_R(:,:,:,:) | ||
| complex(kind=dp), | intent(in) | :: | u_matrix(:,:,:) | |||
| complex(kind=dp), | intent(in) | :: | v_matrix(:,:,:) | |||
| real(kind=dp), | intent(in) | :: | eigval(:,:) | |||
| real(kind=dp), | intent(in) | :: | real_lattice(3,3) | |||
| real(kind=dp), | intent(in) | :: | scissors_shift | |||
| integer, | intent(in) | :: | mp_grid(3) | |||
| integer, | intent(in) | :: | num_bands | |||
| integer, | intent(in) | :: | num_kpts | |||
| integer, | intent(in) | :: | num_wann | |||
| logical, | intent(in) | :: | effective_model | |||
| logical, | intent(in) | :: | have_disentangled | |||
| character(len=50), | intent(in) | :: | seedname | |||
| integer, | intent(in) | :: | stdout | |||
| type(timer_list_type), | intent(inout) | :: | timer | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ws_region_type), | intent(in) | :: | ws_region | |||
| integer, | intent(in) | :: | num_valence_bands | |||
| logical, | intent(in) | :: | have_disentangled | |||
| real(kind=dp), | intent(in) | :: | kpt(3) | |||
| real(kind=dp), | intent(in) | :: | kweight | |||
| real(kind=dp), | intent(inout), | allocatable | :: | gyro_K_spn(:,:,:) | ||
| real(kind=dp), | intent(inout), | allocatable | :: | gyro_K_orb(:,:,:) | ||
| real(kind=dp), | intent(inout), | allocatable | :: | gyro_D(:,:,:) | ||
| real(kind=dp), | intent(inout), | allocatable | :: | gyro_Dw(:,:,:,:) | ||
| real(kind=dp), | intent(inout), | allocatable | :: | gyro_C(:,:,:) | ||
| real(kind=dp), | intent(inout), | allocatable | :: | gyro_DOS(:) | ||
| real(kind=dp), | intent(inout), | allocatable | :: | gyro_NOA_orb(:,:,:,:) | ||
| real(kind=dp), | intent(inout), | allocatable | :: | 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 | |||
| integer, | intent(in) | :: | num_wann | |||
| type(print_output_type), | intent(in) | :: | print_output | |||
| real(kind=dp), | intent(in), | allocatable | :: | fermi_energy_list(:) | ||
| type(wannier_data_type), | intent(in) | :: | wannier_data | |||
| real(kind=dp), | intent(in) | :: | eigval(:,:) | |||
| real(kind=dp), | intent(in) | :: | real_lattice(3,3) | |||
| integer, | intent(in) | :: | mp_grid(3) | |||
| integer, | intent(in) | :: | num_bands | |||
| integer, | intent(in) | :: | num_kpts | |||
| complex(kind=dp), | intent(in) | :: | u_matrix(:,:,:) | |||
| complex(kind=dp), | intent(in) | :: | v_matrix(:,:,:) | |||
| type(dis_manifold_type), | intent(in) | :: | dis_manifold | |||
| real(kind=dp), | intent(in) | :: | kpt_latt(:,:) | |||
| type(pw90_gyrotropic_type), | intent(in) | :: | pw90_gyrotropic | |||
| real(kind=dp), | intent(in) | :: | scissors_shift | |||
| logical, | intent(in) | :: | effective_model | |||
| type(pw90_band_deriv_degen_type), | intent(in) | :: | pw90_band_deriv_degen | |||
| type(ws_distance_type), | intent(inout) | :: | ws_distance | |||
| type(wigner_seitz_type), | intent(inout) | :: | wigner_seitz | |||
| integer, | intent(in) | :: | stdout | |||
| character(len=50), | intent(in) | :: | seedname | |||
| type(timer_list_type), | intent(inout) | :: | timer | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm | |||
| complex(kind=dp), | intent(inout), | allocatable | :: | HH_R(:,:,:) | ||
| complex(kind=dp), | intent(inout), | allocatable | :: | AA_R(:,:,:,:) | ||
| complex(kind=dp), | intent(inout), | allocatable | :: | BB_R(:,:,:,:) | ||
| complex(kind=dp), | intent(inout), | allocatable | :: | CC_R(:,:,:,:,:) | ||
| complex(kind=dp), | intent(inout), | allocatable | :: | SS_R(:,:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | eig(:) | |||
| complex(kind=dp), | intent(in) | :: | AA(:,:,:) | |||
| real(kind=dp), | intent(out) | :: | curv_w_k(:,:,:) | |||
| type(pw90_gyrotropic_type), | intent(in) | :: | pw90_gyrotropic |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(ws_region_type), | intent(in) | :: | ws_region | |||
| real(kind=dp), | intent(in) | :: | kpt(3) | |||
| real(kind=dp), | intent(in) | :: | kweight | |||
| real(kind=dp), | intent(in) | :: | eig(:) | |||
| real(kind=dp), | intent(in) | :: | del_eig(:,:) | |||
| complex(kind=dp), | intent(in) | :: | AA(:,:,:) | |||
| complex(kind=dp), | intent(in) | :: | UU(:,:) | |||
| real(kind=dp), | intent(inout) | :: | gyro_NOA_orb(:,:,:,:) | |||
| integer, | intent(in) | :: | num_wann | |||
| type(print_output_type), | intent(in) | :: | print_output | |||
| real(kind=dp), | intent(in), | allocatable | :: | fermi_energy_list(:) | ||
| type(wannier_data_type), | intent(in) | :: | wannier_data | |||
| real(kind=dp), | intent(in) | :: | real_lattice(3,3) | |||
| integer, | intent(in) | :: | mp_grid(3) | |||
| type(pw90_gyrotropic_type), | intent(in) | :: | pw90_gyrotropic | |||
| type(ws_distance_type), | intent(inout) | :: | ws_distance | |||
| type(wigner_seitz_type), | intent(inout) | :: | wigner_seitz | |||
| integer, | intent(in) | :: | stdout | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm | |||
| complex(kind=dp), | intent(inout), | allocatable | :: | SS_R(:,:,:,:) | ||
| real(kind=dp), | intent(inout), | optional | :: | gyro_NOA_spn(:,:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | eig(:) | |||
| real(kind=dp), | intent(in) | :: | del_eig(:,:) | |||
| complex(kind=dp), | intent(in) | :: | AA(:,:,:) | |||
| integer, | intent(in) | :: | num_occ | |||
| integer, | intent(in) | :: | occ_list(:) | |||
| integer, | intent(in) | :: | num_unocc | |||
| integer, | intent(in) | :: | unocc_list(:) | |||
| complex(kind=dp), | intent(out) | :: | Bnl(:,:,:,:) | |||
| type(pw90_gyrotropic_type), | intent(in) | :: | pw90_gyrotropic |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=dp), | intent(in) | :: | S_h(:,:,:) | |||
| integer, | intent(in) | :: | num_occ | |||
| integer, | intent(in) | :: | occ_list(:) | |||
| integer, | intent(in) | :: | num_unocc | |||
| integer, | intent(in) | :: | unocc_list(:) | |||
| complex(kind=dp), | intent(out) | :: | Bnl(:,:,:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | stdout | |||
| character(len=50), | intent(in) | :: | seedname | |||
| type(pw90_gyrotropic_type), | intent(in) | :: | pw90_gyrotropic | |||
| real(kind=dp), | intent(in), | allocatable | :: | fermi_energy_list(:) | ||
| character(len=30), | intent(in) | :: | f_out_name | |||
| real(kind=dp), | intent(in), | optional | :: | arrEf(:,:,:) | ||
| real(kind=dp), | intent(in), | optional | :: | arrEf1D(:) | ||
| real(kind=dp), | intent(in), | optional | :: | arrEfW(:,:,:,:) | ||
| character(len=30), | intent(in), | optional | :: | units | ||
| character(len=120), | intent(in), | optional | :: | comment | ||
| logical, | intent(in), | optional | :: | symmetrize |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in), | allocatable | :: | fermi_energy_list(:) | ||
| integer, | intent(in) | :: | fermi_n | |||
| integer, | intent(in) | :: | file_unit | |||
| real(kind=dp), | intent(in) | :: | omega | |||
| real(kind=dp), | intent(in), | optional | :: | arr33N(:,:,:) | ||
| real(kind=dp), | intent(in), | optional | :: | arrN(:) | ||
| logical, | intent(in), | optional | :: | symmetrize |