This module contain operations on the Hamiltonian in the WF basis
Compute D^H_a=UU^dag.del_a UU (a=alpha,beta), using Eq.(24) of WYSV06
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(in), | dimension(:, :) | :: | delHH_a | ||
complex(kind=dp), | intent(in), | dimension(:, :) | :: | UU | ||
real(kind=dp), | intent(in), | dimension(:) | :: | eig | ||
real(kind=dp), | intent(in) | :: | ef | |||
complex(kind=dp), | intent(out), | dimension(:, :) | :: | D_h_a |
Compute D^H_a=UU^dag.del_a UU (a=x,y,z) using Eq.(24) of WYSV06
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(in), | dimension(:, :, :) | :: | delHH | ||
complex(kind=dp), | intent(in), | dimension(:, :) | :: | UU | ||
real(kind=dp), | intent(in), | dimension(:) | :: | eig | ||
complex(kind=dp), | intent(out), | dimension(:, :, :) | :: | D_h |
Compute D^H_a=UU^dag.del_a UU (a=x,y,z) using Eq.(24) of WYSV06
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(in), | dimension(:, :, :) | :: | delHH | ||
complex(kind=dp), | intent(in), | dimension(:, :) | :: | UU | ||
real(kind=dp), | intent(in), | dimension(:) | :: | eig | ||
complex(kind=dp), | intent(out), | dimension(:, :, :) | :: | D_h |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(inout), | dimension(:, :) | :: | delHH | ||
complex(kind=dp), | intent(in), | dimension(:, :) | :: | UU | ||
real(kind=dp), | intent(in), | dimension(:) | :: | eig | ||
complex(kind=dp), | intent(out), | dimension(:, :, :) | :: | JJp_list | ||
complex(kind=dp), | intent(out), | dimension(:, :, :) | :: | JJm_list | ||
real(kind=dp), | intent(in), | optional | dimension(:) | :: | occ |
Occupation matrix f, and g=1-f for a list of Fermi energies
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex(kind=dp), | intent(in), | dimension(:, :) | :: | UU | ||
complex(kind=dp), | intent(out), | dimension(:, :, :) | :: | f_list | ||
complex(kind=dp), | intent(out), | dimension(:, :, :) | :: | g_list | ||
real(kind=dp), | intent(in), | optional | dimension(:) | :: | eig | |
real(kind=dp), | intent(in), | optional | dimension(:) | :: | occ |
Band derivatives dE/dk_a
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(out) | :: | deleig_a(num_wann) | |||
real(kind=dp), | intent(in) | :: | eig(num_wann) | |||
complex(kind=dp), | intent(in), | dimension(:, :) | :: | delHH_a | ||
complex(kind=dp), | intent(in), | dimension(:, :) | :: | UU |
Given a k point, this function returns eigenvalues E and derivatives of the eigenvalues dE/dk_a, using wham_get_deleig_a
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in), | dimension(3) | :: | kpt | the three coordinates of the k point vector (in relative coordinates) |
|
real(kind=dp), | intent(out) | :: | eig(num_wann) | the calculated eigenvalues at kpt |
||
real(kind=dp), | intent(out) | :: | del_eig(num_wann,3) | the calculated derivatives of the eigenvalues at kpt [first component: band; second component: 1,2,3 for the derivatives along the three k directions] |
||
complex(kind=dp), | intent(out), | dimension(:, :) | :: | HH | the Hamiltonian matrix at kpt |
|
complex(kind=dp), | intent(out), | dimension(:, :, :) | :: | delHH | the delHH matrix (derivative of H) at kpt |
|
complex(kind=dp), | intent(out), | dimension(:, :) | :: | UU | the rotation matrix that gives the eigenvectors of HH |
Given a k point, this function returns eigenvalues E and derivatives of the eigenvalues dE/dk_a, using wham_get_deleig_a
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in), | dimension(3) | :: | kpt | the three coordinates of the k point vector (in relative coordinates) |
|
real(kind=dp), | intent(in) | :: | eig(num_wann) | |||
real(kind=dp), | intent(out) | :: | del_eig(num_wann,3) | |||
complex(kind=dp), | intent(in), | dimension(:, :, :) | :: | delHH | the delHH matrix (derivative of H) at kpt |
|
complex(kind=dp), | intent(in), | dimension(:, :) | :: | UU | the rotation matrix that gives the eigenvectors of HH |
Wrapper routine used to reduce number of Fourier calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in), | dimension(3) | :: | kpt | ||
real(kind=dp), | intent(out) | :: | eig(num_wann) | |||
complex(kind=dp), | intent(out), | dimension(:, :) | :: | UU | ||
complex(kind=dp), | intent(out), | dimension(:, :) | :: | HH | ||
complex(kind=dp), | intent(out), | dimension(:, :, :, :) | :: | JJp_list | ||
complex(kind=dp), | intent(out), | dimension(:, :, :, :) | :: | JJm_list | ||
real(kind=dp), | intent(in), | optional | dimension(:) | :: | occ |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in), | dimension(3) | :: | kpt | ||
real(kind=dp), | intent(out) | :: | eig(num_wann) | |||
complex(kind=dp), | intent(out), | dimension(:, :) | :: | UU | ||
complex(kind=dp), | intent(out), | dimension(:, :) | :: | HH | ||
complex(kind=dp), | intent(out), | dimension(:, :, :) | :: | HH_da | ||
complex(kind=dp), | intent(out), | dimension(:, :, :, :) | :: | HH_dadb |
Wrapper routine used to reduce number of Fourier calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in), | dimension(3) | :: | kpt | ||
real(kind=dp), | intent(out) | :: | eig(num_wann) | |||
complex(kind=dp), | intent(out), | dimension(:, :) | :: | UU | ||
complex(kind=dp), | intent(out), | dimension(:, :) | :: | HH | ||
complex(kind=dp), | intent(out), | dimension(:, :, :) | :: | HH_da | ||
complex(kind=dp), | intent(out), | dimension(:, :, :, :) | :: | HH_dadb |